@charset "UTF-8";
/* ==================================================================
   陶都宜兴 · 手机站样式层 v6.90.0「紫砂文化 · D 丁蜀体验」
   ------------------------------------------------------------------
   v6.88.0 内页版式定稿（按类型混搭 A/B）保留在第 11 节，
   v6.89.0 宜兴概况 A 目的地首页在第 13 节，本版新增第 14 节。
   本文件由 apply_mobile.py 以 <link> 注入到全站每个前台页面，
   是「手机端排布」的唯一真源。改样式只改这里，不要改 HTML。

   v6.84.0 的核心变化
   ------------------
   过去只有一套「≤640px 就双列卡片 + 收字号」的通用规则，所以每个栏目
   看起来都是电脑版的缩小版。现在注入器给 <body> 打了 data-m 页面类型，
   这里按模块分别建模板：
     home    沉浸刊头 + 六宫格入口 + 横滑模块
     spots/towns/taste/merchants/ranking  枢纽压缩 + 分区吸顶 + 双列卡流
     detail  头图 + 玻璃信息卡（两列事实）+ 章节条 + 底部操作条
     gallery 吸顶分类 + 双列瀑布 + 视频卡
     hiking  路线卡（编号徽章 + 信息块）
     about/zisha/service/links  长文页：左对齐模块头 + 可读行长
   底部导航改为悬浮胶囊：选中项是深绿药丸 + 白字 + 金点，未选中灰字。

   铁律
   ----
     1) 桌面端零改动 —— 除下面那条 display:none 兜底外，所有规则一律
        包在 @media (max-width:640px) 内；
     2) 本 <link> 是页面最后加载的样式表，同特异性下覆盖主样式，
        因此不需要到处写 !important（写了会让后台配置无法回退）；
     3) 配色 / 字体沿用主样式 :root 变量，不另起一套；
     4) 结构零依赖：所有选择器都打在既有 class 上，不改生成器、不改内容 JSON。
   ================================================================== */

/* 桌面 / 平板：手机专属结构一律不出现。
   这是媒体查询外仅有的兜底规则，改样式请往下写进 @media 内。 */
.mtab,.mview,.mact,.mprog,.mtoc,.mtop,.mq,.msec,.a-dest,.acta,.d-dest,.dcta{display:none}

@media (max-width:640px){
:root{
  --m-nav:54px;                              /* 顶部导航高（桌面 88px） */
  --m-tab-h:58px;                            /* 底部胶囊高 */
  --m-tab-gap:8px;                           /* 胶囊离屏幕底的距离 */
  --m-safe:env(safe-area-inset-bottom,0px);  /* iPhone 底部安全区 */
  --m-tab-top:calc(var(--m-tab-h) + var(--m-tab-gap) + var(--m-safe));
  --m-gut:16px;                              /* 统一左右留白 */
  --m-r:14px;                                /* 统一卡片圆角 */
  --m-shadow:0 10px 26px -20px rgba(24,36,29,.6);
}

html{-webkit-text-size-adjust:100%}
body{
  font-size:15px;
  line-height:1.85;
  /* 给悬浮胶囊让位，否则页脚最后一行永远点不到 */
  padding-bottom:calc(var(--m-tab-top) + 14px);
}

/* ---------------------------------------------------------------- 1 顶部导航
   88px 的桌面导航在 390px 屏上占掉近 1/4 屏，是「像电脑站」的第一眼来源。 */
.gnav .gin{height:var(--m-nav);padding:0 var(--m-gut)}
.gnav .gbrand{gap:9px}
.gnav .gbrand .gmark,.gnav.scrolled .gbrand .gmark{width:32px;height:32px}
.gnav .gbrand .gtx,.gnav.scrolled .gbrand .gtx{font-size:16px;letter-spacing:.1em}
.gnav .gbrand .gtx small{font-size:8px;letter-spacing:0;margin-top:2px}
.gnav .gact{gap:2px}
.gnav .gsearch{width:34px;height:34px}
.gnav .gsearch svg{width:17px;height:17px}
.gnav .gtoggle{font-size:20px;padding:5px 6px}
.gnav .gmenu{top:var(--m-nav)}
/* 分类吸顶条要与变矮的导航对齐（原 top:88px） */
.catbar{top:var(--m-nav)}
.catbar .in{padding-top:8px;padding-bottom:8px}
/* 桌面右侧浮动「本页导航」在手机上会变成一条贴着屏底的横条，与胶囊导航叠在一起。
   手机侧的等价能力已由 .msec（栏目页分区条）/ .mtoc（详情页章节条）/
   .catbar（图库分类）接管，这里直接隐藏，避免两条底栏打架。 */
.pnav{display:none!important}

/* ---------------------------------------------------------------- 2 底部导航 · 悬浮胶囊
   原来是贴边通栏 + 顶部一根 2px 短线，和电脑站导航没有区别感。
   现在整条脱离屏幕边缘浮起，选中项是一枚深绿药丸（白图标白字 + 金点），
   一眼就能看出「我在这」。 */
.mtab{
  display:flex;position:fixed;left:10px;right:10px;z-index:190;
  bottom:calc(var(--m-tab-gap) + var(--m-safe));
  height:var(--m-tab-h);padding:0 5px;
  border-radius:20px;
  background:rgba(250,248,243,.94);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);
  backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid rgba(47,74,62,.10);
  box-shadow:0 14px 34px -20px rgba(20,32,26,.62),0 2px 10px -6px rgba(20,32,26,.24)}
.mtab-i{
  flex:1;min-width:0;height:100%;position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:#8b8b80;font-size:9.5px;letter-spacing:.06em;line-height:1;
  -webkit-tap-highlight-color:transparent;transition:color .18s}
.mtab-i svg{
  width:20px;height:20px;position:relative;z-index:1;
  fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .18s}
.mtab-i span{position:relative;z-index:1}
/* 选中态底板：药丸 */
.mtab-i::before{
  content:"";position:absolute;left:50%;top:50%;z-index:0;
  width:calc(100% - 8px);height:46px;border-radius:15px;
  background:linear-gradient(165deg,#3d5b4d,#2b4338);
  opacity:0;transform:translate(-50%,-50%) scale(.92);
  transition:opacity .2s ease,transform .2s ease}
.mtab-i.on{color:#fff;font-weight:600}
.mtab-i.on::before{opacity:1;transform:translate(-50%,-50%) scale(1)}
.mtab-i.on svg{stroke-width:2.1;transform:translateY(-1px)}
/* 选中项右上角金点：与未选中项再拉一层区分 */
.mtab-i.on::after{
  content:"";position:absolute;z-index:2;top:9px;right:calc(50% - 16px);
  width:5px;height:5px;border-radius:50%;background:var(--gold-light);
  box-shadow:0 0 0 2px rgba(43,67,56,.9)}

/* 右下角悬浮按钮、隐私提示条、注册引导条上移，别被胶囊吃掉 */
.fab{bottom:calc(var(--m-tab-top) + 14px)}
.yxm-priv,.yxm-join{bottom:calc(var(--m-tab-top) + 12px)}
.yxm-priv{padding:11px 13px;gap:8px}
.yxm-priv p{font-size:11.5px;line-height:1.6;flex:1 1 100%}
.yxm-priv button{padding:8px 14px;font-size:12px}

/* ---------------------------------------------------------------- 3 模块通用语言
   桌面是「居中大标题 + 长导语 + 装饰线」，手机上一律改左对齐：
   小金色眉标 → 23px 标题 → 短金线 → 三行内导语。这是所有模块的公共骨架，
   各模块再往下加自己的版式。 */
.sec-head{text-align:left;margin-bottom:22px}
.sec-head .eyebrow{
  font-size:9.5px;letter-spacing:.22em;text-indent:0;
  color:var(--gold);margin-bottom:7px;opacity:.95}
.sec-head h2{font-size:23px;line-height:1.36;letter-spacing:.01em;white-space:normal}
.sec-head .divider{
  width:34px;height:2px;margin:11px 0 0;background:var(--gold);
  border:0;border-radius:2px}
.sec-head p.lead{
  margin-top:11px;font-size:13px;line-height:1.88;letter-spacing:.01em;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sec-head .more-about{
  display:inline-flex;align-items:center;gap:6px;margin-top:12px;
  padding:9px 15px;border-radius:22px;background:rgba(47,74,62,.07);
  font-size:12px;color:var(--green);letter-spacing:.02em}
.sec-head .more-about::after{content:"›";font-size:15px;line-height:1;color:var(--clay)}

/* 栏目页分区头（.bhead）同样左对齐、去掉英文长尾 */
.sec .bhead,.bhead{flex-wrap:wrap;gap:4px 8px;margin-bottom:0}
.sec .bhead h2,.bhead h2{font-size:20px;line-height:1.4}
.bhead i{display:none}
.bhead em{display:none}
.bsub{margin-top:8px;font-size:12.5px;line-height:1.85;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 区块节奏：桌面 60–88px 的留白在手机上会让「一屏看不到一个完整区块」 */
section,.sec{padding-top:40px;padding-bottom:40px}
.tips-grid,.hl-grid,.xgrid,.tk-wrap,.about-grid,.zisha-grid,.taste-grid,.uf-grid{
  grid-template-columns:1fr}

/* 正文可读性：行长收到约 24–26 字 */
article p,.detail p,.content p{font-size:15px;line-height:1.9}
h2{font-size:21px}
h3{font-size:17px}
.tk-wrap table,.tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* 卡片流统一：双列 + 圆角 + 无边框阴影（桌面是细线描边） */
body .spot-grid,body .town-grid,body .dish-grid,body .pgrid,body .fgrid,body .cgrid,
body .egrid,body .gal-grid,body .yr-grid,body .yn-grid,body .rk-grid,body .tr-grid,
body .statgrid,body .hike-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
/* 统计数据是奇数个时（spots 页 5 个大类），最后一格铺满整行，不留半格空洞 */
.statgrid>.stat:last-child:nth-child(odd),.statgrid>.stat:nth-child(2n+1):last-child{
  grid-column:1 / -1}

/* ---------------------------------------------------------------- 4 首页 home
   手机首页 = 封面刊头 → 六宫格入口 → 概况速览 → 横滑的「打卡 / 行旅」
   → 乡镇色卡横滑 → 双列美食 → 影像 → 贴士。与桌面「一屏一块、居中大标题」
   完全不是同一套节奏。

   v6.85.0 刊头改版 —— 从「整屏竖构图」改成「画册封面」：
     · 原来 74svh 全屏铺底，广角照片（1.5–2.2 : 1）被裁成中间一条竖片，
       只剩一小块景；现在收成一张 3:2 的内缩圆角横图卡，广角几乎整幅看到，
       首屏高度也从 ~660px 降到 ~520px（多露出一截六宫格）。
     · 文字重排：原来眉标/题名/副题居中三层堆在图片正中，现在全部左对齐，
       眉标一行 → 题名「宜兴」+ 小英文 → 副题 → 金短线，压在图片上方。
     · 题注从「单独一行居中」改成压在图片左下角的玻璃胶囊；
       轮播指示条改成左侧短横条（当前帧拉长为金色），右侧留「向下探索」。 */
#top.hero{
  --m-hcard:calc((100vw - var(--m-gut) * 2) * .66);  /* 3:2 横图卡 */
  height:auto;min-height:0;display:block;text-align:left;
  padding:0 0 calc(var(--m-hcard) + 80px);   /* 80 = 卡下沿 62 + 文字与卡之间 18 */
  border-radius:0 0 26px 26px;               /* 深色块收个圆角，像一张封面纸 */
  background:
    radial-gradient(118% 76% at 102% -6%,rgba(176,141,87,.24),transparent 62%),
    linear-gradient(168deg,#1c2f25 0%,#2b4338 54%,#3b5547 100%);
  overflow:hidden}
/* 竖排英文标在封面版式里没有位置，改由题名旁的小英文承担 */
#top.hero::before{content:none}

/* 轮播图：整屏铺底 → 内缩圆角横图卡 */
#top.hero .hbg{
  left:var(--m-gut);right:var(--m-gut);
  top:auto;bottom:62px;height:var(--m-hcard);
  border-radius:18px;background-color:#16241c;background-position:center;
  box-shadow:0 24px 48px -30px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.10);
  /* heroZoom 会把整张卡（含圆角与留白）一起放大撑出边距，手机上只留淡入淡出 */
  animation:none!important;transform:none!important}
#top.hero .veil{
  left:var(--m-gut);right:var(--m-gut);top:auto;
  bottom:62px;height:var(--m-hcard);border-radius:18px;
  background:linear-gradient(180deg,rgba(16,26,21,.16) 0%,rgba(16,26,21,0) 38%,rgba(16,26,21,.52) 100%)}

/* ⚠️ 刊头规则一律限定 #top.hero —— 景点详情页也用 .hero，
   早期版本用裸 .hero h1 把详情页标题从 32px 放大到 44px+。 */
#top.hero .inner{
  position:relative;z-index:3;
  padding:calc(var(--m-nav) + 12px) var(--m-gut) 0;
  display:flex;flex-wrap:wrap;align-items:baseline}
