@charset "UTF-8";
/* ==========================================================================
   apimart-skin.css  —  APIMart.ai "Vellum Technical / 新粗野等宽" 皮肤覆盖层
   --------------------------------------------------------------------------
   作用：本文件是一个纯覆盖层(skin override)，必须在 main.css 之后加载，
        把站点视觉切换为 APIMart 设计语言：
        vellum 纸感画布 + 极淡斜纹肌理 / Geist + Geist Mono 双字族 /
        ink 黑主色 + signal orange 强调 / 0 圆角倾向(4px) + 零阴影(发丝线承重)。

   加载顺序(重要)：main.css(head) → apimart-skin.css(head) → 各页面内联 <style>(body)。
        因为 home.html 等页面的内联 <style> 位于 <body>、在本文件之后，
        所以对 .lm-hm-* 组件的覆盖统一加 `body` 前缀提高特异性；
        对 main.css 中的 `!important` 白字铁律，则用更高特异性 + !important 覆盖。

   设计基线 token 均复用 main.css :root 中已换好的变量：
        --color-bg=#f7f5f4(vellum)  --color-surface=#fafafa(paper)
        --color-primary=#020202(ink) --color-text=#141312 --color-text-muted=#807d7a
        --color-border-strong=#d8d4d2 --color-accent=#f26a2e(orange)
        --font-heading/body='Geist'   --font-mono='Geist Mono'
        --radius-sm/md=4px            --shadow-*=none

   ★ 回滚方式：在 functions.php 中取消对本文件的 wp_enqueue_style 即可，
     无需改动 main.css 或任何页面。本文件不修改任何其它资源。
   ========================================================================== */

/* ==========================================================================
   0. 皮肤专有 token + 全局肌理 keyframes
   ========================================================================== */
:root {
  /* 斜纹肌理：1px 实线 / 7px 间隔，135°。用 currentColor 让其自动继承所在元素文字色。 */
  --am-stripe-image: repeating-linear-gradient(
    135deg,
    color-mix(in srgb, currentColor 16%, transparent) 0,
    color-mix(in srgb, currentColor 16%, transparent) 1px,
    transparent 1px,
    transparent 7px
  );
  /* body 专用极淡斜纹：固定灰色替代 currentColor(body 文字色不可控) —— APIMart 专有值 */
  --am-body-stripe: repeating-linear-gradient(
    135deg,
    rgba(2, 2, 2, 0.04) 0,
    rgba(2, 2, 2, 0.04) 1px,
    transparent 1px,
    transparent 7px
  );
  --am-ember: var(--primitive-volt-600);   /* #d9551a hover 橙 */
  --am-pewter: var(--color-text-secondary); /* #8f8b88 次级边框 */
  --am-carbon: var(--color-surface-dark);   /* #080808 footer */
  --am-graphite: var(--color-ink-deep);     /* #2b2927 hover 边框 */
}

/* 斜纹流动：一个周期 = 7px / cos(45°) ≈ 9.9px 水平位移 */
@keyframes am-stripe-slide {
  0% { background-position: 0 0; }
  to { background-position: 9.9px 0; }
}

/* 备用动效(item 10) */
@keyframes shiny-text {
  0% { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
@keyframes am-enter {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes am-exit {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-10px); }
}
@keyframes am-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* ==========================================================================
   1. 全局肌理：vellum 画布 + 极淡斜纹
   ========================================================================== */
body {
  background-color: var(--color-bg);        /* #f7f5f4 vellum */
  background-image: var(--am-body-stripe);  /* 叠加 4% 斜纹 */
  background-repeat: repeat;
  background-attachment: fixed;             /* 斜纹随视口固定，滚动时有质感 */
  color: var(--color-text);
}

/* 标题扫光工具类 */
.am-shiny {
  background-image: linear-gradient(
    100deg,
    var(--color-primary) 40%,
    var(--color-accent) 50%,
    var(--color-primary) 60%
  );
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: shiny-text 3.2s linear infinite;
}

/* ==========================================================================
   2. 排版：Geist 紧行高标题 / Geist Mono 灰正文与标签
   ========================================================================== */
h1, h2 {
  font-family: var(--font-heading);          /* Geist */
  line-height: 1.05;                          /* < 1.1 */
  letter-spacing: -0.03em;                    /* 负字距 */
  color: var(--color-primary);                /* #020202 ink */
}
h3, h4, h5, h6 {
  font-family: var(--font-heading);
  text-transform: uppercase;                  /* 小标题 uppercase */
  letter-spacing: 0.01em;
  color: var(--color-primary);
}

/* 正文：Geist Mono + 灰 */
p {
  font-family: var(--font-mono);
  color: var(--color-text-muted);             /* #807d7a */
}

/* 标签/eyebrow/kicker 类：mono + uppercase + 宽字距 */
.jl-eyebrow,
body .jl-eyebrow,
[class*="eyebrow"],
[class*="kicker"],
body .lm-hm-apps-kicker {
  font-family: var(--font-mono) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--color-accent) !important;       /* signal orange #f26a2e */
}

/* ==========================================================================
   3. Header：全透明 / 无毛玻璃 / 无下边框 / 隐藏 utility bar / mono 导航
   ========================================================================== */
/* 复用 main.css 的 header 变量：无论默认态还是滚动态都保持透明 + 墨黑文字 */
body {
  --home-header-text: var(--color-primary);   /* 导航/品牌文字 = ink */
  --home-header-border: transparent;
  --home-header-shell-bg: transparent;
  --home-header-shell-shadow: none;
}
/* 滚动态：实底 #fafafa（用户指令：滚动后不透明）+ 发丝下边框 + 极淡投影 */
body.home-header-scrolled,
body.refit-chrome.home-header-scrolled {
  --home-header-text: var(--color-primary);
  --home-header-border: #d8d4d2;
  --home-header-shell-bg: #fafafa;
  --home-header-shell-shadow: 0 1px 0 rgba(2, 2, 2, 0.04), 0 6px 18px rgba(2, 2, 2, 0.05);
}

