/* ============================================================================
   Taoify Theme Kit —— 模板库共用组件层
   ----------------------------------------------------------------------------
   一套模板一个 <style>（只管自己的配色和版式），其余全部来自这里。
   这样 117 个模板不必各写一遍页头、页脚、底部导航、商品卡，改一处全站生效。

   用法（模板页里）：
     <link rel="stylesheet" href="/Asset/theme-kit/kit.css">
     <style>body{--tk-accent:#B4633F; ...}</style>
     ... {{>kit_header}} ... {{>kit_footer}} {{>kit_tabbar}} {{>kit_js}}

   约定：
   - 变量全部带兜底值，模板只覆盖想改的那几个；
   - 唯一断点 992px，再往下一档 600px；不做 768 这类中间档，避免三套主题各写各的；
   - 可点区域统一 44px（--tk-tap），价格用等宽数字，focus 有可见描边；
   - 媒体查询一律写在文件末尾，避免同权重被后面的基础规则盖掉（踩过）。
   ============================================================================ */

/* ---------- 1. 令牌 ---------- */
:root {
  --tk-max: 1240px;
  --tk-gutter: 24px;
  --tk-tap: 44px;

  --tk-r-lg: 24px;
  --tk-r: 18px;
  --tk-r-sm: 12px;
  --tk-r-pill: 999px;

  /* 主题色由各模板覆盖，这里是"百搭"的中性值 */
  --tk-accent: #B4633F;
  --tk-accent-hover: #9E5334;
  --tk-accent-soft: #F6EBE4;
  --tk-accent-ink: #FFFFFF;

  --tk-paper: #FBF9F6;
  --tk-card: #FFFFFF;
  --tk-surface: #F4F0E9;
  --tk-surface-2: #EAE4DA;

  --tk-ink: #201D1A;
  --tk-ink-2: #57514A;
  --tk-ink-3: #8C8479;

  --tk-line: #E9E3D9;
  --tk-line-2: #D6CCBE;

  --tk-ok: #2F6B4F;
  --tk-ok-soft: #EAF3ED;
  --tk-warn: #9A6415;
  --tk-warn-soft: #FBF1DF;
  --tk-danger: #B3453A;
  --tk-danger-soft: #FBEDEB;

  --tk-sh-1: 0 1px 2px rgba(32, 29, 26, .04), 0 10px 30px -18px rgba(32, 29, 26, .28);
  --tk-sh-2: 0 2px 6px rgba(32, 29, 26, .06), 0 22px 56px -28px rgba(32, 29, 26, .34);

  --tk-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans", Roboto, Arial, sans-serif;

  --tk-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- 2. 基础 ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* 吸顶头部 64px + 呼吸空间，锚点跳转不被挡住 */
  scroll-padding-top: 84px;
}

body {
  margin: 0;
  background: var(--tk-paper);
  color: var(--tk-ink);
  font-family: var(--tk-font);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img {
  display: block;
  max-width: 100%;
  border: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
}

input,
select,
textarea {
  font: inherit;
  font-size: 15px;
  color: inherit;
}

h1,
h2,
h3,
h4,
p {
  margin: 0;
}

h1,
h2,
h3 {
  letter-spacing: -.02em;
  line-height: 1.25;
  text-wrap: balance;
}

:focus-visible {
  outline: 2px solid var(--tk-accent);
  outline-offset: 3px;
  border-radius: 4px;
}

::selection {
  background: var(--tk-accent-soft);
  color: var(--tk-ink);
}

.tk-wrap {
  width: 100%;
  max-width: var(--tk-max);
  margin: 0 auto;
  padding-inline: var(--tk-gutter);
}

.tk-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* 纯数字一律等宽，避免加价/换币种时抖动 */
.tk-num {
  font-variant-numeric: tabular-nums;
}

/* ---------- 3. 按钮 ---------- */
.tk-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--tk-tap);
  padding: 0 22px;
  border-radius: var(--tk-r-pill);
  border: 1px solid transparent;
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  transition: background-color .2s var(--tk-ease), color .2s var(--tk-ease),
    border-color .2s var(--tk-ease), transform .16s var(--tk-ease),
    box-shadow .24s var(--tk-ease);
}

.tk-btn:active {
  transform: translateY(1px);
}

.tk-btn--primary {
  background: var(--tk-accent);
  color: var(--tk-accent-ink);
  box-shadow: 0 6px 18px -10px rgba(32, 29, 26, .5);
}

.tk-btn--primary:hover {
  background: var(--tk-accent-hover);
}

.tk-btn--ghost {
  background: transparent;
  border-color: var(--tk-line-2);
  color: var(--tk-ink);
}

.tk-btn--ghost:hover {
  border-color: var(--tk-ink);
  background: var(--tk-card);
}

.tk-btn--quiet {
  background: var(--tk-surface);
  color: var(--tk-ink);
}

.tk-btn--quiet:hover {
  background: var(--tk-surface-2);
}

.tk-btn__arrow {
  transition: transform .24s var(--tk-ease);
}

.tk-btn:hover .tk-btn__arrow {
  transform: translateX(3px);
}