#top.hero .kicker{
  flex:1 1 100%;margin:0 0 9px;font-size:9.5px;font-weight:400;
  letter-spacing:.2em;text-indent:0;line-height:1.7;
  color:rgba(255,255,255,.68);opacity:1}
#top.hero h1{
  margin:0;font-size:clamp(34px,9.6vw,42px);line-height:1.06;
  letter-spacing:.06em;text-indent:0;
  display:flex;align-items:baseline;gap:9px}
#top.hero h1::after{
  content:"YIXING";font-size:9px;font-weight:400;font-family:var(--sans,inherit);
  letter-spacing:.3em;color:var(--gold-light);opacity:.9;
  transform:translateY(-2px)}
#top.hero .sub{
  flex:1 1 100%;margin:11px 0 0;font-size:12px;
  letter-spacing:.17em;text-indent:0;color:rgba(255,255,255,.80);opacity:1}
/* 一条从金到透明的发丝线，把文案区和图片区分开 */
#top.hero .rule{
  flex:1 1 100%;width:auto;height:1px;margin:14px 0 0;border:0;border-radius:0;
  background:linear-gradient(90deg,rgba(201,171,119,.9),rgba(201,171,119,0) 78%);
  opacity:1}
#top.hero .rule::before,#top.hero .rule::after{content:none}

/* 题注：压在卡片左下角的玻璃胶囊，不再独占一行 */
#top.hero .hcap{
  left:calc(var(--m-gut) + 11px);right:auto;
  bottom:calc(62px + 11px);max-width:calc(100vw - var(--m-gut) * 2 - 22px);
  padding:5px 10px;border-radius:20px;
  font-size:9.5px;line-height:1.5;letter-spacing:.12em;text-indent:0;
  text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:#fff;background:rgba(18,29,23,.46);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
/* 指示条在左、探索提示在右，分列卡片下沿。
   条本身只有 3px 高，直接当按钮点不中；按钮撑成 15×22 的透明热区，
   可见的横条用 ::before 画，指示条手感才像原生轮播。 */
#top.hero .hdots{
  left:var(--m-gut);right:auto;bottom:17px;gap:4px;align-items:center}
#top.hero .hdots button{
  position:relative;width:15px;height:22px;padding:0;border:0;border-radius:0;
  background:none;transition:width .3s ease}
#top.hero .hdots button::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:100%;height:3px;border-radius:2px;background:rgba(255,255,255,.30);
  transition:background .3s ease}
#top.hero .hdots button.on{width:24px}
#top.hero .hdots button.on::before{background:var(--gold-light)}
#top.hero .scroll{
  display:flex;flex-direction:row;writing-mode:horizontal-tb;
  left:auto;right:var(--m-gut);bottom:21px;transform:none;
  font-size:9px;letter-spacing:.16em;text-indent:.16em;
  color:rgba(255,255,255,.52)}
#top.hero .scroll .bar{display:none}

/* 六宫格快捷入口（注入器 brand:mq）：接在封面刊头下沿，像 App 的功能区 */
.mq{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;
  position:relative;z-index:4;
  margin:16px var(--m-gut) 0;padding:0}
.mq-i{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:12px 4px 10px;border-radius:var(--m-r);
  background:#fff;border:1px solid rgba(47,74,62,.07);
  box-shadow:var(--m-shadow);text-align:center;
  -webkit-tap-highlight-color:transparent;transition:transform .16s ease}
.mq-i:active{transform:scale(.97)}
.mq-ic{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  background:linear-gradient(160deg,rgba(176,141,87,.17),rgba(47,74,62,.07));
  color:var(--green)}
.mq-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.mq-i b{font-size:12.5px;font-weight:600;color:var(--ink);letter-spacing:.01em;line-height:1.3}
.mq-i i{font-style:normal;font-size:9.5px;color:var(--ink-soft);line-height:1.3}

/* ------------------------------------------------- 4.1 首页三大模块 · v6.86.0
   用户口径：宜兴概况＝「一个轮换图片 + 一块文字」；紫砂文化同版式（也轮播）；
   山水名胜＝「三张大图横滑 + 下面一个更多景点」。
   桌面 DOM / 版式完全不动：这里只重排 order、隐藏冗余内容；手机专享节点
   都带 data-m-only + 内联 display:none，桌面端看不到任何变化。
   三模块统一节奏：大图 → 文字块（金色眉标 / 标题 / 短金线 / 三行导语）→ 入口胶囊。 */

/* ===== 宜兴概况：只留 4 图轮播 + 截图① 的文字块 ===== */
body[data-m="home"] #about .wrap,
body[data-m="home"] #zisha .wrap,
body[data-m="home"] #spots .wrap{display:flex;flex-direction:column}

body[data-m="home"] #about .about-grid{order:1;display:block;margin:0 0 18px}
body[data-m="home"] #about .sec-head{order:2;margin-bottom:0}
body[data-m="home"] #about .about-text,
body[data-m="home"] #about .stats{display:none}
body[data-m="home"] #about .about-photo{
  position:relative;margin:0;border-radius:var(--m-r);
  overflow:hidden;box-shadow:var(--m-shadow)}
body[data-m="home"] #about .about-photo::before{content:none}
/* 手机端切换用硬切：0.9s 淡入在低端 WebView / 无头截图上容易截到全透明帧 */
body[data-m="home"] #about .about-photo .ap-slide.active{animation:none}
body[data-m="home"] #about .about-photo .ap-slide img{
  width:100%;aspect-ratio:3/2;max-height:none;height:auto;
  object-fit:cover;border-radius:0;box-shadow:none}
body[data-m="home"] #about .about-photo .tag{
  left:11px;right:auto;bottom:11px;
  writing-mode:horizontal-tb;max-width:calc(100% - 22px);
  padding:5px 10px;border-radius:20px;
  font-size:9.5px;letter-spacing:.12em;line-height:1.5;
  color:#fff;background:rgba(18,29,23,.46);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-m="home"] #about .ap-dots{right:11px;bottom:16px;gap:4px}
body[data-m="home"] #about .ap-dots button{
  width:6px;height:6px;border-radius:6px;
  background:rgba(255,255,255,.48);transition:width .3s ease,background .3s ease}
body[data-m="home"] #about .ap-dots button.on{width:18px;background:var(--gold-light)}

/* ===== 紫砂文化：3 图自动轮播 + 同款文字块 + 胶囊入口 ===== */
body[data-m="home"] #zisha{background:linear-gradient(168deg,#1c2f25,#2b4338)}
body[data-m="home"] #zisha .zisha-grid{order:1;display:block;margin:0 0 18px}
body[data-m="home"] #zisha .zisha-text{order:2}
body[data-m="home"] #zisha .zisha-photo{
  position:relative;aspect-ratio:3/2;height:auto;margin:0;
  border-radius:var(--m-r);overflow:hidden;
  box-shadow:0 18px 34px -22px rgba(0,0,0,.9)}
body[data-m="home"] #zisha .zisha-photo::after{content:none}
/* 与概况轮播同构：激活靠 .ap-slide.active（JS 切 class），不依赖常驻动画 */
body[data-m="home"] #zisha .zisha-photo .ap-slide.active{animation:none}
body[data-m="home"] #zisha .zisha-photo .ap-slide img{
  position:absolute;inset:0;width:100%;height:100%;
  aspect-ratio:auto;max-height:none;object-fit:cover;
  border-radius:0;box-shadow:none}
body[data-m="home"] #zisha .mz-dots{
  display:flex!important;position:absolute;z-index:3;
  right:11px;bottom:11px;gap:4px;align-items:center}
body[data-m="home"] #zisha .mz-dots button{
  position:relative;width:6px;height:6px;padding:0;border:0;border-radius:6px;
  background:rgba(255,255,255,.48);transition:width .3s ease,background .3s ease}
body[data-m="home"] #zisha .mz-dots button.on{width:18px;background:var(--gold-light)}
body[data-m="home"] #zisha .sec-head{margin-bottom:0;text-align:left}
body[data-m="home"] #zisha .sec-head h2{
  font-size:20px;line-height:1.45;color:#fff;text-indent:0}
body[data-m="home"] #zisha .sec-head::after{
  content:"";display:block;width:34px;height:2px;margin-top:11px;
  border-radius:2px;background:var(--gold-light)}
body[data-m="home"] #zisha .zisha-text>p{display:none}
body[data-m="home"] #zisha .zisha-text>p.d1{
  display:-webkit-box;margin:11px 0 0;text-align:left;color:rgba(242,239,231,.84);
  font-size:13px;line-height:1.88;
  -webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="home"] #zisha .zisha-text>p.zisha-cta{display:block;margin:14px 0 0}
body[data-m="home"] #zisha .zisha-cta a .d-cta{display:none}
body[data-m="home"] #zisha .zisha-cta a .m-cta{display:inline!important}
body[data-m="home"] #zisha .zisha-cta a{
  display:inline-flex;align-items:center;gap:6px;max-width:100%;
  padding:9px 15px;border-radius:22px;
  border:1px solid rgba(201,171,119,.55);background:rgba(255,255,255,.08);
  color:#fff;font-size:12px;line-height:1.5;letter-spacing:.02em}
body[data-m="home"] #zisha .zisha-cta a::after{content:"›";font-size:15px;line-height:1;color:var(--gold-light)}
body[data-m="home"] #zisha .zisha-quote,
body[data-m="home"] #zisha .zisha-points{display:none}

/* ===== 山水名胜：3 张大图横滑 + 截图② 的文字块 + 更多景点 ===== */
body[data-m="home"] #spots .m-spots{
  order:1;display:flex!important;gap:10px;overflow-x:auto;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain;scroll-behavior:auto;
  margin:0 calc(var(--m-gut) * -1) 0;padding:2px var(--m-gut) 6px;
  scrollbar-width:none}
body[data-m="home"] #spots .m-spots::-webkit-scrollbar{display:none}
body[data-m="home"] #spots .mspot{
  flex:0 0 82%;scroll-snap-align:start;display:block;
  border-radius:var(--m-r);overflow:hidden;background:#fff;
  border:1px solid rgba(47,74,62,.07);box-shadow:var(--m-shadow);
  color:var(--ink)}
body[data-m="home"] #spots .mspot img{
  width:100%;aspect-ratio:3/2;height:auto;object-fit:cover}
body[data-m="home"] #spots .mspot .mspot-tx{
  display:flex;align-items:baseline;gap:8px;padding:10px 12px 12px}
body[data-m="home"] #spots .mspot b{font-size:15px;font-weight:600;line-height:1.4}
body[data-m="home"] #spots .mspot i{
  font-style:normal;font-size:10.5px;line-height:1.4;color:var(--ink-soft)}