/* 顶部（未滚动）：保持透明，让 hero 视频透到导航下 */
body:not(.home-header-scrolled) .site-header-shell,
body:not(.home-header-scrolled) .site-header,
body:not(.home-header-scrolled) .site-header__inner {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: none !important;
}
/* 滚动态：实底 #fafafa + 发丝下边框 + 极淡投影（不再透明） */
body.home-header-scrolled .site-header-shell,
body.home-header-scrolled .site-header,
body.refit-chrome.home-header-scrolled .site-header-shell,
body.refit-chrome.home-header-scrolled .site-header {
  background: #fafafa !important;
  background-color: #fafafa !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 1px 0 rgba(2, 2, 2, 0.04), 0 6px 18px rgba(2, 2, 2, 0.05) !important;
  border-bottom: 1px solid #d8d4d2 !important;
}
body.home-header-scrolled .site-header__inner,
body.refit-chrome.home-header-scrolled .site-header__inner {
  background: transparent !important;
  box-shadow: none !important;
}

/* 隐藏顶部 utility bar */
body .site-utility-bar { display: none !important; }

/* 导航链接：Geist Mono 13px uppercase 宽字距 ink */
body .site-nav__link,
body .site-nav__link:hover,
body .site-nav__link:focus {
  font-family: var(--font-mono) !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--color-primary) !important;      /* #020202 */
}
body .site-nav__link:hover { color: var(--color-accent) !important; }

/* 品牌区保留：透明 header 覆盖在浅色 vellum 上 → 用彩色 logo（原蓝色品牌 logo），去掉反白滤镜 */
body .site-branding__logo { filter: none !important; }
body .site-branding__logo--white { display: none !important; }
body .site-branding__logo--color { display: block !important; }

/* 移动端汉堡按钮：浅底上改为墨黑 */
body .site-menu-toggle {
  border-color: color-mix(in srgb, var(--color-primary) 22%, transparent) !important;
  background: color-mix(in srgb, var(--color-primary) 6%, transparent) !important;
}
body .site-menu-toggle span { background: var(--color-primary) !important; }

/* ==========================================================================
   4. Hero：纯纸感斜纹(移除暗色照片) + 墨黑文字
   ========================================================================== */
body .jl-hero,
body .jl-hero.lm-hm-hero,
body.home .jl-hero.lm-hm-hero,
body .section-banner.jl-hero {
  background: var(--color-bg) !important;      /* vellum */
  color: var(--color-primary) !important;
}
/* hero 斜纹肌理(::before 原为 hero-glow，改为极淡斜纹) */
body .jl-hero::before {
  background-color: transparent !important;
  background-image: var(--am-body-stripe) !important;
}
/* 移除暗色背景图/视频与暗遮罩 */
/* hero 媒体恢复可见且高清：不隐藏、不模糊；遮罩改左侧纸感 scrim 保证墨黑标题可读 */
body .jl-hero > .jl-hero-bg,
body .jl-hero .jl-hero-bg {
  display: block !important;
  opacity: 1 !important;
  filter: none !important;
}
body .jl-hero-bg video,
body .jl-hero-bg img {
  opacity: 1 !important;
  filter: none !important;
}
/* hero 右栏改 APIMart 式发丝纸感面板：保证 mono 副标/CTA 在忙图上可读 */
body .jl-hero .lm-hm-hero-right,
body .jl-hero [class*="hero-right"] {
  background: rgba(250, 250, 250, 0.94) !important;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px !important;
  padding: 20px 22px !important;
  box-shadow: none !important;
}
/* 遮罩只做极淡整体提亮 + 底部收边：视频全场清晰可见（alpha ≤0.30） */
body .jl-hero > .jl-hero-overlay,
body .jl-hero .jl-hero-overlay {
  display: block !important;
  opacity: 1 !important;
  background: linear-gradient(180deg,
    rgba(250, 250, 250, 0.26) 0%,
    rgba(250, 250, 250, 0.08) 40%,
    rgba(250, 250, 250, 0.00) 62%,
    rgba(250, 250, 250, 0.30) 100%) !important;
}
/* 左栏标题块：局部纸感面板（图层只加在文字背后，视频其余区域全可见） */
body .jl-hero .lm-hm-hero-left,
body .jl-hero [class*="hero-left"] {
  background: rgba(250, 250, 250, 0.90) !important;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px !important;
  padding: 26px 30px !important;
  box-shadow: none !important;
  width: fit-content !important;
  max-width: 660px !important;
}

/* hero 文字强制墨黑(覆盖 main.css L5249-5252 与 home.html L57-67 的 !important 白字铁律) */
body .jl-hero h1,
body .jl-hero .jl-hero-inner h1,
body.home .jl-hero.lm-hm-hero .jl-hero-inner h1 {
  color: var(--color-primary) !important;
}
body .jl-hero .jl-hero-inner p,
body .jl-hero h1 strong,
body .jl-hero h1 b,
body .jl-hero .jl-hero-inner p strong,
body .jl-hero .jl-hero-inner p b,
body .jl-hero h1 .kw,
body .jl-hero .jl-hero-inner h1 .kw {
  color: var(--color-primary) !important;
}
/* hero 副标题：Geist Mono 灰 */
body .jl-hero .jl-sub,
body .jl-hero [class*="hero-sub"],
body .jl-hero .lm-hm-hero-sub,
body.home .jl-hero.lm-hm-hero .lm-hm-hero-sub {
  font-family: var(--font-mono) !important;
  color: var(--color-text-muted) !important;    /* #807d7a */
}
body .lm-hm-hero-sub strong,
body .jl-hero [class*="hero-sub"] strong { color: var(--color-primary) !important; }

/* hero 内面包屑(浅底)改墨黑/灰，避免残留白字 */
body .jl-hero .lm-breadcrumb-wrapper,
body .jl-hero .wxkn-breadcrumb-wrapper,
body .jl-hero .lm-pdp-bc {
  color: var(--color-text-muted) !important;
}
body .jl-hero .lm-breadcrumb-wrapper a,
body .jl-hero .wxkn-breadcrumb-wrapper a,
body .jl-hero .lm-pdp-bc a { color: var(--color-text) !important; }