/* 文字链，带下划线游标 */
.tk-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--tk-ink);
  border-bottom: 1px solid var(--tk-line-2);
  transition: border-color .2s var(--tk-ease), color .2s var(--tk-ease);
}

.tk-link:hover {
  border-color: var(--tk-accent);
  color: var(--tk-accent);
}

/* ---------- 4. 页头 ---------- */
.tk-hd {
  position: sticky;
  top: 0;
  z-index: 300;
  background: color-mix(in srgb, var(--tk-paper) 86%, transparent);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .24s var(--tk-ease), background-color .24s var(--tk-ease);
}

.tk-hd.is-stuck {
  border-bottom-color: var(--tk-line);
  background: color-mix(in srgb, var(--tk-paper) 96%, transparent);
}

.tk-hd__inner {
  display: flex;
  align-items: center;
  gap: 20px;
  height: 66px;
}

.tk-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  flex-shrink: 0;
  min-height: var(--tk-tap);
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -.01em;
  white-space: nowrap;
}

.tk-brand img {
  max-height: 30px;
  width: auto;
}

.tk-brand__mark {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: var(--tk-accent);
  color: var(--tk-accent-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}

.tk-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 0;
}

.tk-nav__item {
  position: relative;
}

.tk-nav__link {
  display: flex;
  align-items: center;
  gap: 5px;
  height: 38px;
  padding: 0 13px;
  border-radius: 10px;
  font-size: 14px;
  color: var(--tk-ink-2);
  white-space: nowrap;
  transition: background-color .18s var(--tk-ease), color .18s var(--tk-ease);
}

.tk-nav__link:hover,
.tk-nav__item:hover>.tk-nav__link,
.tk-nav__item:focus-within>.tk-nav__link {
  background: var(--tk-surface);
  color: var(--tk-ink);
}

.tk-nav__caret {
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  opacity: .55;
  transition: transform .2s var(--tk-ease);
}

.tk-nav__item:hover .tk-nav__caret {
  transform: rotate(225deg) translateY(-1px);
}

.tk-sub {
  position: absolute;
  inset-inline-start: 0;
  top: calc(100% + 6px);
  min-width: 190px;
  padding: 8px;
  background: var(--tk-card);
  border: 1px solid var(--tk-line);
  border-radius: 14px;
  box-shadow: var(--tk-sh-2);
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity .18s var(--tk-ease), transform .18s var(--tk-ease), visibility .18s;
}

.tk-nav__item:hover .tk-sub,
.tk-nav__item:focus-within .tk-sub {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.tk-sub a {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 0 11px;
  border-radius: 9px;
  font-size: 13.5px;
  color: var(--tk-ink-2);
  white-space: nowrap;
  transition: background-color .16s var(--tk-ease), color .16s var(--tk-ease);
}

.tk-sub a:hover {
  background: var(--tk-surface);
  color: var(--tk-ink);
}

/* 搜索 */
.tk-search {
  display: flex;
  align-items: center;
  gap: 2px;
  height: 40px;
  width: 224px;
  flex-shrink: 0;
  padding-inline: 4px 4px;
  background: var(--tk-card);
  border: 1px solid var(--tk-line);
  border-radius: var(--tk-r-pill);
  transition: border-color .2s var(--tk-ease), box-shadow .2s var(--tk-ease), width .24s var(--tk-ease);
}

.tk-search:focus-within {
  border-color: var(--tk-accent);
  box-shadow: 0 0 0 3px var(--tk-accent-soft);
}

.tk-search input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding-inline: 12px 4px;
  border: 0;
  background: transparent;
  font-size: 13.5px;
  outline: none;
}

.tk-search input::placeholder {
  color: var(--tk-ink-3);
}

.tk-search button {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--tk-ink);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color .18s var(--tk-ease), transform .18s var(--tk-ease);
}

.tk-search button:hover {
  background: var(--tk-accent);
}

.tk-search button svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
  stroke-linecap: round;
}

/* 头右动作区 */
.tk-hd__act {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.tk-ico {
  position: relative;
  width: var(--tk-tap);
  height: var(--tk-tap);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tk-ink-2);
  transition: background-color .18s var(--tk-ease), color .18s var(--tk-ease);
}

.tk-ico:hover {
  background: var(--tk-surface);
  color: var(--tk-ink);
}

.tk-ico svg {
  width: 21px;
  height: 21px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tk-ico--search {
  display: none;
}

.tk-ico__badge {
  position: absolute;
  top: 6px;
  inset-inline-end: 4px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--tk-accent);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 17px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 0 0 2px var(--tk-paper);
}

/* 用户菜单 */
.tk-user {
  position: relative;
}

.tk-user__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: var(--tk-tap);
  padding: 0 10px 0 4px;
  border-radius: var(--tk-r-pill);
  font-size: 13.5px;
  color: var(--tk-ink-2);
  transition: background-color .18s var(--tk-ease);
}

.tk-user__btn:hover {
  background: var(--tk-surface);
}

.tk-user__btn img,
.tk-user__avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--tk-surface-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--tk-ink-2);
}