body[data-m="home"] #spots .sec-head{order:2;margin:18px 0 0}
body[data-m="home"] #spots .m-more{
  order:3;display:inline-flex!important;align-self:flex-start;align-items:center;gap:6px;
  margin-top:12px;padding:9px 15px;border-radius:22px;
  background:rgba(47,74,62,.07);font-size:12px;color:var(--green);letter-spacing:.02em}
body[data-m="home"] #spots .m-more::after{content:"›";font-size:15px;line-height:1;color:var(--clay)}
body[data-m="home"] #spots .spot-grid,
body[data-m="home"] #spots .more{display:none}

/* 横滑模块：桌面 2×N 的大卡，手机改成「一张半卡」的横滑轨道 */
body[data-m="home"] .hike-grid{
  display:flex;overflow-x:auto;gap:12px;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain;scroll-behavior:auto;
  padding:2px 0 6px;margin:0 calc(var(--m-gut) * -1) 0;
  padding-left:var(--m-gut);padding-right:var(--m-gut);
  scrollbar-width:none}
body[data-m="home"] .hike-grid::-webkit-scrollbar{display:none}
body[data-m="home"] .hike-grid>.hike-card{
  flex:0 0 74%;scroll-snap-align:start;
  border-radius:var(--m-r);overflow:hidden;background:#fff;
  border:1px solid rgba(47,74,62,.07);box-shadow:var(--m-shadow)}
body[data-m="home"] .hike-grid>.hike-card .hc-pic{aspect-ratio:4/3;height:auto}
body[data-m="home"] .hike-grid>.hike-card .hc-pic img{width:100%;height:100%;object-fit:cover}
body[data-m="home"] .hike-grid>.hike-card .hc-body{padding:11px 12px 12px}
body[data-m="home"] .hike-grid>.hike-card .hc-body b{font-size:14px;line-height:1.4}
body[data-m="home"] .hike-grid>.hike-card .hc-desc{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="home"] .hk-head h4{font-size:13px;letter-spacing:.08em}
body[data-m="home"] .hk-head p{
  font-size:12px;line-height:1.8;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="home"] .hk-all{font-size:12px}

/* 乡镇：3:2 大图横滑卡（72% 宽），色条 + 镇名 + 一行标签 + 两行简介 */
body[data-m="home"] .town-grid{
  display:flex;overflow-x:auto;gap:12px;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain;scroll-behavior:auto;
  padding:2px 0 6px;margin:0 calc(var(--m-gut) * -1) 0;
  padding-left:var(--m-gut);padding-right:var(--m-gut);
  scrollbar-width:none}
body[data-m="home"] .town-grid::-webkit-scrollbar{display:none}
body[data-m="home"] .town-grid>.tcard{
  flex:0 0 72%;scroll-snap-align:start;display:block;padding:0;
  border-radius:var(--m-r);overflow:hidden;background:#fff;
  border:1px solid rgba(47,74,62,.07);
  border-top:3px solid var(--tone,#2f4a3e);
  box-shadow:var(--m-shadow)}
body[data-m="home"] .town-grid>.tcard .timg{display:block;height:auto;margin:0}
body[data-m="home"] .town-grid>.tcard .timg img{
  width:100%;aspect-ratio:3/2;height:auto;object-fit:cover}
body[data-m="home"] .town-grid>.tcard .dot{display:none}
body[data-m="home"] .town-grid>.tcard h3{
  margin:11px 12px 0;font-size:16px;line-height:1.4;white-space:nowrap}
body[data-m="home"] .town-grid>.tcard .k{
  display:block;margin:4px 12px 0;font-size:10.5px;line-height:1.5;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-m="home"] .town-grid>.tcard p{
  display:-webkit-box;margin:7px 12px 12px;font-size:12.5px;line-height:1.7;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="home"] .town-grid>.tcard em{display:none}

/* 「查看全部」大边框盒 → 胶囊入口（乡镇 / 行旅共用） */
body[data-m="home"] .town-more,
body[data-m="home"] .route-more{justify-content:flex-start;margin:14px 0 0}
body[data-m="home"] .town-more a,
body[data-m="home"] .route-more a{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 15px;border:0;border-radius:22px;
  background:rgba(47,74,62,.07);color:var(--green);
  font-size:12px;letter-spacing:.02em;line-height:1.5}
body[data-m="home"] .town-more a::after,
body[data-m="home"] .route-more a::after{
  content:"›";font-size:15px;line-height:1;color:var(--clay)}

/* 美食：3:2 大图横滑卡（与乡镇同语言），名称 + 一行简介 */
body[data-m="home"] .dish-grid{
  display:flex;overflow-x:auto;gap:12px;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain;scroll-behavior:auto;
  margin:0 calc(var(--m-gut) * -1) 0;
  padding:2px 0 6px;padding-left:var(--m-gut);padding-right:var(--m-gut);
  scrollbar-width:none}
body[data-m="home"] .dish-grid::-webkit-scrollbar{display:none}
body[data-m="home"] .dish-grid>.dish-link{
  flex:0 0 82%;scroll-snap-align:start;display:block;
  border-radius:var(--m-r);overflow:hidden;background:#fff;
  border:1px solid rgba(47,74,62,.07);box-shadow:var(--m-shadow)}
body[data-m="home"] .dish-grid .dish{
  margin:0;border:0;background:none;box-shadow:none;border-radius:0}
body[data-m="home"] .dish-grid .dish img{
  width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;border-radius:0}
body[data-m="home"] .dish-grid .dish figcaption{padding:10px 12px 12px}
body[data-m="home"] .dish-grid .dish figcaption b{font-size:15px;letter-spacing:.04em}
body[data-m="home"] .dish-grid .dish figcaption span{
  margin-top:3px;font-size:11.5px;line-height:1.6;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 特产馆 / 商家推荐：压成并排双卡，只留编号 + 标题 + 入口 */
body[data-m="home"] .taste-links{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
body[data-m="home"] .tlink{padding:12px 13px}
body[data-m="home"] .tl-no{font-size:11px}
body[data-m="home"] .tl-body span{display:none}
body[data-m="home"] .tl-body b{font-size:13.5px;line-height:1.5}
body[data-m="home"] .tl-body em{
  font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* 影像：视频 4→横滑单排；照片瀑布只留前 8 张；统一胶囊入口 */
body[data-m="home"] #gallery .vsgrid{
  display:flex;overflow-x:auto;gap:10px;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain;scroll-behavior:auto;
  margin:0 calc(var(--m-gut) * -1);padding:2px var(--m-gut) 6px;
  scrollbar-width:none}
body[data-m="home"] #gallery .vsgrid::-webkit-scrollbar{display:none}
body[data-m="home"] #gallery .vscard{flex:0 0 78%;scroll-snap-align:start}
body[data-m="home"] #gallery .vscard .vsf{aspect-ratio:16/9;height:auto}
body[data-m="home"] #gallery .vssub,
body[data-m="home"] #gallery .vsjump,
body[data-m="home"] #gallery .vsmore,
body[data-m="home"] #gallery .gal-more{display:none}
body[data-m="home"] #gallery .vscredit{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:10.5px;line-height:1.7}
body[data-m="home"] #gallery .photo-wall{gap:8px}
body[data-m="home"] #gallery .photo-wall>*{border-radius:10px;overflow:hidden}
body[data-m="home"] #gallery .photo-wall figure:nth-child(n+9){display:none}

/* ===== v6.87.1 横滑手感层（修「左右滑发卡/黏住」）=====
   mandatory 会在拖动途中不断强制吸附，X5/Android 内核表现为「拽回 + 卡顿」→ 已全改 proximity；
   旧内核的 -webkit-overflow-scrolling 叠加层与 snap 冲突 → 已移除，用内核默认惯性；
   overscroll-behavior-x:contain 阻止滑到头后把滚动传给页面/触发返回手势。 */
body[data-m="home"] .m-spots,
body[data-m="home"] .hike-grid,
body[data-m="home"] .town-grid,
body[data-m="home"] .dish-grid,
body[data-m="home"] #gallery .vsgrid{
  scroll-padding-left:var(--m-gut);scroll-padding-right:var(--m-gut);
  -webkit-tap-highlight-color:transparent}
body[data-m="home"] .m-spots>*,
body[data-m="home"] .hike-grid>*,
body[data-m="home"] .town-grid>*,
body[data-m="home"] .dish-grid>*,
body[data-m="home"] #gallery .vsgrid>*{
  -webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}
/* 横滑轨道内的图片：不留可拖拽/长按的交互，滑动时只做图层位移 */
body[data-m="home"] .m-spots img,
body[data-m="home"] .hike-grid img,
body[data-m="home"] .town-grid .timg img,
body[data-m="home"] .dish-grid .dish img{
  display:block;pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}
/* 视频封面保留指针事件（卡上有播放/跳转交互） */
body[data-m="home"] #gallery .vscard .vsf img{
  display:block;-webkit-backface-visibility:hidden;backface-visibility:hidden}
body[data-m="home"] #gallery .m-more{
  display:inline-flex!important;align-items:center;gap:6px;
  margin-top:14px;padding:9px 15px;border-radius:22px;
  background:rgba(47,74,62,.07);font-size:12px;color:var(--green);letter-spacing:.02em}
body[data-m="home"] #gallery .m-more::after{
  content:"›";font-size:15px;line-height:1;color:var(--clay)}

/* 模块导语压两行（概况 / 紫砂保持 v6.86.0 定稿节奏不动） */
body[data-m="home"] #towns .sec-head .lead,
body[data-m="home"] #taste .sec-head .lead,
body[data-m="home"] #gallery .sec-head .lead,
body[data-m="home"] #tips .sec-head .lead{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 打卡卡瘦身：只留标签、名称、位置、门票 */
body[data-m="home"] .hike-grid>.hike-card .hc-desc,
body[data-m="home"] .hike-grid>.hike-card .hc-go{display:none}
body[data-m="home"] .hike-grid>.hike-card .hc-meta i:nth-child(2){display:none}

/* 行旅：首推卡简介两行，副卡整段隐藏（路线去 hiking.html 看） */
body[data-m="home"] .route-feature .rf-tx>span{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="home"] .route-feature .rf-side{display:none}

/* 贴士：卡片列表（左侧金线），不再是一格格等宽小方块 */
body[data-m="home"] .tips-grid{gap:9px}
body[data-m="home"] .tip{
  padding:14px 15px;border-radius:12px;background:#fff;
  border:1px solid rgba(47,74,62,.07);border-left:3px solid var(--gold)}
body[data-m="home"] .tip h4{font-size:14px;line-height:1.5}
body[data-m="home"] .tip p{font-size:12.5px;line-height:1.8}

/* ---------------------------------------------------------------- 5 栏目列表页
   spots / towns / taste / merchants / ranking 共用一套：枢纽首屏压到一屏内、
   分区头吸顶可跳、双列卡片流、左下角切「编号行列表」。 */
.phero{padding:calc(var(--m-nav) + 22px) 0 26px}
.phero h1{font-size:24px;letter-spacing:.02em;line-height:1.4}
.phero .sub{font-size:11.5px;letter-spacing:.06em;line-height:1.8;margin-top:7px}
.phero .crumb{font-size:10.5px;letter-spacing:.04em;opacity:.8}
.phero .pstats,.phero .stat{font-size:11px}

/* 卡片：桌面是细线方框，手机改成圆角浮卡 */
.spot-grid .spot{
  background:#fff;border-radius:var(--m-r);overflow:hidden;
  border:1px solid rgba(47,74,62,.07);box-shadow:var(--m-shadow)}