/* hero 底部 trust 条：浅底改灰/墨黑 */
body .jl-hero-trust { border-top-color: var(--color-border-strong) !important; }
body .jl-hero-trust .jt { color: var(--color-text-muted) !important; }
body .jl-hero-trust .jt b { color: var(--color-primary) !important; }

/* ==========================================================================
   5. 按钮：ink 实心主按钮 / paper 描边次按钮 + hover 斜纹流动
   ========================================================================== */
/* —— 主按钮 —— */
.btn-primary,
a.btn-primary,
.jl-btn-primary,
a.jl-btn-primary {
  background: var(--color-primary) !important;  /* #020202 */
  background-color: var(--color-primary) !important;
  color: var(--color-surface) !important;       /* #fafafa */
  border: 1px solid var(--color-primary) !important;
  border-radius: var(--radius-sm) !important;   /* 4px */
  text-transform: uppercase;
  font-family: var(--font-heading);             /* Geist 14px */
  font-size: 14px;
  letter-spacing: 0.08em;
  box-shadow: none !important;
}
/* hover 斜纹层：覆盖 main.css 的 slide-fill ::before */
.btn-primary::before,
.jl-btn-primary::before {
  background-color: transparent !important;
  background-image: var(--am-stripe-image) !important;
  transform: none !important;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.btn-primary:hover::before,
.jl-btn-primary:hover::before {
  opacity: 1;
  transform: none !important;
  animation: am-stripe-slide 0.36s linear infinite;
}
/* 主按钮 hover：选择方案 A —— 背景由 ink 转为 ember 橙 #d9551a + 斜纹流动
   (方案 B「保持黑 + 边框加深」未采用；如需切换，把下面 background/border 改回 var(--color-primary) 即可) */
.btn-primary:hover,
a.btn-primary:hover,
.jl-btn-primary:hover,
a.jl-btn-primary:hover,
a[class*="btn-primary"]:hover {
  background: var(--am-ember) !important;
  background-color: var(--am-ember) !important;
  border-color: var(--am-ember) !important;
  color: var(--color-surface) !important;
  box-shadow: none !important;
  transform: none !important;                   /* APIMart 无位移 */
}

/* —— 次按钮 / ghost —— */
.jl-btn-ghost,
a.jl-btn-ghost,
.btn-secondary,
a.btn-secondary,
.btn-outline,
a.btn-outline {
  background: var(--color-surface) !important;  /* #fafafa paper */
  background-color: var(--color-surface) !important;
  color: var(--color-primary) !important;       /* #020202 */
  border: 1px solid var(--am-pewter) !important; /* #8f8b88 */
  border-radius: var(--radius-sm) !important;
  text-transform: uppercase;
  font-family: var(--font-heading);
  letter-spacing: 0.08em;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}
.jl-btn-ghost::before,
.btn-secondary::before,
.btn-outline::before {
  background-color: transparent !important;
  background-image: var(--am-stripe-image) !important;
  transform: none !important;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.jl-btn-ghost:hover::before,
.btn-secondary:hover::before,
.btn-outline:hover::before {
  opacity: 1;
  transform: none !important;
  animation: am-stripe-slide 0.36s linear infinite;
}
.jl-btn-ghost:hover,
a.jl-btn-ghost:hover,
.btn-secondary:hover,
.btn-outline:hover {
  background: var(--color-surface) !important;
  background-color: var(--color-surface) !important;
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important; /* 边框加深至 ink */
  box-shadow: none !important;
  transform: none !important;
}

/* ==========================================================================
   6. 卡片：paper 面 + 发丝线边框 + 无阴影；hover 边框加深 + 斜纹流动
   ========================================================================== */
body .lm-hm-card {
  background: var(--color-surface) !important;      /* #fafafa */
  border: 1px solid var(--color-border-strong) !important; /* #d8d4d2 */
  border-radius: var(--radius-sm) !important;        /* 4px */
  box-shadow: none !important;
}
body .lm-hm-card:hover {
  transform: none !important;
  border-color: var(--am-graphite) !important;       /* #2b2927 */
  box-shadow: none !important;
}
/* hover 斜纹流动层 */
body .lm-hm-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background-image: var(--am-stripe-image);
  opacity: 0;
  transition: opacity 0.3s ease;
}
body .lm-hm-card:hover::before {
  opacity: 1;
  animation: am-stripe-slide 0.36s linear infinite;
}
/* 暗遮罩改为浅色 veil(移除暗、保留图片轮廓) —— 使墨黑/灰文字在图上可读 */
/* 产品卡：图片高清直出，仅底部 45% 纸感 scrim 托标题，不再整卡蒙白 */
body .lm-hm-card-ov {
  background: linear-gradient(
    180deg,
    rgba(247, 245, 244, 0) 0%,
    rgba(247, 245, 244, 0) 55%,
    rgba(247, 245, 244, 0.88) 100%
  ) !important;
  opacity: 1 !important;
}
/* hover：背景加厚至近不透明纸感（用户反馈：hover 背景太薄字看不到），非 hover 仍高清直出 */
body .lm-hm-card:hover .lm-hm-card-ov {
  opacity: 1 !important;
  background: linear-gradient(
    180deg,
    rgba(250, 250, 250, 0.90) 0%,
    rgba(250, 250, 250, 0.95) 45%,
    rgba(250, 250, 250, 0.98) 100%
  ) !important;
}
body .lm-hm-card-img,
body .lm-hm-card-img img {
  opacity: 1 !important;
  filter: none !important;
}
/* 占位卡：深色渐变改 vellum */
body .lm-hm-card-ph { background: var(--color-bg) !important; }
body .lm-hm-card-ph .ph-mark { color: var(--color-border-strong) !important; }
/* 卡片文字 */
body .lm-hm-card-body h3 { color: var(--color-primary) !important; }
body .lm-hm-card-desc {
  font-family: var(--font-mono) !important;
  color: var(--color-text-muted) !important;         /* Geist Mono 灰 */
}
body .lm-hm-models {
  font-family: var(--font-mono) !important;
  color: var(--color-text-muted) !important;
  background: color-mix(in srgb, var(--color-primary) 5%, transparent) !important;
}
body .lm-hm-card-cta {
  font-family: var(--font-mono) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: var(--color-primary) !important;
  border-color: var(--color-border-strong) !important;
}
body .lm-hm-card-cta:hover {
  background: var(--color-primary) !important;
  color: var(--color-surface) !important;
  border-color: var(--color-primary) !important;
}

/* ==========================================================================
   7. 表格：仅水平发丝线，无竖线无外框；th/数值 Geist Mono
   ========================================================================== */
body .lm-hm-table {
  border: none !important;
  border-collapse: collapse;
}
body .lm-hm-table th {
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--color-text-muted) !important;         /* #807d7a */
  border-bottom: 1px solid var(--color-border-strong) !important; /* 发丝线(原 2px ink) */
  border-left: none !important;
  border-right: none !important;
}
body .lm-hm-table td {
  font-family: var(--font-mono) !important;
  color: var(--color-text) !important;
  border-bottom: 1px solid var(--color-border-strong) !important;
  border-left: none !important;
  border-right: none !important;
}
body .lm-hm-table td:first-child { color: var(--color-primary) !important; }
body .lm-hm-table a { color: var(--color-primary) !important; }
body .lm-hm-table a:hover { color: var(--color-accent) !important; }