.tk-user__btn span {
  max-width: 7em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tk-user__drop {
  position: absolute;
  inset-inline-end: 0;
  top: calc(100% + 6px);
  min-width: 176px;
  padding: 8px;
  background: var(--tk-card);
  border: 1px solid var(--tk-line);
  border-radius: 14px;
  box-shadow: var(--tk-sh-2);
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity .18s var(--tk-ease), transform .18s var(--tk-ease), visibility .18s;
}

.tk-user:hover .tk-user__drop,
.tk-user:focus-within .tk-user__drop {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.tk-user__drop a {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 0 11px;
  border-radius: 9px;
  font-size: 13.5px;
  color: var(--tk-ink-2);
}

.tk-user__drop a:hover {
  background: var(--tk-surface);
  color: var(--tk-ink);
}

.tk-user__drop .tk-user__out {
  color: var(--tk-danger);
}

.tk-user__drop .tk-user__out:hover {
  background: var(--tk-danger-soft);
  color: var(--tk-danger);
}

/* 汉堡（仅移动端） */
.tk-burger {
  display: none;
  width: var(--tk-tap);
  height: var(--tk-tap);
  border-radius: var(--tk-r-sm);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  flex-shrink: 0;
}

.tk-burger span {
  display: block;
  width: 19px;
  height: 1.6px;
  border-radius: 2px;
  background: var(--tk-ink);
  transition: transform .22s var(--tk-ease), opacity .18s var(--tk-ease);
}

.tk-burger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(6.6px) rotate(45deg);
}

.tk-burger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.tk-burger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-6.6px) rotate(-45deg);
}

/* 移动抽屉 */
.tk-drawer {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: none;
}

.tk-drawer.is-open {
  display: block;
}

.tk-drawer__mask {
  position: absolute;
  inset: 0;
  background: rgba(24, 21, 18, .42);
  opacity: 0;
  transition: opacity .24s var(--tk-ease);
}

.tk-drawer.is-open .tk-drawer__mask {
  opacity: 1;
}

.tk-drawer__panel {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: min(84vw, 340px);
  background: var(--tk-paper);
  display: flex;
  flex-direction: column;
  padding: 14px 14px calc(14px + env(safe-area-inset-bottom));
  transform: translateX(-102%);
  transition: transform .28s var(--tk-ease);
  overflow-y: auto;
  overscroll-behavior: contain;
}

[dir="rtl"] .tk-drawer__panel {
  transform: translateX(102%);
}

.tk-drawer.is-open .tk-drawer__panel {
  transform: none;
}

.tk-drawer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 10px;
  margin-bottom: 6px;
  border-bottom: 1px solid var(--tk-line);
}

.tk-drawer__close {
  width: var(--tk-tap);
  height: var(--tk-tap);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--tk-r-sm);
  color: var(--tk-ink-2);
}

.tk-drawer__close svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
}

.tk-drawer__group {
  padding: 10px 0;
  border-bottom: 1px solid var(--tk-line);
}

.tk-drawer__group:last-of-type {
  border-bottom: 0;
}

.tk-drawer__label {
  display: block;
  padding: 4px 10px 8px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tk-ink-3);
}

.tk-drawer__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 46px;
  padding: 0 10px;
  border-radius: var(--tk-r-sm);
  font-size: 15px;
  color: var(--tk-ink);
}

.tk-drawer__link:active {
  background: var(--tk-surface);
}

.tk-drawer__link i {
  font-style: normal;
  color: var(--tk-ink-3);
  font-size: 13px;
}

.tk-drawer__sub {
  display: flex;
  flex-direction: column;
  padding-inline-start: 10px;
}

.tk-drawer__sub a {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding-inline: 10px;
  border-inline-start: 1px solid var(--tk-line-2);
  font-size: 14px;
  color: var(--tk-ink-2);
}

/* ---------- 5. 区块标题 ---------- */
.tk-sec {
  padding: 56px 0;
}

.tk-sec--tight {
  padding: 36px 0;
}

.tk-sec__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 26px;
}

.tk-sec__eyebrow {
  display: block;
  margin-bottom: 8px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tk-ink-3);
}

.tk-sec__title {
  font-size: 26px;
  font-weight: 700;
}

.tk-sec__sub {
  margin-top: 6px;
  font-size: 14px;
  color: var(--tk-ink-3);
  max-width: 46ch;
}

.tk-sec__head--center {
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* ---------- 6. 商品卡 ---------- */
.tk-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px 18px;
}

.tk-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.tk-card__media {
  position: relative;
  display: block;
  border-radius: var(--tk-r);
  overflow: hidden;
  background: var(--tk-surface);
  aspect-ratio: 1 / 1;
}

.tk-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--tk-ease);
}

.tk-card:hover .tk-card__media img {
  transform: scale(1.045);
}

.tk-card__flag {
  position: absolute;
  top: 10px;
  inset-inline-start: 10px;
  height: 22px;
  padding: 0 9px;
  border-radius: var(--tk-r-pill);
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(6px);
  color: var(--tk-ink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  display: inline-flex;
  align-items: center;
}

.tk-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 2px 0;
}