.spot-grid .spot{position:relative}
.spot-grid .spot .pic{aspect-ratio:3/4;height:auto;overflow:hidden}
.spot-grid .spot .pic img{width:100%;height:100%;object-fit:cover}
.spot-grid .spot .no{font-size:10.5px}
.spot-grid .spot .body,.spot-grid .spot .cbody{padding:10px 11px 12px}
.spot-grid .spot h3{font-size:14px;line-height:1.45;letter-spacing:.01em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.spot-grid .spot h3 em{display:none}
.spot-grid .spot .body p,.spot-grid .spot .cbody p{
  margin:5px 0 0;font-size:11.5px;line-height:1.7;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.spot-grid .spot .meta{display:none}
.spot-grid .spot .spot-more{position:static;display:block;margin-top:8px;
  font-size:10.5px;letter-spacing:.02em;color:var(--clay);line-height:1.4}
.spot-grid .spot .spot-more::after{content:"";position:absolute;inset:0;z-index:2}

/* 分区吸顶条（注入器 LIST_UI）：滚过 180px 才滑出，胶囊可横滑 */
.msec{
  display:block;position:fixed;left:0;right:0;top:var(--m-nav);z-index:148;
  height:38px;background:rgba(247,245,240,.97);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(47,74,62,.10);
  transform:translateY(-102%);opacity:0;pointer-events:none;
  transition:transform .22s ease,opacity .22s ease}
.msec.show{transform:none;opacity:1;pointer-events:auto}
.msec-in{display:flex;align-items:center;gap:6px;height:100%;padding:0 12px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.msec-in::-webkit-scrollbar{display:none}
.msec-in a{flex:none;white-space:nowrap;font-size:11.5px;line-height:1;
  padding:7px 12px;border-radius:14px;text-decoration:none;
  color:var(--ink-soft);background:rgba(47,74,62,.07);
  -webkit-tap-highlight-color:transparent}
.msec-in a.on{background:var(--green);color:#fff;font-weight:600}

/* 图库页的分类条已有 .catbar，别再叠一条分区条 */
body[data-m="gallery"] .msec{display:none}

/* ---------------------------------------------------------------- 6 详情页 detail
   头图保持沉浸，事实条改「两列玻璃信息卡」；正文标题加金色竖线；
   底部操作条脱离正文浮起。 */
body[data-m="detail"] .hero h1{font-size:26px;letter-spacing:.03em;line-height:1.4}
body[data-m="detail"] .hero .sub{font-size:12px;letter-spacing:.1em}
body[data-m="detail"] .hero .eyebrow{font-size:9.5px;letter-spacing:.22em;opacity:.9}
/* 景点事实条：桌面是一排圆角胶囊，窄屏会挤成三四行。
   改成「一行一条」的玻璃速览卡 —— 两列网格在 5 条事实时必然留半格空洞，
   而开放时间这类长文本也会被挤成四行；单列一行一条读起来最稳。
   ⚠️ 只对景点页（data-k="spot"）：菜品 / 乡镇 / 商家页的 .chips 是短标签，
   不能套这一套。 */
body[data-k="spot"] .hero .chips{
  display:block;margin-top:15px;padding:2px 0;
  border-radius:12px;overflow:hidden;
  background:rgba(24,38,30,.30);
  border:1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
body[data-k="spot"] .hero .chips span{
  display:block;white-space:normal;overflow:visible;
  background:none;border:0;border-radius:0;
  border-bottom:1px solid rgba(255,255,255,.14);
  padding:8px 12px;font-size:11px;line-height:1.62;letter-spacing:.01em;
  color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.3)}
body[data-k="spot"] .hero .chips span:last-child{border-bottom:0}
/* 其它详情页（菜品 / 乡镇 / 商家）的标签胶囊：只收尺寸，保持一行可换行。
   用 :not([data-k="spot"]) 排除景点页，否则同特异性下会把上面那套覆盖掉。 */
body[data-m="detail"]:not([data-k="spot"]) .hero .chips{gap:6px;margin-top:12px}
body[data-m="detail"]:not([data-k="spot"]) .hero .chips span{
  font-size:10.5px;line-height:1.3;padding:4px 9px;border-radius:11px}

/* 正文小标题：金色竖线 + 收敛字号 */
body[data-m="detail"] article h2,
body[data-m="detail"] .content h2{
  font-size:17px;line-height:1.55;padding-left:11px;
  border-left:3px solid var(--gold);margin:26px 0 10px}
body[data-m="detail"] article h3,
body[data-m="detail"] .content h3{font-size:15.5px;line-height:1.6}
body[data-m="detail"] article p{font-size:15px;line-height:1.92;margin-top:10px}
body[data-m="detail"] article ul,
body[data-m="detail"] article ol{padding-left:1.15em}
body[data-m="detail"] article li{margin-top:6px;line-height:1.85}

/* 悬浮操作条：白色胶囊 + 深绿字，比原来更「工具条」 */
.mact{
  display:flex;align-items:center;
  position:fixed;left:50%;transform:translateX(-50%);z-index:188;
  bottom:calc(var(--m-tab-top) + 10px);
  width:min(344px,calc(100% - 24px));height:46px;
  border-radius:23px;overflow:hidden;
  background:rgba(250,248,243,.97);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid rgba(47,74,62,.12);
  box-shadow:0 12px 30px -18px rgba(20,32,26,.75)}
.mact a,.mact button{
  flex:1;min-width:0;min-height:46px;display:flex;align-items:center;justify-content:center;
  border:0;background:none;color:var(--green);
  font:600 11px/1 system-ui,sans-serif;letter-spacing:.02em;
  text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mact > * + *{border-left:1px solid rgba(47,74,62,.10)}
.mact button.on{color:var(--clay)}
body:has(.mact){padding-bottom:calc(var(--m-tab-top) + 70px)}
body:has(.mact) .fab{bottom:calc(var(--m-tab-top) + 66px)}

/* ---------------------------------------------------------------- 7 影像 gallery
   分类条吸顶 + 双列瀑布；视频卡整宽，封面 16:9。 */
body[data-m="gallery"] .catbar{position:sticky;z-index:120;
  background:rgba(247,245,240,.96);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(47,74,62,.12)}
body[data-m="gallery"] .catbar .in{
  flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  scrollbar-width:none;gap:6px}
body[data-m="gallery"] .catbar .in::-webkit-scrollbar{display:none}
body[data-m="gallery"] .catbar .cat{flex:none;white-space:nowrap;padding:6px 11px;font-size:11.5px}
body[data-m="gallery"] .catbar .cat b{font-size:10px}
body[data-m="gallery"] .gsec{font-size:17px;margin:22px 0 12px}
body[data-m="gallery"] .gsec span{font-size:11.5px;line-height:1.7}
/* 影像页头部（.ghead）桌面居中，手机统一改左对齐，与其它模块一致 */
body[data-m="gallery"] .ghead{text-align:left;padding-left:var(--m-gut);padding-right:var(--m-gut)}
body[data-m="gallery"] .ghead h1{font-size:25px;line-height:1.35}
body[data-m="gallery"] .ghead p{font-size:12px;line-height:1.8}
body[data-m="gallery"] .ph{border-radius:10px;overflow:hidden;border:0;margin-bottom:10px}
body[data-m="gallery"] .ph img{border-radius:10px}
body[data-m="gallery"] .gallery{column-gap:10px;padding:18px 0 40px}
/* 视频卡：单列整宽，封面 16:9，标题两行 */
body[data-m="gallery"] .vcard{
  border-radius:var(--m-r);overflow:hidden;background:#fff;
  border:1px solid rgba(47,74,62,.07);box-shadow:var(--m-shadow);margin-bottom:12px}
body[data-m="gallery"] .vcard .vcover{aspect-ratio:16/9;height:auto}
body[data-m="gallery"] .vcard .vinfo{padding:10px 12px 12px}
body[data-m="gallery"] .vcard .vinfo b{font-size:14px;line-height:1.45}

/* ---------------------------------------------------------------- 8 行旅 hiking
   路线卡：编号徽章 + 标题 + 区域 + 元信息，卡片化；正文信息块（.xcard）
   改成浅底圆角块，长文页才不至于像一堵墙。 */
body[data-m="hiking"] .route{
  background:#fff;border:1px solid rgba(47,74,62,.07);border-radius:var(--m-r);
  box-shadow:var(--m-shadow);padding:16px 14px 14px;margin-bottom:14px}
body[data-m="hiking"] .rhead{display:block;position:relative;padding-left:0}
body[data-m="hiking"] .rno{
  display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--green);color:#fff;font-size:10px;letter-spacing:.02em;
  margin-right:7px;vertical-align:middle}
body[data-m="hiking"] .rhead h3{display:inline;font-size:16px;line-height:1.5;vertical-align:middle}
body[data-m="hiking"] .rarea{display:block;margin-top:6px;font-size:11px;color:var(--ink-soft)}
body[data-m="hiking"] .route .intro{font-size:13.5px;line-height:1.9;margin-top:8px}
body[data-m="hiking"] .rgrid{grid-template-columns:1fr;gap:12px}
body[data-m="hiking"] .rmap{width:100%;height:auto;border-radius:10px}
body[data-m="hiking"] .xcard{
  padding:13px 14px;border-radius:12px;background:rgba(47,74,62,.045);
  border:0;font-size:12.5px;line-height:1.85}
body[data-m="hiking"] .xcard h4{font-size:13px;margin-bottom:6px}
body[data-m="hiking"] .rlinks{display:grid;gap:8px;margin-top:12px}
body[data-m="hiking"] .rlinks a{
  padding:11px 13px;border-radius:11px;background:#fff;
  border:1px solid rgba(47,74,62,.07);font-size:12.5px;color:var(--green)}
/* 线路总览卡（.acard）：桌面是「左图右文」横向卡，手机改成上图下文的竖卡 */
body[data-m="hiking"] .acard{
  background:#fff;border-radius:var(--m-r);overflow:hidden;
  border:1px solid rgba(47,74,62,.07);box-shadow:var(--m-shadow);
  margin-bottom:12px;display:block}
body[data-m="hiking"] .acard .acover{display:block}
body[data-m="hiking"] .acard .acover img{
  width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
body[data-m="hiking"] .acard .abody{padding:12px 13px 14px}
body[data-m="hiking"] .acard h3{font-size:15.5px;line-height:1.45}
body[data-m="hiking"] .acard .adesc{
  font-size:12.5px;line-height:1.8;margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="hiking"] .acard .ameta{display:flex;gap:14px;margin-top:9px}
body[data-m="hiking"] .acard .ameta span{font-size:10.5px}
body[data-m="hiking"] .acard .ameta b{font-size:13px}
/* 沿途停靠点：原本是一长串内联文本，窄屏会挤成一堵字墙 —— 改成可换行的胶囊 */
body[data-m="hiking"] .astops{display:flex;flex-wrap:wrap;gap:6px 7px;margin-top:10px}
body[data-m="hiking"] .astops .sph{flex:0 0 100%;font-size:10.5px;color:var(--ink-soft)}
body[data-m="hiking"] .astops i{
  font-style:normal;font-size:11px;line-height:1.4;
  padding:4px 9px;border-radius:9px;background:rgba(47,74,62,.06);color:var(--ink-soft)}
body[data-m="hiking"] .acard .atip{
  margin-top:10px;padding:9px 11px;border-radius:9px;
  background:rgba(176,141,87,.11);font-size:11.5px;line-height:1.7}
body[data-m="hiking"] .acard .ago{
  display:block;margin-top:11px;padding:10px 12px;border-radius:10px;
  background:var(--green);color:#fff;text-align:center;font-size:12.5px;letter-spacing:.02em}

/* ---------------------------------------------------------------- 9 吃喝 / 商家 / 榜单 */
body[data-m="taste"] .dish-grid .dish img{aspect-ratio:4/5;object-fit:cover}
body[data-m="ranking"] .rk-grid{grid-template-columns:1fr;gap:11px}
body[data-m="ranking"] .rk-card{
  border-radius:var(--m-r);overflow:hidden;background:#fff;
  border:1px solid rgba(47,74,62,.07);box-shadow:var(--m-shadow)}
body[data-m="ranking"] .rk-rank{font-size:12px}
body[data-m="merchants"] .blk{
  border-radius:var(--m-r);background:#fff;
  border:1px solid rgba(47,74,62,.07);box-shadow:var(--m-shadow)}

/* ---------------------------------------------------------------- 10 长文页 about / zisha / service
   正文左对齐、字号 15px；小节标题带金线，读长文时不至于一片糊。 */
body[data-m="about"] article h2,body[data-m="zisha"] article h2,
body[data-m="service"] article h2{
  font-size:18px;line-height:1.5;padding-left:11px;border-left:3px solid var(--gold)}
body[data-m="about"] .venue-info,body[data-m="about"] .vitem{
  border-radius:12px;background:#fff;border:1px solid rgba(47,74,62,.07)}
body[data-m="about"] .vitem{display:grid;grid-template-columns:1fr auto;gap:6px 10px;padding:12px}

/* ---------------------------------------------------------------- 11 C 层：编号行列表
   同一批 .spot 卡片，点左下角「☰ 列表」换成一行一条：CSS counter 编号 +
   52px 缩略图 + 单行标题 + 右箭头，一屏 6–7 条。
   v6.83.1：counter-reset 改挂 body（挂每个 .spot-grid 会让 5 个分区各自重数）；
   列表态隐藏「展开其余 N 个」。 */
@supports selector(:has(*)){
  .mview{display:flex;align-items:center;gap:2px;
    position:fixed;left:12px;z-index:186;
    bottom:calc(var(--m-tab-top) + 10px);
    height:32px;padding:3px;border-radius:16px;
    background:rgba(47,74,62,.92);
    box-shadow:0 8px 22px -14px rgba(20,32,26,.9)}
  .mview input{position:absolute;opacity:0;width:0;height:0}
  .mview label{display:flex;align-items:center;height:26px;padding:0 9px;
    border-radius:13px;font-size:10.5px;line-height:1;color:rgba(255,255,255,.72);
    cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent}
  .mview input:checked + label{background:rgba(255,255,255,.18);color:#fff;font-weight:600}

  body:has(#m-view-list:checked){counter-reset:mrow}
  body:has(#m-view-list:checked) .spot-grid{grid-template-columns:1fr;gap:0;
    background:none;border:0;box-shadow:none}
  body:has(#m-view-list:checked) .spot-grid .spot{
    display:grid;grid-template-columns:26px 52px minmax(0,1fr) 16px;
    align-items:center;gap:10px;padding:10px 2px;border-radius:0;
    border:0;border-bottom:1px solid rgba(47,74,62,.12);
    background:none;box-shadow:none}
  body:has(#m-view-list:checked) .spot-grid .spot.is-extra{display:grid}
  body:has(#m-view-list:checked) .smore{display:none}
  body:has(#m-view-list:checked) .spot-grid .spot::before{
    counter-increment:mrow;content:counter(mrow,decimal-leading-zero);
    font-family:var(--serif);font-size:11px;color:var(--gold);letter-spacing:.02em}
  body:has(#m-view-list:checked) .spot-grid .spot .pic{
    width:52px;height:52px;aspect-ratio:auto;border-radius:3px}
  /* .spot-more 在 .cbody 内部而不是 .spot 的直接子元素。
     display:contents 让 cbody 的盒子消失、h3 与 spot-more 成为 grid item，
     箭头才落到第 4 列；同时 spot-more 仍是 static，它的 ::after 覆盖层
     继续相对 .spot 铺满，整行依旧可点。 */
  body:has(#m-view-list:checked) .spot-grid .spot .body,
  body:has(#m-view-list:checked) .spot-grid .spot .cbody{display:contents}
  body:has(#m-view-list:checked) .spot-grid .spot h3{
    font-size:14px;-webkit-line-clamp:1;line-height:1.5;min-width:0}
  body:has(#m-view-list:checked) .spot-grid .spot .body p,
  body:has(#m-view-list:checked) .spot-grid .spot .cbody p,
  body:has(#m-view-list:checked) .spot-grid .spot .meta,
  body:has(#m-view-list:checked) .spot-grid .spot .no{display:none}
  /* 主样式给 .spot-more 加了金色 border-bottom + padding-bottom，
     压成窄列后那条边框会变成一行多余的短横；文本也别靠 font-size:0
     （主样式会算回 3.78px），直接用定宽 + overflow 裁掉。 */
  body:has(#m-view-list:checked) .spot-grid .spot .spot-more{
    justify-self:end;align-self:center;
    width:16px;height:20px;overflow:hidden;
    margin:0;padding:0;border:0;background:none;
    font-size:0;line-height:1;color:transparent}
  body:has(#m-view-list:checked) .spot-grid .spot .spot-more::before{
    content:"›";position:absolute;right:3px;top:50%;transform:translateY(-50%);
    font-size:20px;line-height:1;color:var(--clay)}
}

/* ---------------------------------------------------------------- 12 详情页交互层
   章节条吸在 54px 导航下、滚过 hero 才滑出；进度条贴顶 2px；回顶在右下浮层上方。
   容器本身由文件顶部的兜底规则 display:none，JS 只填章节与切 class：
   脚本没跑起来时页面不会多出任何空白条/按钮（降级干净）。 */
.mprog{display:block;position:fixed;left:0;right:0;top:0;height:2px;z-index:200;
  pointer-events:none;background:transparent}
.mprog i{display:block;height:100%;width:0;background:var(--gold);
  box-shadow:0 0 6px rgba(156,107,74,.55);transition:width .08s linear}
.mtoc{display:block;position:fixed;left:0;right:0;top:var(--m-nav);z-index:150;
  height:36px;background:rgba(247,245,240,.97);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(47,74,62,.12);
  transform:translateY(-100%);opacity:0;pointer-events:none;
  transition:transform .22s ease,opacity .22s ease}
.mtoc.show{transform:none;opacity:1;pointer-events:auto}
.mtoc-in{display:flex;align-items:center;gap:6px;height:100%;padding:0 12px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.mtoc-in::-webkit-scrollbar{display:none}
.mtoc-in a{flex:none;white-space:nowrap;font-size:11px;line-height:1;
  padding:6px 11px;border-radius:13px;text-decoration:none;
  color:var(--ink-soft);background:rgba(47,74,62,.07);
  -webkit-tap-highlight-color:transparent}
.mtoc-in a.on{background:var(--green);color:#fff;font-weight:600}
.mtop{display:flex;align-items:center;justify-content:center;
  position:fixed;right:12px;z-index:187;
  bottom:calc(var(--m-tab-top) + 118px);
  width:38px;height:38px;border-radius:50%;border:1px solid rgba(47,74,62,.16);
  background:rgba(247,245,240,.97);color:var(--green);font-size:17px;line-height:1;
  box-shadow:0 8px 22px -14px rgba(43,43,40,.8);
  opacity:0;pointer-events:none;transition:opacity .2s ease;
  -webkit-tap-highlight-color:transparent;cursor:pointer}
.mtop.on{opacity:1;pointer-events:auto}
/* 章节条展开时不遮住正文首行：锚点滚动统一预留 100px（54 导航 + 36 章节条） */
section{scroll-margin-top:100px}

/* ==================================================================
   9 内页版式 · A「刊头卡」—— 生效于 景点 spot / 乡镇 town（v6.88.0 定稿）
   ------------------------------------------------------------------
   骨架：沉浸刊头（图 72vh，标题压底、金色细线）→ 语音/速览块 →
         每个章节是一张白卡（18px 圆角 + 极淡投影），卡头带 01/02 编号。
   节奏：卡的呼吸感 + 编号的系统感，读长文不腻。
   ================================================================== */
body:is([data-k="spot"],[data-k="town"]){counter-reset:secno;background:#f4f1ea}
body:is([data-k="spot"],[data-k="town"]) .pfoot,body:is([data-k="spot"],[data-k="town"]) .foot{background:#f4f1ea}

body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner){
  display:block;position:relative;overflow:hidden;
  height:min(72vh,520px)!important;min-height:0!important}
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .bg,
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner)>img{
  position:absolute!important;inset:0;
  width:100%!important;height:100%!important;
  object-fit:cover;object-position:center 42%}
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .veil{
  position:absolute;inset:0;background:
    linear-gradient(to top,rgba(10,20,14,.90) 0%,rgba(10,20,14,.52) 32%,
    rgba(10,20,14,.10) 64%,rgba(10,20,14,0) 100%)}
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .inner,
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .hero-in,
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .in,
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .wrap{
  position:absolute;left:0;right:0;bottom:0;
  padding:0 18px 22px;margin:0}
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) h1{
  font-size:29px;line-height:1.28;letter-spacing:.015em;margin-top:8px;
  text-shadow:0 2px 18px rgba(0,0,0,.42)}
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) h1::after{
  content:"";display:block;width:38px;height:2px;margin-top:12px;
  background:linear-gradient(90deg,var(--gold-light),transparent)}
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .sub,
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .tag{
  margin-top:9px;font-size:12px;line-height:1.7;letter-spacing:.06em;opacity:.9}
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .eyebrow,
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .kicker{
  font-size:9px;letter-spacing:.3em;color:var(--gold-light);opacity:.95}
body:is([data-k="spot"],[data-k="town"]) :is(.hero,.phero,.banner) .rule{display:none}
/* 景点事实条：贴底玻璃卡，收窄行距换取首屏留白 */
body[data-k="spot"] .hero .chips{
  margin-top:13px;padding:1px 0;border-radius:12px;
  background:rgba(12,24,17,.34);border:1px solid rgba(255,255,255,.20);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body[data-k="spot"] .hero .chips span{
  padding:6px 11px;font-size:10.5px;line-height:1.5}

/* 【备用分支·不生效】美食页改用 A 时才需要：把 data-skin="a" 换成 data-k="food"。
   v6.88.0 定稿美食走 B，apply_mobile 不再写 data-skin，所以这段永远不会匹配。
   美食页的 hero 是图文混排容器（无背景大图）——首图 4:3 通栏，标题接成白底块 */
body[data-k="food"][data-skin="a"] .hero{
  height:auto!important;min-height:0!important;overflow:visible}
body[data-k="food"][data-skin="a"] .hero .wrap{position:static;padding:0}
body[data-k="food"][data-skin="a"] .grid{display:block;gap:0}
body[data-k="food"][data-skin="a"] .grid .ph{margin:0;padding:0;border-radius:0}
body[data-k="food"][data-skin="a"] .grid .ph .main img{
  width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:0}
body[data-k="food"][data-skin="a"] .grid .thumbs{display:none}
body[data-k="food"][data-skin="a"] .grid>.reveal{
  padding:20px 16px 4px;background:#fff;
  margin:-16px 12px 0;border-radius:18px;position:relative;z-index:2}
body[data-k="food"][data-skin="a"] .grid>.reveal h1{
  font-size:27px;line-height:1.3;letter-spacing:.01em;margin-top:2px}
body[data-k="food"][data-skin="a"] .grid>.reveal h1::after{
  content:"";display:block;width:38px;height:2px;margin-top:11px;
  background:linear-gradient(90deg,var(--gold),transparent)}
body[data-k="food"][data-skin="a"] .grid .crumb{font-size:10.5px;opacity:.7}
body[data-k="food"][data-skin="a"] .grid .no{font-size:10px;letter-spacing:.2em;opacity:.65}
body[data-k="food"][data-skin="a"] .grid .alias{font-size:12px;opacity:.8;margin-top:5px}
body[data-k="food"][data-skin="a"] .grid .lead{font-size:13.5px;line-height:1.85;margin-top:10px}
body[data-k="food"][data-skin="a"] .grid .chips{margin-top:11px}
body[data-k="food"][data-skin="a"] .grid .kv{margin-top:14px}

/* 章节：白卡 + 系统编号 */
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec{
  counter-increment:secno;
  margin:12px 12px 0;padding:20px 16px 18px;
  background:#fff;border-radius:18px;
  border:1px solid rgba(47,74,62,.055);
  box-shadow:0 16px 36px -32px rgba(20,32,26,.95)}
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec>.wrap,
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec>.inner,
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec .wrap{padding:0;max-width:none}
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec .sec-head{margin-bottom:12px}
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec .eyebrow{display:none}
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec h2{
  position:relative;padding-left:0;border-left:0;margin:0;
  font-size:19px;line-height:1.45;letter-spacing:.01em}
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec h2::before{
  content:counter(secno,decimal-leading-zero);
  display:block;margin-bottom:6px;
  font:600 10.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.22em;color:var(--clay);opacity:.9}
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec .lead{font-size:12.5px;line-height:1.8;margin-top:6px}
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec p{font-size:14.5px;line-height:1.95;margin-top:10px}
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec .ph,
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec figure,
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec .hist-fig img,
body[data-m]:is([data-k="spot"],[data-k="town"]) .sec .pcard{
  border-radius:12px;overflow:hidden}

/* 语音导览 / 简介块：并入卡流 */
body[data-m]:is([data-k="spot"],[data-k="town"]) .yag{padding:0}
body[data-m]:is([data-k="spot"],[data-k="town"]) .yag>.wrap{padding:0 12px}
body[data-m]:is([data-k="spot"],[data-k="town"]) .yag-card{margin-top:12px;border-radius:18px}
body[data-m]:is([data-k="spot"],[data-k="town"]) .brief{padding:0}
body[data-m]:is([data-k="spot"],[data-k="town"]) .brief>.wrap{
  margin:12px 12px 0;padding:18px 16px;background:#fff;border-radius:18px;
  border:1px solid rgba(47,74,62,.055);box-shadow:0 16px 36px -32px rgba(20,32,26,.95)}
body[data-m]:is([data-k="spot"],[data-k="town"]) .brief .lead{font-size:14px;line-height:1.9;margin:0}

/* 路线页：数据格 → 2×2 白卡 */
body[data-m]:is([data-k="spot"],[data-k="town"]) #overview .inner{padding:0 12px}
body[data-m]:is([data-k="spot"],[data-k="town"]) .statgrid{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
body[data-m]:is([data-k="spot"],[data-k="town"]) .stat{
  background:#fff;border-radius:14px;padding:14px 13px;
  border:1px solid rgba(47,74,62,.055);box-shadow:0 12px 28px -28px rgba(20,32,26,.9)}
body[data-m]:is([data-k="spot"],[data-k="town"]) .stat b{font-size:16px;line-height:1.3}
body[data-m]:is([data-k="spot"],[data-k="town"]) .stat small{font-size:10px}
body[data-m]:is([data-k="spot"],[data-k="town"]) .stat span{font-size:10.5px;line-height:1.5;opacity:.75}

/* ==================================================================
   10 内页版式 · B「条目册」—— 生效于 美食 food / 商家 shop / 路线 travel
   ------------------------------------------------------------------
   骨架：刊头压成 16:10 横图，标题块白卡抬起（深色字，不压图）→
         章节不加卡：编号小方块 + 标题 + 一条细线分隔，靠留白分节。
   节奏：更像「手册 / 索引」，一屏能读到更多，克制、冷静。
   ================================================================== */
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]){counter-reset:secno}

body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner){
  display:block;height:auto!important;min-height:0!important;
  overflow:visible;padding:0;background:none}
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .bg,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner)>img{
  position:static!important;display:block;
  width:100%!important;height:auto!important;
  aspect-ratio:16/10;object-fit:cover}
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .veil{display:none}
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .inner,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .hero-in,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .wrap{
  position:relative!important;left:auto;right:auto;bottom:auto;
  margin:-22px 12px 0;padding:18px 16px 16px;
  background:#fff;border-radius:18px;z-index:2;color:var(--ink);
  box-shadow:0 18px 40px -34px rgba(20,32,26,.95)}
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) h1{
  font-size:25px;line-height:1.3;letter-spacing:.01em;
  color:var(--ink);text-shadow:none;margin-top:5px}
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .sub,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .tag{
  margin-top:6px;font-size:11.5px;letter-spacing:.05em;color:var(--ink-soft);opacity:1}
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .eyebrow,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .kicker{
  font-size:9px;letter-spacing:.26em;color:var(--clay);opacity:.9}
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .rule{display:none}
/* 【备用分支·不生效】景点改用 B 时才需要：把 data-skin="b" 换成 data-k="spot"。 */
/* 事实条 → 小药丸，一行可换行，不再用玻璃卡 */
body[data-k="spot"][data-skin="b"] .hero .chips{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;
  padding:0;border:0;background:none;border-radius:0;
  -webkit-backdrop-filter:none;backdrop-filter:none}
body[data-k="spot"][data-skin="b"] .hero .chips span{
  padding:5px 10px;border-radius:12px;border:0;
  background:rgba(47,74,62,.065);color:var(--ink-soft);
  font-size:10.5px;line-height:1.45;text-shadow:none;white-space:normal}
/* 美食页：首图 16:10，标题白卡抬在同位置 */
body[data-k="food"] .hero{height:auto!important;overflow:visible}
body[data-k="food"] .hero .wrap{position:static;padding:0}
body[data-k="food"] .grid{display:block;gap:0}
body[data-k="food"] .grid .ph{margin:0;padding:0;border-radius:0}
body[data-k="food"] .grid .ph .main img{
  width:100%;aspect-ratio:16/10;height:auto;object-fit:cover;border-radius:0}
body[data-k="food"] .grid .thumbs{display:none}
/* B：白卡上原本压图的浅色文字改深（商家 / 路线页的 crumb、cat、brief、sub） */
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .crumb,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .crumb a,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .cat,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .brief,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .sub,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .tag,
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .kicker{
  color:var(--ink-soft)!important;text-shadow:none!important}
body:is([data-k="food"],[data-k="shop"],[data-k="travel"]) :is(.hero,.phero,.banner) .cat{color:var(--clay)!important;letter-spacing:.14em}
body[data-k="food"] .grid>.reveal{
  padding:18px 16px 8px;background:#fff;margin:-22px 12px 0;
  border-radius:18px;position:relative;z-index:2}
body[data-k="food"] .grid>.reveal h1{font-size:25px;line-height:1.3;margin-top:3px}
body[data-k="food"] .grid .crumb{font-size:10.5px;opacity:.65}
body[data-k="food"] .grid .lead{font-size:13px;line-height:1.85;margin-top:9px}
body[data-k="food"] .grid .chips{margin-top:10px}

/* 章节：无卡，编号方块 + 细线分节 */
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec{
  counter-increment:secno;
  position:relative;margin:0;padding:26px var(--m-gut) 10px;
  background:none;border:0;border-radius:0;box-shadow:none}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec+.sec{border-top:1px solid rgba(47,74,62,.10)}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec>.wrap,
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec>.inner,
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec .wrap{padding:0;max-width:none}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec .sec-head{margin-bottom:12px}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec .eyebrow{
  font-size:9px;letter-spacing:.24em;color:var(--ink-soft);opacity:.6;margin-bottom:7px}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec h2{
  display:flex;align-items:center;gap:9px;
  padding-left:0;border-left:0;margin:0;
  font-size:16.5px;line-height:1.45;letter-spacing:.005em}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec h2::before{
  content:counter(secno,decimal-leading-zero);
  flex:none;padding:4px 6px 3px;border-radius:6px;
  font:600 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.06em;color:var(--green);
  background:rgba(47,74,62,.075)}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec h2::after{
  content:"";flex:1;height:1px;background:rgba(47,74,62,.12)}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec .lead{font-size:12.5px;line-height:1.8;margin-top:7px}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec p{font-size:14.5px;line-height:1.98;margin-top:9px}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec .ph,
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .sec figure{border-radius:6px;overflow:hidden}
/* 简介 / 导览块：去掉卡片，改成顶部一条金线 */
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .brief{padding:0}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .brief>.wrap{
  margin:14px var(--m-gut) 0;padding:14px 0 0;
  border-top:2px solid var(--gold);background:none;border-radius:0;box-shadow:none}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .brief .lead{font-size:13.5px;line-height:1.9;margin:0}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .yag>.wrap{padding:0 var(--m-gut)}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .yag-card{margin-top:14px;border-radius:12px}
/* 路线页数据格：两列细线表 */
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) #overview .inner{padding:0 var(--m-gut)}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .statgrid{
  grid-template-columns:1fr 1fr;gap:0;margin-top:12px;
  border-top:1px solid rgba(47,74,62,.12)}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .stat{
  padding:12px 2px;border-radius:0;background:none;box-shadow:none;
  border-bottom:1px solid rgba(47,74,62,.10)}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .stat:nth-child(odd){padding-right:12px}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .stat b{font-size:15px;line-height:1.35}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .stat small{font-size:10px}
body[data-m]:is([data-k="food"],[data-k="shop"],[data-k="travel"]) .stat span{font-size:10px;line-height:1.5;opacity:.65}

/* 11 A/B 共用修正：美食页首图去掉桌面的装饰边框与内留白 */
body[data-k="food"] .grid .ph,
body[data-k="food"] .grid .ph .main,
body[data-k="food"] .grid .ph .main img{
  border:0!important;box-shadow:none!important;background:none!important;
  padding:0!important;outline:0!important}
body[data-k="food"] .grid .ph::before,
body[data-k="food"] .grid .ph::after,
body[data-k="food"] .grid .ph .main::before,
body[data-k="food"] .grid .ph .main::after{display:none!important;content:none!important}

/* ==================================================================
   13  宜兴概况 · A 目的地首页（v6.89.0）
   ------------------------------------------------------------------
   对标携程 / 马蜂窝目的地页：沉浸头图 + 透明导航 + 悬浮搜索 + 4×2 金刚区
   + 官方 TOP 榜 + 精选攻略 + 底部固定 CTA、灰底白卡 8pt 栅格。
   只命中 body[data-m="about"]；新增 DOM 在媒体查询外统一 display:none，
   桌面端零视觉改动。配色回到站点深绿 #2f4a3e + 金 #b08d57，
   不用方案预览稿里的平台橙。TOP 榜复用 #spots 的真实景点卡，
   用 CSS counter 编号，后台数据一变编号自动跟着变。
   ================================================================== */
body[data-m="about"]{
  background:#f2f1ed;
  padding-bottom:calc(var(--m-tab-top) + 78px)}

/* 13.1 顶部导航：压在头图上的透明 App 条，滚过 40px 恢复实色。
   about.html 的 gnav 没有 over-hero 类（只有首页有），这里用 CSS 在手机侧
   复刻同一效果，避免改 HTML class 影响桌面端。 */
body[data-m="about"] .gnav{
  position:fixed;left:0;right:0;top:0;
  background:transparent;box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none}
body[data-m="about"] .gnav:not(.scrolled) .gbrand .gtx,
body[data-m="about"] .gnav:not(.scrolled) .gmenu>li>a,
body[data-m="about"] .gnav:not(.scrolled) .gsearch,
body[data-m="about"] .gnav:not(.scrolled) .gtoggle{
  color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.5)}
body[data-m="about"] .gnav:not(.scrolled) .gbrand .gtx small{color:rgba(255,255,255,.82)}
body[data-m="about"] .gnav.scrolled{
  background:rgba(247,245,240,.97);box-shadow:0 1px 0 rgba(47,74,62,.12);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}

/* 13.2 沉浸头图 55vh：题名 + 拼音 + 一句真实导语，底部给标签带留位 */
body[data-m="about"] .phero{
  height:55vh;min-height:400px;max-height:520px;
  align-items:flex-end;padding:0}
body[data-m="about"] .phero .veil{
  background:linear-gradient(180deg,rgba(20,32,26,.44) 0%,rgba(20,32,26,.10) 32%,
    rgba(20,32,26,.30) 60%,rgba(20,32,26,.86) 100%)}
body[data-m="about"] .phero .in{padding:0 var(--m-gut) 92px}
body[data-m="about"] .phero .crumb{display:none}
body[data-m="about"] .phero h1{
  font-size:42px;letter-spacing:.14em;line-height:1.15;
  font-family:var(--serif);text-shadow:0 4px 24px rgba(0,0,0,.45)}
body[data-m="about"] .phero h1::after{
  content:"Y I X I N G  ·  中 国 陶 都";display:block;
  font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.2em;
  color:rgba(255,255,255,.88);margin-top:9px;text-shadow:none}
/* 副标原是英文栏目串，手机侧换成站内已有的中文城市导语（零编造） */
body[data-m="about"] .phero .sub{font-size:0;margin-top:10px;max-width:310px}
body[data-m="about"] .phero .sub::after{
  content:"太湖西岸的江南水城，一座被山水与窑火共同塑造的城市。";
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:12px;letter-spacing:.01em;line-height:1.7;color:#fff;opacity:.94}

/* 13.3 首屏组件：标签带 → 悬浮搜索白卡 → 8 宫格 → 精选攻略 */
body[data-m="about"] .a-dest{
  display:block;position:relative;z-index:5;padding:0 var(--m-gut)}
body[data-m="about"] .a-tags{
  display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;
  overscroll-behavior-x:contain;
  margin:-52px 0 12px;padding:0 2px;position:relative;z-index:6}
body[data-m="about"] .a-tags::-webkit-scrollbar{display:none}
body[data-m="about"] .a-tags span{
  flex:none;white-space:nowrap;font-size:10.5px;line-height:1;
  padding:7px 10px;border-radius:12px;color:#fff;
  background:rgba(20,32,26,.46);border:1px solid rgba(255,255,255,.24);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
body[data-m="about"] .a-tags span:first-child{
  background:rgba(176,141,87,.94);border-color:transparent;font-weight:600}
body[data-m="about"] .a-panel{
  position:relative;z-index:7;background:#fff;border-radius:18px;
  padding:14px 14px 16px;box-shadow:0 16px 34px -24px rgba(24,36,29,.7)}
body[data-m="about"] .a-sbox{
  display:flex;align-items:center;gap:9px;height:44px;padding:0 6px 0 12px;
  border-radius:22px;background:#f3f2ee;border:1px solid rgba(47,74,62,.08)}
body[data-m="about"] .a-sbox svg{
  width:17px;height:17px;flex:none;color:#8b8b80;
  fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
body[data-m="about"] .a-sph{
  flex:1;min-width:0;font-size:12px;color:#8b8b80;letter-spacing:.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-m="about"] .a-sbtn{
  flex:none;font-size:12px;font-weight:600;color:#fff;letter-spacing:.04em;
  padding:8px 16px;border-radius:18px;
  background:linear-gradient(160deg,#3d5b4d,#2b4338)}
body[data-m="about"] .a-king{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px 4px;margin-top:18px}
body[data-m="about"] .a-king a{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  min-height:44px;text-align:center;-webkit-tap-highlight-color:transparent}
body[data-m="about"] .a-king i{
  font-style:normal;width:44px;height:44px;border-radius:14px;
  display:grid;place-items:center;color:#fff;font-size:18px;font-weight:600;
  font-family:var(--serif);box-shadow:0 8px 16px -12px rgba(24,36,29,.75)}
body[data-m="about"] .a-king a:active i{transform:scale(.94)}
body[data-m="about"] .a-king b{font-size:11.5px;font-weight:600;color:var(--ink);line-height:1.3}
body[data-m="about"] .a-king em{font-style:normal;font-size:9px;color:var(--ink-soft);line-height:1.2}
body[data-m="about"] .a-guide{margin-top:22px}
body[data-m="about"] .a-gh{
  display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}
body[data-m="about"] .a-gh b{
  font-family:var(--serif);font-size:20px;color:var(--green);
  font-weight:700;letter-spacing:.04em}
body[data-m="about"] .a-gh a{font-size:11px;color:var(--ink-soft)}
body[data-m="about"] .a-gcard{
  display:block;background:#fff;border-radius:16px;overflow:hidden;
  box-shadow:var(--m-shadow)}
body[data-m="about"] .a-gpic{aspect-ratio:16/9;overflow:hidden;background:#e8e5dd}
body[data-m="about"] .a-gpic img{width:100%;height:100%;object-fit:cover;display:block}
body[data-m="about"] .a-gtx{padding:13px 14px 15px}
body[data-m="about"] .a-gtx b{
  display:block;font-size:15px;color:var(--ink);font-weight:600;line-height:1.45}
body[data-m="about"] .a-gtx span{
  display:block;margin-top:5px;font-size:10.5px;color:var(--ink-soft)}
body[data-m="about"] .a-ugc{
  display:flex;align-items:center;gap:9px;margin-top:10px;padding:11px 13px;
  background:#fff;border-radius:14px;box-shadow:var(--m-shadow)}
body[data-m="about"] .a-ugc i{
  font-style:normal;width:30px;height:30px;border-radius:9px;flex:none;
  display:grid;place-items:center;background:rgba(176,141,87,.18);
  color:var(--clay);font-family:var(--serif);font-size:14px;font-weight:700}
body[data-m="about"] .a-ugc b{flex:1;min-width:0;font-size:12px;font-weight:600;color:var(--ink)}
body[data-m="about"] .a-ugc em{font-style:normal;font-size:11px;color:var(--clay)}

/* 13.4 正文七章：灰底白卡，章节间距收紧；DOM 顺序不变，SEO 友好 */
body[data-m="about"] section.sec,
body[data-m="about"] section.sec.alt{
  padding:0 var(--m-gut) 22px;background:none}
body[data-m="about"] section.sec>.inner{
  background:#fff;border-radius:16px;padding:16px 14px 18px;
  box-shadow:var(--m-shadow)}
body[data-m="about"] #intro{margin-top:22px}
body[data-m="about"] .stats{gap:8px;margin-top:20px}
body[data-m="about"] .stat{padding:12px 10px;border-radius:12px}
body[data-m="about"] .stat b{font-size:19px}
body[data-m="about"] .stat b small{font-size:10px}
body[data-m="about"] .stat span{font-size:10px;line-height:1.5;margin-top:4px}
body[data-m="about"] .chips{gap:6px;margin-top:14px}
body[data-m="about"] .chips span{font-size:10.5px;padding:5px 9px}
body[data-m="about"] .note{font-size:10px;margin-top:20px;padding-top:10px}

/* 13.5 官方 TOP 榜：复用 #spots 的 6 张真实景点卡，counter 自动编号 */
body[data-m="about"] #spots .bhead{
  justify-content:space-between;align-items:center;margin-bottom:8px}
body[data-m="about"] #spots .bhead h2{display:none}
body[data-m="about"] #spots .bhead::before{
  content:"宜兴必玩 TOP 榜";font-family:var(--serif);font-size:20px;
  color:var(--green);font-weight:700;letter-spacing:.04em;white-space:nowrap}
body[data-m="about"] #spots .bhead::after{
  content:"官方推荐";font-size:10px;color:var(--gold);letter-spacing:.08em;
  border:1px solid rgba(176,141,87,.45);border-radius:10px;padding:3px 8px}
body[data-m="about"] #spots .bsub{margin:0 0 4px;font-size:11.5px;-webkit-line-clamp:2}
body[data-m="about"] #spots .spots{
  counter-reset:arank;display:grid;grid-template-columns:1fr 1fr;
  gap:10px;margin-top:14px}
body[data-m="about"] #spots .scard{
  counter-increment:arank;position:relative;display:block;
  background:#f6f5f1;border:0;border-radius:13px;overflow:hidden;box-shadow:none}
body[data-m="about"] #spots .scard:first-child,
body[data-m="about"] #spots .scard:last-child{grid-column:1 / -1}
body[data-m="about"] #spots .scard::before{
  content:"No." counter(arank);position:absolute;left:9px;top:9px;z-index:3;
  font-size:10px;font-weight:700;letter-spacing:.06em;color:#fff;
  background:rgba(47,74,62,.88);border-radius:9px;padding:4px 8px}
body[data-m="about"] #spots .scard:first-child::before{
  background:var(--gold);font-size:11px;padding:5px 10px}
body[data-m="about"] #spots .scard .ph{overflow:hidden}
body[data-m="about"] #spots .scard .ph img{height:100px;width:100%;object-fit:cover}
body[data-m="about"] #spots .scard:first-child .ph img{height:190px}
body[data-m="about"] #spots .scard:last-child .ph img{height:130px}
body[data-m="about"] #spots .scard .ph em,
body[data-m="about"] #spots .scard .ph i{display:none}
body[data-m="about"] #spots .scard .sb{display:block;padding:10px 11px 12px}
body[data-m="about"] #spots .scard h3{
  font-size:13.5px;line-height:1.45;letter-spacing:0;color:var(--green);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="about"] #spots .scard:first-child h3{font-size:17px}
body[data-m="about"] #spots .scard h3 small{display:none}
body[data-m="about"] #spots .scard p{
  margin:5px 0 0;font-size:10.5px;line-height:1.6;text-align:left;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="about"] #spots .morelink{margin-top:12px;gap:7px}
body[data-m="about"] #spots .morelink a{
  font-size:10.5px;padding:6px 9px;border-radius:9px;
  background:#f2f1ed;border:0;color:var(--green)}

/* 13.6 底部固定 CTA：收藏 / 分享 / 规划我的行程，压在悬浮胶囊上方 */
body[data-m="about"] .acta{
  display:flex;align-items:center;gap:6px;
  position:fixed;left:10px;right:10px;z-index:185;
  bottom:calc(var(--m-tab-top) + 8px);
  height:50px;padding:0 8px 0 12px;border-radius:16px;
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid rgba(47,74,62,.10);
  box-shadow:0 12px 28px -18px rgba(20,32,26,.6)}
body[data-m="about"] .acta-ic{
  flex:none;border:0;background:none;font:inherit;font-size:11px;line-height:1;
  color:var(--ink-soft);padding:8px 5px;white-space:nowrap;cursor:pointer;
  -webkit-tap-highlight-color:transparent}
body[data-m="about"] .acta-ic.on{color:var(--clay)}
body[data-m="about"] .acta-go{
  flex:1;margin-left:4px;height:38px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:13.5px;font-weight:600;letter-spacing:.04em;color:#fff;
  background:linear-gradient(160deg,#3d5b4d,#2b4338)}
/* 右侧反馈 / 微信 / 回顶三枚浮钮一旦上移就会压住金刚区与 TOP 榜，
   概况页手机端整体隐藏；反馈入口改由 A 块底部的「意见反馈」文字链接承接。
   桌面端（media 外）完全不受影响。 */
body[data-m="about"] .fab{display:none}
body[data-m="about"] .yxm-priv,
body[data-m="about"] .yxm-join{bottom:calc(var(--m-tab-top) + 68px)}
body[data-m="about"] .a-fb{
  display:block;text-align:center;margin-top:12px;padding:6px;
  font-size:11px;color:var(--ink-soft);letter-spacing:.02em}

/* ==================================================================
   14  紫砂文化 · D 丁蜀体验（v6.90.0）
   ------------------------------------------------------------------
   对标携程 / 美团服务式目的地页：沉浸头图 + 透明导航 + 悬浮搜索
   + 4×2 金刚区 + 陶都一日 4 步轴 + 丁蜀 6 处必到榜 + 底部固定 CTA。
   只命中 body[data-m="zisha"]；新增 DOM 在媒体查询外统一 display:none，
   桌面端零视觉改动。与第 13 节同源，但 8 宫格换成 5 处丁蜀真实 POI
   + 3 个全域出口，榜卡直接重排 #spots 的 6 张真实 .pcard（用其自带
   01~06 编号徽章），「陶都一日」由注入器在运行时读 #route .rstep 填充，
   零编造评分 / 热度 / 藏品年代，DOM 原文完整留给收录。
   ================================================================== */
body[data-m="zisha"]{
  background:#f2f1ed;
  padding-bottom:calc(var(--m-tab-top) + 78px)}

/* 14.1 顶部导航：压在头图上的透明 App 条，滚过 40px 恢复实色。
   zisha.html 的 gnav 同样没有 over-hero 类，手机侧用 CSS 复刻。 */
body[data-m="zisha"] .gnav{
  position:fixed;left:0;right:0;top:0;
  background:transparent;box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none}
body[data-m="zisha"] .gnav:not(.scrolled) .gbrand .gtx,
body[data-m="zisha"] .gnav:not(.scrolled) .gmenu>li>a,
body[data-m="zisha"] .gnav:not(.scrolled) .gsearch,
body[data-m="zisha"] .gnav:not(.scrolled) .gtoggle{
  color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.5)}
body[data-m="zisha"] .gnav:not(.scrolled) .gbrand .gtx small{color:rgba(255,255,255,.82)}
body[data-m="zisha"] .gnav.scrolled{
  background:rgba(247,245,240,.97);box-shadow:0 1px 0 rgba(47,74,62,.12);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}

/* 14.2 沉浸头图 55vh：题名 + 拼音 + 页面原文的紫砂名句 */
body[data-m="zisha"] .phero{
  height:55vh;min-height:400px;max-height:520px;
  align-items:flex-end;padding:0}
body[data-m="zisha"] .phero>img{
  width:100%;height:100%;object-fit:cover;display:block}
body[data-m="zisha"] .phero .veil{
  background:linear-gradient(180deg,rgba(20,32,26,.44) 0%,rgba(20,32,26,.10) 32%,
    rgba(20,32,26,.30) 60%,rgba(20,32,26,.86) 100%)}
body[data-m="zisha"] .phero .in{padding:0 var(--m-gut) 92px}
body[data-m="zisha"] .phero .crumb{display:none}
body[data-m="zisha"] .phero h1{
  font-size:42px;letter-spacing:.14em;line-height:1.15;
  font-family:var(--serif);text-shadow:0 4px 24px rgba(0,0,0,.45)}
body[data-m="zisha"] .phero h1::after{
  content:"Z I S H A  ·  中 国 陶 都";display:block;
  font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.2em;
  color:rgba(255,255,255,.88);margin-top:9px;text-shadow:none}
/* 副标原是英文栏目串，手机侧换成 #intro 已有的原文诗句（零编造） */
body[data-m="zisha"] .phero .sub{font-size:0;margin-top:10px;max-width:310px}
body[data-m="zisha"] .phero .sub::after{
  content:"「人间珠玉安足取，岂如阳羡溪头一丸土。」";
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:12px;letter-spacing:.01em;line-height:1.7;color:#fff;opacity:.94}

/* 14.3 首屏组件：标签带 → 悬浮搜索白卡 → 4×2 金刚区 → 陶都一日 */
body[data-m="zisha"] .d-dest{
  display:block;position:relative;z-index:5;padding:0 var(--m-gut)}
body[data-m="zisha"] .d-tags{
  display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;
  overscroll-behavior-x:contain;
  margin:-52px 0 12px;padding:0 2px;position:relative;z-index:6}
body[data-m="zisha"] .d-tags::-webkit-scrollbar{display:none}
body[data-m="zisha"] .d-tags span{
  flex:none;white-space:nowrap;font-size:10.5px;line-height:1;
  padding:7px 10px;border-radius:12px;color:#fff;
  background:rgba(20,32,26,.46);border:1px solid rgba(255,255,255,.24);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
body[data-m="zisha"] .d-tags span:first-child{
  background:rgba(176,141,87,.94);border-color:transparent;font-weight:600}
body[data-m="zisha"] .d-panel{
  position:relative;z-index:7;background:#fff;border-radius:18px;
  padding:14px 14px 16px;box-shadow:0 16px 34px -24px rgba(24,36,29,.7)}
body[data-m="zisha"] .d-sbox{
  display:flex;align-items:center;gap:9px;height:44px;padding:0 6px 0 12px;
  border-radius:22px;background:#f3f2ee;border:1px solid rgba(47,74,62,.08)}
body[data-m="zisha"] .d-sbox svg{
  width:17px;height:17px;flex:none;color:#8b8b80;
  fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
body[data-m="zisha"] .d-sph{
  flex:1;min-width:0;font-size:12px;color:#8b8b80;letter-spacing:.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-m="zisha"] .d-sbtn{
  flex:none;font-size:12px;font-weight:600;color:#fff;letter-spacing:.04em;
  padding:8px 16px;border-radius:18px;
  background:linear-gradient(160deg,#3d5b4d,#2b4338)}
body[data-m="zisha"] .d-king{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px 4px;margin-top:18px}
body[data-m="zisha"] .d-king a{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  min-height:44px;text-align:center;-webkit-tap-highlight-color:transparent}
body[data-m="zisha"] .d-king i{
  font-style:normal;width:44px;height:44px;border-radius:14px;
  display:grid;place-items:center;color:#fff;font-size:18px;font-weight:600;
  font-family:var(--serif);box-shadow:0 8px 16px -12px rgba(24,36,29,.75)}
body[data-m="zisha"] .d-king a:active i{transform:scale(.94)}
body[data-m="zisha"] .d-king b{font-size:11px;font-weight:600;color:var(--ink);line-height:1.3}

/* 陶都一日 4 步轴：.d-step 由注入器读 #route .rstep 运行时生成 */
body[data-m="zisha"] .d-day{
  display:block;margin-top:20px;background:#fff;border-radius:16px;
  padding:15px 14px 10px;box-shadow:var(--m-shadow)}
body[data-m="zisha"] .d-dh{
  display:flex;align-items:baseline;justify-content:space-between;gap:8px}
body[data-m="zisha"] .d-dh b{
  flex:none;font-family:var(--serif);font-size:19px;
  color:var(--green);font-weight:700;letter-spacing:.04em}
body[data-m="zisha"] .d-dcap{
  flex:1;min-width:0;text-align:right;font-size:9.5px;color:var(--ink-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-m="zisha"] .d-dsteps{
  margin:14px 0 0 6px;padding-left:16px;
  border-left:1px solid rgba(176,141,87,.55)}
body[data-m="zisha"] .d-step{position:relative;padding:0 0 15px}
body[data-m="zisha"] .d-step:last-child{padding-bottom:4px}
body[data-m="zisha"] .d-step::before{
  content:"";position:absolute;left:-21px;top:5px;
  width:9px;height:9px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 0 3px #fff}
body[data-m="zisha"] .d-step b{
  display:block;font-size:12.5px;color:var(--clay);font-weight:600;line-height:1.4}
body[data-m="zisha"] .d-step p{
  margin:4px 0 0;font-size:11px;line-height:1.75;color:var(--ink-soft)}
body[data-m="zisha"] .d-dmore{
  display:block;margin-top:8px;padding-top:10px;
  border-top:1px solid rgba(47,74,62,.08);
  text-align:center;font-size:11px;color:var(--clay)}
body[data-m="zisha"] .d-fb{
  display:block;text-align:center;margin-top:12px;padding:6px;
  font-size:11px;color:var(--ink-soft);letter-spacing:.02em}

/* 14.4 正文七章：灰底白卡；#masters 暗色章节保留原对比，不套白卡 */
body[data-m="zisha"] section.sec:not(#masters),
body[data-m="zisha"] section.sec.alt{
  padding:0 var(--m-gut) 22px;background:none}
body[data-m="zisha"] section.sec:not(#masters)>.inner{
  background:#fff;border-radius:16px;padding:16px 14px 18px;
  box-shadow:var(--m-shadow)}
body[data-m="zisha"] #intro{margin-top:22px}
body[data-m="zisha"] .chips{gap:6px;margin-top:14px}
body[data-m="zisha"] .chips span{font-size:10.5px;padding:5px 9px}
body[data-m="zisha"] .note{font-size:10px;margin-top:18px;padding-top:10px}

/* 14.5 丁蜀 6 处必到：直接重排 #spots 的 6 张真实 .pcard，
   用卡片自带的 .pno（01~06）当编号徽章，不加星级 / 热度 / UGC。 */
body[data-m="zisha"] #spots .bhead{
  justify-content:space-between;align-items:center;margin-bottom:8px}
body[data-m="zisha"] #spots .bhead h2{display:none}
body[data-m="zisha"] #spots .bhead::before{
  content:"丁蜀 6 处必到";font-family:var(--serif);font-size:20px;
  color:var(--green);font-weight:700;letter-spacing:.04em;white-space:nowrap}
body[data-m="zisha"] #spots .bhead::after{
  content:"本站官方推荐";font-size:10px;color:var(--gold);letter-spacing:.08em;
  border:1px solid rgba(176,141,87,.45);border-radius:10px;padding:3px 8px}
body[data-m="zisha"] #spots .bsub{margin:0 0 4px;font-size:11.5px;-webkit-line-clamp:2}
body[data-m="zisha"] #spots .screens{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
body[data-m="zisha"] #spots .pcard{
  position:relative;display:block;background:#f6f5f1;border:0;
  border-radius:13px;overflow:hidden;box-shadow:none}
body[data-m="zisha"] #spots .pcard .pimg{
  display:block;position:relative;overflow:hidden;background:#e8e5dd}
body[data-m="zisha"] #spots .pcard .pimg img{
  width:100%;height:96px;object-fit:cover;display:block}
body[data-m="zisha"] #spots .pcard .pno{
  position:absolute;left:8px;top:8px;z-index:3;
  font-size:10.5px;font-weight:700;letter-spacing:.04em;color:#fff;
  background:rgba(138,90,59,.94);border-radius:8px;padding:4px 7px}
body[data-m="zisha"] #spots .pcard:first-child .pno{background:var(--gold)}
body[data-m="zisha"] #spots .pcard .pto{display:none}
body[data-m="zisha"] #spots .pcard .pbody{display:block;padding:9px 10px 11px}
body[data-m="zisha"] #spots .pcard h3{
  font-size:12.5px;line-height:1.4;letter-spacing:0;color:var(--green);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="zisha"] #spots .pcard p{
  margin:4px 0 0;font-size:10px;line-height:1.6;text-align:left;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body[data-m="zisha"] #spots .pcard .pgo{display:none}
body[data-m="zisha"] #spots .morelink{margin-top:12px;gap:7px}
body[data-m="zisha"] #spots .morelink a{
  font-size:10.5px;padding:6px 9px;border-radius:9px;
  background:#f2f1ed;border:0;color:var(--green)}

/* 14.6 底部固定 CTA：收藏 / 分享 / 规划丁蜀行程 */
body[data-m="zisha"] .dcta{
  display:flex;align-items:center;gap:6px;
  position:fixed;left:10px;right:10px;z-index:185;
  bottom:calc(var(--m-tab-top) + 8px);
  height:50px;padding:0 8px 0 12px;border-radius:16px;
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid rgba(47,74,62,.10);
  box-shadow:0 12px 28px -18px rgba(20,32,26,.6)}
body[data-m="zisha"] .dcta-ic{
  flex:none;border:0;background:none;font:inherit;font-size:11px;line-height:1;
  color:var(--ink-soft);padding:8px 5px;white-space:nowrap;cursor:pointer;
  -webkit-tap-highlight-color:transparent}
body[data-m="zisha"] .dcta-ic.on{color:var(--clay)}
body[data-m="zisha"] .dcta-go{
  flex:1;margin-left:4px;height:38px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:13.5px;font-weight:600;letter-spacing:.04em;color:#fff;
  background:linear-gradient(160deg,#3d5b4d,#2b4338)}
/* 与概况页同理：右侧三枚圆钮上移会压住 8 宫格与榜卡，手机端整体隐藏，
   反馈功能由 D 块底部的 service.html 文字入口承接。 */
body[data-m="zisha"] .fab{display:none}
body[data-m="zisha"] .yxm-priv,
body[data-m="zisha"] .yxm-join{bottom:calc(var(--m-tab-top) + 68px)}
}