/* ==========================================================================
   8. Section：vellum / paper 交替；标题 Geist 大号紧行高
   ========================================================================== */
body .lm-hm-sec { background: var(--color-bg); }
body .lm-hm-white { background: var(--color-bg) !important; color: var(--color-text) !important; }
body .lm-hm-light { background: var(--color-surface) !important; color: var(--color-text) !important; }

body .lm-hm-sec-head h2,
body .lm-hm-white .lm-hm-sec-head h2,
body .lm-hm-light .lm-hm-sec-head h2 {
  font-family: var(--font-heading) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
  color: var(--color-primary) !important;
}
body .lm-hm-lead,
body .lm-hm-white .lm-hm-lead,
body .lm-hm-light .lm-hm-lead {
  font-family: var(--font-mono) !important;
  color: var(--color-text-muted) !important;
}
body .lm-hm-link,
body .lm-hm-white .lm-hm-link,
body .lm-hm-light .lm-hm-link {
  font-family: var(--font-mono) !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-primary) !important;
}
body .lm-hm-link:hover { color: var(--color-accent) !important; }

/* ==========================================================================
   9. Footer：carbon 黑底 + paper 文字 + mono uppercase 链接(hover 橙)
   ========================================================================== */
.site-footer,
footer.site-footer {
  background: var(--am-carbon) !important;           /* #080808 */
  color: rgba(250, 250, 250, 0.72) !important;
  border-top: 1px solid rgba(250, 250, 250, 0.1) !important;
}
.site-footer p,
.site-footer .site-footer__brand-copy {
  font-family: var(--font-mono);
  color: rgba(250, 250, 250, 0.66) !important;
}
.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .site-footer__menu-title {
  color: var(--color-surface) !important;            /* #fafafa */
}
.site-footer a {
  font-family: var(--font-mono) !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted) !important;         /* 灰 */
}
.site-footer a:hover { color: var(--color-accent) !important; } /* 橙 */
.site-footer .site-footer__brand-logo { filter: brightness(0) invert(1); } /* 深底保留白 logo */

/* ==========================================================================
   10. 客服 FAB：纯黑 + 白图标（廓形与组件原始设计一致：桌面左侧半胶囊，移动端正圆）
   ========================================================================== */
#wa-trigger-btn,
#wa-trigger-btn.wa-expand-btn {
  background: var(--color-primary) !important;       /* #020202 */
  background-color: var(--color-primary) !important;
  border: none !important;
  border-radius: 28px 0 0 28px !important;           /* 76×56 左侧半胶囊；此前 50% 把矩形拉成了椭圆 */
  box-shadow: none !important;
  color: var(--color-surface) !important;            /* #fafafa */
}
@media (max-width: 768px) {
  #wa-trigger-btn,
  #wa-trigger-btn.wa-expand-btn {
    border-radius: 50% !important;                   /* 移动端 60×60 保持正圆 */
  }
}
#wa-trigger-btn svg { color: var(--color-surface) !important; fill: var(--color-surface) !important; }
#wa-trigger-btn img { filter: brightness(0) invert(1); }

/* ==========================================================================
   11. 响应式：移动端 hero 标题缩小 + 导航保持可用(仅追加，不破坏既有 media)
   ========================================================================== */
@media (max-width: 900px) {
  body .jl-hero h1,
  body .jl-hero .jl-hero-inner h1,
  body.home .jl-hero.lm-hm-hero .jl-hero-inner h1 {
    font-size: clamp(24px, 7.2vw, 34px) !important;
    letter-spacing: -0.02em !important;
    line-height: 1.08 !important;
  }
  body .site-nav__link { font-size: 12px !important; letter-spacing: 0.08em !important; }
  body .lm-hm-sec { padding: 64px 0; }
}

/* 尊重减弱动效偏好：关闭斜纹流动/扫光/浮动 */
@media (prefers-reduced-motion: reduce) {
  .btn-primary:hover::before,
  .jl-btn-primary:hover::before,
  .jl-btn-ghost:hover::before,
  body .lm-hm-card:hover::before,
  .am-shiny {
    animation: none !important;
  }
}

/* ==========================================================================
   HARDENING: body-prefixed + !important，用于压过页面 body 内联 <style> 的
   !important 按钮/英雄规则（内联样式在文档流中晚于 head 皮肤层）。
   ========================================================================== */