.tk-card__name {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--tk-ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  /* 两行固定高度，卡片底部价格才能对齐 */
  min-height: 2.9em;
}

.tk-card__meta {
  font-size: 12.5px;
  color: var(--tk-ink-3);
}

.tk-card__foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-top: 2px;
}

.tk-price {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -.01em;
  font-variant-numeric: tabular-nums;
}

.tk-card__go {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--tk-ink-3);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .24s var(--tk-ease), transform .24s var(--tk-ease);
}

.tk-card:hover .tk-card__go {
  opacity: 1;
  transform: none;
}

/* ---------- 7. 系列 / 分类胶囊 ---------- */
.tk-chips {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-block: 2px 6px;
  /* 右边留一点呼吸，滑到头时最后一个不被裁 */
  padding-inline-end: var(--tk-gutter);
  margin-inline-end: calc(-1 * var(--tk-gutter));
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  /* 右侧渐隐，暗示还能滑 */
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 26px), transparent);
  mask-image: linear-gradient(to right, #000 calc(100% - 26px), transparent);
}

.tk-chips::-webkit-scrollbar {
  display: none;
}

.tk-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid var(--tk-line-2);
  border-radius: var(--tk-r-pill);
  background: var(--tk-card);
  font-size: 13.5px;
  font-weight: 500;
  color: var(--tk-ink-2);
  transition: background-color .18s var(--tk-ease), color .18s var(--tk-ease),
    border-color .18s var(--tk-ease);
}

.tk-chip:hover {
  background: var(--tk-ink);
  border-color: var(--tk-ink);
  color: #fff;
}

.tk-chip__n {
  font-size: 11.5px;
  color: var(--tk-ink-3);
  font-variant-numeric: tabular-nums;
}

.tk-chip:hover .tk-chip__n {
  color: rgba(255, 255, 255, .7);
}

/* ---------- 8. 服务承诺条 ---------- */
.tk-trust {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--tk-line);
  border-block: 1px solid var(--tk-line);
}

.tk-trust__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 18px;
  background: var(--tk-paper);
}

.tk-trust__ic {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--tk-accent-soft);
  color: var(--tk-accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tk-trust__ic svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tk-trust__t {
  display: block;
  font-size: 13.5px;
  font-weight: 650;
  line-height: 1.4;
}

.tk-trust__d {
  display: block;
  font-size: 12px;
  color: var(--tk-ink-3);
  line-height: 1.45;
}

/* ---------- 9. 通栏文案块 ---------- */
.tk-band {
  position: relative;
  overflow: hidden;
  background: var(--tk-ink);
  color: #F7F3EC;
  border-radius: var(--tk-r-lg);
  padding: 54px clamp(24px, 5vw, 64px);
}

.tk-band__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.tk-band__title {
  font-size: clamp(22px, 3.4vw, 30px);
  font-weight: 700;
  letter-spacing: -.02em;
  max-width: 22ch;
}

.tk-band__desc {
  margin-top: 10px;
  font-size: 14px;
  color: rgba(247, 243, 236, .68);
  max-width: 46ch;
}

.tk-band .tk-btn--primary {
  background: #F7F3EC;
  color: var(--tk-ink);
  box-shadow: none;
}

.tk-band .tk-btn--primary:hover {
  background: #fff;
}

.tk-band::after {
  content: "";
  position: absolute;
  inset-inline-end: -18%;
  bottom: -46%;
  width: 56%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, rgba(176, 97, 63, .2), transparent 68%);
  pointer-events: none;
}

.tk-band::before {
  content: "";
  position: absolute;
  inset-inline-start: -10%;
  top: -40%;
  width: 38%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .07), transparent 62%);
  pointer-events: none;
}

/* ---------- 10. 空状态 ---------- */
.tk-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 56px 20px;
  border: 1px dashed var(--tk-line-2);
  border-radius: var(--tk-r);
  background: var(--tk-card);
  text-align: center;
}

.tk-empty__ic {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--tk-surface);
  color: var(--tk-ink-3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tk-empty__ic svg {
  width: 21px;
  height: 21px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tk-empty p {
  font-size: 13.5px;
  color: var(--tk-ink-3);
}

/* ---------- 11. 页脚 ---------- */
.tk-ft {
  margin-top: 40px;
  background: var(--tk-card);
  border-top: 1px solid var(--tk-line);
}

.tk-ft__main {
  display: grid;
  grid-template-columns: minmax(240px, .95fr) minmax(0, 2.4fr);
  gap: 44px 48px;
  padding: 52px 0 40px;
}

.tk-ft__nav {
  /* 用 flex 而不是等分栅格：只有一两个链接的栏目不会被拉成一整列宽 */
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 30px 46px;
}

.tk-ft__group {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 92px;
  max-width: 220px;
}

.tk-ft__group-title {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tk-ink-3);
}

a.tk-ft__group-title:hover {
  color: var(--tk-ink);
}

.tk-ft__link {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  font-size: 13.5px;
  color: var(--tk-ink-2);
  transition: color .18s var(--tk-ease);
}

.tk-ft__link:hover {
  color: var(--tk-accent);
}

/* 没有下级的栏目：直接当一个普通链接，不要顶着"小标题"的样子孤零零站着 */
.tk-ft__link--flat {
  min-height: 38px;
  font-size: 14px;
  color: var(--tk-ink);
}

.tk-ft__brand {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 34ch;
}

.tk-ft__logo {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.01em;
}

.tk-ft__desc {
  font-size: 13px;
  line-height: 1.75;
  color: var(--tk-ink-3);
}

.tk-ft__socials {
  display: flex;
  gap: 8px;
  margin-top: 2px;
}

.tk-ft__socials a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--tk-line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color .18s var(--tk-ease), background-color .18s var(--tk-ease);
}

