/* ============================================================
   荒野熊移动站 · 内页与列表组件（手写层）
   依赖 app.css 的设计变量（--wb-paper/--wb-green/--wb-gold…）
   与 routes.css / courses.css / kb-topic.css / about.css 不冲突：
   这里只补「小程序里由 wxml 结构 + wxss 完成、但 web 需要新结构」的部分
   ============================================================ */

/* ---------- 顶部导航（内页） ---------- */
.topbar { position: sticky; top: 0; z-index: 80; }
.topbar-sub { font-size: .2rem; color: rgba(255, 255, 255, .6); letter-spacing: .02rem; }

/* ---------- 页头（沿用小程序 hero 结构，补 web 断行） ---------- */
.page-hero { padding: .48rem .36rem .34rem; background: var(--wb-green); color: #fff; }
.page-hero .hero-eyebrow { color: rgba(255, 255, 255, .55); }
.page-hero .hero-lead { color: rgba(255, 255, 255, .78); }
/* 线路页页头：城市列表一行放得下 */
.routes-hero .hero-title-lg { font-size: .56rem; letter-spacing: .02rem; }

/* ---------- 文章页 ---------- */
.art-wrap { padding: 0 .34rem; }
.art-head { padding: .4rem 0 .3rem; border-bottom: 1px solid var(--wb-line); margin-bottom: .34rem; }
.art-cat { display: inline-block; font-size: .2rem; letter-spacing: .06rem; color: #fff; background: var(--wb-green); border-radius: .06rem; padding: .06rem .16rem; }
.art-title { font-size: .46rem; line-height: 1.45; color: var(--wb-green); margin: .2rem 0 .16rem; letter-spacing: .01rem; }
.art-meta { font-size: .22rem; color: var(--wb-muted); letter-spacing: .02rem; }
.art-meta b { color: var(--wb-green); }

/* 线路速览条 */
.art-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: .1rem; margin: .3rem 0 .1rem; }
.art-stats .as-item { background: rgba(20, 53, 43, .05); border-radius: .14rem; padding: .2rem .06rem .16rem; text-align: center; }
.art-stats .as-v { font-size: .38rem; font-weight: 800; color: var(--wb-green); line-height: 1.1; }
.art-stats .as-v i { font-style: normal; font-size: .2rem; font-weight: 500; margin-left: .02rem; }
.art-stats .as-k { font-size: .2rem; color: var(--wb-muted); margin-top: .08rem; letter-spacing: .02rem; }

/* 家长常问 */
.art-faq { margin: .5rem 0 0; }
.art-faq > .af-title { font-size: .34rem; font-weight: 700; color: var(--wb-green); margin-bottom: .18rem; letter-spacing: .02rem; }
.art-faq details { border-top: 1px solid var(--wb-line-soft); padding: .22rem 0; }
.art-faq details:last-of-type { border-bottom: 1px solid var(--wb-line-soft); }
.art-faq summary { list-style: none; font-size: .28rem; font-weight: 600; color: var(--wb-ink); line-height: 1.6; display: flex; gap: .16rem; }
.art-faq summary::-webkit-details-marker { display: none; }
.art-faq summary::before { content: 'Q'; flex: none; color: var(--wb-gold); font-weight: 800; }
.art-faq .af-a { font-size: .26rem; line-height: 1.9; color: #47504a; margin-top: .14rem; padding-left: .3rem; }

/* 相关线路 */
.art-rel { margin: .5rem 0 .1rem; }
.art-rel > .ar-title { font-size: .34rem; font-weight: 700; color: var(--wb-green); margin-bottom: .16rem; }
.art-rel a { display: flex; align-items: center; gap: .16rem; padding: .24rem .26rem; background: var(--wb-card); border: 1px solid var(--wb-line); border-radius: .16rem; margin-bottom: .14rem; }
.art-rel a .ar-t { flex: 1; font-size: .27rem; color: var(--wb-ink); line-height: 1.5; }
.art-rel a .ar-d { display: block; font-size: .21rem; color: var(--wb-muted); margin-top: .06rem; }
.art-rel a .ar-chev { color: var(--wb-muted); font-size: .32rem; }

/* 文章页底部行动条 */
.art-cta { margin: .44rem 0 0; padding: .34rem .3rem; border-radius: .2rem; background: linear-gradient(150deg, #14352b, #245546); color: #fff; }
.art-cta .ac-t { font-size: .34rem; font-weight: 700; letter-spacing: .02rem; }
.art-cta .ac-d { font-size: .24rem; color: rgba(255, 255, 255, .74); margin: .1rem 0 .24rem; line-height: 1.7; }
.art-cta .ac-btns { display: flex; gap: .14rem; }
.art-cta .ac-btn { flex: 1; text-align: center; font-size: .26rem; font-weight: 600; padding: .2rem 0; border-radius: .12rem; background: var(--wb-gold); color: #23301f; }
.art-cta .ac-btn.ghost { background: rgba(255, 255, 255, .14); color: #fff; }

/* 面包屑返回（文章页顶栏下方） */
.crumb { display: flex; align-items: center; gap: .1rem; padding: .22rem .34rem 0; font-size: .22rem; color: var(--wb-muted); }
.crumb a { color: var(--wb-muted); }

/* ---------- 知识库首页 ---------- */
.kb-topic-block { margin-top: .42rem; }
.kb-topic-block:first-of-type { margin-top: .3rem; }
.kb-topic-head { display: flex; align-items: center; gap: .18rem; margin-bottom: .18rem; }
.kb-topic-cover { width: .84rem; height: .84rem; border-radius: .14rem; object-fit: cover; flex: none; }
.kb-topic-name { font-size: .34rem; font-weight: 700; color: var(--wb-green); letter-spacing: .02rem; }
.kb-topic-en { font-size: .19rem; letter-spacing: .1rem; color: var(--wb-muted); text-transform: uppercase; margin-top: .04rem; }
.kb-topic-count { margin-left: auto; font-size: .2rem; color: var(--wb-muted); }
.kb-topic-desc { font-size: .24rem; line-height: 1.75; color: #4a544d; margin: 0 0 .18rem; }

/* ---------- 折叠卡（<details> 替代小程序 bindtap 展开） ---------- */
details.card > summary { list-style: none; cursor: pointer; }
details.card > summary::-webkit-details-marker { display: none; }
details.card[open] > summary .bh-arrow { transform: rotate(180deg); }
details.card:not([open]) > .fold-toggle { display: none; }

/* ---------- 课程页活动卡间距 ---------- */
.act-list .photo-card { margin-bottom: .2rem; }
.act-list .photo-card:last-child { margin-bottom: 0; }

.cr-sec-lead { font-size: .24rem; line-height: 1.8; color: var(--wb-muted); margin: .04rem 0 .22rem; }
.lesson-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .14rem; }
.lesson-cell { display: block; background: var(--wb-card); border: 1px solid var(--wb-line); border-radius: .16rem; padding: .22rem .22rem .2rem; }
.lesson-cell .lc-no { font-size: .2rem; letter-spacing: .06rem; color: var(--wb-gold); font-weight: 700; }
.lesson-cell .lc-t { font-size: .26rem; line-height: 1.5; color: var(--wb-ink); margin-top: .08rem; }
.lesson-unit { display: flex; align-items: center; gap: .12rem; margin: .34rem 0 .16rem; }
.lesson-unit .lu-n { font-size: .22rem; letter-spacing: .06rem; color: var(--wb-muted); }
.lesson-unit .lu-t { font-size: .28rem; font-weight: 700; color: var(--wb-green); }
.lesson-unit::after { content: ''; flex: 1; height: 1px; background: var(--wb-line); }

/* ---------- 页脚 · 访问电脑版 ---------- */
.pc-link { display: inline-block; margin-top: .16rem; padding: .1rem .3rem; border: 1px solid rgba(255,255,255,.28); border-radius: .32rem; color: rgba(255,255,255,.72); font-size: .2rem; letter-spacing: .02rem; }

/* ---------- 荒野之书（对小程序 pages/book）：宫格 + 双板块 ---------- */
[hidden] { display: none !important; }

/* wxml 的 image mode=aspectFill / aspectFit 在 web 要显式写 object-fit */
.kb-img, .les-img { object-fit: cover; }
.bh-bear { object-fit: contain; }
.kb-topic-cover { object-fit: cover; }

/* 板块切换：小程序是 wx:if，web 用 hidden 切换 */
.book-panel { margin-top: .26rem; }
.book-panel > .section-head { margin-bottom: .06rem; }
.book-tabs { margin: .2rem .32rem 0; }
.book-tabs .bt { cursor: pointer; transition: background .18s ease, border-color .18s ease; }

/* 篇目 chips 是页内跳转，滚动时留出顶栏高度 */
[id^="lp"] { scroll-margin-top: .9rem; }
.cat-h { scroll-margin-top: .9rem; }

/* 宫格里的卡片是 <a>，压掉浏览器默认下划线/蓝色 */
.kb-card, .les-card { color: inherit; }
.kb-card:active, .les-card:active { opacity: .92; }
.kb-more, .book-tail .entry { margin-top: .3rem; }
.book-tail { margin-top: .1rem; }

/* 专题目录页（t-*.html） */
.tc-meta { font-size: .22rem; letter-spacing: .04rem; color: var(--wb-muted); padding: .28rem 0 .1rem; }
.tc-count { font-size: .2rem; color: var(--wb-muted); }

/* ---------- 品牌故事（关于页 #story，对齐官网 OUR STORY + 熊部落起源） ---------- */
#story { scroll-margin-top: .2rem; }
.story-logo { display: block; width: 1.64rem; height: auto; margin: .02rem 0 .22rem; }
.story-h3 { font-size: .33rem; font-weight: 700; color: var(--wb-green); letter-spacing: .02rem; margin-bottom: .06rem; }
.story-p { font-size: .25rem; line-height: 1.95; color: #46504a; margin-top: .18rem; text-align: justify; }
.story-p .hi { color: var(--wb-green); font-weight: 600; }
.story-p sup { font-size: .17rem; vertical-align: super; }
.story-quote {
  margin: .3rem 0 .1rem; padding: .24rem .28rem;
  background: rgba(20, 53, 43, .05); border-left: .06rem solid var(--wb-gold);
  border-radius: .1rem;
  font-family: "Songti SC", "STSong", "Noto Serif SC", serif;
  font-size: .32rem; font-weight: 700; letter-spacing: .1rem; color: var(--wb-green);
}
.story-video {
  margin-top: .3rem; border-radius: .18rem; overflow: hidden;
  background: #10221b; box-shadow: 0 .12rem .32rem rgba(20, 53, 43, .18);
}
.story-video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #10221b; }
.story-video .sv-cap { padding: .16rem .22rem; font-size: .21rem; letter-spacing: .04rem; color: rgba(255, 255, 255, .72); background: #10221b; }
.story-sub { margin: .46rem 0 0; }
.story-sub .ss-k { font-size: .19rem; letter-spacing: .1rem; color: var(--wb-muted); text-transform: uppercase; }
.story-sub .ss-t { font-size: .32rem; font-weight: 700; color: var(--wb-green); margin-top: .08rem; letter-spacing: .01rem; }

/* ---------- 关于页：为什么是三问（对齐官网 why-card） ---------- */
.why-card {
  position: relative; overflow: hidden;
  margin-top: .2rem; padding: .32rem .3rem .28rem;
  background: var(--wb-card); border: 1px solid var(--wb-line); border-radius: .18rem;
  box-shadow: 0 .1rem .3rem rgba(20, 53, 43, .05);
}
.why-card .wc-no {
  position: absolute; right: .16rem; top: -.16rem;
  font-family: Georgia, "Times New Roman", serif; font-size: .96rem; font-weight: 800;
  line-height: 1.1; letter-spacing: -.04rem; color: rgba(20, 53, 43, .07);
}
.why-card .wc-t { position: relative; font-size: .31rem; font-weight: 700; color: var(--wb-green); letter-spacing: .02rem; padding-bottom: .16rem; }
.why-card .wc-t::after { content: ''; position: absolute; left: 0; bottom: 0; width: .36rem; height: .04rem; border-radius: 2px; background: var(--wb-gold); }
.why-card .wc-p { font-size: .24rem; line-height: 1.95; color: #46504a; margin-top: .16rem; text-align: justify; }
.why-card .wc-p .hi { color: var(--wb-green); font-weight: 600; }
.why-card .wc-quote {
  margin-top: .18rem; padding: .18rem .2rem; border-radius: .1rem;
  background: rgba(20, 53, 43, .05); border-left: .05rem solid var(--wb-gold);
  font-family: "Songti SC", "STSong", serif; font-size: .25rem; line-height: 1.75; color: var(--wb-green);
}
.why-card .wc-quote .src { display: block; margin-top: .06rem; font-family: inherit; font-size: .2rem; color: var(--wb-muted); }

/* ---------- 关于页：愿景 · 使命 · 价值 ---------- */
.vmv-grid { margin-top: .16rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .14rem; }
.vmv-item { display: block; padding: .22rem .2rem; background: rgba(20, 53, 43, .05); border-radius: .14rem; }
.vmv-item .vm-k { display: block; font-size: .27rem; font-weight: 700; letter-spacing: .06rem; color: var(--wb-green); }
.vmv-item .vm-v { display: block; margin-top: .1rem; font-size: .22rem; line-height: 1.7; color: #46504a; }

/* ---------- 成长体系页 growth.html（对小程序 pages/growth-intro） ---------- */
.gi-hero {
  margin: 0 -0.01rem; padding: .5rem .36rem .44rem;
  background: linear-gradient(160deg, var(--wb-green-deep) 0%, var(--wb-green) 62%, var(--wb-green-2) 100%);
  color: #fff;
}
.gi-kick { font-size: .21rem; letter-spacing: .04rem; color: var(--wb-gold-2); margin-bottom: .16rem; }
.gi-title { font-size: .46rem; font-weight: 800; line-height: 1.3; letter-spacing: .01rem; }
.gi-title .gi-em { color: var(--wb-gold-2); }
.gi-sub { margin-top: .18rem; font-size: .24rem; line-height: 1.75; color: rgba(255, 255, 255, .82); }
/* 用户拍板：解锁条黄色高亮（对齐小程序 opened 态金色调） */
.gi-ribbon {
  display: flex; align-items: center; gap: .16rem;
  margin-top: .3rem; padding: .2rem .22rem; border-radius: .16rem;
  border: 1px solid rgba(226, 199, 101, .62);
  background: rgba(226, 199, 101, .16);
  box-shadow: 0 .06rem .2rem rgba(226, 199, 101, .12);
}
.gi-ribbon-ico { flex: none; width: .44rem; height: .44rem; border-radius: 50%; text-align: center; line-height: .44rem; font-size: .23rem; background: var(--wb-gold-2); color: var(--wb-green); font-weight: 800; }
.gi-ribbon-body { flex: 1; min-width: 0; }
.gi-ribbon-t { font-size: .25rem; font-weight: 800; color: var(--wb-gold-2); line-height: 1.45; }
.gi-ribbon-d { margin-top: .04rem; font-size: .21rem; color: rgba(243, 230, 178, .92); line-height: 1.55; }

.gi-wrap { padding: .28rem .28rem 0; }
.gi-sec { margin-top: .26rem; padding: .32rem .26rem; background: var(--wb-card); border: 1px solid var(--wb-hair-soft); border-radius: .22rem; }
.gi-sec:first-child { margin-top: .06rem; }
.gi-sec-title { position: relative; font-size: .31rem; font-weight: 800; color: var(--wb-green); padding-left: .18rem; line-height: 1.25; margin-bottom: .26rem; }
.gi-sec-title::before { content: ''; position: absolute; left: 0; top: .04rem; bottom: .02rem; width: .08rem; border-radius: 2px; background: var(--wb-green-3); }
.gi-p { font-size: .24rem; color: var(--wb-ink-2); line-height: 1.85; }
.gi-p .gi-strong, .gi-strong { color: var(--wb-green); font-weight: 700; }

.gi-ul-cap { margin-bottom: .18rem; font-size: .21rem; color: var(--wb-muted); line-height: 1.6; }
.gi-ul-item { display: flex; align-items: center; gap: .16rem; padding: .2rem 0; border-bottom: 1px solid var(--wb-hair-soft); }
.gi-ul-item:last-of-type { border-bottom: none; }
.gi-ul-ico { flex: none; width: .5rem; height: .5rem; border-radius: 50%; text-align: center; line-height: .5rem; font-size: .22rem; background: var(--wb-green-wash); color: var(--wb-faint); }
.gi-ul-body { flex: 1; min-width: 0; }
.gi-ul-t { font-size: .26rem; font-weight: 700; color: var(--wb-muted); line-height: 1.45; }
.gi-ul-d { margin-top: .04rem; font-size: .21rem; color: var(--wb-ink-2); line-height: 1.55; }
.gi-ul-tag { flex: none; padding: .06rem .16rem; border-radius: 99rem; font-size: .2rem; color: var(--wb-muted); background: var(--wb-green-wash); }

.gi-step { display: flex; align-items: flex-start; padding: .18rem 0; border-bottom: 1px solid var(--wb-hair-soft); }
.gi-step:last-of-type { border-bottom: none; }
.gi-step-no { flex: none; width: .62rem; font-size: .28rem; font-weight: 800; color: var(--wb-green-4); line-height: 1.45; }
.gi-step-t { font-size: .27rem; font-weight: 700; color: var(--wb-ink); }
.gi-step-d { margin-top: .06rem; font-size: .23rem; color: var(--wb-ink-2); line-height: 1.75; }
.gi-note { margin-top: .2rem; padding: .18rem .22rem; background: var(--wb-gold-soft); border-radius: .12rem; font-size: .22rem; color: var(--wb-gold-ink); line-height: 1.65; }

.gi-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .14rem; }
.gi-metric { box-sizing: border-box; padding: .22rem .2rem .22rem; background: var(--wb-green-wash); border-radius: .16rem; }
.gi-metric-ico { font-size: .38rem; line-height: 1; }
.gi-metric-t { margin-top: .12rem; font-size: .26rem; font-weight: 800; color: var(--wb-green); }
.gi-metric-u { font-size: .2rem; font-weight: 600; color: var(--wb-muted); margin-left: .04rem; }
.gi-metric-d { margin-top: .08rem; font-size: .21rem; color: var(--wb-ink-2); line-height: 1.6; }

.gi-chart-card { padding: .26rem; background: var(--wb-green-wash); border-radius: .16rem; margin-bottom: .22rem; }
.gi-chip-row { display: flex; gap: .12rem; margin-bottom: .24rem; }
.gi-chip { padding: .08rem .24rem; border-radius: 99rem; font-size: .22rem; color: var(--wb-ink-2); background: var(--wb-card); border: 1px solid var(--wb-hair-soft); }
.gi-chip.on { background: var(--wb-green); border-color: var(--wb-green); color: #fff; font-weight: 700; }
.gi-chart-demo { display: flex; align-items: flex-end; gap: .18rem; height: 2.1rem; padding: 0 .1rem; border-bottom: 2px solid var(--wb-hair); }
.gi-bar { flex: 1; background: var(--wb-green-4); border-radius: .08rem .08rem 0 0; opacity: .55; }
.gi-bar-hl { background: var(--wb-green-3); opacity: 1; }
.gi-chart-cap { margin-top: .14rem; font-size: .2rem; color: var(--wb-muted); text-align: center; line-height: 1.6; }

.gi-analogy { display: flex; align-items: baseline; padding: .18rem 0; border-bottom: 1px solid var(--wb-hair-soft); }
.gi-analogy-num { flex: none; min-width: 1.4rem; font-size: .3rem; font-weight: 800; color: var(--wb-green-3); }
.gi-analogy-t { font-size: .24rem; color: var(--wb-ink-2); line-height: 1.6; }
.gi-formula { margin-top: .26rem; padding: .26rem .24rem; background: var(--wb-green); border-radius: .16rem; color: #fff; }
.gi-formula-t { font-size: .23rem; color: var(--wb-gold-2); letter-spacing: .02rem; }
.gi-formula-f { margin-top: .1rem; font-size: .26rem; font-weight: 700; line-height: 1.6; }
.gi-levels { margin-top: .22rem; display: flex; flex-direction: column; gap: .1rem; }
.gi-level { display: flex; align-items: center; font-size: .23rem; }
.gi-level-no { flex: none; width: .86rem; font-weight: 800; color: var(--wb-gold-2); }
.gi-level-name { flex: 1; font-weight: 600; }
.gi-level-min { color: rgba(255, 255, 255, .62); font-size: .21rem; }
.gi-formula-cap { margin-top: .2rem; font-size: .2rem; line-height: 1.65; color: rgba(255, 255, 255, .72); }

.gi-badge-row { display: flex; align-items: flex-start; padding: .16rem 0; border-bottom: 1px solid var(--wb-hair-soft); }
.gi-badge-row:last-of-type { border-bottom: none; }
.gi-badge-series { flex: none; width: 1.4rem; font-size: .23rem; font-weight: 700; color: var(--wb-green); line-height: .42rem; }
.gi-badge-items { flex: 1; display: flex; flex-wrap: wrap; gap: .1rem; }
.gi-badge { padding: .08rem .18rem; background: var(--wb-gold-soft); border-radius: 99rem; font-size: .21rem; color: var(--wb-gold-ink); line-height: 1.5; }
.gi-sec .gi-p { margin-top: .2rem; }

.gi-inv-item { display: flex; align-items: flex-start; padding: .16rem 0; font-size: .24rem; color: var(--wb-ink-2); line-height: 1.75; }
.gi-inv-ico { flex: none; margin-right: .14rem; font-size: .28rem; line-height: 1.5; }

.gi-cta-row { display: flex; gap: .18rem; margin-top: .4rem; }
.gi-btn { flex: 1; display: block; padding: .24rem 0; border-radius: 99rem; text-align: center; font-size: .26rem; font-weight: 700; }
.gi-btn-main { background: var(--wb-green); color: #fff; }
.gi-btn-ghost { background: transparent; color: var(--wb-green); border: 2px solid var(--wb-green); }
.gi-foot { margin-top: .36rem; text-align: center; font-size: .2rem; color: var(--wb-faint); letter-spacing: .02rem; }

/* ===== 师资力量 · 教练真人照 / 履历 / 资质证书（对齐桌面版 teachers.html） ===== */

a.coach-row { display: flex; color: inherit; }
.coach-avatar {
  width: .92rem;
  height: .92rem;
  border-radius: 50%;
  object-fit: cover;
  background: var(--wb-green-mist);
}
.coach-line { margin-top: .01rem; }
.coach-desc {
  margin-top: .1rem;
  font-size: .22rem;
  line-height: 1.65;
  color: var(--wb-muted);
}
.coach-tags { margin-top: .1rem; }
/* 「加入我们」是整行可点，给一点提示感 */
a.coach-row:active { background: var(--wb-green-wash); }

/* 教练资质 / 公司资质：两列证书卡，证书图完整显示不裁剪 */
.cert-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .18rem;
  margin-top: .08rem;
}
.cert-card {
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .16rem;
  overflow: hidden;
}
.cert-img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  box-sizing: border-box;
  padding: .08rem;
  background: var(--wb-paper-2);
  border-bottom: 1px solid var(--wb-hair);
}
.cert-body { padding: .16rem .16rem .18rem; }
.cert-b {
  font-size: .24rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--wb-green);
}
.cert-s {
  margin-top: .06rem;
  font-size: .19rem;
  line-height: 1.5;
  color: var(--wb-faint);
}

/* ===== about 页宫格化：教练 2 列 / 资质 4 列 / 六重安全 2 列（2026-10-21） ===== */

/* 教练：一行 2 张竖卡 */
.coach-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .18rem;
  margin-top: .08rem;
}
.coach-grid .coach-card {
  display: block;
  color: inherit;
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .16rem;
  padding: .26rem .18rem .22rem;
  text-align: center;
}
.coach-grid .coach-avatar {
  width: 1.16rem;
  height: 1.16rem;
  margin: 0 auto .14rem;
}
.coach-grid .coach-line { display: block; }
.coach-grid .coach-name { font-size: .27rem; }
.coach-grid .coach-role { display: block; margin: .04rem 0 0; font-size: .19rem; }
.coach-grid .coach-desc { margin-top: .1rem; font-size: .19rem; line-height: 1.6; }
.coach-grid .coach-tags { justify-content: center; margin-top: .12rem; }
a.coach-card:active { background: var(--wb-green-wash); }

/* 教练资质 / 公司资质：一行 4 张 */
#cert-coach .cert-grid,
#cert-company .cert-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .12rem;
}
#cert-coach .cert-body,
#cert-company .cert-body {
  padding: .1rem .08rem .12rem;
  text-align: center;
}
#cert-coach .cert-b,
#cert-company .cert-b { font-size: .18rem; line-height: 1.35; }
#cert-coach .cert-s,
#cert-company .cert-s { margin-top: .04rem; font-size: .145rem; line-height: 1.4; }

/* 六重安全保障：2 列宫格卡，自动编号 01–06 */
.safety-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .16rem;
  counter-reset: sf;
  margin-top: .08rem;
}
.safety-grid .safety-item {
  counter-increment: sf;
  border: 1px solid var(--wb-hair);
  border-left: 1px solid var(--wb-hair);
  border-radius: .16rem;
  padding: .22rem .2rem .2rem;
  background: #fff;
}
.safety-grid .safety-item:first-child { border-left: 1px solid var(--wb-hair); }
.safety-grid .sf-name::before {
  content: "0" counter(sf);
  display: block;
  font-size: .3rem;
  font-weight: 800;
  color: var(--wb-gold);
  line-height: 1;
  margin-bottom: .1rem;
  letter-spacing: .02rem;
}
.safety-grid .sf-name { font-size: .25rem; }
.safety-grid .sf-desc { font-size: .2rem; line-height: 1.6; }

/* ===== t-talk 宫格卡：封面图 + 分类角标 + 两行标题（2026-10-21） ===== */
.tk-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .18rem;
}
.tk-card {
  display: block;
  color: inherit;
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .16rem;
  overflow: hidden;
}
.tk-card:active { background: var(--wb-green-wash); }
.tk-imgwrap {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--wb-paper-2);
}
.tk-card.k43 .tk-imgwrap { aspect-ratio: 4 / 3; }
.tk-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tk-tag {
  position: absolute;
  left: .12rem;
  top: .12rem;
  background: rgba(20, 53, 43, .82);
  color: #fff;
  font-size: .16rem;
  line-height: 1;
  padding: .07rem .14rem;
  border-radius: .2rem;
  letter-spacing: .02rem;
}
.tk-pad { padding: .14rem .16rem .18rem; }
.tk-name {
  font-size: .21rem;
  font-weight: 700;
  line-height: 1.45;
  color: var(--wb-green);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ===== m/custom.html 活动定制页（对齐桌面版 custom.html，2026-10-21） ===== */
.cu-aud-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .16rem;
  margin-top: .08rem;
}
.cu-aud {
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .16rem;
  padding: .2rem .18rem;
}
.cu-aud-t { font-size: .24rem; font-weight: 700; color: var(--wb-green); }
.cu-aud-en { font-size: .15rem; color: var(--wb-faint); letter-spacing: .03rem; margin-top: .02rem; text-transform: uppercase; }
.cu-aud-tags { margin-top: .12rem; display: flex; flex-direction: column; gap: .08rem; }
.cu-aud-tag { font-size: .19rem; color: var(--wb-muted); line-height: 1.4; }
.cu-aud-tag::before { content: "· "; color: var(--wb-gold); font-weight: 800; }

.cu-step {
  display: flex;
  gap: .2rem;
  padding: .22rem 0;
  border-top: 1px solid var(--wb-hair);
}
.cu-step:first-of-type { border-top: 0; }
.cu-step-no {
  font-size: .4rem;
  font-weight: 800;
  color: var(--wb-gold);
  line-height: 1;
  flex-shrink: 0;
}
.cu-step-t { font-size: .24rem; font-weight: 700; color: var(--wb-green); }
.cu-step-d { margin-top: .06rem; font-size: .2rem; line-height: 1.65; color: var(--wb-muted); }

.cu-prog {
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .16rem;
  padding: .22rem .2rem;
  margin-top: .16rem;
}
.cu-prog-main { background: var(--wb-green-wash); border-color: var(--wb-green-mist); }
.cu-prog-t { font-size: .23rem; font-weight: 700; color: var(--wb-green); line-height: 1.4; }
.cu-prog-meta { display: flex; flex-wrap: wrap; gap: .1rem; margin-top: .08rem; }
.cu-prog-meta text {
  font-size: .16rem;
  color: var(--wb-green-2);
  background: var(--wb-green-mist);
  border-radius: .06rem;
  padding: .04rem .12rem;
}
.cu-prog-meta .cu-prog-soon { color: #fff; background: var(--wb-gold); }
.cu-prog-d { margin-top: .12rem; font-size: .19rem; line-height: 1.65; color: var(--wb-muted); }
.cu-prog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .16rem;
}
.cu-prog-grid .cu-prog { margin-top: 0; }
.cu-plan { margin-top: .14rem; border-top: 1px dashed var(--wb-hair); padding-top: .06rem; }
.cu-plan-row { display: flex; align-items: baseline; gap: .14rem; padding: .08rem 0; }
.cu-plan-when {
  flex-shrink: 0;
  font-size: .16rem;
  font-weight: 700;
  color: #fff;
  background: var(--wb-green);
  border-radius: .06rem;
  padding: .04rem .1rem;
}
.cu-plan-t { font-size: .2rem; font-weight: 700; color: var(--wb-green); }
.cu-plan-d { font-size: .19rem; color: var(--wb-muted); }

.cu-adv-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .16rem;
  margin-top: .08rem;
}
.cu-adv {
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .16rem;
  padding: .2rem .18rem;
}
.cu-adv-t { font-size: .22rem; font-weight: 700; color: var(--wb-green); }
.cu-adv-t::before { content: "◆ "; color: var(--wb-gold); font-size: .16rem; }
.cu-adv-d { margin-top: .08rem; font-size: .18rem; line-height: 1.6; color: var(--wb-muted); }

.cu-faq {
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .16rem;
  padding: .2rem .2rem;
  margin-top: .14rem;
}
.cu-faq-q { font-size: .21rem; font-weight: 700; color: var(--wb-green); line-height: 1.5; }
.cu-faq-a { margin-top: .08rem; font-size: .19rem; line-height: 1.65; color: var(--wb-muted); }

.cu-cta {
  background: var(--wb-green);
  border-radius: .2rem;
  padding: .36rem .3rem;
  text-align: center;
  color: #fff;
}
.cu-cta-t { font-size: .3rem; font-weight: 800; margin-top: .08rem; }
.cu-cta-d { margin-top: .1rem; font-size: .2rem; opacity: .85; }
.cu-cta-btn {
  display: block;
  margin: .24rem auto 0;
  background: #fff;
  color: var(--wb-green);
  font-size: .24rem;
  font-weight: 700;
  padding: .2rem .36rem;
  border-radius: .5rem;
}

/* t-talk 三板块：访谈视频占位卡 */
.tk-soon { pointer-events: none; }
.tk-soon .tk-imgwrap { display: flex; align-items: center; justify-content: center; background: var(--wb-paper-2); }
.tk-soon-ico {
  width: .6rem; height: .6rem;
  border-radius: 50%;
  background: var(--wb-green);
  color: #fff;
  font-size: .22rem;
  display: flex; align-items: center; justify-content: center;
  padding-left: .04rem;
}
.tk-soon-d { margin-top: .06rem; font-size: .16rem; line-height: 1.5; color: var(--wb-faint); }

/* ===== t-talk 排版优化：锚点胶囊 / 篇数徽章 / 卡片质感（2026-10-21） ===== */
.chip-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .14rem;
  margin-top: .26rem;
}
.chip-nav a {
  font-size: .21rem;
  font-weight: 600;
  color: var(--wb-green);
  background: #fff;
  border: 1px solid var(--wb-green-mist);
  border-radius: .4rem;
  padding: .1rem .26rem;
}
.chip-nav a:active { background: var(--wb-green-wash); }

.tk-sec { padding-top: .1rem; }
.tk-sec .tk-count {
  flex-shrink: 0;
  font-size: .17rem;
  font-weight: 700;
  color: var(--wb-gold);
  background: #fff;
  border: 1px solid var(--wb-gold);
  border-radius: .3rem;
  padding: .05rem .16rem;
  align-self: flex-start;
}
.tk-sec .section-title { font-size: .34rem; }

.tk-grid { gap: .2rem; }
.tk-card {
  border: 0;
  border-radius: .2rem;
  box-shadow: 0 2px 12px rgba(20, 53, 43, .08);
}
.tk-card:active { background: var(--wb-green-wash); box-shadow: 0 1px 5px rgba(20, 53, 43, .12); }
.tk-imgwrap { border-radius: .2rem .2rem 0 0; }
.tk-tag {
  backdrop-filter: blur(4px);
  background: rgba(20, 53, 43, .68);
  font-weight: 600;
}
.tk-pad { padding: .16rem .18rem .2rem; }
.tk-name { font-size: .215rem; line-height: 1.5; }

/* ===== m/brand.html 品牌故事页（对齐小程序 pages/brand，2026-10-21） ===== */
.brand-sec .kicker { color: var(--wb-gold); }
.ab-p { margin-top: .18rem; font-size: .21rem; line-height: 1.8; color: var(--wb-ink, #33413c); text-align: justify; }
.ab-fire { color: var(--wb-green); font-weight: 700; }
.ab-motto {
  margin: .3rem 0;
  text-align: center;
  font-size: .3rem;
  font-weight: 700;
  color: var(--wb-green);
  letter-spacing: .06rem;
}
.brand-video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: .16rem;
  background: #000;
}
.brand-sec .ab-note { margin-top: .12rem; }

.ab-quote {
  margin-top: .24rem;
  font-size: .26rem;
  font-weight: 700;
  color: var(--wb-green);
  text-align: center;
  letter-spacing: .04rem;
}
.ab-quote-src { margin-top: .08rem; text-align: center; font-size: .17rem; color: var(--wb-faint); }

.why-card {
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .2rem;
  padding: .26rem .24rem;
  margin-top: .18rem;
}
.why-no { font-size: .4rem; font-weight: 800; color: var(--wb-gold); line-height: 1; }
.why-t { margin-top: .1rem; font-size: .26rem; font-weight: 700; color: var(--wb-green); }
.why-card .ab-p { margin-top: .14rem; }

.vmv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .14rem; margin-top: .16rem; }
.vmv-card {
  background: var(--wb-green);
  color: #fff;
  border-radius: .16rem;
  padding: .2rem .14rem;
  text-align: center;
}
.vmv-t { font-size: .22rem; font-weight: 800; }
.vmv-d { margin-top: .1rem; font-size: .16rem; line-height: 1.55; opacity: .9; }

.chapter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .1rem;
  margin-top: .16rem;
}
.chapter-cell {
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .14rem;
  padding: .14rem .04rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: .04rem;
}
.chapter-cell.hl { border-color: var(--wb-gold); background: #fdf8ec; }
.ch-no { font-size: .15rem; color: var(--wb-gold); font-weight: 700; flex-shrink: 0; }
.ch-name { font-size: .17rem; font-weight: 700; color: var(--wb-green); line-height: 1.4; white-space: nowrap; }
.chapter-cell.hl .ch-name { color: var(--wb-gold); }

.next-season {
  margin-top: .18rem;
  background: var(--wb-green-wash);
  border: 1px dashed var(--wb-green-mist);
  border-radius: .16rem;
  padding: .2rem .22rem;
}
.ns-head { font-size: .21rem; font-weight: 700; color: var(--wb-green); }
.ns-head text { font-size: .17rem; color: var(--wb-gold); margin-left: .1rem; }
.ns-row { display: flex; gap: .1rem; margin-top: .12rem; }
.ns-item {
  flex: 1;
  text-align: center;
  font-size: .18rem;
  color: var(--wb-green-2);
  background: #fff;
  border-radius: .1rem;
  padding: .1rem 0;
}

.pt-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .14rem;
  margin-top: .16rem;
}
.pt-cell {
  background: #fff;
  border: 1px solid var(--wb-hair);
  border-radius: .14rem;
  padding: .16rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .1rem;
}
.pt-cell img { max-width: 82%; height: .7rem; object-fit: contain; }
.pt-cell text { font-size: .17rem; color: var(--wb-muted); text-align: center; line-height: 1.4; }