body .btn-primary,
body a.btn-primary,
body .jl-btn-primary,
body a.jl-btn-primary {
  background: #020202 !important;
  background-color: #020202 !important;
  color: #fafafa !important;
  border: 1px solid #020202 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  text-transform: uppercase !important;
}
body .btn-primary:hover,
body a.btn-primary:hover,
body .jl-btn-primary:hover,
body a.jl-btn-primary:hover {
  background: #d9551a !important;
  background-color: #d9551a !important;
  border-color: #d9551a !important;
  color: #fafafa !important;
}
body .jl-btn-ghost,
body a.jl-btn-ghost,
body .btn-secondary,
body a.btn-secondary {
  background: #fafafa !important;
  background-color: #fafafa !important;
  color: #020202 !important;
  border: 1px solid #8f8b88 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  text-transform: uppercase !important;
}
/* hero 媒体保持可见高清（与文件前段 hero 媒体规则一致） */
body .jl-hero-bg { display: block !important; opacity: 1 !important; }
body .jl-hero-overlay { display: block !important; opacity: 1 !important; }

/* header 透明态/滚动态变量必须落在 .home .site-header-shell 作用域（压过 main.css 同作用域白字变量） */
body.home .site-header-shell,
body .site-header-shell {
  --home-header-text: #020202;
  --home-header-border: transparent;
  --home-header-shell-bg: transparent;
  --home-header-shell-shadow: none;
}
body.home .site-header-shell.site-header-scrolled,
body.home-header-scrolled .site-header-shell,
body.refit-chrome.home-header-scrolled .site-header-shell {
  --home-header-text: #020202;
  --home-header-border: #d8d4d2;
  --home-header-shell-bg: #fafafa;
  --home-header-shell-shadow: 0 1px 0 rgba(2, 2, 2, 0.04), 0 6px 18px rgba(2, 2, 2, 0.05);
}
body.home .site-header-shell .site-nav__link,
body .site-header .site-nav__link,
body .site-header-shell .site-nav__link {
  color: #020202 !important;
}
body.home .site-header-shell .site-nav__link:hover,
body .site-header .site-nav__link:hover {
  color: #f26a2e !important;
}

/* hero 按钮最高特异性 ink（压过内联/滚动态蓝色） */
body.home section.jl-hero .jl-btns a.jl-btn-primary,
body.home .jl-hero .jl-btns .jl-btn-primary,
body .jl-hero .jl-btns a.jl-btn-primary {
  background: #020202 !important;
  background-color: #020202 !important;
  color: #fafafa !important;
  border: 1px solid #020202 !important;
}