.tk-ft__socials a:hover {
  border-color: var(--tk-line-2);
  background: var(--tk-surface);
}

.tk-ft__socials img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.tk-ft__col-title {
  margin-bottom: 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tk-ink-3);
}

.tk-ft__links {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.tk-ft__links a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  font-size: 13.5px;
  color: var(--tk-ink-2);
  transition: color .18s var(--tk-ease);
}

.tk-ft__links a:hover {
  color: var(--tk-accent);
}

.tk-ft__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 18px 0 26px;
  border-top: 1px solid var(--tk-line);
  font-size: 12.5px;
  color: var(--tk-ink-3);
}

/* 页脚底部的小法律链接：字号小，但可点高度仍按 32 给（手机上别点空） */
.tk-ft__bottom a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
}

.tk-ft__bottom a:hover {
  color: var(--tk-ink);
}

/* ---------- 12. 移动端底部 Tab ---------- */
.tk-tabbar {
  display: none;
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 320;
  background: color-mix(in srgb, var(--tk-card) 94%, transparent);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-top: 1px solid var(--tk-line);
  padding-bottom: env(safe-area-inset-bottom);
}

.tk-tabbar__inner {
  display: flex;
  align-items: stretch;
}

.tk-tabbar__item {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 54px;
  padding: 6px 2px 5px;
  font-size: 10.5px;
  color: var(--tk-ink-3);
  text-align: center;
  transition: color .18s var(--tk-ease);
}

.tk-tabbar__item svg {
  width: 21px;
  height: 21px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tk-tabbar__item img {
  width: 21px;
  height: 21px;
  object-fit: contain;
}

.tk-tabbar__item.is-active {
  color: var(--tk-accent);
  font-weight: 600;
}

.tk-tabbar__item span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ============================================================================
   响应式层（所有媒体查询集中在这里，顺序从宽到窄）
   ============================================================================ */

/* 992–1199：小桌面，商品卡 3 列 */
@media (max-width: 1199px) {
  .tk-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tk-ft__main {
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .tk-ft__nav {
    gap: 20px 34px;
  }
}

/* ≤991：平板 / 手机，页头收纳成汉堡 + 底栏 */
@media (max-width: 991px) {
  :root {
    --tk-gutter: 18px;
  }

  .tk-hd__inner {
    height: 58px;
    gap: 10px;
  }

  .tk-burger {
    display: inline-flex;
  }

  .tk-nav,
  .tk-search {
    display: none;
  }

  .tk-brand {
    font-size: 17px;
    margin-inline-end: auto;
  }

  .tk-hd__act {
    gap: 0;
  }

  .tk-ico--search {
    display: inline-flex;
  }

  .tk-tabbar {
    display: block;
  }

  /* 给底部 Tab 让位，避免最后一块内容被盖住 */
  body {
    padding-bottom: calc(54px + env(safe-area-inset-bottom));
  }

  .tk-sec {
    padding: 38px 0;
  }

  .tk-sec__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 18px;
  }

  .tk-sec__title {
    font-size: 21px;
  }

  .tk-sec__sub {
    font-size: 13px;
  }

  .tk-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 12px;
  }

  .tk-trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tk-trust__item {
    padding: 16px 14px;
  }

  .tk-band {
    padding: 32px 22px;
    border-radius: var(--tk-r);
  }

  .tk-band__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

  .tk-band__title {
    font-size: 21px;
  }

  .tk-ft {
    margin-top: 44px;
  }

  .tk-ft__main {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 34px 0 26px;
  }

  .tk-ft__brand {
    grid-column: 1 / -1;
    max-width: none;
  }

  .tk-ft__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 16px 0 calc(20px + env(safe-area-inset-bottom));
  }

  .tk-card__name {
    font-size: 13.5px;
  }

  .tk-price {
    font-size: 15px;
  }

  .tk-card__go {
    display: none;
  }
}

/* ≤600：窄屏，进一步收 */
@media (max-width: 600px) {
  .tk-sec {
    padding: 30px 0;
  }

  .tk-sec__title {
    font-size: 19px;
  }

  .tk-trust {
    grid-template-columns: 1fr 1fr;
  }

  .tk-trust__ic {
    width: 30px;
    height: 30px;
  }

  .tk-ft__nav {
    gap: 12px 30px;
  }

  .tk-ft__group {
    min-width: 40%;
  }

  .tk-btn {
    min-height: var(--tk-tap);
    padding: 0 18px;
    font-size: 14px;
  }
}

/* 动效克制：用户开了"减少动态效果"就全部收敛 */
@media (prefers-reduced-motion: reduce) {

  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================================
   16. 内页通用件（面包屑 / 页头 / 筛选 / 分页 / 文章）
   放在文件末尾，基础规则之后紧接着自己的媒体查询，互不干扰。
   ============================================================================ */

/* ---------- 16.1 面包屑 ---------- */
.tk-crumb {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 18px 0 0;
  font-size: 12.5px;
  color: var(--tk-ink-3);
}

.tk-crumb a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  transition: color .18s var(--tk-ease);
}

.tk-crumb a:hover {
  color: var(--tk-ink);
}

.tk-crumb__sep {
  opacity: .5;
}

.tk-crumb span[aria-current] {
  color: var(--tk-ink-2);
}

/* ---------- 16.2 页头 ---------- */
.tk-pagehead {
  padding: 22px 0 26px;
}

.tk-pagehead__row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

.tk-pagehead h1 {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  letter-spacing: -.025em;
}

.tk-pagehead__sub {
  margin-top: 8px;
  font-size: 14px;
  color: var(--tk-ink-3);
  max-width: 52ch;
}

.tk-pagehead__count {
  font-size: 13px;
  color: var(--tk-ink-3);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* 内页主体留白（配合底部 Tab） */
.tk-main {
  padding-bottom: 20px;
}

/* ---------- 16.3 筛选条 ---------- */
.tk-filter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0 20px;
  flex-wrap: wrap;
}

.tk-filter__right {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--tk-ink-3);
}

/* ---------- 16.4 分页 ---------- */
.tk-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 38px 0 8px;
}

.tk-pager__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--tk-tap);
  height: var(--tk-tap);
  padding: 0 12px;
  border: 1px solid var(--tk-line-2);
  border-radius: var(--tk-r-sm);
  background: var(--tk-card);
  font-size: 13.5px;
  color: var(--tk-ink-2);
  font-variant-numeric: tabular-nums;
  transition: border-color .18s var(--tk-ease), color .18s var(--tk-ease),
    background-color .18s var(--tk-ease);
}

.tk-pager__item:hover {
  border-color: var(--tk-ink);
  color: var(--tk-ink);
}

.tk-pager__item.is-current {
  background: var(--tk-ink);
  border-color: var(--tk-ink);
  color: #fff;
}

.tk-pager__item.is-disabled {
  opacity: .4;
  pointer-events: none;
}

.tk-pager__info {
  font-size: 13px;
  color: var(--tk-ink-3);
  font-variant-numeric: tabular-nums;
  margin-inline: 6px;
}

/* ---------- 16.5 商品详情：画廊 ---------- */
.tk-pdp {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
  padding-top: 18px;
}

.tk-gallery {
  position: sticky;
  top: 90px;
  min-width: 0;
}

.tk-gallery__main {
  position: relative;
  border-radius: var(--tk-r-lg);
  overflow: hidden;
  background: var(--tk-surface);
  aspect-ratio: 1 / 1;
}

.tk-gallery__main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tk-gallery__thumbs {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.tk-gallery__thumbs::-webkit-scrollbar {
  display: none;
}

.tk-gallery__thumb {
  flex: 0 0 auto;
  width: 72px;
  height: 72px;
  border-radius: var(--tk-r-sm);
  overflow: hidden;
  background: var(--tk-surface);
  border: 1px solid var(--tk-line);
  padding: 0;
  transition: border-color .18s var(--tk-ease), transform .18s var(--tk-ease);
}

.tk-gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tk-gallery__thumb:hover {
  transform: translateY(-2px);
}

.tk-gallery__thumb.is-active {
  border-color: var(--tk-ink);
}

/* ---------- 16.6 商品详情：信息区 ---------- */
.tk-pdp__info {
  min-width: 0;
}

.tk-pdp__tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.tk-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: var(--tk-r-pill);
  background: var(--tk-surface);
  color: var(--tk-ink-2);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .02em;
}

.tk-badge--accent {
  background: var(--tk-accent-soft);
  color: var(--tk-accent);
}

.tk-pdp__title {
  font-size: clamp(19px, 2.1vw, 25px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.01em;
}

.tk-pdp__price {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 16px;
}

.tk-pdp__price b {
  font-size: clamp(26px, 3vw, 32px);
  font-weight: 700;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
}

.tk-pdp__price s {
  font-size: 14px;
  color: var(--tk-ink-3);
}

.tk-pdp__stock {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  font-size: 12.5px;
  color: var(--tk-ink-3);
}

.tk-pdp__stock::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--tk-ok);
}

.tk-pdp__stock.is-out::before {
  background: var(--tk-danger);
}

.tk-sku {
  margin-top: 22px;
  display: grid;
  gap: 14px;
}

.tk-sku__group {
  display: grid;
  gap: 8px;
}

.tk-sku__label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--tk-ink-2);
}

.tk-sku__opts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tk-sku__opt {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--tk-line-2);
  border-radius: var(--tk-r-sm);
  background: var(--tk-card);
  font-size: 13.5px;
  color: var(--tk-ink-2);
  transition: border-color .16s var(--tk-ease), color .16s var(--tk-ease),
    background-color .16s var(--tk-ease);
}