/* 内联硬编码蓝 #5170FF 装饰件 → 墨黑/橙 */
body .lm-hm-apps-nav .n { color: #f26a2e !important; }
body .lm-hm-loop-num { background: #020202 !important; color: #fafafa !important; }
body .lm-hm-loop-hub span { color: #020202 !important; }
body .lm-hm-loop-ring { border-color: #2b2927 !important; }
body .lm-hm-loop-node:hover { border-color: #f26a2e !important; }
body .lm-hm-apps-lines a:hover { border-color: #2b2927 !important; background: rgba(2, 2, 2, 0.06) !important; }

/* ==========================================================================
   ALL-BUTTON-BLACK：全站按钮去蓝黑化（用户指令：按钮全部黑色，不要蓝色）
   实心按钮=ink #020202；描边按钮=paper 底+ink 边；hover 保持黑+斜纹流动。
   ========================================================================== */
body .btn,
body a.btn,
body button.btn,
body .jl-btn,
body a.jl-btn,
body .btn-primary,
body a.btn-primary,
body .jl-btn-primary,
body a.jl-btn-primary,
body .btn-mega-action,
body a.btn-mega-action,
body .site-mobile-nav__contact .btn,
body .site-mobile-nav__contact a.btn,
body input[type="submit"],
body button[type="submit"],
body .wpcf7-submit {
  background: #020202 !important;
  background-color: #020202 !important;
  background-image: none !important;
  color: #fafafa !important;
  border: 1px solid #020202 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}
body .btn:hover,
body a.btn:hover,
body button.btn:hover,
body .jl-btn:hover,
body a.jl-btn:hover,
body .btn-primary:hover,
body a.btn-primary:hover,
body .jl-btn-primary:hover,
body a.jl-btn-primary:hover,
body input[type="submit"]:hover,
body button[type="submit"]:hover,
body .wpcf7-submit:hover {
  background: #020202 !important;
  background-color: #020202 !important;
  border-color: #020202 !important;
  color: #fafafa !important;
  box-shadow: none !important;
}
/* 描边/ghost 按钮：paper 底 + ink 边 ink 字（去蓝） */
body .jl-btn-ghost,
body a.jl-btn-ghost,
body .btn-secondary,
body a.btn-secondary,
body .btn-outline,
body a.btn-outline {
  background: #fafafa !important;
  background-color: #fafafa !important;
  background-image: none !important;
  color: #020202 !important;
  border: 1px solid #020202 !important;
  box-shadow: none !important;
}
/* 回顶圆钮保持圆形 */
body .site-footer__back-top {
  background: #020202 !important;
  color: #fafafa !important;
  border: none !important;
  border-radius: 50% !important;
  box-shadow: none !important;
}
body .site-footer__back-top:hover {
  background: #080808 !important;
  color: #fafafa !important;
}
/* 卡片 CTA / 链接去蓝 → ink，hover 橙 */
body .lm-hm-card-cta,
body .lm-hm-link {
  color: #020202 !important;
}
body .lm-hm-card-cta:hover,
body .lm-hm-link:hover {
  color: #f26a2e !important;
}

/* BULLETPROOF：[class] 属性选择器抬高特异性，压过 home.html 内联 !important 蓝按钮 */
body.home .jl-hero .jl-btns a.jl-btn.jl-btn-primary[class],
body.home .jl-hero .jl-btns a.jl-btn[class],
body.home .jl-hero a.jl-btn.jl-btn-primary[class],
body.home section.jl-hero .jl-btns .jl-btn[class],
body .jl-btn-primary[class],
body a.jl-btn-primary[class],
body .btn-primary[class],
body a.btn-primary[class] {
  background: #020202 !important;
  background-color: #020202 !important;
  background-image: none !important;
  color: #fafafa !important;
  border: 1px solid #020202 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  text-transform: uppercase !important;
}
/* 导航字色子弹proof（压过透明态白字变量） */
body.home .site-header-shell .site-nav__link[class],
body .site-header .site-nav__link[class] {
  color: #020202 !important;
}
/* body.home 变体：压过 home.html 内联 (0,4,1) 级 !important 蓝按钮/白导航 */
body.home {
  --home-header-text: #020202 !important;
}
body.home a.jl-btn-primary[class],
body.home .jl-btn-primary[class],
body.home a.btn-primary[class],
body.home .btn-primary[class],
body.home .lm-hm-hero a.jl-btn.jl-btn-primary[class],
body.home .jl-hero a.jl-btn.jl-btn-primary[class],
body.home .lm-hm-hero-right a.jl-btn[class] {
  background: #020202 !important;
  background-color: #020202 !important;
  background-image: none !important;
  color: #fafafa !important;
  border: 1px solid #020202 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  text-transform: uppercase !important;
}
body.home .site-nav__link[class] {
  color: #020202 !important;
}
/* 面包屑（含当前项）在纸感底上改墨黑，修复白字不可见 */
body .jl-hero [class*="crumb"],
body .jl-hero [class*="crumb"] a,
body .jl-hero [class*="crumb"] span,
body .jl-hero [class*="breadcrumb"],
body .jl-hero [class*="breadcrumb"] * {
  color: #020202 !important;
}
body .jl-hero [class*="crumb"] a:hover,
body .jl-hero [class*="breadcrumb"] a:hover {
  color: #f26a2e !important;
}

/* hero 左栏双 CTA + 工程师三步条（甲方定位：OTS 数据库 + 定制能力 + 三步旅程） */
body .jl-hero .jl-btns--hero-left {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 22px;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}
body .jl-hero .lm-hm-hero-steps {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 18px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid #d8d4d2;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: #65615e;
  text-transform: uppercase;
}
body .jl-hero .lm-hm-hero-steps b {
  color: #f26a2e;
  font-weight: 700;
  margin-right: 8px;
}
body .jl-hero .lm-hm-hero-steps span { display: block; }
@media (max-width: 900px) {
  body .jl-hero .lm-hm-hero-steps { font-size: 11px; }
}

/* ===== 12. Editorial / archive / article / 404 components (contract classes) ===== */

/* --- 12.1 page shell --- */
body .am-page {
  background-color: #f7f5f4 !important;
  background-image: repeating-linear-gradient(135deg, rgba(2,2,2,.045) 0, rgba(2,2,2,.045) 1px, transparent 1px, transparent 7px) !important;
  background-repeat: repeat !important;
  padding: clamp(64px, 8vw, 110px) 0;
}
body .am-page-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 28px;
  width: 100%;
  box-sizing: border-box;
}
body .am-page-inner--narrow { max-width: 820px; }
@media (max-width: 640px) {
  body .am-page-inner { padding: 0 20px; }
}

/* --- 12.2 head / headings / lead --- */
body .am-page-head { margin-bottom: 40px; }
body .am-h1,
body .am-h2 {
  font-family: var(--font-heading, 'Geist', ui-sans-serif, system-ui, -apple-system, sans-serif);
  font-weight: 700;
  color: #020202 !important;
  line-height: 1.06;
  letter-spacing: -0.03em;
  margin: 0;
}
body .am-h1 { font-size: clamp(34px, 5vw, 56px); }
body .am-h2 { font-size: clamp(24px, 3vw, 34px); }
body .am-lead {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 15px;
  line-height: 1.75;
  color: #807d7a;
  max-width: 70ch;
  margin: 14px 0 0;
}

/* --- 12.3 breadcrumbs --- */
body .am-crumbs {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #807d7a;
  margin: 0 0 14px;
}
body .am-crumbs a {
  color: #65615e;
  text-decoration: none;
}
body .am-crumbs a:hover { color: #f26a2e; }
body .am-crumbs-current { color: #020202 !important; }

/* --- 12.4 filter chips --- */
body .am-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 34px;
}
body .am-chip {
  display: inline-block;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px;
  background: #fafafa !important;
  background-image: none !important;
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #65615e !important;
  padding: 8px 14px;
  text-decoration: none;
  box-shadow: none !important;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}
body .am-chip:hover {
  border-color: #020202 !important;
  color: #020202 !important;
}
body .am-chip--on {
  background: #020202 !important;
  background-image: none !important;
  color: #fafafa !important;
  border-color: #020202 !important;
}
body .am-chip--on:hover { color: #fafafa !important; }

/* --- 12.5 post grid + card --- */
body .am-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 1000px) {
  body .am-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body .am-post-grid { grid-template-columns: minmax(0, 1fr); }
}
body .am-post-card {
  display: flex;
  flex-direction: column;
  background: #fafafa !important;
  background-image: none !important;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: none !important;
  transition: border-color .18s ease;
}
body .am-post-card:hover { border-color: #2b2927 !important; }
body .am-post-thumb {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f2f0f0 !important;
}
body .am-post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: 0;
  border-radius: 0;
}
body .am-post-thumb-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background-color: #f2f0f0 !important;
  background-image: repeating-linear-gradient(135deg, rgba(2,2,2,.045) 0, rgba(2,2,2,.045) 1px, transparent 1px, transparent 7px) !important;
}
body .am-post-thumb-ph::after {
  content: 'NO PHOTO';
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8f8b88;
}
body .am-post-body { padding: 18px 20px 22px; }
body .am-meta {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #807d7a;
  margin: 0 0 10px;
}
body .am-post-title,
body .am-post-title a {
  font-family: var(--font-heading, 'Geist', ui-sans-serif, system-ui, -apple-system, sans-serif);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: #020202 !important;
  text-decoration: none;
  margin: 0;
}
body .am-post-title a:hover { color: #f26a2e !important; }
body .am-excerpt {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 13px;
  line-height: 1.7;
  color: #807d7a;
  margin: 10px 0 14px;
}
body .am-post-more {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #020202 !important;
  text-decoration: none;
  margin-top: auto;
}
body .am-post-more:hover { color: #f26a2e !important; }

/* --- 12.6 empty state --- */
body .am-empty {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 14px;
  line-height: 1.7;
  color: #807d7a;
  border: 1px dashed #d8d4d2 !important;
  border-radius: 4px;
  background: transparent !important;
  padding: 28px;
  text-align: center;
}

/* --- 12.7 pager --- */
body .am-pager {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
}
body .am-pager-link,
body .am-pager-current {
  display: inline-block;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px;
  background: #fafafa !important;
  background-image: none !important;
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 13px;
  line-height: 1.4;
  color: #020202 !important;
  padding: 9px 15px;
  text-decoration: none;
  box-shadow: none !important;
  transition: border-color .18s ease;
}
body .am-pager-link:hover { border-color: #020202 !important; }
body .am-pager-current {
  background: #020202 !important;
  color: #fafafa !important;
  border-color: #020202 !important;
}

/* --- 12.8 side / index list --- */
body .am-side {
  margin-top: 56px;
  border-top: 1px solid #d8d4d2;
  padding-top: 26px;
}
body .am-side-list {
  list-style: none;
  columns: 2;
  column-gap: 28px;
  margin: 0;
  padding: 0;
}
body .am-side-list li {
  margin: 0 0 10px;
  break-inside: avoid;
}
body .am-side-list li a {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 13px;
  line-height: 1.6;
  color: #65615e !important;
  text-decoration: none;
}
body .am-side-list li a:hover { color: #f26a2e !important; }
@media (max-width: 800px) {
  body .am-side-list { columns: 1; }
}

/* --- 12.9 article head + figure --- */
body .am-article-head { margin-bottom: 26px; }
body .am-article-figure { margin: 0 0 30px; }
body .am-article-figure img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px;
}
body .am-figure-cap {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #807d7a;
  margin-top: 8px;
}

/* --- 12.10 article body typography --- */
body .am-article-body {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 15px;
  line-height: 1.85;
  color: #2b2927;
}
body .am-article-body h2,
body .am-article-body h3 {
  font-family: var(--font-heading, 'Geist', ui-sans-serif, system-ui, -apple-system, sans-serif);
  font-weight: 700;
  color: #020202 !important;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
body .am-article-body h2 { font-size: 26px; margin: 34px 0 12px; }
body .am-article-body h3 { font-size: 19px; margin: 26px 0 10px; }
body .am-article-body p { margin: 0 0 18px; }
body .am-article-body a {
  color: #020202 !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: #d8d4d2;
  text-underline-offset: 3px;
}
body .am-article-body a:hover {
  color: #f26a2e !important;
  text-decoration-color: #f26a2e;
}
body .am-article-body ul,
body .am-article-body ol {
  padding-left: 22px;
  margin: 0 0 18px;
}
body .am-article-body li { margin-bottom: 8px; }
body .am-article-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 22px 0;
}
body .am-article-body th {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: #807d7a;
  background: #f2f0f0 !important;
  border: 1px solid #d8d4d2;
  padding: 10px 12px;
  text-align: left;
}
body .am-article-body td {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 13px;
  line-height: 1.7;
  color: #2b2927;
  border: 1px solid #d8d4d2;
  padding: 10px 12px;
}
body .am-article-body blockquote {
  border-left: 3px solid #f26a2e !important;
  padding: 6px 0 6px 18px;
  margin: 22px 0;
  color: #65615e;
  font-style: normal;
  background: transparent !important;
}
body .am-article-body blockquote p:last-child { margin-bottom: 0; }
body .am-article-body code {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 13px;
  background: #f2f0f0 !important;
  border: 1px solid #d8d4d2;
  border-radius: 4px;
  padding: 2px 6px;
  color: #2b2927;
}
body .am-article-body pre {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 13px;
  line-height: 1.7;
  background: #f2f0f0 !important;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px;
  padding: 16px;
  margin: 22px 0;
  overflow: auto;
}
body .am-article-body pre code {
  background: transparent !important;
  border: 0;
  padding: 0;
}

/* --- 12.11 article CTA + buttons --- */
body .am-article-cta {
  margin: 44px 0 0;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px;
  background: #fafafa !important;
  background-image: none !important;
  padding: 26px 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  box-shadow: none !important;
}
body .am-article-cta .am-lead {
  margin: 0 100% 0 0;
  max-width: 100%;
}
body .am-btn {
  display: inline-block;
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 13px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 13px 24px;
  border-radius: 4px;
  box-shadow: none !important;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
body .am-btn--solid {
  background: #020202 !important;
  background-image: none !important;
  color: #fafafa !important;
  border: 1px solid #020202 !important;
}
body .am-btn--solid:hover {
  background: #d9551a !important;
  border-color: #d9551a !important;
  color: #fafafa !important;
}
body .am-btn--ghost {
  background: #fafafa !important;
  background-image: none !important;
  color: #020202 !important;
  border: 1px solid #020202 !important;
}
body .am-btn--ghost:hover {
  border-color: #d9551a !important;
  color: #d9551a !important;
}

/* --- 12.12 related + author --- */
body .am-related { margin-top: 60px; }
body .am-related .am-h2 { margin-bottom: 20px; }
body .am-author {
  margin-top: 34px;
  border-top: 1px solid #d8d4d2;
  padding-top: 18px;
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: #807d7a;
}
body .am-author a {
  color: #020202 !important;
  text-decoration: none;
}
body .am-author a:hover { color: #f26a2e !important; }

/* --- 12.13 author profile page (author.php head) --- */
body .am-author-photo {
  margin: 0 0 26px;
  width: 200px;
  max-width: 100%;
}
body .am-author-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 280 / 380;
  object-fit: cover;
  background: #f2f0f0 !important;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px;
}
body .am-author-bio {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: 14px;
  line-height: 1.8;
  color: #65615e;
  max-width: 70ch;
  margin: 18px 0 0;
}
body .am-author-bio p { margin: 0 0 12px; }
body .am-author-bio p:last-child { margin-bottom: 0; }
body .am-author-social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 0;
}
body .am-author-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background: #fafafa !important;
  background-image: none !important;
  border: 1px solid #d8d4d2 !important;
  border-radius: 4px;
  color: #020202;
  box-shadow: none !important;
  text-decoration: none;
  transition: border-color .18s ease, color .18s ease;
}
body .am-author-social a:hover {
  border-color: #020202 !important;
  color: #f26a2e;
}
body .am-author-social svg {
  width: 20px;
  height: 20px;
  display: block;
  fill: currentColor;
}

/* --- 12.14 blog hub pillar groups (page-blog.php) --- */
body .am-blog-group {
  margin-top: 58px;
  padding-top: 34px;
  border-top: 1px solid #d8d4d2;
}
body .am-blog-group:first-of-type {
  margin-top: 40px;
}
body .am-blog-group .am-h2 { margin-bottom: 10px; }
body .am-blog-group .am-lead { margin: 0 0 24px; }
@media (max-width: 640px) {
  body .am-blog-group { margin-top: 44px; padding-top: 26px; }
  body .am-author-photo { width: 150px; }
}

/* --- 12.15 audit fixes: blog thumbs / article table / breadcrumb font --- */
/* blog hub (body.page) featured thumbs were hidden by main.css `body.page img.wp-post-image{display:none}`;
   restore them so cards with a featured image don't render as empty boxes */
body.page .am-post-thumb img,
body.page .am-post-thumb img.wp-post-image { display: block !important; }
/* article body tables: allow horizontal scroll on narrow viewports + legible thead on light stripe */
body .am-article-body { overflow-x: auto; }
body .am-article-body table th {
  color: #65615e !important;
  background: #f2f0f0 !important;
}
/* page.php-injected wxkn breadcrumb rendered in Rajdhani; force Geist Mono to match am-crumbs */
body .wxkn-breadcrumb,
body .wxkn-breadcrumb a,
body .wxkn-breadcrumb span {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace) !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

/* --- 12.16 banner readability: dim photo bg on non-home heroes so ink/gray text stays legible ---
   首页排除：首页 hero 文字有纸感面板保护且需要照片冲击力；其余 banner 页照片退为背景层。 */
body:not(.home) .jl-hero > .jl-hero-bg,
body:not(.home) .jl-hero .jl-hero-bg { opacity: .35 !important; }

/* --- 12.17 button refinement: dark-context inversion + hover feedback + focus ring --- */
/* 基础：统一过渡 + mega CTA 精修（mono 小字大写宽字距 + 舒适内边距） */
body .btn, body a.btn, body button.btn, body .jl-btn, body a.jl-btn, body .btn-mega-action {
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
body .btn-mega-action {
  padding: 12px 24px !important;
  border-radius: 4px !important;
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace) !important;
  font-size: 12px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}
/* 全局实心按钮 hover：ink → ember 橙（反馈感） */
body .btn:hover, body a.btn:hover, body button.btn:hover,
body .jl-btn:hover, body a.jl-btn:hover,
body .btn-primary:hover, body a.btn-primary:hover,
body .jl-btn-primary:hover, body a.jl-btn-primary:hover,
body input[type="submit"]:hover, body button[type="submit"]:hover, body .wpcf7-submit:hover {
  background: #d9551a !important;
  background-color: #d9551a !important;
  border-color: #d9551a !important;
  color: #fafafa !important;
}
/* 全局描边按钮 hover：paper → ink 填充 */
body .jl-btn-ghost:hover, body a.jl-btn-ghost:hover,
body .btn-secondary:hover, body a.btn-secondary:hover,
body .btn-outline:hover, body a.btn-outline:hover {
  background: #020202 !important;
  background-color: #020202 !important;
  border-color: #020202 !important;
  color: #fafafa !important;
}
/* 深色上下文（mega menu / carbon footer / dark section）：实心按钮反白为 paper，避免黑块溶进深底 */
body .site-nav__dropdown--mega .btn-mega-action,
body .site-nav__dropdown--mega .btn,
body .site-footer .btn:not(.site-footer__back-top),
body .lm-ty-section--dark .jl-btn-primary,
body .lm-ty-section--dark a.jl-btn-primary {
  background: #fafafa !important;
  background-color: #fafafa !important;
  color: #020202 !important;
  border: 1px solid #fafafa !important;
}
body .site-nav__dropdown--mega .btn-mega-action:hover,
body .site-nav__dropdown--mega .btn:hover,
body .site-footer .btn:not(.site-footer__back-top):hover,
body .lm-ty-section--dark .jl-btn-primary:hover,
body .lm-ty-section--dark a.jl-btn-primary:hover {
  background: #f26a2e !important;
  background-color: #f26a2e !important;
  border-color: #f26a2e !important;
  color: #fafafa !important;
}
/* 深色上下文描边按钮 hover：保持 paper 底 + ember 边框 */
body .lm-ty-section--dark .jl-btn-ghost:hover,
body .lm-ty-section--dark a.jl-btn-ghost:hover {
  background: #fafafa !important;
  color: #020202 !important;
  border-color: #f26a2e !important;
}
/* 键盘可达：橙色 focus ring */
body .btn:focus-visible, body a.btn:focus-visible, body button.btn:focus-visible,
body .jl-btn:focus-visible, body a.jl-btn:focus-visible, body .btn-mega-action:focus-visible {
  outline: 2px solid #f26a2e !important;
  outline-offset: 3px !important;
}