.tk-sku__opt img {
  width: 22px;
  height: 22px;
  border-radius: 4px;
  object-fit: cover;
}

.tk-sku__opt:hover {
  border-color: var(--tk-ink-3);
  color: var(--tk-ink);
}

.tk-sku__opt.is-active {
  border-color: var(--tk-ink);
  color: var(--tk-ink);
  box-shadow: inset 0 0 0 1px var(--tk-ink);
  font-weight: 600;
}

.tk-qty {
  display: inline-flex;
  align-items: center;
  height: var(--tk-tap);
  border: 1px solid var(--tk-line-2);
  border-radius: var(--tk-r-sm);
  overflow: hidden;
  background: var(--tk-card);
}

.tk-qty button {
  width: 40px;
  /* 详情页信息列窄的时候，步进器按钮会被 flex 压到 24px（手机上点不准），钉住 */
  flex: 0 0 40px;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  color: var(--tk-ink-2);
  transition: background-color .16s var(--tk-ease);
}

.tk-qty button:hover {
  background: var(--tk-surface);
}

.tk-qty input {
  width: 46px;
  height: 100%;
  border: 0;
  background: transparent;
  text-align: center;
  font-size: 14.5px;
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield;
  appearance: textfield;
}

.tk-qty input::-webkit-outer-spin-button,
.tk-qty input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.tk-pdp__actions {
  display: flex;
  gap: 10px;
  margin-top: 24px;
}

.tk-pdp__actions .tk-btn {
  flex: 1 1 0;
}

.tk-pdp__note {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--tk-line);
  font-size: 12.5px;
  color: var(--tk-ink-3);
}

.tk-pdp__note span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.tk-pdp__note span::before {
  content: "·";
  color: var(--tk-accent);
}

/* 详情正文 */
.tk-detail {
  margin-top: 52px;
  padding-top: 40px;
  border-top: 1px solid var(--tk-line);
}

.tk-detail__title {
  margin-bottom: 22px;
  font-size: 19px;
  font-weight: 700;
}

.tk-prose {
  font-size: 15px;
  line-height: 1.85;
  color: var(--tk-ink-2);
  overflow-wrap: anywhere;
}

.tk-prose img {
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 14px auto;
  border-radius: var(--tk-r-sm);
}

.tk-prose p {
  margin: 0 0 14px;
}

.tk-prose h1,
.tk-prose h2,
.tk-prose h3 {
  margin: 26px 0 12px;
  color: var(--tk-ink);
  font-size: 17px;
}

.tk-prose ul,
.tk-prose ol {
  padding-inline-start: 22px;
  margin: 0 0 14px;
}

.tk-prose table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 16px;
  font-size: 14px;
}

.tk-prose td,
.tk-prose th {
  border: 1px solid var(--tk-line);
  padding: 8px 10px;
  text-align: start;
}

/* 移动端底部购买条 */
.tk-buybar {
  display: none;
  position: fixed;
  inset-inline: 0;
  bottom: calc(54px + env(safe-area-inset-bottom));
  z-index: 310;
  padding: 10px var(--tk-gutter);
  background: color-mix(in srgb, var(--tk-card) 96%, transparent);
  backdrop-filter: blur(12px);
  border-top: 1px solid var(--tk-line);
}

.tk-buybar__inner {
  display: flex;
  align-items: center;
  gap: 10px;
}

.tk-buybar__price {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  color: var(--tk-ink-3);
}

.tk-buybar__price b {
  display: block;
  font-size: 19px;
  font-weight: 700;
  color: var(--tk-ink);
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}

.tk-buybar .tk-btn {
  flex-shrink: 0;
  min-width: 116px;
}

/* ---------- 16.7 文章列表 ---------- */
.tk-artlist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px 22px;
}

.tk-artcard {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.tk-artcard__media {
  display: block;
  border-radius: var(--tk-r);
  overflow: hidden;
  background: var(--tk-surface);
  aspect-ratio: 16 / 10;
}

.tk-artcard__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--tk-ease);
}

.tk-artcard:hover .tk-artcard__media img {
  transform: scale(1.04);
}

.tk-artcard__meta {
  font-size: 12px;
  color: var(--tk-ink-3);
  font-variant-numeric: tabular-nums;
}

.tk-artcard__title {
  font-size: 15.5px;
  font-weight: 650;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tk-artcard__desc {
  font-size: 13px;
  line-height: 1.65;
  color: var(--tk-ink-3);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---------- 16.8 文章正文 ---------- */
.tk-post {
  max-width: 760px;
  margin: 0 auto;
  padding-top: 12px;
}

.tk-post__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12.5px;
  color: var(--tk-ink-3);
}

.tk-post h1 {
  margin: 12px 0 18px;
  font-size: clamp(24px, 3.2vw, 34px);
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.28;
}

.tk-post__hero {
  margin: 26px 0;
  border-radius: var(--tk-r);
  overflow: hidden;
  background: var(--tk-surface);
}

.tk-post__hero img {
  width: 100%;
  display: block;
}

/* ---------- 16.9 分类宫格 ---------- */
.tk-cats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.tk-cat {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 148px;
  padding: 18px;
  border-radius: var(--tk-r);
  overflow: hidden;
  background: var(--tk-surface);
  transition: transform .22s var(--tk-ease), box-shadow .22s var(--tk-ease);
}

.tk-cat:hover {
  transform: translateY(-2px);
  box-shadow: var(--tk-sh-1);
}

.tk-cat img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .92;
}

.tk-cat__body {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  color: var(--tk-ink);
  font-size: 15px;
  font-weight: 650;
}

.tk-cat__body span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tk-cat__n {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--tk-ink-3);
  font-variant-numeric: tabular-nums;
}

/* 有图的分类：字压在图上看不清，加一层 -->
.tk-cat.has-img .tk-cat__body {
  color: #fff;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .5);
}

.tk-cat.has-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(16, 14, 12, .58), rgba(16, 14, 12, .06) 62%);
}

/* ============================================================================
   内页件响应式
   ============================================================================ */
@media (max-width: 991px) {
  .tk-pdp {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-top: 10px;
  }

  .tk-gallery {
    position: static;
  }

  .tk-gallery__main {
    border-radius: var(--tk-r);
    aspect-ratio: 1 / 1;
  }

  .tk-gallery__thumb {
    width: 60px;
    height: 60px;
  }

  .tk-detail {
    margin-top: 34px;
    padding-top: 26px;
  }

  .tk-pdp__actions {
    display: none;
  }

  .tk-buybar {
    display: block;
  }

  /* 给底部双条让位：Tab 54 + 购买条 64 */
  body.tk-has-buybar {
    padding-bottom: calc(118px + env(safe-area-inset-bottom));
  }

  .tk-artlist {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 14px;
  }

  .tk-cats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .tk-cat {
    min-height: 120px;
    padding: 14px;
  }

  .tk-post {
    padding-top: 6px;
  }

  .tk-crumb {
    padding-top: 14px;
  }

  .tk-pagehead {
    padding: 14px 0 18px;
  }

  .tk-pager {
    padding-top: 26px;
  }
}

@media (max-width: 600px) {
  .tk-artlist {
    grid-template-columns: 1fr;
  }

  .tk-cats {
    grid-template-columns: 1fr 1fr;
  }

  .tk-cat {
    min-height: 104px;
  }

  .tk-cat__body {
    font-size: 14px;
  }

  .tk-pdp__title {
    font-size: 18px;
  }

  .tk-pdp__price b {
    font-size: 24px;
  }
}

/* 商品图加载失败时换成占位图（kit_js.html 里兜底），别露出裂图标 */
.tk-img-fallback {
  background: var(--tk-surface, #F2F0EC);
  object-fit: cover;
}

/* 「查看全部 / 更多 / 去逛逛」这类文字链行高只有 24~26px，手机上点不准。
   全量巡检扫出来的 5 个类一并收口（l-b4__go / l-h4__go / l-h6__go / l-h8__go / l-h9__more）。 */
.l-head__more,
.sc-head__more,
.l-h3__link,
.l-h1__more,
.l-b4__go,
.l-h4__go,
.l-h6__go,
.l-h8__go,
.l-h9__more {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
}

/* ---------- 静态文档页（关于 / 联系 / 隐私 / 条款） ----------
   长文阅读版式：标题区 + 分节正文 + 页尾更新日期。
   4 个页面共用，避免每页重复一份 CSS。 */
.tp-doc {
  max-width: 760px;
  margin: 0 auto;
}

.tp-doc__meta {
  margin-top: 8px;
  font-size: 12.5px;
  color: var(--tk-ink-3);
  font-variant-numeric: tabular-nums;
}

.tp-doc__body {
  margin-top: var(--tk-s7, 32px);
  font-size: 15px;
  line-height: 1.85;
  color: var(--tk-ink-2);
}

.tp-doc__body h2 {
  margin: 34px 0 10px;
  font-size: 16.5px;
  font-weight: 650;
  line-height: 1.5;
  color: var(--tk-ink);
}

.tp-doc__body h2:first-child {
  margin-top: 0;
}

.tp-doc__body p {
  margin: 0 0 12px;
}

.tp-doc__body ul {
  margin: 0 0 14px;
  padding-inline-start: 20px;
}

.tp-doc__body li {
  margin-bottom: 6px;
}

.tp-doc__body a {
  color: var(--tk-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.tp-doc__body strong {
  font-weight: 650;
  color: var(--tk-ink);
}

/* 「还没填」这类提示块：告诉店主去哪儿补，而不是留白 */
.tp-doc__note {
  margin: 0 0 18px;
  padding: 12px 14px;
  border: 1px dashed var(--tk-line-2);
  border-radius: var(--tk-r, 10px);
  background: var(--tk-surface);
  font-size: 13.5px;
  color: var(--tk-ink-3);
}

.tp-doc__foot {
  margin-top: 40px;
  padding-top: 18px;
  border-top: 1px solid var(--tk-line);
  font-size: 13px;
  color: var(--tk-ink-3);
}
