/* ============================================================
 * CALINK Website — Component Layer
 * Visual System V1.1：黑白灰单色主体 + Liquid Glass
 * 红色仅 CTA / 青色仅 AI 数据
 * 字体：Inter（正文）+ IBM Plex Mono（AI 数据 / Specs）
 * ============================================================ */

/* ---------- Liquid Glass Tokens ---------- */
:root {
  /* V1.6 §6 滚动玻璃：提亮 + 降低模糊强度 */
  --glass-light-bg: rgba(255, 255, 255, 0.78);
  --glass-light-border: rgba(255, 255, 255, 0.55);
  --glass-dark-bg: rgba(22, 22, 24, 0.58);
  --glass-dark-border: rgba(255, 255, 255, 0.12);
  --glass-blur: 20px;
  --glass-blur-lg: 32px;
  --glass-saturate: 150%;
}

@supports not (backdrop-filter: blur(1px)) {
  :root {
    --glass-light-bg: rgba(255, 255, 255, 0.97);
    --glass-dark-bg: rgba(22, 22, 24, 0.97);
  }
}

/* V1.4 可访问性：键盘焦点全局可见（组件级已设计的焦点样式优先） */
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* ============================================================
 * 1. 顶部导航（Light Glass）
 * ============================================================ */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  height: 56px;
  display: flex;
  align-items: center;
  transition: background 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease, transform 0.4s ease;
  border-bottom: 1px solid transparent;
}

/* V1.6 §5 Header Grid 三列布局：logo / nav / CTA（不改 HTML，纯 CSS） */
.site-header > .container.calink-flex-between {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-width: 0;
}
.site-header > .container.calink-flex-between > .logo-link { justify-self: start; }
.site-header > .container.calink-flex-between > nav { justify-self: center; }
/* 注意：nav 自身也带 .calink-flex-center，这里限定 div 以区分 */
.site-header > .container.calink-flex-between > div.calink-flex-center { justify-self: end; }

.site-header.is-transparent {
  background: transparent;
  border-bottom-color: transparent;
}

.site-header.is-transparent .nav-link,
.site-header.is-transparent .header-icon-btn {
  color: var(--color-text);
}

/* 深色 Hero（AI 帧 / 深色 page-hero）上的导航文字反白 */
.site-header.on-dark-hero .nav-link,
.site-header.on-dark-hero .header-icon-btn,
.site-header.on-dark-hero .mobile-menu-toggle {
  color: #FFFFFF;
}

.site-header.is-scrolled {
  background: var(--glass-light-bg);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  border-bottom-color: var(--color-border-light);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.05);
}

.site-header.is-scrolled .nav-link,
.site-header.is-scrolled .header-icon-btn,
.site-header.is-scrolled .mobile-menu-toggle {
  color: var(--color-text);
}

.site-header.is-hidden { transform: translateY(-100%); }

/* Mega Menu 打开时：Navbar 自动切 Light Glass，文字保持深色清晰可读 */
/* 主规则（V1.4 JS class 驱动）：.site-header.mega-open；:has() 保留作 JS 失效 fallback */
.site-header.mega-open,
.site-header:has(.has-mega:hover),
.site-header:has(.has-mega:focus-within) {
  background: var(--glass-light-bg);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  border-bottom-color: var(--color-border-light);
}

/* Mega Menu 打开时：独立 overlay 对页面主体压暗（不 blur Header/Mega，见 V1.6 §31）
   F18-A1：深色半透明遮罩替代轻毛玻璃，深浅页面都能形成明确层次 */
body::after {
  content: '';
  position: fixed;
  /* V1.6 §9：顶部留出 Header 清晰区（68px） */
  inset: 68px 0 0;
  z-index: 500;
  pointer-events: none;
  background: rgba(3, 5, 11, 0.28);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity 0.24s ease;
}
body.mega-open::after { opacity: 1; }
/* no-JS fallback 才使用 :has()，避免 Esc 关闭后指针仍停在导航上导致遮罩残留 */
body:not(.js-mega):has(.has-mega:hover)::after,
body:not(.js-mega):has(.has-mega:focus-within)::after { opacity: 1; }

/* V1.4 Logo img 容器（HTML 代理换 img 后使用） */
.logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.site-header .logo-link img { height: 26px; width: auto; display: block; }
.mobile-nav .logo-link img { height: 26px; width: auto; display: block; }
.site-footer .logo-link img { height: 24px; width: auto; display: block; }

/* V1.6 §14/§3：双图 logo 切换（HTML 代理改为双 img 结构）。
   .on-dark-hero 由 index.html hero slider 内联脚本管理，非 main.js；
   未滚动时深色 hero 上显示白色字 logo，滚动后 is-scrolled 恢复深色字图。 */
.logo-img { display: block; height: 26px; width: auto; }
.site-header .logo-link img.logo-img-light { display: none; }
.site-header.on-dark-hero:not(.is-scrolled) .logo-img-dark { display: none; }
.site-header.on-dark-hero:not(.is-scrolled) .logo-img-light { display: block; }

.site-header .nav-link {
  position: relative;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--color-text);
  text-decoration: none;
  padding: 8px 2px;
  transition: color 0.2s ease;
}

/* 2026-10-05 导航交互统一：无 underline / 无 arrow，品牌红为唯一 hover/active 提示 */
.site-header .nav-link:hover,
.site-header .nav-link.is-active,
.site-header .nav-link[aria-current="page"] { color: var(--color-primary); }

/* mega 打开时 trigger 保持 active 视觉 */
.has-mega.is-open > .nav-link { color: var(--color-primary); }

.nav-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 20px;
  font-size: 13.5px;
  font-weight: 600;
  color: #FFFFFF;
  background: var(--color-primary);
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease, transform 0.2s ease;
}

.nav-cta-btn:hover {
  background: var(--color-primary-600);
  transform: translateY(-1px);
}

/* ============================================================
 * 2. Mega Menu（Light Glass）
 * ============================================================ */
.has-mega { position: relative; }

/* Full-width Sheet：V1.6 纯白实体面板（替代 Liquid Glass） */
.mega-panel {
  position: fixed;
  top: 56px;
  left: 0;
  right: 0;
  min-width: 0;
  padding: 40px 0 44px;
  background: #FFFFFF;
  border: none;
  border-bottom: 1px solid var(--color-border-light);
  border-radius: 0;
  box-shadow: 0 20px 44px var(--color-border);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px);
  /* F20-A2：260–340ms 的克制展开，不做大幅位移 */
  transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s;
  z-index: 999;
}

/* V1.4 hover 断层桥：盖住 nav 项与 Sheet 之间的缝隙，防止 mouseleave 闪退 */
.has-mega::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 14px;
  background: transparent;
}

/* 主规则（JS class 驱动）：.has-mega.is-open */
.has-mega.is-open .mega-panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s;
}

/* JS 失效 fallback：无 body.js-mega 时保留 CSS :hover / :focus-within 驱动 */
body:not(.js-mega) .has-mega:hover .mega-panel,
body:not(.js-mega) .has-mega:focus-within .mega-panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.mega-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px 40px;
}

.mega-col-title {
  font-size: 11.5px;
  font-weight: 500;
  /* V1.6 §16-20 */
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #86868B;
  margin-bottom: 14px;
}

.mega-links { display: flex; flex-direction: column; gap: 16px; }

.mega-link {
  display: block;
  /* V1.6 §16-20 */
  font-size: 16px;
  line-height: 1.35;
  font-weight: 600;
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.mega-link:hover { color: var(--color-primary); }

/* V1.6 §16-20：Featured 标题（.mega-featured-title 为 HTML 代理新类名，与旧 .mega-link-featured 并行兼容） */
.mega-featured-title,
.mega-link-featured {
  font-size: 24px;
  font-weight: 600;
  color: #1D1D1F;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.mega-link-featured:hover { color: var(--color-primary-600); }

.mega-link-primary { font-weight: 700; }

.mega-link-desc {
  display: block;
  /* V1.6 §16-20 */
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  color: #6E6E73;
  margin-top: 5px;
}

/* V1.6 §22-24：产品图去卡片底色/边框（透明底资产），小圆角 + contain + hover 位移 */
.mega-featured-media {
  margin-top: 14px;
  background: none;
  border: none;
  box-shadow: none;
}
.mega-featured-media img {
  display: block;
  width: 260px;
  max-width: 100%;
  height: auto;
  max-height: 180px;
  object-fit: contain;
  border-radius: 10px;
  background: none;
  border: none;
  box-shadow: none;
  transition: transform 0.2s ease;
}
.mega-featured:hover .mega-featured-media img { transform: translateY(-2px); }

.mega-media { position: relative; align-self: center; }
/* V1.6 §25-28：AI 等媒体列放宽至 380px（列本身 300px，取折中上限） */
.mega-media img { display: block; width: 100%; max-width: 380px; height: auto; border-radius: 12px; }
.mega-media-tag {
  position: absolute; right: 8px; bottom: 8px;
  padding: 2px 8px; border-radius: 999px;
  background: rgba(23, 28, 38, 0.88);
  color: #B9C1CB;
  font-family: var(--font-mono, monospace);
  font-size: 10px; letter-spacing: 0.06em;
}

/* IA V2.1：Industry Solutions mega 桌面 4 卡横一排 */
.mega-app-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px 24px; }
.mega-app-item { display: block; text-decoration: none; }
/* V1.6 §29-31：Applications 图圆角 10px + hover 微缩放 */
.mega-app-item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  margin-bottom: 10px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.mega-app-item:hover img { transform: scale(1.015); opacity: 0.96; }
.mega-app-title { display: block; font-size: 15px; font-weight: 600; color: var(--color-text); transition: color 0.2s ease; }
.mega-app-desc { display: block; font-size: 12.5px; color: var(--color-text-muted); margin-top: 2px; }
.mega-app-item:hover .mega-app-title { color: var(--color-primary); }

@media (max-width: 1024px) {
  .mega-app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================
 * IA V2.1：Products mega —— 左产品列表 + 右动态预览
 * ============================================================ */
.mega-products-grid {
  display: grid;
  grid-template-columns: minmax(220px, 32%) 1fr;
  gap: 36px;
  align-items: start;
}

.mega-product-list { display: flex; flex-direction: column; }

.mega-product-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  margin: 2px -14px;
  border-radius: 10px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.18s ease, background-color 0.18s ease;
}
.mega-product-link:hover,
.mega-product-link:focus-visible {
  color: var(--color-primary);
  background: rgba(255, 255, 255, 0.06);
  outline: none;
}
.mega-product-link.is-active { color: var(--color-primary); }
.mega-product-link:hover .mega-product-arrow,
.mega-product-link:focus-visible .mega-product-arrow,
.mega-product-link.is-active 
.mega-preview-area { position: relative; min-height: 240px; }

.mega-preview { display: none; }
.mega-preview.is-active {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 26px;
  align-items: center;
  animation: megaContentIn 0.18s ease;
}

.mega-preview-media { position: relative; }
.mega-preview-media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 260px;
  object-fit: contain;
  border-radius: 12px;
}

.mega-preview-name {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text);
}
.mega-preview-desc {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text-muted);
}

@media (max-width: 1024px) {
  .mega-products-grid { grid-template-columns: minmax(200px, 38%) 1fr; gap: 24px; }
  .mega-preview.is-active { grid-template-columns: 1fr; gap: 14px; }
  .mega-preview-media img { max-height: 180px; }
}

.mega-trust-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--color-border-light); }
/* V1.6 §36：Company trust strip 分隔点 */
.mega-trust-dot { color: var(--color-text-muted); margin: 0 2px; }
.mega-link-secondary { font-size: 13.5px; font-weight: 500; color: var(--color-text-muted); text-decoration: none; transition: color 0.2s ease; }
.mega-link-secondary:hover { color: var(--color-primary); }

/* V1.6 §13：同层切换时 mega 内容 crossfade（JS 加临时 class，160ms 后移除） */
.mega-content-switch > .container { animation: megaContentIn 0.15s ease; }
@keyframes megaContentIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@media (max-width: 768px) {
  .mega-panel { display: none; }
}

/* ============================================================
 * 3. Hero Slider（浅色主体，AI 帧为唯一深色帧）
 * ============================================================ */
.hero-slider {
  position: relative;
  height: 100vh;
  min-height: 640px;
  overflow: hidden;
  background: var(--calink-soft-white, #FAFAFA);
}

.hero-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  z-index: 1;
  transition: opacity 0.9s ease;
}

.hero-slide.active { opacity: 1; pointer-events: auto; z-index: 2; }

.hero-slide-bg {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: heroScale 9s ease forwards;
}

@keyframes heroScale {
  from { transform: scale(1); }
  to   { transform: scale(1.02); }
}

/* 帧 1：烘焙机 —— 浅银白 */
.hero-slide-bg.roaster {
  background:
    radial-gradient(1000px 600px at 78% 30%, rgba(0, 0, 0, 0.04), transparent 60%),
    linear-gradient(180deg, #FFFFFF 0%, #F5F5F7 55%, #ECEDEF 100%);
}

/* 帧 2：CALINK AI —— 石墨深底（全站唯一深色 Hero 帧） */
.hero-slide-bg.ai {
  background:
    radial-gradient(900px 500px at 70% 35%, rgba(61, 214, 255, 0.10), transparent 60%),
    linear-gradient(180deg, #262628 0%, #101011 55%, #000000 100%);
}

/* 帧 3：B2B —— 白 / 工业灰 */
.hero-slide-bg.business {
  background:
    radial-gradient(900px 520px at 22% 30%, rgba(0, 0, 0, 0.03), transparent 60%),
    linear-gradient(180deg, #FFFFFF 0%, #F5F5F7 60%, #E8EAED 100%);
}

/* AI 深色帧上的文字反白（HTML 不改，CSS 处理） */
.hero-slide:nth-child(2) .hero-title,
.hero-slide:nth-child(2) .hero-subtitle { color: #FFFFFF; }

.hero-slide:nth-child(2) .hero-title .accent { color: var(--ai-cyan, #3DD6FF); }

.hero-slide:nth-child(2) .hero-subtitle { color: rgba(255, 255, 255, 0.72); }

/* AI 帧上的次要按钮：白色描边 */
.hero-slide:nth-child(2) .btn-secondary {
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.5);
}

.hero-slide:nth-child(2) .btn-secondary:hover {
  border-color: #FFFFFF;
  background: rgba(255, 255, 255, 0.08);
}

.hero-grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
  pointer-events: none;
}

.hero-slide:nth-child(2) .hero-grid-lines {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
}

.hero-slide-content {
  position: relative;
  z-index: 3;
  text-align: center;
  max-width: 880px;
  padding: 0 var(--space-md);
  margin-top: 72px;
}

/* Hero 徽章：Glass chip */
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  background: var(--glass-light-bg);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid var(--glass-light-border);
  border-radius: 999px;
  padding: 7px 16px;
  margin-bottom: 24px;
}

.hero-badge.cyan {
  color: var(--ai-cyan, #3DD6FF);
  border-color: rgba(61, 214, 255, 0.25);
  background: rgba(61, 214, 255, 0.10);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
}

.hero-badge .pulse-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-primary);
  flex-shrink: 0;
}

.hero-badge.cyan .pulse-dot { background: var(--ai-cyan, #3DD6FF); }

.hero-title {
  font-family: var(--font-heading);
  font-size: clamp(44px, 6.5vw, 84px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.04;
  color: var(--color-text);
  margin-bottom: 20px;
}

/* V1.2：标题中的强调词不再用红色，红色只留给 CTA */
.hero-title .accent { color: inherit; }

.hero-subtitle {
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.65;
  color: var(--color-text-muted);
  max-width: 560px;
  margin: 0 auto 36px;
}

.hero-dots {
  position: absolute;
  bottom: 48px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 5;
}

.hero-dot {
  width: 24px;
  height: 3px;
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.12);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.3s ease;
}

.hero-slide-bg.ai .hero-dot,
.hero-slider:has(.hero-slide:nth-child(2).active) .hero-dot { background: rgba(255, 255, 255, 0.25); }

.hero-dot.active { background: var(--color-primary); }

.scroll-indicator {
  position: absolute;
  bottom: 40px;
  right: 48px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: var(--color-text-muted);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

.scroll-indicator::after {
  content: '';
  width: 1px;
  height: 48px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.3), transparent);
}

@media (max-width: 768px) {
  .scroll-indicator { display: none; }
  .hero-dots { bottom: 32px; }
}

/* ============================================================
 * 4. Page Hero（内页页头；.cyan = 石墨深色页头）
 * ============================================================ */
.page-hero {
  position: relative;
  padding: 168px 0 88px;
  background: linear-gradient(180deg, #FFFFFF 0%, #F5F5F7 100%);
  overflow: hidden;
}

.page-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(800px 420px at 82% 20%, rgba(0, 0, 0, 0.035), transparent 60%);
  pointer-events: none;
}

/* 类名保留 .cyan 避免改 HTML；语义：石墨深色 Hero（AI 页用） */
.page-hero.cyan {
  background: linear-gradient(180deg, #262628 0%, #101011 60%, #000000 100%);
}

.page-hero.cyan .page-hero-bg {
  background:
    radial-gradient(800px 420px at 78% 25%, rgba(61, 214, 255, 0.10), transparent 60%);
}

.page-hero.cyan .display-title,
.page-hero.cyan h1 { color: #FFFFFF; }

.page-hero.cyan p { color: rgba(255, 255, 255, 0.65); }

.page-hero .container { position: relative; z-index: 2; }
.page-hero h1 { max-width: 840px; }
.page-hero p { margin-bottom: 0; }

/* ============================================================
 * 5. Section 标签 / 标题 / 通用文字
 * ============================================================ */
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 16px;
}

.section-label.cyan { color: var(--ai-cyan, #3DD6FF); }

.display-title {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-text);
  line-height: 1.15;
}

/* 深色容器上的标题反白（配合 JS/手动加 on-dark） */
.display-title.on-dark { color: #FFFFFF; }

.section-desc {
  font-size: var(--font-size-md);
  color: var(--color-text-muted);
  line-height: 1.7;
  max-width: 640px;
}

.calink-link {
  font-family: var(--font-accent);
  font-size: var(--font-size-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap 0.2s ease;
}

a:hover .calink-link, .calink-link:hover { gap: 10px; }

.muted { color: var(--color-text-muted); }

/* ============================================================
 * 6. 产品视觉占位（浅色底 + 产品剪影）
 * ============================================================ */
.roaster-visual {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background:
    radial-gradient(70% 60% at 50% 38%, rgba(0, 0, 0, 0.04), transparent 70%),
    linear-gradient(160deg, #FFFFFF 0%, #F5F5F7 60%, #ECEDEF 100%);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: transform 0.4s ease;
}

.roaster-visual:hover { transform: scale(1.01); }
.roaster-visual svg { width: 72%; height: auto; opacity: 0.95; }

.visual-placeholder-tag {
  position: absolute;
  bottom: 14px;
  left: 14px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  background: rgba(255, 255, 255, 0.75);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--color-border-light);
  border-radius: 999px;
  padding: 4px 12px;
}

.why-visual {
  width: 100%;
  aspect-ratio: 1;
  background: linear-gradient(160deg, #FFFFFF 0%, #F5F5F7 100%);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: transform 0.4s ease;
}

.why-visual:hover { transform: scale(1.01); }
.why-visual svg { width: 44%; height: auto; opacity: 0.9; }

.why-visual.cyan { background: linear-gradient(160deg, rgba(61, 214, 255, 0.08), #F5F5F7 70%); }
.why-visual.red { background: linear-gradient(160deg, rgba(255, 59, 48, 0.07), #F5F5F7 70%); }
.why-visual.gray { background: linear-gradient(160deg, #ECEDEF, #F5F5F7); }

.why-index {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--color-text-muted);
  letter-spacing: 0.1em;
}

.gallery-slot {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: linear-gradient(160deg, #FFFFFF 0%, #F5F5F7 100%);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: transform 0.3s ease;
}

.gallery-slot:hover { transform: scale(1.02); }

.app-visual {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: linear-gradient(160deg, #FFFFFF 0%, #F5F5F7 100%);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: transform 0.4s ease;
}

.app-visual:hover { transform: scale(1.01); }
.app-visual svg { width: 42%; height: auto; opacity: 0.9; }

.app-block-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.founder-portrait {
  width: 100%;
  aspect-ratio: 3 / 4;
  background:
    radial-gradient(70% 55% at 50% 32%, rgba(0, 0, 0, 0.05), transparent 70%),
    linear-gradient(165deg, #FFFFFF 0%, #F5F5F7 55%, #ECEDEF 100%);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.step-num {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--color-text-muted);
}

.num-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05);
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
}

.company-placeholder {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: linear-gradient(160deg, #FFFFFF 0%, #F5F5F7 100%);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ============================================================
 * 7. AI 数据区（Dark Glass，青色仅用于此处数据）
 * ============================================================ */
/* 白 → 灰 → 石墨 → 黑 的过渡带（放在 AI 区之前） */
.ai-transition {
  height: 64vh;
  min-height: 380px;
  background: linear-gradient(180deg,
    #FFFFFF 0%,
    #F5F5F7 26%,
    #C9CCd1 55%,
    #4A4C50 78%,
    #101011 100%);
}

.ai-dark-section {
  background: linear-gradient(180deg, #262628 0%, #101011 42%, #000000 100%);
}

.ai-panel {
  background: var(--glass-dark-bg);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  border: 1px solid var(--glass-dark-border);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  color: #FFFFFF;
}

.ai-panel-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.ai-status-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.ai-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ai-cyan, #3DD6FF);
  flex-shrink: 0;
}

.ai-status-time {
  font-family: var(--font-mono);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}

.ai-wave-box { width: 100%; height: 200px; }
.ai-wave-box svg { width: 100%; height: 100%; }

.ai-data-stream {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 16px;
}

.ai-data-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.ai-data-row:last-child { border-bottom: none; }

.ai-data-label { color: rgba(255, 255, 255, 0.55); font-size: 13px; }
.ai-data-value {
  color: var(--ai-cyan, #3DD6FF);
  font-family: var(--font-mono);
  font-size: 14px;
}

/* AI Pipeline 节点（深色区或浅色区均可） */
.ai-pipeline {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.ai-pipeline-node {
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  font-size: 13px;
  font-weight: 500;
  transition: border-color 0.25s ease, background 0.25s ease;
}

.ai-pipeline-node:hover {
  border-color: rgba(61, 214, 255, 0.45);
  background: rgba(61, 214, 255, 0.08);
}

.ai-pipeline-node .node-sub {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 2px;
}

.ai-pipeline-arrow { color: rgba(61, 214, 255, 0.5); font-size: 18px; flex-shrink: 0; }

/* ============================================================
 * 8. 认证 / 工程 / 规格表
 * ============================================================ */
.cert-slot {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 22px;
  background: #FFFFFF;
  border: 1px dashed rgba(0, 0, 0, 0.12);
  border-radius: var(--radius-lg);
  transition: border-color 0.25s ease, transform 0.25s ease;
}

.cert-slot:hover { border-color: rgba(255, 59, 48, 0.4); }

.cert-slot-icon { font-size: 26px; color: var(--color-accent); }
.cert-slot-title { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-text); }
.cert-slot-desc { font-size: var(--font-size-xs); color: var(--color-text-muted); }

/* 工程能力带：浅色（不再是深色带） */
.engineering-band {
  background: linear-gradient(180deg, var(--calink-soft-white, #FAFAFA) 0%, var(--calink-silver, #ECEDEF) 100%);
  border-top: 1px solid var(--color-border-light);
  border-bottom: 1px solid var(--color-border-light);
}

.spec-table { width: 100%; border-collapse: collapse; }
.spec-row { border-bottom: 1px solid var(--color-divider); }
.spec-row:hover { background: rgba(0, 0, 0, 0.02); }

.spec-label {
  padding: 14px 0;
  font-size: 14px;
  color: var(--color-text-muted);
  width: 42%;
}

.spec-value {
  padding: 14px 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text);
}

.spec-tbd {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--color-text-muted);
  border-bottom: 1px dashed rgba(0, 0, 0, 0.25);
  padding-bottom: 1px;
}

/* ============================================================
 * 9. 产品页二级导航
 * ============================================================ */
.product-subnav {
  position: sticky;
  top: 56px;
  z-index: 100;
  background: var(--glass-light-bg);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  border-bottom: 1px solid var(--color-border-light);
}

.product-subnav-inner {
  display: flex;
  gap: 32px;
  overflow-x: auto;
  scrollbar-width: none;
}

.product-subnav-inner::-webkit-scrollbar { display: none; }

.product-subnav-link {
  position: relative;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text-muted);
  text-decoration: none;
  padding: 16px 0;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.product-subnav-link::after {
  content: '';
  position: absolute;
  left: 0; bottom: -1px;
  width: 0;
  height: 2px;
  background: var(--color-primary);
  transition: width 0.25s ease;
}

.product-subnav-link:hover,
.product-subnav-link.is-active { color: var(--color-text); }

.product-subnav-link.is-active::after { width: 100%; }

/* ============================================================
 * 10. 表单（B2B 白底实体卡片）
 * ============================================================ */
.form-wrap {
  background: #FFFFFF;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  box-shadow: 0 12px 40px var(--color-border-light);
  padding: var(--space-2xl);
}

@media (max-width: 768px) { .form-wrap { padding: var(--space-xl); } }

.calink-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 8px;
}

.calink-input {
  width: 100%;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--color-text);
  background: #FFFFFF;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 10px;
  padding: 12px 16px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.calink-input::placeholder { color: var(--color-text-muted); }

.calink-input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(255, 59, 48, 0.12);
}

/* V1.4：仅在非键盘焦点时清除 outline（组件自带 ring；键盘焦点保留全局 :focus-visible） */
.calink-input:focus:not(:focus-visible) { outline: none; }

.calink-input option { background: #FFFFFF; }

.form-success {
  display: none;
  margin-top: 20px;
  padding: 14px 18px;
  background: var(--calink-soft-gray, #F5F5F7);
  border: 1px solid var(--color-border-light);
  border-left: 3px solid var(--color-primary);
  border-radius: 10px;
  font-size: 14px;
  color: var(--color-text);
}

.form-success.visible { display: block; }

/* ============================================================
 * 11. FAQ
 * ============================================================ */
.faq-item { border-bottom: 1px solid var(--color-divider); }

.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 600;
  color: var(--color-text);
  padding: 22px 0;
  transition: color 0.2s ease;
}

.faq-question:hover { color: var(--color-primary); }

.faq-toggle {
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  color: var(--color-text-muted);
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.faq-item.open .faq-toggle { transform: rotate(45deg); }

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
  font-size: 15px;
  line-height: 1.7;
  color: var(--color-text-muted);
}

.faq-item.open .faq-answer { max-height: 320px; padding-bottom: 20px; }

/* ============================================================
 * 12. 卡片（类名保留 card-dark，视觉为浅色卡片）
 * ============================================================ */
.card-dark {
  background: #FFFFFF;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  height: 100%;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.card-dark:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px var(--color-border);
  border-color: rgba(255, 59, 48, 0.20);
}

.card-dark.cyan:hover { border-color: rgba(61, 214, 255, 0.35); }

.card-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(255, 59, 48, 0.10);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 18px;
}

.card-icon.cyan {
  background: rgba(61, 214, 255, 0.10);
  color: var(--ai-cyan, #3DD6FF);
}

/* ============================================================
 * 13. 布局工具类（保留）
 * ============================================================ */
.calink-flex { display: flex; }
.calink-flex-center { display: flex; align-items: center; }
.calink-flex-between { display: flex; align-items: center; justify-content: space-between; }
.calink-flex-col { display: flex; flex-direction: column; }
.calink-wrap { flex-wrap: wrap; }
.calink-flex-end { display: flex; align-items: flex-end; }
.gap-xs { gap: var(--space-xs); }
.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }
.gap-xl { gap: var(--space-xl); }
.gap-2xl { gap: var(--space-2xl); }
.gap-3xl { gap: var(--space-3xl); }
.calink-grid-2, .calink-grid-3, .calink-grid-4 { display: grid; gap: var(--space-lg); }
.calink-grid-2 { grid-template-columns: repeat(2, 1fr); }
.calink-grid-3 { grid-template-columns: repeat(3, 1fr); }
.calink-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) {
  .calink-grid-3, .calink-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .calink-grid-2, .calink-grid-3, .calink-grid-4 { grid-template-columns: 1fr; }
}

/* ============================================================
 * 14. 移动导航
 * ============================================================ */
.mobile-menu-toggle {
  display: none;
  padding: 8px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text);
}

.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 500;
  background: var(--color-bg);
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  overflow-y: auto;
}

.mobile-nav.is-open { transform: translateX(0); z-index: 1001; }

.mobile-nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 499;
  background: rgba(0, 0, 0, 0.5);
  display: none;
}

.mobile-nav-backdrop.is-open { display: block; }

.mobile-nav-link {
  display: block;
  font-family: var(--font-accent);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--color-text);
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-light);
}

/* ---------- 响应式：导航折叠为汉堡 ---------- */
@media (max-width: 1024px) {
  .calink-nav, .nav-cta-btn { display: none !important; }
  .mobile-menu-toggle { display: flex !important; }
}

/* ============================================================
 * 15. 页脚（浅色）
 * ============================================================ */
.calink-footer {
  background-color: var(--calink-soft-gray, #F5F5F7);
  border-top: 1px solid var(--color-divider);
  padding: var(--space-4xl) 0 var(--space-2xl);
}

.footer-col-title {
  font-family: var(--font-accent);
  font-size: var(--font-size-2xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text);
  margin-bottom: var(--space-md);
}

.footer-link {
  display: block;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  padding: 5px 0;
  transition: color 0.2s ease;
}

.footer-link:hover { color: var(--color-text); }

.footer-social {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  font-family: var(--font-accent);
  font-size: var(--font-size-2xs);
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease, color 0.2s ease;
}

.footer-social:hover {
  background: var(--color-primary);
  color: #FFFFFF;
  transform: translateY(-2px);
}

.footer-legal-link {
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  transition: color 0.2s ease;
}

.footer-legal-link:hover { color: var(--color-text); }

/* ============================================================
 * 16. V1.2 减量化组件（文字/图片优先，非卡片）
 * ============================================================ */

/* Product Story：大产品舞台 + 纯文字 value points */
.product-stage {
  position: relative;
  width: 100%;
  min-height: 480px;
  height: 100%;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
  background:
    radial-gradient(75% 55% at 50% 42%, rgba(0, 0, 0, 0.05), transparent 70%),
    linear-gradient(165deg, #FFFFFF 0%, #F5F5F7 55%, #ECEDEF 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.product-stage svg { width: 68%; height: auto; }

.value-point {
  display: flex;
  gap: 24px;
  padding: 22px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.value-point-num {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--color-text-muted);
  padding-top: 3px;
  flex-shrink: 0;
}

.value-point-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text);
  margin-bottom: 6px;
}

.value-point-desc {
  font-size: 15px;
  color: var(--color-text-muted);
  line-height: 1.6;
  max-width: 420px;
}

/* Applications：2×2 大场景图优先 */
.scene-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-lg);
}

@media (max-width: 768px) {
  .scene-grid { grid-template-columns: 1fr; }
}

.scene-tile {
  position: relative;
  min-height: 320px;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border-light);
  background: linear-gradient(165deg, #FFFFFF 0%, #F5F5F7 55%, #E9EAED 100%);
  display: flex;
  align-items: flex-end;
  padding: 28px;
  text-decoration: none;
  transition: transform 0.4s ease;
}

.scene-tile:hover { transform: scale(1.01); }

.scene-tile-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 8px;
}

.scene-tile-title {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--color-text);
}

.scene-tile-desc {
  font-size: 14px;
  color: var(--color-text-muted);
  margin-top: 6px;
  max-width: 360px;
  line-height: 1.55;
}

.scene-tile-arrow {
  position: absolute;
  top: 24px;
  right: 24px;
  font-size: 20px;
  color: var(--color-text-muted);
  transition: transform 0.3s ease, color 0.3s ease;
}

.scene-tile:hover .scene-tile-arrow {
  transform: translate(4px, -4px);
  color: var(--color-text);
}

/* Trust Strip：细线 + Mono 极简文字 */
.trust-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.trust-strip-item {
  padding: 20px 12px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.trust-strip-item + .trust-strip-item { border-left: 1px solid rgba(0, 0, 0, 0.08); }

@media (max-width: 768px) {
  .trust-strip { grid-template-columns: repeat(2, 1fr); }
  .trust-strip-item:nth-child(3) { border-left: none; }
  .trust-strip-item:nth-child(n+3) { border-top: 1px solid rgba(0, 0, 0, 0.08); }
}

/* AI 页概念视觉槽位（Light Hero 右侧） */
.ai-concept {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
  background:
    radial-gradient(80% 60% at 60% 30%, rgba(61, 214, 255, 0.06), transparent 70%),
    linear-gradient(160deg, #FFFFFF 0%, #F5F5F7 60%, #ECEEF0 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  color: var(--color-text-muted);
  font-size: 13px;
  letter-spacing: 0.04em;
  line-height: 1.7;
}

/* Roast Curve：进入视口只绘制一次，不持续运动 */
.roast-curve-path {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
}

.curve-drawn .roast-curve-path {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Business Conversion：纯文字入口 */
.text-link-row {
  display: flex;
  gap: 36px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ============================================================
 * 17. 动效降级
 * ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .hero-slide-bg { animation: none; }
  body::after { transition: none; }
  .mega-panel, .card-dark, .roaster-visual, .why-visual, .app-visual, .scene-tile {
    transition: none;
  }
  /* V1.6 §49：mega 面板保留淡入淡出，去掉位移；crossfade 动画关闭 */
  .mega-panel { transform: none !important; transition: opacity 0.18s, visibility 0.18s; }
  .mega-content-switch > .container { animation: none; }
  .curve-drawn .roast-curve-path { transition: none; }
}

/* ---------- 页面整体淡入由 main.js 自动处理 ---------- */

/* ── V1.6.1 Section Helpers (Visual Design V2 备用；本轮不强制替换 inline style) ── */
.section-xl { padding: var(--section-space-xl) 0; }
.section-lg { padding: var(--section-space-lg) 0; }
.section-md { padding: var(--section-space-md) 0; }
.section-head { max-width: var(--section-heading-max); }
.section-copy { max-width: var(--copy-max); }
.section-centered { text-align: center; margin-inline: auto; }
.editorial-split { display: grid; gap: var(--editorial-gap); grid-template-columns: 1fr; }
@media (min-width: 1024px) { .editorial-split { grid-template-columns: 1fr 1fr; } }
.editorial-grid { display: grid; gap: var(--editorial-gap); }
.cta-group { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

/* ============================================================
 * V1.6.1 Accessibility — Skip Link / Hero Dot button reset
 * ============================================================ */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 2000;
  background: #1D1D1F;
  color: #fff;
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 0 0 10px 0;
}
.skip-link:focus { left: 0; }

/* .hero-dot 现为 <button>：补原生 button 样式重置（视觉与 span 版保持一致） */
.hero-dot {
  font: inherit;
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

/* ============ VISUAL V2 PHASE 1 — Hero & Product Story ============ */

/* —— Hero 双栏布局：左 copy / 右 product（三图层：bg / product slot / copy） —— */
.hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  align-items: center;
  gap: 48px;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 96px var(--container-padding-lg, 32px) 88px;
  position: relative;
  z-index: 3;
}

.hero-copy .hero-title {
  font-size: clamp(44px, 5vw, 72px);
  letter-spacing: -0.03em;
  line-height: 1.06;
  margin-bottom: 22px;
  text-align: left;
}

.hero-copy .hero-subtitle {
  max-width: 520px;
  margin: 0 0 34px;
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.55;
  text-align: left;
}

.hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* —— 产品视觉槽位：机器是第一眼主体（占 Hero 面积约 45–55%） —— */
.hero-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 420px;
}

.hero-product-slot {
  width: 100%;
  max-width: 620px;
  height: min(66vh, 620px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.hero-product-slot img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

/* slide 3（BUSINESS）：产品高度介于 slide1 与 slide2 之间 */
.hero-product-slot--business {
  max-width: 570px;
  height: min(61vh, 570px);
}

/* —— AI 帧：产品图（较小）+ Roast Curve 概念 UI 卡片组合 —— */
.hero-ai-composition {
  position: relative;
  width: 100%;
  max-width: 640px;
}

.hero-product-slot--ai {
  max-width: 520px;
  height: min(56vh, 520px);
  margin-inline: auto;
}

.hero-curve-card {
  position: absolute;
  right: 0;
  bottom: 24px;
  z-index: 2;
  width: min(320px, 86%);
  background: #161618;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
}

.hero-curve-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 10px;
}

.hero-curve-tag { color: rgba(61, 214, 255, 0.75); }

.hero-curve-card svg {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 10px;
}

.hero-curve-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 12px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}

.hero-curve-metrics b {
  color: #FFFFFF;
  font-weight: 600;
  margin-left: 2px;
}

/* —— 概念资产小标注 —— */
.concept-tag {
  position: absolute;
  bottom: 10px;
  right: 12px;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  opacity: 0.75;
}

/* —— 背景层微调（soft warm-white studio / warm neutral stage；AI 深色帧不动） —— */
.hero-slide-bg.roaster {
  background:
    radial-gradient(1100px 640px at 74% 26%, rgba(0, 0, 0, 0.035), transparent 62%),
    radial-gradient(900px 500px at 30% 85%, rgba(182, 160, 130, 0.07), transparent 60%),
    linear-gradient(180deg, #FDFCFA 0%, #F5F4F1 55%, #ECEAE6 100%);
}

.hero-slide-bg.business {
  background:
    radial-gradient(1000px 560px at 26% 28%, rgba(182, 160, 130, 0.06), transparent 62%),
    linear-gradient(180deg, #FBF9F6 0%, #F3F0EA 55%, #E9E5DD 100%);
}

/* ============================================================
 * 02. PRODUCT STORY — 纯白 section + 去卡片感产品舞台
 * ============================================================ */
.story-section { background: #FFFFFF; }

.story-split { grid-template-columns: 1.1fr 1fr; }

.product-stage {
  background: transparent;
  border: none;
  min-height: 560px;
}

.product-visual-slot {
  width: 100%;
  height: 100%;
  min-height: 540px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  position: relative;
}

.product-visual-slot img {
  width: 88%;
  height: 88%;
  object-fit: contain;
  object-position: center bottom;
}

.product-visual-slot .concept-tag {
  bottom: 14px;
  left: 16px;
  right: auto;
}

/* —— 右栏垂直节奏（label ↔ headline 16px；headline ↔ desc；desc ↔ value points） —— */
.story-copy .section-label {
  display: inline-block;
  margin-bottom: 16px;
}

.story-copy .display-title { margin-bottom: var(--space-md); }

.story-section .section-desc { margin-bottom: var(--space-xl); }

/* —— Mobile —— */
@media (max-width: 1023px) {
  .hero-layout {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 104px var(--container-padding, 20px) 72px;
    text-align: center;
  }

  .hero-copy .hero-title,
  .hero-copy .hero-subtitle { text-align: center; }

  .hero-copy .hero-subtitle { margin-inline: auto; }

  .hero-ctas { justify-content: center; }

  .hero-slider { min-height: 600px; }

  .hero-visual { min-height: 0; }

  .hero-product-slot { height: min(42vh, 400px); }

  .hero-curve-card {
    position: static;
    margin: 16px auto 0;
  }

  .story-split { grid-template-columns: 1fr; }

  .product-stage { min-height: 420px; }

  .product-visual-slot { min-height: 400px; }

  .product-visual-slot img { width: 92%; height: 92%; }
}


/* ============================================================
 * VISUAL V2 PHASE 2 — 03 CALINK AI / 04 APPLICATIONS（层叠追加，勿删旧规则）
 * ============================================================ */

/* ---- 03. CALINK AI：唯一受控功能面 ---- */

.p2-ai-panel {
  background: #141416;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 16px;
  padding: 22px 24px;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.p2-ai-demo-tag {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.35);
  white-space: nowrap;
}

/* 机器关系层：曲线 flex:1 + 机器图固定宽 */
.p2-ai-visual {
  display: flex;
  align-items: flex-end;
  gap: 16px;
}

.p2-ai-visual .ai-wave-box { flex: 1; min-width: 0; }

.p2-ai-machine {
  width: 150px;
  height: 150px;
  object-fit: contain;
  opacity: 0.85;
  flex-shrink: 0;
}

/* 数据行去卡片感（保险覆盖） */
.p2-ai-panel .ai-data-row {
  background: transparent;
  border-radius: 0;
}

/* 一次性数值动效：curve-drawn 触发，opacity 0→1 + translateY(4px→0) */
.p2-ai-panel .ai-data-value {
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.p2-ai-panel .ai-data-row:nth-child(1) .ai-data-value { transition-delay: 0.15s; }
.p2-ai-panel .ai-data-row:nth-child(2) .ai-data-value { transition-delay: 0.3s; }
.p2-ai-panel .ai-data-row:nth-child(3) .ai-data-value { transition-delay: 0.45s; }
.p2-ai-panel .ai-data-row:nth-child(4) .ai-data-value { transition-delay: 0.6s; }

.curve-drawn .ai-data-value {
  opacity: 1;
  transform: translateY(0);
}

/* Pipeline：一行纯 mono 文字链（无背景/边框/圆角/hover） */
.p2-ai-chain {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.8;
}

.p2-ai-chain-arrow {
  color: rgba(61, 214, 255, 0.4);
}

/* ---- 04. APPLICATIONS：2×2 全图 editorial grid ---- */

/* 03 深 → 04 浅 顶部极细分隔线 */
.p2-apps-section {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.p2-scene-grid {
  gap: 56px 48px;
}

/* 去卡片化：透明底、无边框、无圆角、无整卡 transform；纵向堆叠（图在上，文字在下） */
.p2-scene-tile {
  background: transparent;
  border: none;
  border-radius: 0;
  min-height: 0;
  aspect-ratio: auto;
  padding: 0;
  flex-direction: column;
  align-items: stretch;
  overflow: visible;
  transition: none;
}

.p2-scene-tile:hover { transform: none; }

/* 图容器：4/3、overflow hidden 供 hover scale */
.p2-scene-media {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  margin-bottom: 20px;
}

.p2-scene-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform 0.6s ease;
}

.p2-scene-tile:hover .p2-scene-media img { transform: scale(1.03); }

/* 文字块在图下面板外 */
.p2-scene-text-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

/* 箭头：文字行右侧（覆盖旧绝对定位） */
.p2-scene-tile .p2-scene-arrow {
  position: static;
  flex-shrink: 0;
}

/* ---- PHASE 2 移动端（≤768px，复用现有断点） ---- */

@media (max-width: 768px) {
  /* 机器图：隐藏，保证面板稳定 */
  .p2-ai-machine { display: none; }

  .p2-ai-panel { padding: 18px 16px; }

  /* 04：单列、收紧间距（顺序 = 图 → 标题 → 描述） */
  .p2-scene-grid { gap: 40px; }

  .p2-scene-media { margin-bottom: 16px; }
}

/* ============================================================
 * VISUAL V2 PHASE 3 — 05 FOR BUSINESS / 06 COMPANY & TRUST /
 * 07 FINAL CONVERSION + 整页装配微调（层叠追加，勿删旧规则）
 * ============================================================ */

/* ---- 全局：calink-link 中性化（全站 calink-link 均非主 CTA；03 深色节未使用 calink-link，覆盖安全） ---- */
.calink-link { color: var(--color-text); }

/* ---- 05. FOR BUSINESS：premium B2B editorial split ---- */

/* 白底（与 04 bg-alt 节奏交替），顶部 hairline 衔接 04 */
.p3-biz-section {
  background: #FFFFFF;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  text-align: left;
}

.p3-biz-grid {
  align-items: center;
  gap: 60px;
}

/* 左栏：大型商业环境媒体槽（媒体块，非卡片） */
.p3-biz-media {
  width: 100%;
  aspect-ratio: 3 / 2;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
  overflow: hidden;
}

.p3-biz-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 右栏：左对齐文字 */
.p3-biz-text { text-align: left; }

/* CTA 组左对齐（复用 calink-flex-center，仅去掉旧居中内联习惯的依赖） */
.p3-biz-ctas { justify-content: flex-start; }

/* 合作信息：竖排 numbered editorial list */
.p3-biz-steps {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.p3-biz-step {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 15px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  text-decoration: none;
}

.p3-biz-step-num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--color-text-muted);
  flex-shrink: 0;
  min-width: 24px;
}

.p3-biz-step-label {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-text-muted);
  flex: 1;
  transition: color 0.2s ease;
}

.p3-biz-step-arrow {
  color: var(--color-text);
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.p3-biz-step:hover .p3-biz-step-label { color: var(--color-text); }
.p3-biz-step:hover .p3-biz-step-arrow { transform: translateX(4px); }

/* ---- 06. COMPANY & TRUST：documentary / engineering credibility ---- */

/* 与相邻的 05 白底之间加 hairline，保证白→白节奏可读 */
.p3-eng-section { border-top: 1px solid rgba(0, 0, 0, 0.08); }

/* 全宽工程叙事媒体槽（未来只换 src 为真实工程摄影） */
.p3-eng-media {
  width: 100%;
  aspect-ratio: 21 / 9;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
  overflow: hidden;
  margin-bottom: var(--space-4xl);
}

.p3-eng-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Founder slot：保留 honest placeholder 语义，去灰盒子感（无假肖像） */
.p3-founder-slot {
  aspect-ratio: 4 / 5;
  background: transparent;
  border: 1px dashed rgba(0, 0, 0, 0.18);
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-text-muted);
  text-align: center;
  padding: 16px;
}

/* ---- PHASE 3 移动端（≤768px） ---- */

@media (max-width: 768px) {
  /* 05：媒体在上、文字在下；CTA 左对齐可换行（calink-wrap 已有） */
  .p3-biz-grid { gap: 36px; }

  /* 06：工程媒体降为 16/9，founder slot 自然堆叠 */
  .p3-eng-media { aspect-ratio: 16 / 9; }

  /* 03 AI：保留克制机器锚点（覆盖 PHASE 2 的 display:none） */
  .p2-ai-machine {
    display: block;
    width: 76px;
    height: 76px;
    opacity: 0.7;
    flex-shrink: 0;
  }
}

/* ============================================================
 * 18. CALINK BRAND WORLD — 可替换媒体槽系统（V2.0）
 * CONTENT SLOT + MEDIA SLOT + LAYOUT SYSTEM
 * 所有 .photo-slot 内的图片未来只换 src，不改版式
 * ============================================================ */

/* 通用照片槽：圆角 + 裁切 + hover 呼吸 */
.photo-slot {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
  overflow: hidden;
  background: linear-gradient(160deg, #FFFFFF 0%, #F5F5F7 100%);
  transition: transform 0.4s ease;
}
.photo-slot:hover { transform: scale(1.01); }
.photo-slot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.photo-slot--45 { aspect-ratio: 4 / 5; }
.photo-slot--11 { aspect-ratio: 1 / 1; }
.photo-slot--169 { aspect-ratio: 16 / 9; }
.photo-slot--219 { aspect-ratio: 21 / 9; }

/* 深色区照片槽（边框调亮） */
.ai-dark-section .photo-slot,
.photo-slot--on-dark { border-color: rgba(255, 255, 255, 0.12); background: #17181A; }

/* Demo 徽标：标记可替换演示资产（半透明，不抢视觉） */
.demo-badge {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(17, 18, 20, 0.55);
  backdrop-filter: blur(6px);
  color: rgba(255, 255, 255, 0.92);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  pointer-events: none;
  z-index: 2;
}
/* 文本流内联徽章：用于 section-label 等非定位上下文（与图片角标区分开） */
.demo-badge--inline {
  position: static;
  display: inline-block;
  vertical-align: 2px;
  padding: 3px 10px;
  background: rgba(17, 18, 20, 0.07);
  backdrop-filter: none;
  color: var(--color-text-muted, #6b6560);
}


/* 让占位容器直接升级为照片槽：img 充满 */
.roaster-visual img, .gallery-slot img, .app-visual img, .founder-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.roaster-visual:has(img), .gallery-slot:has(img), .app-visual:has(img), .founder-portrait:has(img) {
  display: block;
  padding: 0;
}
.gallery-slot { position: relative; }
.app-visual { position: relative; }
.founder-portrait { position: relative; }

/* mega 菜单图片：统一裁切，防止宽高比差异 */
.mega-featured-media img, .mega-app-item img, .mega-media img {
  object-fit: cover;
  aspect-ratio: 26 / 17;
}

/* ---- 人物模块（Founder / Team） ---- */
.person-card { display: flex; flex-direction: column; gap: 12px; }
.person-card .photo-slot { margin-bottom: 4px; }
.person-name {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
}
.person-role {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.person-note { font-size: var(--font-size-sm); color: var(--color-text-muted); line-height: 1.6; }

/* ---- 公司数据模块（全部 DEMO 可替换） ---- */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--color-divider);
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.stat-item {
  background: var(--color-bg);
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.stat-num {
  font-family: var(--font-display);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.02em;
  color: var(--color-text);
  line-height: 1.1;
}
.stat-num small { font-size: 0.55em; font-weight: 500; color: var(--color-text-muted); margin-left: 2px; }
.stat-label {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

/* ---- 认证占位芯片（Prototype placeholder，未来换证书扫描件） ---- */
.cert-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.cert-chip {
  border: 1px dashed rgba(0, 0, 0, 0.18);
  border-radius: var(--radius-md, 10px);
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: linear-gradient(160deg, #FFFFFF 0%, #F8F8FA 100%);
}
.cert-chip-code {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.02em;
}
.cert-chip-label { font-size: 13px; color: var(--color-text-muted); }
.cert-chip-status {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-top: 6px;
}

/* ---- 双联摄影带（编辑排版节奏） ---- */
.media-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.media-trio {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.media-caption {
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

/* ---- 应用场景页照片升级：文字盖在图上太重，保持左图右文 ---- */

/* ---- 移动端（≤1024px / ≤768px） ---- */
@media (max-width: 1024px) {
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .cert-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-item { padding: 20px 18px; }
  .cert-grid { grid-template-columns: 1fr; }
  .media-pair, .media-trio { grid-template-columns: 1fr; }
  .photo-slot--219 { aspect-ratio: 16 / 9; }
  .photo-slot--45 { aspect-ratio: 4 / 5; }
}

/* ---- 内页分栏 Hero（产品页：左文案 / 右产品渲染，透明底 PNG 直接叠加渐变） ---- */
.page-hero--split .container {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: center;
}
.page-hero-product {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 320px;
}
.page-hero-product img {
  width: 100%;
  max-width: 420px;
  height: auto;
  filter: drop-shadow(0 32px 48px rgba(0, 0, 0, 0.18));
}
@media (max-width: 900px) {
  .page-hero--split .container { grid-template-columns: 1fr; }
  .page-hero-product { min-height: 0; order: 0; }
  .page-hero-product img { max-width: 260px; }
}

/* ============================================================
 * IA V2 (2026-09-28) — 移动端折叠导航 + 新页面组件
 * ============================================================ */

/* ---- 移动端分组折叠菜单 ---- */
.mnav-group { border-bottom: 1px solid rgba(239, 243, 251, .10); }
.mnav-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-accent);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.02em;
  color: var(--color-text);
  padding: 14px 0;
  text-align: left;
}
.mnav-chevron { transition: transform 0.25s ease; flex-shrink: 0; }
.mnav-group.open .mnav-chevron { transform: rotate(180deg); }
.mnav-sub { display: none; padding: 0 0 12px 14px; }
.mnav-group.open .mnav-sub { display: block; }
.mnav-sub-link {
  display: block;
  font-size: var(--font-size-base);
  color: var(--color-text-muted);
  padding: 9px 0;
  transition: color 0.2s ease;
}
.mnav-sub-link:hover { color: var(--color-text); }
.mnav-sub-all { font-weight: var(--font-weight-semibold); color: var(--color-text); }

/* ---- 下载页行（文件名 / 类型 / 状态） ---- */
.dl-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: 18px 4px;
  border-bottom: 1px solid var(--color-divider);
}
.dl-row-name { font-weight: var(--font-weight-semibold); }
.dl-row-meta { font-size: var(--font-size-sm); color: var(--color-text-muted); margin-top: 2px; }

/* ---- 服务网点行 ---- */
.loc-row {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1fr auto;
  gap: var(--space-md);
  align-items: center;
  padding: 18px 4px;
  border-bottom: 1px solid var(--color-divider);
}
@media (max-width: 768px) {
  .loc-row { grid-template-columns: 1fr; gap: 4px; }
}

/* ---- 新闻行 ---- */
.news-item {
  display: block;
  padding: 22px 4px;
  border-bottom: 1px solid var(--color-divider);
  transition: background 0.2s ease;
}
.news-item:hover { background: var(--color-bg-alt); }
.news-item-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 6px;
}

/* ---- CALINK Care 套餐卡 ---- */
.plan-card {
  display: flex;
  flex-direction: column;
  padding: 32px 28px;
  height: 100%;
}
.plan-card-price {
  font-family: var(--font-accent);
  font-size: clamp(26px, 3vw, 34px);
  font-weight: var(--font-weight-semibold);
  margin: 14px 0 4px;
}
.plan-card-list { list-style: none; padding: 0; margin: var(--space-md) 0 var(--space-lg); flex: 1; }
.plan-card-list li {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  padding: 8px 0 8px 22px;
  position: relative;
  border-bottom: 1px solid var(--color-border-light);
}
.plan-card-list li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--color-primary);
  font-weight: 600;
}

/* ---- 通用分类 chip 行 ---- */
.chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.chip {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 14px;
  border: 1px solid var(--color-border-light);
  border-radius: 999px;
  color: var(--color-text-muted);
}

/* ============================================================
 * IA V2.1：Footer 网格（替代内联 5 列，修复移动端溢出）
 * ============================================================ */
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: var(--space-3xl, 48px);
}

@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; }
}

@media (max-width: 768px) {
  .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 28px; }
}

@media (max-width: 480px) {
  .footer-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* ============================================================
 * VISUAL DISTILLATION & PRESENTATION LAYER REFINEMENT V1
 * 2026-10-01 — 表现层升级：IA 不变，只改"怎么说"
 * ============================================================ */

/* ---------- A. CTA 三级体系：红色降级为品牌信号色 ---------- */

/* Level 1 — Primary：石墨实心（不再默认红） */
.btn-primary {
  background-color: #1D1D1F;
  border-color: #1D1D1F;
  color: #FFFFFF;
}
/* F21-UX-R1B：hover 不再改变底色 / 描边，只做文字反馈 + 1px 上浮
   （同时覆盖 design-system.css 的 .btn-primary:hover 红色填充） */
.btn-primary:hover {
  background-color: #1D1D1F;
  border-color: #1D1D1F;
  color: #FF6B5E;
  transform: translateY(-1px);
  box-shadow: none;
}
.btn-primary:active { transform: translateY(0); }

/* Level 2 — Secondary：中性描边，不抢 Primary */
.btn-secondary {
  background-color: transparent;
  color: var(--color-text);
  border-color: rgba(0, 0, 0, 0.28);
}
.btn-secondary:hover {
  background-color: transparent;
  border-color: rgba(0, 0, 0, 0.28);
  color: #C7251E;
  transform: translateY(-1px);
}

/* 深色区上的 Primary：light/glass 反白 */
.ai-dark-section .btn-primary,
.on-dark .btn-primary {
  background: rgba(245, 245, 247, 0.96);
  border-color: transparent;
  color: #111112;
}
.ai-dark-section .btn-primary:hover,
.on-dark .btn-primary:hover {
  color: #C7251E;
  box-shadow: none;
}
.ai-dark-section .btn-secondary,
.on-dark .btn-secondary {
  color: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.35);
}
.ai-dark-section .btn-secondary:hover,
.on-dark .btn-secondary:hover {
  color: #FF6B5E;
}

/* 导航 CTA：石墨 pill */
.nav-cta-btn { background: #1D1D1F; }
.nav-cta-btn:hover { color: #C7251E; }

/* Eyebrow：红色退场，改石墨；红只留在 active/selected 微高光 */
.section-label { color: #55565A; }
.section-label.cyan { color: var(--ai-cyan, #3DD6FF); }
.ai-dark-section .section-label,
.on-dark .section-label { color: rgba(255, 255, 255, 0.55); }

/* ---------- B. Text Link 系统（Level 3） ---------- */

.calink-link,
.calink-text-link {
  font-family: var(--font-accent);
  font-size: 14px;
  font-weight: 550;
  letter-spacing: 0;
  text-transform: none;
  color: var(--color-text);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  transition: color 0.22s ease, gap 0.22s ease;
  cursor: pointer;
}
a:hover .calink-link, .calink-link:hover,
a:hover .calink-text-link, .calink-text-link:hover {
  color: #C7251E;
}
/* 箭头 2px 位移，替代旧版 gap 变化（避免行内布局抖动） */
.calink-text-link .icon-arrow { transition: transform .2s ease; }
.calink-text-link:hover .icon-arrow { transform: translateX(2px); }
.calink-link:focus-visible, .calink-text-link:focus-visible {
  outline: 2px solid #1D1D1F;
  outline-offset: 4px;
  border-radius: 2px;
}
/* 深色区链接 */
.ai-dark-section .calink-link, .on-dark .calink-link,
.ai-dark-section .calink-text-link, .on-dark .calink-text-link {
  color: rgba(255, 255, 255, 0.88);
}
.ai-dark-section .calink-link:hover, .on-dark .calink-link:hover,
.ai-dark-section .calink-text-link:hover, .on-dark .calink-text-link:hover {
  color: #FF6B5E;
}

/* 全站键盘焦点可见 */
a:focus-visible, button:focus-visible {
  outline: 2px solid #1D1D1F;
  outline-offset: 3px;
  border-radius: 3px;
}
.ai-dark-section a:focus-visible, .on-dark a:focus-visible,
.ai-dark-section button:focus-visible, .on-dark button:focus-visible {
  outline-color: rgba(255, 255, 255, 0.9);
}

/* ---------- C. Card 微交互：去红边、统一克制动效 ---------- */

.card-dark { transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease; }
.card-dark:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.08);
  border-color: rgba(0, 0, 0, 0.14);
}
.card-dark.cyan:hover { border-color: rgba(61, 214, 255, 0.35); }

/* 卡片内图片轻微 scale */
.card-dark .photo-slot img,
.card-dark > img { transition: transform 0.35s ease; }
.card-dark:hover .photo-slot img,
.card-dark:hover > img { transform: scale(1.02); }

/* ---------- D. Section 过渡系统：杜绝"假渐变 + 黑线" ---------- */

/* 首页 AI 区过渡带：多停靠点、拉长距离、无缝衔接上下 */
.ai-transition {
  height: 72vh;
  min-height: 420px;
  background: linear-gradient(180deg,
    #FFFFFF 0%,
    #FAFAFA 14%,
    #F0F0F2 30%,
    #D8DADE 46%,
    #AEB2B8 60%,
    #787C83 72%,
    #43464B 84%,
    #1E1F21 93%,
    #262628 100%);
  border: none;
}
/* AI 深色区起点色与过渡带终点一致，消除接缝 */
.ai-dark-section {
  background: linear-gradient(180deg, #262628 0%, #101011 42%, #000000 100%);
  border: none;
}

/* 通用过渡工具类 */
.section-bridge-dark {
  height: 40vh;
  min-height: 240px;
  background: linear-gradient(180deg,
    #FFFFFF 0%, #F2F2F4 28%, #C9CCD1 55%, #6E7278 78%, #262628 100%);
}
.section-bridge-light {
  height: 40vh;
  min-height: 240px;
  background: linear-gradient(180deg,
    #000000 0%, #262628 22%, #6E7278 45%, #C9CCD1 68%, #F2F2F4 86%, #FFFFFF 100%);
}

/* ---------- E. Editorial 组件族 ---------- */

/* 大字陈述（非 Hero 的视觉主角句） */
.editorial-statement {
  font-family: var(--font-accent);
  font-weight: 600;
  font-size: clamp(26px, 3.4vw, 42px);
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--color-text);
  max-width: 880px;
}
.editorial-statement .accent { color: var(--color-primary); } /* 极少量红 */

/* 安静区：大留白 + 单点内容 */
.quiet-section { padding: calc(var(--space-5xl) * 1.15) 0; }

/* 编号横向行（替代价值观卡片） */
.feature-lines { display: flex; flex-direction: column; }
.feature-line {
  display: grid;
  grid-template-columns: 64px minmax(0, 320px) 1fr;
  gap: 24px;
  align-items: baseline;
  padding: 22px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.feature-line:last-child { border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.feature-line-num {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
}
.feature-line-title { font-weight: 600; font-size: 17px; }
.feature-line-desc { font-size: 14px; line-height: 1.7; color: var(--color-text-muted); }
@media (max-width: 768px) {
  .feature-line { grid-template-columns: 44px 1fr; }
  .feature-line-desc { grid-column: 2; }
}

/* 数据带（mono 技术元数据） */
.data-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 40px;
  padding: 20px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.data-cell { display: flex; flex-direction: column; gap: 4px; }
.data-cell-k {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.data-cell-v { font-size: 15px; font-weight: 600; }

/* 引述块 */
.quote-block { max-width: 760px; }
.quote-block-text {
  font-family: var(--font-accent);
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 550;
  line-height: 1.45;
  color: var(--color-text);
}
.quote-block-attr {
  margin-top: 18px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

/* ---------- F. Service Directory（Contact / Support 分流层） ---------- */

.service-directory { display: flex; flex-direction: column; }
.service-row {
  display: grid;
  grid-template-columns: minmax(0, 300px) 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 24px 8px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: inherit;
  background: none;
  border-left: none; border-right: none; border-bottom: none;
  font: inherit;
  text-align: left;
  width: 100%;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.service-row:last-child { border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.service-row:hover { background: transparent; }
.service-row:hover .service-row-title,
.service-row:hover .calink-text-link { color: #C7251E; }
.service-row-title { font-weight: 600; font-size: 17px; }
.service-row-desc { font-size: 14px; line-height: 1.6; color: var(--color-text-muted); }
.service-row .calink-text-link { white-space: nowrap; }
@media (max-width: 768px) {
  .service-row { grid-template-columns: 1fr; gap: 8px; padding: 20px 4px; }
  .service-row .calink-text-link { margin-top: 4px; }
}

/* ---------- G. EOW Traceability Record（Demo 溯源档案） ---------- */

.trace-record {
  border: 1px solid rgba(0, 0, 0, 0.09);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #FFFFFF;
}
.trace-row {
  display: grid;
  grid-template-columns: minmax(0, 220px) 1fr;
  gap: 20px;
  padding: 15px 24px;
  border-top: 1px solid var(--color-border-light);
}
.trace-row:first-child { border-top: none; }
.trace-k {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  align-self: center;
}
.trace-v { font-size: 15px; font-weight: 550; align-self: center; }
.trace-v .spec-tbd { margin-left: 8px; }
@media (max-width: 640px) {
  .trace-row { grid-template-columns: 1fr; gap: 4px; padding: 14px 18px; }
}

/* ---------- H. Chapter List（Beginner Classroom 章节式） ---------- */

.chapter-list { display: flex; flex-direction: column; }
.chapter-row {
  display: grid;
  grid-template-columns: 84px 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 24px 8px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.chapter-row:last-child { border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.chapter-num {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
}
.chapter-body { display: flex; flex-direction: column; gap: 5px; }
.chapter-title { font-weight: 600; font-size: 17.5px; }
.chapter-desc { font-size: 14px; line-height: 1.65; color: var(--color-text-muted); }
.chapter-formats { display: flex; gap: 8px; flex-shrink: 0; }
.chapter-format {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  border: 1px solid rgba(0, 0, 0, 0.14);
  border-radius: 999px;
  padding: 4px 12px;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .chapter-row { grid-template-columns: 1fr; gap: 10px; padding: 20px 4px; }
  .chapter-formats { margin-top: 2px; }
}

/* ---------- I. Download Center 表格化 ---------- */

.dl-table { border-top: 1px solid rgba(0, 0, 0, 0.1); }
.dl-row {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  padding: 18px 8px;
  border-bottom: 1px solid var(--color-border);
}
.dl-row-head {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  padding-top: 12px;
  padding-bottom: 12px;
}
.dl-name { font-weight: 600; font-size: 15.5px; }
.dl-meta { font-size: 13px; color: var(--color-text-muted); }
@media (max-width: 768px) {
  .dl-row { grid-template-columns: 1fr auto; gap: 6px 16px; }
  .dl-row-head { display: none; }
}

/* ---------- J. News / Stories 编辑化 ---------- */

.featured-story {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 40px;
  align-items: end;
  text-decoration: none;
  color: inherit;
}
.featured-story .photo-slot { margin: 0; }
.featured-story-title {
  font-family: var(--font-accent);
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 600;
  line-height: 1.3;
  margin: 10px 0 12px;
  transition: color 0.2s ease;
}
.featured-story:hover .featured-story-title { color: #000; }
@media (max-width: 900px) {
  .featured-story { grid-template-columns: 1fr; gap: 20px; align-items: start; }
}

/* ---------- K. 图片节奏工具 ---------- */

.img-feature { width: 100%; border-radius: var(--radius-lg); overflow: hidden; }
.img-feature img { display: block; width: 100%; height: auto; transition: transform 0.5s ease; }
.img-feature:hover img { transform: scale(1.015); }

/* 图片揭示动效（复用 fade-in-up 的 visible 机制） */
.reveal-img {
  clip-path: inset(0 0 12% 0);
  opacity: 0.001;
  transition: clip-path 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s ease;
}
.reveal-img.visible { clip-path: inset(0 0 0 0); opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .reveal-img { clip-path: none; opacity: 1; transition: none; }
  .card-dark, .card-dark .photo-slot img, .img-feature img { transition: none; }
}

/* ---------- L. Media feature（编辑化全宽大图，配合小图形成尺度节奏） ---------- */
.media-feature .photo-slot { aspect-ratio: 21 / 9; }
@media (max-width: 768px) {
  .media-feature .photo-slot { aspect-ratio: 16 / 10; }
}

/* feature-lines 变体：链式标签列更宽（EOW 九字段） */
.feature-lines--chain .feature-line { grid-template-columns: 170px minmax(0, 300px) 1fr; }
@media (max-width: 768px) {
  .feature-lines--chain .feature-line { grid-template-columns: 1fr; gap: 4px; }
  .feature-lines--chain .feature-line-desc { grid-column: 1; }
}

/* ============================================================
 * REB PHASE 1 — GLOBAL DESIGN SYSTEM（2026-10-01）
 * 规范：CALINK WEBSITE REBUILD V1 §06–§10
 * Header 68px / nav 去下划线去红 / 链接五类 / 首页与产品页原语
 * ============================================================ */

/* ---------- R1. Header 68px（§07：64–72px） ---------- */
.site-header { height: 68px; }
body::after { inset: 68px 0 0; }
.mega-panel { top: 68px; }
.product-subnav { top: 68px; }

/* ---------- R2. Nav link：无下划线、无红色（§07/§08-1） ---------- */
.site-header .nav-link::after { display: none; }
.site-header .nav-link { transition: color 0.2s ease, opacity 0.2s ease; }
.site-header .nav-link:hover { color: var(--calink-black, #000); }
.site-header .nav-link[aria-current="page"] { font-weight: 600; }
.has-mega.is-open > .nav-link { color: var(--calink-black, #000); }
.site-header.on-dark-hero .nav-link:hover { color: rgba(255, 255, 255, 0.75); }

/* Contact Us：graphite solid，去 pill */
.nav-cta-btn { border-radius: 10px; min-height: 40px; padding: 9px 22px; }

/* ---------- R3. 首页单 Hero（§11 HOME 01） ---------- */
.hero-home {
  position: relative;
  background: linear-gradient(180deg, #FAFAF8 0%, #F5F4F1 100%);
  padding: calc(68px + var(--space-4xl)) 0 var(--space-4xl);
  overflow: hidden;
}
.hero-home-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: clamp(40px, 6vw, 96px);
}
.hero-home-eyebrow {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #55565A;
  margin-bottom: var(--space-md);
}
.hero-home-brand {
  font-family: var(--font-accent, var(--font-sans));
  font-size: clamp(19px, 1.8vw, 24px);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--color-primary);
  margin-bottom: var(--space-md);
}
.hero-home-title {
  font-family: var(--font-accent);
  font-weight: 700;
  font-size: clamp(48px, 7vw, 88px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-md);
}
.hero-home-prop {
  font-size: clamp(17px, 1.6vw, 21px);
  line-height: 1.6;
  color: var(--color-text-muted);
  max-width: 480px;
  margin-bottom: var(--space-xl);
}
.hero-home-cta { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-home-media { position: relative; }
.hero-home-media img { display: block; width: 100%; height: auto; }
@media (max-width: 900px) {
  .hero-home { padding: calc(68px + var(--space-3xl)) 0 var(--space-3xl); }
  .hero-home-grid { grid-template-columns: 1fr; gap: var(--space-2xl); }
  .hero-home-media { order: 2; } /* Text → CTA → Media */
}

/* ---------- R4. B2B 转化带（§11 HOME 05） ---------- */
.b2b-band {
  background: var(--calink-graphite, #1D1D1F);
  color: #F5F5F7;
  padding: var(--space-4xl) 0;
}
.b2b-band .section-label { color: rgba(255, 255, 255, 0.5); }
.b2b-band-title {
  font-family: var(--font-accent);
  font-weight: 600;
  font-size: clamp(26px, 3.2vw, 40px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin-bottom: var(--space-sm);
}
.b2b-band-desc { color: rgba(255, 255, 255, 0.65); max-width: 560px; margin-bottom: var(--space-xl); }
.b2b-band .btn-primary { background: #FFFFFF; color: #1D1D1F; }
.b2b-band .btn-primary:hover { color: #C7251E; }
.b2b-band .btn-secondary { border-color: rgba(255, 255, 255, 0.35); color: #F5F5F7; }
.b2b-band .btn-secondary:hover { color: #FF6B5E; }

/* ---------- R5. Workflow 链（§13：Machine→Sensors→Curve→Profile→Batch Record） ---------- */
.workflow-steps {
  display: flex;
  align-items: stretch;
  gap: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.workflow-step {
  flex: 1;
  padding: 26px 22px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
}
/* 所有 cell 使用一致的水平内边距（含第一格）；仅后续 cell 加分隔线 */
.workflow-step + .workflow-step { border-left: 1px solid rgba(0, 0, 0, 0.08); }
.workflow-step-num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--color-text-muted);
}
.workflow-step-title { font-weight: 600; font-size: 16px; }
.workflow-step-desc { font-size: 13.5px; line-height: 1.6; color: var(--color-text-muted); }
.workflow-steps.on-dark { border-color: rgba(255, 255, 255, 0.14); }
.workflow-steps.on-dark .workflow-step + .workflow-step { border-left-color: rgba(255, 255, 255, 0.14); }
.workflow-steps.on-dark .workflow-step-title { color: #F5F5F7; }
.workflow-steps.on-dark .workflow-step-num,
.workflow-steps.on-dark .workflow-step-desc { color: rgba(255, 255, 255, 0.55); }
@media (max-width: 768px) {
  .workflow-steps { flex-direction: column; }
  .workflow-step + .workflow-step { padding-left: 0; border-left: none; border-top: 1px solid rgba(0, 0, 0, 0.08); }
  .workflow-steps.on-dark .workflow-step + .workflow-step { border-top-color: rgba(255, 255, 255, 0.14); }
  .workflow-step { padding: 20px 0; }
}

/* ---------- R6. Empty State（§18：news / stories / careers / locations） ---------- */
.empty-state {
  padding: var(--space-4xl) 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  max-width: 720px;
}
.empty-state-k {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 14px;
}
.empty-state-v {
  font-family: var(--font-accent);
  font-weight: 600;
  font-size: clamp(20px, 2.6vw, 28px);
  line-height: 1.35;
  margin-bottom: 10px;
}
.empty-state-desc { color: var(--color-text-muted); font-size: 15px; line-height: 1.7; max-width: 520px; }

/* ---------- R7. 规格表 TBD 值（§13 SPECIFICATIONS：禁假数字） ---------- */
.spec-value .tbc {
  font-family: var(--font-mono);
  font-size: 12.5px;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
}

/* ---------- R8. Gallery（§13 GALLERY：Documentation / Lifestyle） ---------- */
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.gallery-grid .photo-slot { border-radius: var(--radius-lg); }
.gallery-grid.gallery-grid--life { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1024px) {
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid.gallery-grid--life { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .gallery-grid, .gallery-grid.gallery-grid--life { grid-template-columns: 1fr; }
}

/* ---------- R9. 产品页 sticky subnav：移动端横向滚动不换行（§13） ---------- */
.product-subnav nav,
.product-subnav .calink-flex-center {
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.product-subnav nav::-webkit-scrollbar,
.product-subnav .calink-flex-center::-webkit-scrollbar { display: none; }
.product-subnav .product-subnav-link { white-space: nowrap; }

/* ---------- R10. Quiet closing（§12：Products 04） ---------- */
.quiet-closing {
  padding: var(--space-4xl) 0;
  text-align: left;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.quiet-closing .editorial-statement { font-size: clamp(22px, 2.8vw, 32px); max-width: 640px; }

/* ---------- R11. 生态分层（§12：MACHINE / INTELLIGENCE / ORIGIN / OWNERSHIP） ---------- */
.eco-row {
  display: grid;
  grid-template-columns: 200px 1fr auto;
  gap: 28px;
  align-items: center;
  padding: 30px 8px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: inherit;
  transition: background 0.2s ease;
}
.eco-row:last-child { border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.eco-row:hover { background: transparent; }
.eco-row:hover .eco-row-title,
.eco-row:hover .calink-text-link { color: #C7251E; }
.eco-row-k {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.eco-row-title { font-weight: 600; font-size: 19px; margin-bottom: 4px; }
.eco-row-desc { font-size: 14px; color: var(--color-text-muted); line-height: 1.6; }
@media (max-width: 768px) {
  .eco-row { grid-template-columns: 1fr; gap: 8px; padding: 24px 4px; }
}

/* ---------- R12. Industry Four Paths（§17：4列 → 2x2 → 1列） ---------- */
.path-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.path-item {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  border-top: 1px solid rgba(0, 0, 0, 0.14);
  padding-top: 18px;
  transition: opacity 0.2s ease;
}
.path-item:hover .path-item-title { text-decoration: none; }
.path-item-media { border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 16px; }
.path-item-media img { display: block; width: 100%; height: auto; transition: transform 0.35s ease; }
.path-item:hover .path-item-media img { transform: scale(1.02); }
.path-item-k {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 6px;
}
.path-item-title { font-weight: 600; font-size: 17px; margin-bottom: 6px; }
.path-item-desc { font-size: 13.5px; line-height: 1.6; color: var(--color-text-muted); }
@media (max-width: 1024px) { .path-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .path-grid { grid-template-columns: 1fr; } }

/* ============================================================
 * 21. Contact status chip（Direct Contact First 占位标识）
 *     与 demo-badge 同一视觉语汇：小、克制、mono、不抢主体
 * ============================================================ */
.contact-status {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px dashed var(--color-border);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* 官方联系邮箱（Direct Contact First 主渠道）。
   与 contact-status 同一语汇：小、mono、克制，但可交互。 */
.contact-email {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid var(--color-border);
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.contact-email:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* 2026-10-05：移动端一级直达项（E.O.W. / Impact），与 mnav-toggle 同一视觉 */
.mnav-direct {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 14px 4px;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-text);
  text-decoration: none;
  border-bottom: 1px solid var(--color-border-light);
  transition: color 0.2s ease;
}
.mnav-direct:hover { color: var(--color-primary); }
/* ============================================================
 * 22. 2026-10-05 新增组件：E.O.W. 庄园卡 / Continue Exploring /
 *     Traceability Chain / Contact 五行入口
 * ============================================================ */

/* 工具：移动端调序 */
@media (max-width: 860px) {
  .order-2-md { order: 2; }
}

/* ---- Estate card（E.O.W. 总览页庄园入口） ---- */
.estate-card {
  display: block;
  text-decoration: none;
  color: var(--color-text);
  background: var(--color-white);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: border-color 0.25s ease;
}
.estate-card:hover { border-color: rgba(0, 0, 0, 0.14); }
.estate-card-media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #F5F5F7;
}
.estate-card-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.5s ease;
}
.estate-card:hover .estate-card-media img { transform: scale(1.02); filter: brightness(1.02); }
.estate-card-body { padding: 26px 28px 30px; }
.estate-card-index {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 10px;
}
.estate-card-name {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: 6px;
  transition: color 0.2s ease;
}
.estate-card:hover .estate-card-name { color: var(--color-primary); }
.estate-card-meta {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
  margin-bottom: 12px;
}
.estate-card-desc {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  line-height: 1.65;
  margin: 0 0 14px;
}

/* ---- Continue Exploring（庄园详情页底部大横卡） ---- */
.explore-card {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  align-items: stretch;
  text-decoration: none;
  color: var(--color-text);
  background: var(--color-white);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: border-color 0.25s ease;
}
.explore-card:hover { border-color: rgba(0, 0, 0, 0.14); }
.explore-card-media {
  position: relative;
  min-height: 320px;
  overflow: hidden;
  background: #F5F5F7;
}
.explore-card-media img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.6s ease;
}
.explore-card:hover .explore-card-media img { transform: scale(1.025); filter: brightness(1.03); }
.explore-card-body {
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}
.explore-card-name {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 600;
  letter-spacing: -0.02em;
  transition: color 0.2s ease;
}
.explore-card:hover .explore-card-name { color: var(--color-primary); }
@media (max-width: 860px) {
  .explore-card { grid-template-columns: 1fr; }
  .explore-card-media { min-height: 220px; position: relative; }
  .explore-card-media img { position: relative; }
  .explore-card-body { padding: 28px 24px 32px; }
}

/* ---- Traceability Chain（Estate → … → Roast Profile） ---- */
.trace-chain {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  padding: var(--space-xl) 0;
}
.trace-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  min-width: 90px;
}
.trace-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #C7C7CC;
  flex: none;
}
.trace-dot-red { background: var(--color-primary); }
.trace-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  white-space: nowrap;
}
.trace-link {
  flex: 1;
  min-width: 24px;
  height: 1px;
  background: var(--color-border);
  margin: 0 10px;
  transform: translateY(-13px);
}
@media (max-width: 860px) {
  .trace-chain { row-gap: 22px; }
  .trace-node { min-width: 28%; }
  .trace-link { display: none; }
}

/* ---- Estate 档案行（沿用 spec-row 网格，标签更长时保持对齐） ---- */
.estate-spec .spec-label { min-width: 200px; }

/* ---- Contact 五行入口（编辑感纵向列表） ---- */
.contact-rows {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--color-divider);
}
.contact-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  padding: 30px 8px;
  border-bottom: 1px solid var(--color-divider);
  text-decoration: none;
  color: var(--color-text);
  transition: color 0.2s ease;
}
.contact-row-icon {
  color: var(--color-text-muted);
  display: inline-flex;
  transition: color 0.2s ease;
}
.contact-row-title {
  display: block;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.01em;
  margin-bottom: 4px;
  transition: color 0.2s ease;
}
.contact-row-desc {
  display: block;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  line-height: 1.55;
}
.contact-row-mail {
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--color-text);
  transition: color 0.2s ease;
  white-space: nowrap;
}
.contact-row:hover .contact-row-title,
.contact-row:hover .contact-row-mail { color: var(--color-primary); }
.contact-row:hover .contact-row-icon { color: var(--color-primary); }
@media (max-width: 860px) {
  .contact-row {
    grid-template-columns: 40px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 6px 16px;
    padding: 24px 4px;
  }
  .contact-row-icon { grid-row: 1 / 3; align-self: start; margin-top: 4px; }
  .contact-row-mail { grid-column: 2; }
}

/* ============================================================
 * 23. TYPE SCALE & RHYTHM — VISUAL REFINEMENT BATCH 1（2026-10-06）
 * 追加覆盖层：不改以上任何旧段；design-system.css 不动。
 * 决策：字阶三级 / eyebrow 统一 mono / section 节奏统一。
 * ============================================================ */

/* ---- 23.1 字阶三级：.display-title 默认 = section 级 ---- */
.display-title {
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: -0.02em;
}
.display-title--section { font-size: clamp(30px, 4vw, 48px); }
.display-title--minor { font-size: clamp(26px, 3vw, 36px); }

/* ---- 23.2 eyebrow 统一 mono（Owner 决策：mono） ---- */
.section-label {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
}

/* ---- 23.3 最小字号令牌 10px → 11px（mono 标签可读性） ---- */
:root { --font-size-2xs: 0.6875rem; }

/* ---- 23.4 section 节奏：桌面 128px / 移动 64px ---- */
.section-pad { padding: var(--section-space-xl) 0; }
@media (max-width: 768px) {
  .section-pad { padding: var(--space-3xl) 0; }
}

/* ---- 23.5 碎片字号归并（小数 → 令牌） ---- */
.site-header .nav-link,
.nav-cta-btn,
.mega-link-secondary { font-size: 14px; }
.mega-col-title { font-size: 11px; letter-spacing: 0.12em; }
.mega-app-desc { font-size: 12px; }
.mega-product-link,
.mega-preview-name { font-size: 20px; }
.workflow-step-desc,
.path-item-desc { font-size: 14px; }
.data-cell-k,
.dl-row-head,
.chapter-format { font-size: var(--font-size-2xs); }
.dl-name { font-size: 16px; }
.chapter-title { font-size: 18px; }
.spec-value .tbc { font-size: 12px; }

/* ============================================================
 * 25. HOMEPAGE FIXES & MOTION RESTRAINT — VISUAL REFINEMENT BATCH 3（2026-10-06）
 * ai-transition 收窄 / 深色区尾部自桥接 / contain 槽位 / hero 媒体收编 /
 * hover 手势收敛 / reveal-img 接入 is-visible。
 * ============================================================ */

/* ---- 25.1 白→深过渡带收窄（ai.html 的 ai-transition 同步受益） ---- */
.ai-transition { height: 36vh; min-height: 240px; }

/* ---- 25.2 深色区尾部自桥接到浅灰：
        首页下一节为纯白、ai.html 下一节为 bg-alt(#F5F5F7)，
        终点 #F5F5F7 两页均无缝 ---- */
.ai-dark-section {
  background: linear-gradient(180deg,
    #262628 0%,
    #101011 38%,
    #000000 62%,
    #3A3A3C 80%,
    #B9BCC1 91%,
    #F5F5F7 100%);
}

/* ---- 25.3 透明底产品图槽位：contain + 内边距（收编全站内联补丁） ---- */
.photo-slot--contain { padding: 3%; }
.photo-slot--contain img { object-fit: contain; }

/* ---- 25.4 hero 产品图尺寸从 inline 收编 ---- */
.hero-home-media img {
  max-height: min(74vh, 660px);
  width: auto;
  margin: 0 auto;
}
@media (max-width: 900px) {
  .hero-home-media img { max-height: 52vh; }
}

/* ---- 25.5 hover 手势收敛：容器一律不位移，图片内部缩放统一 1.02 ---- */
.btn-accent:hover,
.btn-dark:hover { transform: none; }
.btn-primary:hover,
.btn-secondary:hover { box-shadow: none; }
.card-dark:hover { transform: none; }
.gallery-slot:hover,
.app-visual:hover,
.why-visual:hover,
.roaster-visual:hover,
.scene-tile:hover { transform: none; }
.p2-scene-tile:hover .p2-scene-media img { transform: scale(1.02); }
.explore-card:hover .explore-card-media img { transform: scale(1.02); }

/* ---- 25.6 reveal-img 接入 main.js 的 .is-visible 机制（旧段写错为 .visible） ---- */
.reveal-img.is-visible { clip-path: inset(0 0 0 0); opacity: 1; }

/* ============================================================
 * 24. COMPONENT CONSISTENCY — VISUAL REFINEMENT BATCH 2（2026-10-06）
 * 决策：Contact Us pill 化 / 焦点环统一石墨 / hairline 令牌化 /
 *      相框 hover 静止。追加覆盖层，不改 design-system.css。
 * ============================================================ */

/* ---- 24.1 hairline：--color-border-light 统一为 0.06（原 0.05 过细难感知） ---- */
:root { --color-border-light: rgba(0, 0, 0, 0.06); }

/* ---- 24.2 焦点环统一石墨（深色区各自的白色焦点规则特异性更高，不受影响） ---- */
:focus-visible { outline-color: #1D1D1F; }

/* ---- 24.3 Contact Us 回归 pill（Owner 决策：按钮全站 pill） ---- */
.nav-cta-btn { border-radius: 999px; }

/* ---- 24.4 相框（photo-slot）hover 静止：框不呼吸，仅图片可内部微缩放 ---- */
.photo-slot { transition: none; }
.photo-slot:hover { transform: none; }

/* ============================================================
 * 26. NAV / MEGA / SUBNAV / FOOTER — FINAL VISUAL PASS（2026-10-06）
 * 决策：导航 hover 只做轻微颜色变化；品牌红仅 active / 核心 CTA；
 *      移除产品页二级导航红色 underline；mega 预览区一体化；
 *      footer 视觉减重。追加覆盖层，不改旧段、不动 design-system.css。
 * ============================================================ */

/* ---- 26.1 一级导航色彩纪律：base 柔灰 → hover 深黑 → active 品牌红 ---- */
.site-header .nav-link,
.site-header.is-transparent .nav-link,
.site-header.is-scrolled .nav-link { color: rgba(29, 29, 31, 0.66); }
.site-header .nav-link:hover { color: #FF6B5E; }
.site-header .nav-link.is-active,
.site-header .nav-link[aria-current="page"],
.has-mega.is-open > .nav-link { color: var(--color-primary); }

/* ---- 26.2 Mega 二级入口 hover 纪律：文字变珊瑚红，红仅留给 active 产品项 ---- */
.mega-link:hover,
.mega-link-featured:hover,
.mega-link-secondary:hover,
.mega-app-item:hover .mega-app-title,
.mnav-direct:hover { color: #FF6B5E; }
.mega-product-link:hover,
.mega-product-link:focus-visible { color: #FF6B5E; background: transparent; }
.mega-product-link.is-active { color: var(--color-primary); }

/* ---- 26.3 产品页二级导航：彻底移除红色 underline，active 仅用字色+字重 ---- */
.product-subnav-link::after { content: none; }
.product-subnav-link.is-active { color: var(--color-text); font-weight: 600; }

/* ---- 26.4 修复被死规则吞掉的预览区定位（mega-product-arrow 残留选择器） ---- */
.mega-preview-area { position: relative; min-height: 240px; }

/* ---- 26.5 Products Mega：25/75 布局 + 右侧预览一体化（图/名/述/CTA 一个整体） ---- */
.mega-products-grid { grid-template-columns: minmax(200px, 27%) 1fr; gap: 48px; align-items: stretch; }
.mega-preview.is-active {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 40px;
  align-items: center;
  background: #171C26;
  border-radius: 18px;
  padding: 36px 40px;
}
.mega-preview-media img { max-height: 240px; }
.mega-preview-text { max-width: 300px; }

/* ---- 26.7 Footer 视觉减重：减弱传统企业 Sitemap 感，结构不变 ---- */
.calink-footer { padding: var(--space-3xl) 0 var(--space-xl); }
.footer-col-title {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: var(--color-text-muted);
  margin-bottom: 14px;
}
.footer-link { font-size: 13px; padding: 4px 0; }

/* ============================================================
 * 27. HOMEPAGE FINAL STRUCTURE — 2026-10-06
 * Hero 品牌时刻 / Product Proof 压缩 / Industry 一大三小编辑网格 /
 * Engineering 全文宽媒体 / E.O.W. Editorial 字段化。
 * ============================================================ */

/* ---- 27.1 Hero — Brand / Product Moment（为未来 16:9 摄影大片预留结构） ---- */
.hero-brand {
  position: relative;
  min-height: 86vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(1200px 700px at 78% 30%, rgba(0, 0, 0, 0.04), transparent 60%),
    linear-gradient(180deg, #FDFCFA 0%, #F5F4F1 60%, #EEEDE9 100%);
}
.hero-brand .container { position: relative; z-index: 2; width: 100%; }
.hero-brand .hero-home-prop { max-width: 400px; }
.hero-brand-media {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 56%;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  pointer-events: none;
}
.hero-brand-media img {
  height: 92%;
  width: auto;
  max-width: none;
  object-fit: contain;
  object-position: right bottom;
  transform: translateX(6%); /* 机器出血到右缘——未来大片 cover 构图的临时近似 */
}
/* 未来摄影大片就位时：给 .hero-brand-media 加 .is-photo，
   img 切换为 width/height 100% + object-fit: cover（安全裁切区 = 右侧 56%） */
.hero-brand-media.is-photo img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  transform: none;
}

/* dark-hero header driven purely by the page content, so it also holds without JS
   (the build re-swaps the site chrome, which would drop a hard-coded class) */
body:has(.hero-studio) .site-header:not(.is-scrolled) .nav-link,
body:has(.hero-studio) .site-header:not(.is-scrolled) .header-icon-btn,
body:has(.hero-studio) .site-header:not(.is-scrolled) .mobile-menu-toggle { color: rgba(255, 255, 255, 0.82); }
body:has(.hero-studio) .site-header:not(.is-scrolled) .nav-link:hover { color: #FF6B5E; }
body:has(.hero-studio) .site-header:not(.is-scrolled) .logo-img-dark { display: none; }
body:has(.hero-studio) .site-header:not(.is-scrolled) .logo-img-light { display: block; }

/* dark-hero header state also has to beat the later transparent/is-scrolled rules */
.site-header.on-dark-hero:not(.is-scrolled) .nav-link,
.site-header.on-dark-hero:not(.is-scrolled) .header-icon-btn,
.site-header.on-dark-hero:not(.is-scrolled) .mobile-menu-toggle {
  color: rgba(255, 255, 255, 0.80);
}
.site-header.on-dark-hero:not(.is-scrolled) .nav-link:hover { color: #FF6B5E; }
.site-header.on-dark-hero:not(.is-scrolled) .logo-img-dark { display: none; }
.site-header.on-dark-hero:not(.is-scrolled) .logo-img-light { display: block; }

/* ---- 27.3 HOME HERO V2 — Roast Pod studio composite ---- */
/* Layered 2.5D: bg / product / masked shade+spec / window glow / UI power-on.
   Geometry is locked — every layer only translates or scales the same cutout. */
.hero-studio {
  background: #08080A;
  color: #F2EFEA;
}
.hero-brand.hero-studio {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.hero-studio .container { z-index: 3; }
.hero-studio .hero-home-eyebrow { color: rgba(242, 239, 234, 0.58); }
.hero-studio .hero-home-title { color: #F4F1EC; }
.hero-studio .hero-home-prop { color: rgba(242, 239, 234, 0.64); }
.hero-studio .btn-primary { background: #F2EFEA; color: #12131A; }
.hero-studio .btn-primary:hover { color: #C7251E; }
.hero-studio .btn-secondary { color: #F2EFEA; border-color: rgba(242, 239, 234, 0.30); }
.hero-studio .btn-secondary:hover { color: #FF6B5E; }

/* F15：单图 Hero（左文右图，机器在右） */
.hero-f15-stage { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 1; }
.hero-f15-img { width: 100%; height: 100%; object-fit: cover; object-position: right center; display: block; }
.hero-f15-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(8, 8, 10, 0.72) 0%, rgba(8, 8, 10, 0.34) 40%, rgba(8, 8, 10, 0) 62%);
  pointer-events: none;
}
/* 平板 + 手机：上下布局，文字在上、产品图在下，避免文字压住机器 */
@media (max-width: 1199px) {
  .hero-brand.hero-studio {
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: calc(72px + 2.5vh) 0 0;
  }
  .hero-studio .container { order: 1; }
  .hero-f15-stage {
    position: relative;
    inset: auto;
    order: 2;
    width: 100%;
    height: clamp(300px, 44vh, 420px);
    overflow: hidden;
  }
  .hero-f15-img { object-position: 100% center; }
  .hero-f15-scrim {
    background: linear-gradient(180deg, rgba(8, 8, 10, 0.96) 0%, rgba(8, 8, 10, 0.42) 22%, rgba(8, 8, 10, 0) 46%);
  }
}
@media (max-width: 767px) {
  main.v2-home .hero-studio .hero-home-title { font-size: clamp(34px, 10vw, 42px); }
  .hero-studio .hero-home-eyebrow { margin-bottom: 8px; }
  .hero-studio .hero-home-title { margin-bottom: 12px; }
  .hero-studio .hero-home-prop { margin-bottom: 16px; }
  .hero-f15-stage { height: clamp(280px, 42vh, 380px); }
}

.pod-stage { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }

/* 1 — background: graphite studio falloff */
.pod-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(118% 88% at 74% 24%, #24262C 0%, #16171B 34%, #0C0D10 68%, #070709 100%);
}
/* restrained raking shaft from the upper right */
.pod-beam {
  position: absolute; right: -14%; top: -34%; width: 82%; height: 176%;
  transform: rotate(-13deg);
  background: linear-gradient(101deg,
    rgba(255, 245, 230, 0) 32%,
    rgba(255, 245, 230, 0.070) 46%,
    rgba(255, 245, 230, 0.130) 50%,
    rgba(255, 245, 230, 0.055) 55%,
    rgba(255, 245, 230, 0) 70%);
  filter: blur(15px);
  mix-blend-mode: screen;
}
/* 2 — dark plate under the product */
.pod-floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 38%;
  background: linear-gradient(180deg, rgba(8, 8, 10, 0) 0%, rgba(9, 9, 12, 0.55) 40%, #09090B 100%);
}

/* 3 — product body (locked geometry) */
.pod-figure {
  position: absolute; right: 5.5%; bottom: 5%; height: 86%; aspect-ratio: 1018 / 1272;
  will-change: transform, opacity;
}
.pod-img { display: block; width: 100%; height: 100%; }

/* 3b — floor reflection (separate layer; never distorts the product) */
.pod-mirror {
  position: absolute; left: 0; top: 100.5%; width: 100%; height: 32%;
  transform: scaleY(-1);
  opacity: 0.15;
  filter: blur(3px) brightness(0.85);
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0) 74%);
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0) 74%);
}
.pod-mirror img { display: block; width: 100%; height: auto; }

/* 3c — masked shade + controlled specular (conform to the product silhouette) */
.pod-shade, .pod-relight, .pod-sheen {
  position: absolute; inset: 0;
  -webkit-mask-image: url(../assets/product/hero/roast-pod-hero.png);
  mask-image: url(../assets/product/hero/roast-pod-hero.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}
.pod-shade { background: rgba(6, 7, 10, 0.34); }
.pod-relight {
  background: linear-gradient(116deg,
    rgba(0, 0, 0, 0.46) 0%, rgba(0, 0, 0, 0) 34%,
    rgba(255, 238, 214, 0.10) 62%, rgba(255, 238, 214, 0) 86%);
}
.pod-sheen {
  background: linear-gradient(100deg,
    rgba(255, 246, 232, 0) 30%,
    rgba(255, 246, 232, 0.30) 45%,
    rgba(255, 255, 255, 0.46) 50%,
    rgba(255, 246, 232, 0.22) 55%,
    rgba(255, 246, 232, 0) 70%);
  background-size: 250% 100%;
  background-position: 130% 0;
  mix-blend-mode: screen;
}

/* 4a — window dark until it warms up (covers the plate's baked glow) */
.pod-window-off {
  position: absolute; left: 36.2%; top: 24.2%; width: 23.6%; height: 25.6%;
  border-radius: 12% / 16%;
  background: #070809;
  opacity: 0;
}

/* 4 — observation-window warmth (region measured on the plate: 39.0% / 26.9% / 17.8% / 20.4%) */
.pod-window {
  position: absolute; left: 36.4%; top: 24.4%; width: 23.0%; height: 25.4%;
  background: radial-gradient(58% 52% at 50% 62%,
    rgba(255, 150, 58, 0.80) 0%, rgba(255, 112, 26, 0.32) 46%, rgba(255, 90, 20, 0) 76%);
  filter: blur(7px);
  mix-blend-mode: screen;
  opacity: 0;
}

/* 5 — UI screen: dark until it powers on (region measured: 36.1% / 62.9% / 11.7% / 11.5%) */
.pod-ui-off {
  position: absolute; left: 33.2%; top: 56.6%; width: 16.6%; height: 21.6%;
  border-radius: 13% / 9%;
  background: #05070A;
  opacity: 0;
}
.pod-ui-on {
  position: absolute; left: 33.2%; top: 56.6%; width: 16.6%; height: 21.6%;
  border-radius: 13% / 9%;
  background:
    radial-gradient(72% 62% at 50% 52%, rgba(126, 186, 255, 0.30) 0%, rgba(58, 116, 214, 0.10) 58%, rgba(0, 0, 0, 0) 80%);
  mix-blend-mode: screen;
  opacity: 0;
}

/* grounding contact shadow (also suppresses the plate's baked corner cast) */
.pod-contact {
  position: absolute; right: 4%; bottom: 3.4%; width: 40%; height: 6.5%;
  background: radial-gradient(50% 50% at 52% 50%, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.35) 46%, rgba(0, 0, 0, 0) 74%);
  filter: blur(12px);
}

/* text-side scrim + vignette + studio grain */
.pod-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(92deg,
    rgba(7, 7, 9, 0.88) 0%, rgba(7, 7, 9, 0.66) 30%, rgba(7, 7, 9, 0.18) 52%, rgba(7, 7, 9, 0) 68%);
}
.pod-grain {
  position: absolute; inset: 0;
  background-image: url(../assets/product/hero/studio-grain.png);
  background-size: 256px 256px;
  opacity: 0.55;
  mix-blend-mode: overlay;
}
.pod-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(116% 92% at 52% 44%, rgba(0, 0, 0, 0) 42%, rgba(0, 0, 0, 0.58) 100%);
}

/* ---- reveal: armed state (JS only) → in-view plays the 6s arc, then holds ---- */
.hero-studio.is-armed .pod-figure { opacity: 0; }
.hero-studio.is-armed .pod-beam { opacity: 0; }
.hero-studio.is-armed .pod-sheen { opacity: 0; }
.hero-studio.is-armed .pod-window { opacity: 0; }
.hero-studio.is-armed .pod-window-off { opacity: 1; }
.hero-studio.is-armed .pod-ui-on { opacity: 0; }
.hero-studio.is-armed .pod-ui-off { opacity: 1; }

.hero-studio.is-in .pod-figure { animation: podRise 2.2s var(--ease-premium, cubic-bezier(.22,1,.36,1)) 0.15s both; }
.hero-studio.is-in .pod-beam { animation: podBeam 1.8s var(--ease-standard, cubic-bezier(.25,1,.5,1)) 0s both; }
.hero-studio.is-in .pod-sheen { animation: podSheen 2.0s var(--ease-premium, cubic-bezier(.22,1,.36,1)) 2.3s both; }
.hero-studio.is-in .pod-window-off { animation: podWinOff 0.9s ease 2.7s both; }
.hero-studio.is-in .pod-window { animation: podWindow 1.2s var(--ease-standard, cubic-bezier(.25,1,.5,1)) 3.4s both; }
.hero-studio.is-in .pod-ui-off { animation: podUiOff 0.9s ease 4.6s both; }
.hero-studio.is-in .pod-ui-on { animation: podUiOn 1.2s ease 4.6s both; }

@keyframes podRise {
  from { opacity: 0; transform: translateY(1.6%) scale(1.018); }
  to   { opacity: 1; transform: none; }
}
@keyframes podBeam {
  from { opacity: 0; transform: rotate(-13deg) translateX(6%); }
  to   { opacity: 1; transform: rotate(-13deg) translateX(0); }
}
@keyframes podSheen {
  from { opacity: 0; background-position: 130% 0; }
  14%  { opacity: 1; }
  84%  { opacity: 1; }
  to   { opacity: 0; background-position: -50% 0; }
}
@keyframes podWindow {
  from { opacity: 0; transform: scale(0.94); }
  to   { opacity: 1; transform: none; }
}
@keyframes podWinOff {
  from { opacity: 1; }
  to   { opacity: 0; }
}
@keyframes podUiOff {
  from { opacity: 1; }
  to   { opacity: 0; }
}
@keyframes podUiOn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@media (max-width: 768px) {
  .hero-brand.hero-studio { min-height: 0; }
  .pod-figure { right: 1.5%; bottom: 0; height: 54%; }
  .pod-beam { right: -30%; width: 110%; }
  .pod-scrim {
    background: linear-gradient(180deg,
      rgba(7, 7, 9, 0.92) 0%, rgba(7, 7, 9, 0.72) 42%, rgba(7, 7, 9, 0.30) 68%, rgba(7, 7, 9, 0.10) 100%);
  }
  .pod-contact { right: 0; width: 52%; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-studio .pod-figure, .hero-studio .pod-beam, .hero-studio .pod-sheen,
  .hero-studio .pod-window, .hero-studio .pod-window-off, .hero-studio .pod-ui-off, .hero-studio .pod-ui-on {
    animation: none;
  }
  .hero-studio .pod-figure { opacity: 1; }
  .hero-studio .pod-beam { opacity: 1; }
  .hero-studio .pod-sheen { opacity: 0; }
  .hero-studio .pod-window-off { opacity: 0; }
  .hero-studio .pod-window { opacity: 1; }
  .hero-studio .pod-ui-off { opacity: 0; }
  .hero-studio .pod-ui-on { opacity: 1; }
}

/* ---- 27.4 HOME HERO V2 — fixed scene + local light masks ---- */
/* One official 16:9 scene in two PRE-BAKED exposures (dark / normal), pixel-identical,
   so the reveal only changes exposure — the machine is never re-drawn, re-coloured or
   overlaid from a white-background shot (no double outline is possible).
   Every mask is a % of the image itself: JS sizes .pod2-frame to the exact cover rect. */
.pod2-stage { position: absolute; inset: 0; overflow: hidden; pointer-events: none; background: #07070A; }
.pod2-frame {
  position: absolute; left: 0; top: 0; width: 100%; height: 100%;
  will-change: transform;
}
.pod2-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pod2-dark, .pod2-pool, .pod2-beam-mask, .pod2-window-off, .pod2-window-on,
.pod2-ui-off, .pod2-ui-on, .pod2-left-scrim, .pod2-vignette { position: absolute; inset: 0; }

.pod2-dark { z-index: 1; }
.pod2-pool { z-index: 2; }
.pod2-pool img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pod2-beam-mask { z-index: 3; overflow: hidden; }
.pod2-window-off, .pod2-ui-off { z-index: 4; }
.pod2-window-on, .pod2-ui-on { z-index: 5; }
.pod2-left-scrim { z-index: 6; }
.pod2-vignette { z-index: 7; }
.pod2-scan {
  position: absolute; inset: 0; z-index: 8; pointer-events: none;
  background-image: url(../assets/product/hero/studio-grain.png);
  background-size: 256px 256px;
  opacity: 0.40; mix-blend-mode: overlay;
}

/* --- the light pool: the ONLY place the lit exposure is revealed (soft ellipse, no edges) --- */
.pod2-pool {
  -webkit-mask-image: radial-gradient(ellipse 14% 31% at 74% 52%,
    rgba(0,0,0,1) 42%, rgba(0,0,0,0.55) 74%, rgba(0,0,0,0) 100%);
  mask-image: radial-gradient(ellipse 14% 31% at 74% 52%,
    rgba(0,0,0,1) 42%, rgba(0,0,0,0.55) 74%, rgba(0,0,0,0) 100%);
}
/* --- the raking beam: masked into the same pool so it lands on the product, not the photo --- */
.pod2-beam-mask {
  -webkit-mask-image: radial-gradient(ellipse 16% 30% at 74% 51%,
    rgba(0,0,0,1) 30%, rgba(0,0,0,0.5) 66%, rgba(0,0,0,0) 100%);
  mask-image: radial-gradient(ellipse 16% 30% at 74% 51%,
    rgba(0,0,0,1) 30%, rgba(0,0,0,0.5) 66%, rgba(0,0,0,0) 100%);
}
.pod2-beam {
  position: absolute; left: 0; top: -12%; width: 260%; height: 124%;
  background: linear-gradient(104deg,
    rgba(255,246,232,0) 33%,
    rgba(255,246,232,0.035) 40%,
    rgba(255,246,232,0.11) 45%,
    rgba(255,250,242,0.20) 49%,
    rgba(255,255,255,0.26) 50%,
    rgba(255,250,242,0.18) 51.5%,
    rgba(255,246,232,0.09) 56%,
    rgba(255,246,232,0.03) 62%,
    rgba(255,246,232,0) 70%);
  mix-blend-mode: screen;
}

/* --- local masks, measured on the scene: window x71.5-82.5%/y37.5-50%, UI x71.3-79.8%/y57.3-70.8% --- */
.pod2-window-off {
  left: 68.0%; top: 33.25%; width: 18.0%; height: 21.0%;
  background: radial-gradient(closest-side, #000 60%, rgba(0,0,0,0) 100%);
}
.pod2-ui-off {
  left: 68.55%; top: 52.05%; width: 14.0%; height: 24.0%;
  background: radial-gradient(closest-side, #000 60%, rgba(0,0,0,0) 100%);
}
.pod2-window-on {
  left: 69.2%; top: 34.6%; width: 15.6%; height: 18.0%;
  background: radial-gradient(58% 54% at 50% 52%,
    rgba(255,152,58,0.50) 0%, rgba(255,120,30,0.18) 52%, rgba(255,110,20,0) 78%);
  mix-blend-mode: screen;
}
.pod2-ui-on {
  left: 69.6%; top: 55.0%; width: 12.2%; height: 18.4%;
  background: radial-gradient(66% 58% at 50% 50%,
    rgba(130,190,255,0.30) 0%, rgba(60,120,210,0.10) 58%, rgba(0,0,0,0) 80%);
  mix-blend-mode: screen;
}

.pod2-left-scrim {
  background: linear-gradient(94deg,
    rgba(4,4,6,0.95) 0%, rgba(4,4,6,0.80) 24%,
    rgba(4,4,6,0.38) 44%, rgba(4,4,6,0.08) 58%, rgba(4,4,6,0) 70%);
}
.pod2-vignette {
  background: radial-gradient(122% 96% at 62% 48%,
    rgba(0,0,0,0) 45%, rgba(0,0,0,0.50) 100%);
}

/* ---- opening state: with JS the scene starts on the dark exposure and the masks are down.
        WITHOUT JS everything already sits in its final lit state (the scene is the poster). ---- */
.pod2-pool { opacity: 1; }
.pod2-window-off, .pod2-ui-off, .pod2-window-on, .pod2-ui-on { opacity: 0; }
.pod2-beam { opacity: 1; }
.has-js .pod2-pool { opacity: 0; }
.has-js .pod2-window-off, .has-js .pod2-ui-off { opacity: 1; }

.hero-studio.is-in .pod2-pool { animation: pod2Pool 1.9s var(--ease-premium, cubic-bezier(.22,1,.36,1)) 2.0s both; }
.hero-studio.is-in .pod2-beam { animation: pod2Beam 2.7s var(--ease-standard, cubic-bezier(.25,1,.5,1)) 1.15s both; }
.hero-studio.is-in .pod2-window-off { animation: pod2Off 0.9s ease 3.6s both; }
.hero-studio.is-in .pod2-ui-off { animation: pod2Off 0.9s ease 3.6s both; }
.hero-studio.is-in .pod2-window-on { animation: pod2On 1.3s ease 3.9s both; }
.hero-studio.is-in .pod2-ui-on { animation: pod2On 1.3s ease 3.9s both; }
.hero-studio.is-in .pod2-frame { animation: pod2Push 5.8s var(--ease-premium, cubic-bezier(.22,1,.36,1)) 1.15s both; }

@keyframes pod2Pool {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pod2Beam {
  from { opacity: 0; transform: translateX(26%); }
  16%  { opacity: 1; }
  78%  { opacity: 1; }
  to   { opacity: 0; transform: translateX(-60%); }
}
@keyframes pod2Off {
  from { opacity: 1; }
  to   { opacity: 0; }
}
@keyframes pod2On {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pod2Push {
  from { transform: scale(1); }
  to   { transform: scale(1.008); }
}

@media (max-width: 768px) {
  /* without JS: the whole 16:9 scene, uncropped, sits low so the machine stays complete */
  .pod2-frame { inset: auto 0 6% 0; height: auto; aspect-ratio: 1672 / 941; }
  .pod2-left-scrim {
    background: linear-gradient(180deg,
      rgba(4,4,6,0.96) 0%, rgba(4,4,6,0.82) 38%, rgba(4,4,6,0.46) 62%, rgba(4,4,6,0.14) 100%);
  }
  .hero-studio.is-in .pod2-frame { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
  .has-js .pod2-pool { opacity: 1; }
  .has-js .pod2-window-off, .has-js .pod2-ui-off { opacity: 0; }
  .has-js .pod2-window-on { opacity: 0.55; }
  .has-js .pod2-ui-on { opacity: 0.5; }
  .hero-studio .pod2-pool, .hero-studio .pod2-beam, .hero-studio .pod2-frame,
  .hero-studio .pod2-window-off, .hero-studio .pod2-ui-off,
  .hero-studio .pod2-window-on, .hero-studio .pod2-ui-on { animation: none; }
}

/* ---- 27.2 Product Proof — 压缩纵向高度：左图右三点 ---- */
.proof-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 64px;
  align-items: center;
}
.proof-media { aspect-ratio: 4 / 3; }
.proof-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--space-lg); }
.proof-tag {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  border: 1px solid var(--color-border-light);
  border-radius: 999px;
  padding: 4px 12px;
}

/* ---- 27.3 Industry Applications — Oura 式横向展开卡片 ---- */
.app-rail-wrap { position: relative; }
.app-rail {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.app-rail::-webkit-scrollbar { display: none; }

.app-card {
  position: relative;
  flex: 0 0 auto;
  width: 360px;
  height: 480px;
  border-radius: 16px;
  overflow: hidden;
  background: #121722;
  border: 1px solid rgba(237, 244, 255, 0.12);
  scroll-snap-align: start;
  transition: width 480ms cubic-bezier(0.22, 1, 0.36, 1), height 480ms cubic-bezier(0.22, 1, 0.36, 1);
}
.app-card.is-expanded { width: 820px; }

.app-card-media { position: absolute; inset: 0; }
.app-card-media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}
.app-card.is-expanded .app-card-media img { transform: scale(1.03); }

.app-card-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13, 15, 20, 0.08) 0%, rgba(13, 15, 20, 0.12) 45%, rgba(13, 15, 20, 0.84) 100%);
  pointer-events: none;
}

.app-card-kicker {
  position: absolute; top: 20px; left: 22px;
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
  z-index: 2;
}

.app-card-toggle {
  position: absolute; top: 12px; right: 12px;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.32);
  background: rgba(13, 15, 20, 0.35);
  color: #fff;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  z-index: 3;
  transition: color 0.2s ease;
}
/* F21-UX-R1B：热区 40→44px；hover 不改底色，只让 “+” 变珊瑚红 */
.app-card-toggle:hover { background: rgba(13, 15, 20, 0.35); }
.app-card-toggle:hover .app-card-toggle-icon::before,
.app-card-toggle:hover .app-card-toggle-icon::after { background: #FF6B5E; }
.app-card-toggle:focus-visible { outline: 2px solid #FF6B5E; outline-offset: 2px; }

.app-card-toggle-icon {
  position: relative; width: 16px; height: 16px;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}
.app-card-toggle-icon::before,
.app-card-toggle-icon::after {
  content: ""; position: absolute; left: 50%; top: 50%;
  background: #fff; border-radius: 1px;
  transform: translate(-50%, -50%);
}
.app-card-toggle-icon::before { width: 16px; height: 1.6px; }
.app-card-toggle-icon::after { width: 1.6px; height: 16px; }
.app-card.is-expanded .app-card-toggle-icon { transform: rotate(45deg); }

.app-card-body {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 22px 24px 24px;
  z-index: 2;
  display: flex; align-items: flex-end; gap: 20px;
}
.app-card-copy { flex: 1; min-width: 0; }
.app-card-title {
  font-family: var(--font-accent, inherit);
  font-size: 20px; font-weight: 600; letter-spacing: -0.01em;
  color: #fff;
}
.app-card-expand {
  max-height: 0; overflow: hidden; opacity: 0;
  transition: max-height 480ms cubic-bezier(0.22, 1, 0.36, 1), opacity 200ms ease;
}
.app-card.is-expanded .app-card-expand { max-height: 360px; opacity: 1; }
.app-card-heading {
  font-size: 15px; font-weight: 600; line-height: 1.3; color: #fff;
  margin-top: 10px;
}
.app-card-desc {
  font-size: 13px; line-height: 1.6; color: rgba(255, 255, 255, 0.78);
  margin-top: 6px; max-width: 48ch;
}
.app-card-points {
  list-style: none; margin: 0; padding: 14px 16px;
  flex: 0 0 auto; width: 216px;
  background: rgba(13, 15, 20, 0.42);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  display: flex; flex-direction: column; gap: 8px;
  opacity: 0; transform: translateY(6px);
  transition: opacity 240ms ease 120ms, transform 240ms ease 120ms;
}
.app-card.is-expanded .app-card-points { opacity: 1; transform: translateY(0); }
.app-card-points li {
  font-size: 12px; line-height: 1.4; color: rgba(255, 255, 255, 0.82);
  display: flex; align-items: center; gap: 8px;
}
.app-card-points li::before {
  content: ""; flex: none;
  width: 4px; height: 4px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
}

/* 左右导航箭头已移除（2026-10 最小交互修复） */

@media (prefers-reduced-motion: reduce) {
  .app-card,
  .app-card-media img,
  .app-card-toggle-icon,
  .app-card-expand,
  .app-card-points { transition: none !important; }
}

@media (max-width: 767px) {
  .app-card { width: 82vw; height: 470px; }
  .app-card.is-expanded { width: 92vw; height: 600px; }
  .app-card-body { flex-direction: column; align-items: stretch; gap: 14px; }
  .app-card-points { width: auto; }
}
.app-edit-note {
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.06em;
  color: var(--color-text-muted);
  margin-top: 18px;
}

/* ---- 27.4 Engineering — 文本时刻 + 全宽 21:9 工程媒体（打破左右分栏重复） ---- */
.eng-head { max-width: 720px; }
.eng-media { margin-top: var(--space-3xl); aspect-ratio: 21 / 9; }

/* ---- 27.5 E.O.W. — Editorial：大比例产地媒体 + 结构化字段 ---- */
.eow-edit-media { aspect-ratio: 16 / 9; margin: var(--space-2xl) 0 0; }
.eow-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--color-divider);
  margin-top: var(--space-xl);
}
.eow-field { padding: 18px 20px 18px 0; border-bottom: 1px solid var(--color-border-light); }
.eow-field dt {
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--color-text-muted); margin-bottom: 6px;
}
.eow-field dd { font-size: 14px; font-weight: 500; margin: 0; }
.eow-fields-note {
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.06em;
  color: var(--color-text-muted);
  margin-top: 16px;
}

/* ---- 27.6 响应式 ---- */
@media (max-width: 900px) {
  .hero-brand { min-height: 0; flex-direction: column; align-items: stretch; padding-top: calc(68px + var(--space-2xl)); }
  .hero-brand .container { order: 1; }
  .hero-brand-media {
    position: relative;
    width: 100%;
    order: 2;
    margin-top: var(--space-xl);
    aspect-ratio: 4 / 5;
    max-height: 52vh;
    align-items: flex-end;
    justify-content: center;
  }
  .hero-brand-media img { height: 100%; max-width: 100%; transform: none; object-position: center bottom; }
  .proof-grid { grid-template-columns: 1fr; gap: var(--space-2xl); }
  .app-edit-grid { grid-template-columns: 1fr; }
  .app-edit-card--lead { grid-row: auto; }
  .eng-media { aspect-ratio: 16 / 10; margin-top: var(--space-2xl); }
  .eow-edit-media { aspect-ratio: 4 / 3; }
  .eow-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================
 * 28. MEDIA SLOT RATIO STANDARD（素材槽位比例锁定 — 2026-10-06）
 * 未来摄影/视频素材按同名槽位直接替换，禁止强行拉伸：
 *   HOME HERO        Desktop 16:9 / 3:2（cover，安全区右 56%） · Mobile 4:5
 *   PRODUCT PROOF    4:3（contain，真机图禁止 cover 裁切）
 *   INDUSTRY SCENE   4:3（lead）/ 148px 横条（small）
 *   ENGINEERING      21:9 全宽（contain 工程图）
 *   EOW ESTATE       16:9（cover，editorial）
 *   VERTICAL SOCIAL  4:5 / 9:16（复用裁切）
 * ============================================================ */


/* ============================================================
 * §29. REAL VISUAL ASSET PASS V1（2026-10-07）
 * editorial/v1 素材替换：照片化 hero / inset / editorial 半径 / 45-55 栅格
 * ============================================================ */
/* 29.1 产品页 / 配件页 Hero 照片化（V06 / V11）：cover + 圆角 12px，覆盖透明 PNG 的 drop-shadow 规则 */
.page-hero-product--photo {
  position: relative;
  width: 100%;
  max-width: 480px;
  aspect-ratio: 4 / 5;
  border-radius: 12px;
  overflow: hidden;
  align-self: center;
}
.page-hero-product--photo img {
  width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: 50% 58%;
  filter: none;
}
@media (max-width: 900px) {
  .page-hero-product--photo { max-width: 360px; margin: 0 auto; }
  .page-hero-product--photo img { max-width: none; }
}
/* 29.2 Engineering inset（V10 process evidence，30–38% 宽度，不抢产品主体） */
.eng-inset {
  position: absolute; left: 4%; bottom: 5%;
  width: 34%; aspect-ratio: 3 / 2;
  border-radius: 8px; overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
  background: var(--color-white);
}
.eng-inset img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 900px) {
  .eng-inset { position: static; width: 62%; margin: 16px auto 0; }
}
/* 29.3 editorial 大图圆角收敛（6px，区别于 SaaS 卡片） */
.photo-slot--editorial { border-radius: 6px; }
/* 29.4 detail accent 小图（≤35% 容器宽度） */
.figure-accent { max-width: 320px; }
/* 29.5 TEXT 45 / IMAGE 55 栅格（nuha500 exhaust） */
.calink-grid-2--45-55 { grid-template-columns: 0.45fr 0.55fr; }
@media (max-width: 900px) { .calink-grid-2--45-55 { grid-template-columns: 1fr; } }
/* 29.6 gallery-grid--life 升为 4 列（新增 V08 后保持单行） */
.gallery-grid.gallery-grid--life { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { .gallery-grid.gallery-grid--life { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .gallery-grid.gallery-grid--life { grid-template-columns: 1fr; } }


/* ============================================================
 * 30. MOTION & PREMIUM EXPERIENCE SYSTEM V1 — 2026-10-07
 * 克制统一动效。仅 transform / opacity / clip-path（GPU 友好）。
 * reveal-img 在此为权威定义（覆盖旧段）；mega panel 增位移；
 * hero 初次载入 scale-in；AI 数据动效接入 is-visible。
 * ============================================================ */

/* ── MOTION 02 — Image Reveal：clip-path + scale 1.02→1 + opacity（700–950ms）
   用于关键照片（Hero 次级视觉 / Industry / Signature / E.O.W. / Impact / About） */
.reveal-img {
  clip-path: inset(0 0 10% 0);
  opacity: 0;
  transform: scale(1.02);
  will-change: transform, opacity, clip-path;
  transition: clip-path var(--motion-slow, 700ms) var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)),
              opacity var(--motion-reveal, 620ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1)),
              transform var(--motion-slow, 700ms) var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.reveal-img.is-visible,
.reveal-img.visible {
  clip-path: inset(0 0 0 0);
  opacity: 1;
  transform: scale(1);
}

/* ── Mega Menu open：opacity + translateY(-6px→0)，220ms，不滑几十 px ── */
.mega-panel {
  transform: translateY(-6px);
  transition: opacity 220ms var(--ease-standard, cubic-bezier(0.25, 1, 0.5, 1)),
              visibility 220ms,
              transform 220ms var(--ease-standard, cubic-bezier(0.25, 1, 0.5, 1));
}
.has-mega.is-open .mega-panel,
body:not(.js-mega) .has-mega:hover .mega-panel,
body:not(.js-mega) .has-mega:focus-within .mega-panel {
  transform: translateY(0);
}

/* ── HOME 01 — Hero 初次载入：图 opacity 0→1 + scale 1.025→1（900–1200ms） ── */
.hero-brand-media.is-photo img {
  animation: calinkHeroReveal 1.1s var(--ease-premium, cubic-bezier(0.22, 1, 0.36, 1)) both;
}
@keyframes calinkHeroReveal {
  from { opacity: 0; transform: scale(1.025); }
  to   { opacity: 1; transform: scale(1); }
}

/* ── Industry / mega 卡片 hover 收敛：图片 scale 1.015，文字仅变色 ── */
.mega-app-item img {
  transition: transform var(--motion-micro, 280ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1)),
              opacity var(--motion-micro, 280ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1));
}
.mega-app-item:hover img { transform: scale(1.015); }

/* ── Service & Support / About mega 纯文字 hover：色 + 极轻 translateX(2px) ── */
.mega-link {
  display: inline-block;
  transition: color var(--motion-fast, 180ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1)),
              transform var(--motion-fast, 180ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1)),
              opacity var(--motion-fast, 180ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1));
}
@media (hover: hover) and (pointer: fine) {
  .mega-link:hover { transform: translateX(2px); }
}

/* ── AI 数据动效：数值在进入视口后按序淡入（与 curve-drawn 解耦） ── */
.ai-data-value {
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--motion-base, 420ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1)),
              transform var(--motion-base, 420ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1));
}
.ai-data-row:nth-child(1) .ai-data-value { transition-delay: 0.15s; }
.ai-data-row:nth-child(2) .ai-data-value { transition-delay: 0.30s; }
.ai-data-row:nth-child(3) .ai-data-value { transition-delay: 0.45s; }
.ai-data-row:nth-child(4) .ai-data-value { transition-delay: 0.60s; }
.curve-drawn .ai-data-value,
.ai-data-value.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Mobile degradation：hero scale-in 关闭、drift 关闭（保留 fade/reveal） ── */
@media (max-width: 768px) {
  .hero-brand-media.is-photo img { animation: none; opacity: 1; transform: none; }
  .reveal-img { transform: none; }
}

/* ── prefers-reduced-motion：本段新增动效一律立即可见 ── */
@media (prefers-reduced-motion: reduce) {
  .reveal-img,
  .reveal-img.is-visible,
  .reveal-img.visible {
    clip-path: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .hero-brand-media.is-photo img { animation: none !important; opacity: 1; transform: none; }
  .ai-data-value { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ============================================================
 * 31. MOTION COVERAGE — micro hover（Phase 5-7）
 * 图片微缩放 + 标题轻微透明度，克制不浮夸。
 * ============================================================ */
@media (hover: hover) and (pointer: fine) {
  .path-item:hover .path-item-media img { transform: scale(1.015); }
  .estate-card:hover .estate-card-media img { transform: scale(1.01); }
  .estate-card:hover .estate-card-name { opacity: 0.85; }
  .explore-card:hover .explore-card-media img { transform: scale(1.01); }
  .micro-lift:hover { transform: translateY(-3px); }
}

/* ============================================================
 * 32. PHASE A — Icon system + Mega Menu refinement
 * ============================================================ */

/* 统一箭头图标（inline SVG，随 currentColor） */
.icon-arrow { flex: none; }

/* Products preview：framed media，去掉"规格图"感 */
.mega-preview-media {
  background: var(--color-bg-alt, #F5F5F7);
  border-radius: 12px;
  overflow: hidden;
}
.mega-preview-media img {
  width: 100%;
  max-height: 300px;
  object-fit: contain;
  padding: 14px;
}

/* Mega 卡片统一 hover：轻 lift + 图片 1.015 */
.mega-app-item {
  transition: transform var(--motion-micro, 280ms) var(--ease-standard, cubic-bezier(0.25, 1, 0.5, 1));
}
@media (hover: hover) and (pointer: fine) {
  .mega-app-item:hover { transform: translateY(-2px); }
  .mega-app-item:hover .mega-app-desc { color: var(--color-text); }
}

/* ============================================================
 * 33. PHASE B — Home：sticky product proof / industry depth / E.O.W. meta
 * ============================================================ */

/* 5.2 Product Proof：左图 sticky，右 feature 滚过 */
.proof-media-col { position: sticky; top: 96px; align-self: start; }
#value .feature-lines { display: flex; flex-direction: column; }
#value .feature-line {
  padding: 30px 0;
  border-top: 1px solid var(--color-border-light);
  opacity: 0.38;
  transition: opacity 0.35s var(--ease-standard, cubic-bezier(0.25, 1, 0.5, 1));
}
#value .feature-line.is-active { opacity: 1; }

/* 5.4 Industry：hover depth + 轻 lift */
.app-edit-card {
  transition: transform var(--motion-micro, 280ms) var(--ease-standard, cubic-bezier(0.25, 1, 0.5, 1)),
              box-shadow var(--motion-micro, 280ms) var(--ease-standard, cubic-bezier(0.25, 1, 0.5, 1)),
              border-color 0.25s ease;
}
@media (hover: hover) and (pointer: fine) {
  .app-edit-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.10);
  }
}

/* 5.5 E.O.W. provenance meta overlay */
.eow-edit-media { position: relative; }
.eow-meta {
  position: absolute;
  left: 20px; bottom: 20px;
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-mono, monospace);
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.94);
  background: rgba(0, 0, 0, 0.42);
  padding: 8px 14px;
  border-radius: 6px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.eow-meta-label { color: rgba(255, 255, 255, 0.62); }
.eow-meta-value { color: #FFFFFF; }

/* mobile：sticky 关，meta overlay 收窄 */
@media (max-width: 768px) {
  .proof-media-col { position: static; }
  #value .feature-line { padding: 20px 0; }
  .eow-meta { left: 12px; bottom: 12px; gap: 8px; font-size: 10px; padding: 6px 10px; }
}

/* ============================================================
 * 34. PHASE C — Roast Pod：sticky engineering narrative + archive gallery
 * ============================================================ */
.precision-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}
.precision-media { position: sticky; top: 96px; }
.precision-media img { width: 100%; height: auto; object-fit: contain; }
.precision-features { display: flex; flex-direction: column; }
.precision-features .feature-line {
  padding: 28px 0;
  border-top: 1px solid var(--color-border-light);
  opacity: 0.4;
  transition: opacity 0.35s var(--ease-standard, cubic-bezier(0.25, 1, 0.5, 1));
}
.precision-features .feature-line.is-active { opacity: 1; }

/* 6.3 gallery：engineering archive（一大两小不对称 + metadata） */
.gallery-grid--archive { grid-template-columns: 1.4fr 1fr 1fr; }
/* F16 — 内部图片占位框（真实素材到位前使用，仅内部审核，不面向客户） */
.img-slot--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  min-height: 200px;
  border: 1px dashed rgba(237, 244, 255, 0.18);
  border-radius: 12px;
  background: rgba(237, 244, 255, 0.03);
  color: rgba(237, 244, 255, 0.42);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  padding: 20px;
}
.f16-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 640px) { .f16-grid-3 { grid-template-columns: 1fr; } }
.gallery-meta {
  display: block;
  font-family: var(--font-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-top: 10px;
}

@media (max-width: 768px) {
  .precision-grid { grid-template-columns: 1fr; }
  .precision-media { position: static; }
  .precision-features .feature-line { padding: 20px 0; }
  .gallery-grid--archive { grid-template-columns: 1fr; }
}

/* ============================================================
 * 35. PHASE D — E.O.W.：estate collection 错落 + map pin 浮现
 * ============================================================ */
.estate-collection {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 24px;
  align-items: stretch;
}
@media (max-width: 768px) {
  .estate-collection { grid-template-columns: 1fr; }
}

/* 地图定位针：轻浮现（不持续 pulse） */
.map-pin { opacity: 0; animation: mapPinReveal 0.6s var(--ease-standard, cubic-bezier(0.25, 1, 0.5, 1)) forwards; }
@keyframes mapPinReveal {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ============================================================
 * 36. PHASE E — Industry scene personality
 * ============================================================ */

/* Signature Profiles：roast degree 对比标签 */
.roast-degree-label {
  position: absolute;
  left: 16px; bottom: 16px;
  font-family: var(--font-mono, monospace);
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: #FFFFFF;
  background: rgba(0, 0, 0, 0.42);
  padding: 6px 12px;
  border-radius: 6px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

/* Developers：Resources & Availability -> 精密 registry（name 左 / status 右，mono） */
.dl-table--registry .dl-row { grid-template-columns: minmax(0, 1fr) auto; }
.dl-table--registry .dl-name {
  font-family: var(--font-mono, monospace);
  font-size: 13px; font-weight: 500; letter-spacing: 0.02em;
}
.dl-table--registry .dl-meta { text-align: right; }

/* ============================================================
 * 37. PHASE F — Impact SDG alignment matrix
 * ============================================================ */
.sdg-matrix-head {
  display: grid;
  grid-template-columns: 64px minmax(0, 320px) 1fr;
  gap: 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-divider);
  font-family: var(--font-mono, monospace);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
@media (max-width: 768px) {
  .sdg-matrix-head { grid-template-columns: 44px 1fr; }
  .sdg-matrix-head span:last-child { display: none; }
}

/* ============================================================
 * 38. PHASE G — Utility pages：轻 hover 反馈（service / contact / download）
 * ============================================================ */
.service-row,
.contact-row {
  transition: background-color 0.25s ease, transform 0.25s ease, color 0.25s ease;
}
.dl-row { transition: background-color 0.2s ease; }

@media (hover: hover) and (pointer: fine) {
  .service-row:hover { background: transparent; transform: none; }
  .contact-row:hover { background: transparent; transform: none; }
  .dl-row:hover { background: transparent; }
  .service-row:hover .service-row-title,
  .service-row:hover .calink-text-link,
  .contact-row:hover .contact-row-title,
  .contact-row:hover .contact-row-mail,
  .contact-row:hover .contact-row-icon { color: #C7251E; }
}


/* ============================================================
 * 39. E.O.W. — Premium origin-traceability storytelling
 * ============================================================ */

/* ---------- 01 · HERO — static archive composition ---------- */
/* Cards are placed by percentage in the markup. JS never writes position.
   Three layers, one owner each:
     .orbit-card  → placement (never animated)
     .orbit-drift → 3px float (CSS keyframes only)
     .orbit-lift  → focus scale (CSS transition only)                     */
.eow-orbit {
  --eow-focus-scale: 1.10;
  --eow-focus-dur: 380ms;
  --eow-focus-ease: cubic-bezier(0.16, 1, 0.30, 1);
  --eow-dim: 0.52;
  position: relative;
  background: #F7F3EB;
  color: #211E1B;
  overflow: hidden;
  padding: clamp(78px, 9.5vh, 100px) 0 clamp(20px, 3vh, 34px);
}
.eow-orbit::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(70% 58% at 50% 47%, rgba(255,255,255,0.90) 0%, rgba(255,255,255,0) 70%);
  pointer-events: none;
}
.eow-orbit-inner {
  position: relative;
  max-width: 1360px;
  margin: 0 auto;
  height: clamp(540px, calc(100vh - 140px), 760px);
}

.eow-orbit-field { position: absolute; inset: 0; }

/* ---- cards ---- */
.orbit-card {
  position: absolute;
  left: var(--x, 50%); top: var(--y, 50%);
  width: var(--w, 130px);
  z-index: 1;
  opacity: 1;
  transform: translate(-50%, -50%);
  transition: opacity 260ms ease-out;
  display: block;
  color: inherit;
  text-decoration: none;
}
.orbit-card--estate { cursor: pointer; }
.orbit-card--soon { pointer-events: none; cursor: default; opacity: 0.82; }

/* ---------- automatic orbit (desktop ≥1024) ---------- */
/* JS owns .orbit-card transform; the inner .orbit-lift still owns focus scale.
   The .eow-orbit prefix beats the static short-height nth-child top rules. */
.eow-orbit .eow-orbit-field.is-orbiting .orbit-card {
  left: 50%;
  top: 50%;
  z-index: 2;
  will-change: transform;
}
.eow-orbit-field.is-orbiting .orbit-drift { animation: none; }

/* ---- 3px micro float — very slow, pauses while exploring ---- */
.orbit-drift {
  display: block;
  animation: eowDrift var(--fdur, 22s) ease-in-out var(--fdly, 0s) infinite;
}
@keyframes eowDrift {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50%      { transform: translate3d(0, -3px, 0); }
}
.eow-orbit-field.is-exploring .orbit-drift,
.eow-orbit-field.has-focus .orbit-drift { animation-play-state: paused; }

/* ---- focus scale — only this layer animates on hover ---- */
.orbit-lift {
  display: block;
  transform-origin: 50% 50%;
  transition: transform var(--eow-focus-dur) var(--eow-focus-ease),
              opacity 300ms ease-out;
  will-change: transform;
}

.orbit-media {
  display: block;
  border-radius: 10px;
  overflow: hidden;
  background: #EDE7DC;
  aspect-ratio: 3 / 4;
  /* fixed shadow: never animated */
  box-shadow: 0 16px 34px -20px rgba(33,30,27,0.34);
}
.orbit-media img { display: block; width: 100%; height: 100%; object-fit: cover; }

.orbit-media--soon {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 6px;
  text-align: center; padding: 10px;
  background:
    repeating-linear-gradient(45deg, rgba(33,30,27,0.045) 0 1px, transparent 1px 10px),
    #F1ECE3;
  border: 1px solid rgba(33,30,27,0.07);
  box-shadow: 0 10px 24px -18px rgba(33,30,27,0.22);
}
.orbit-soon-label {
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(33,30,27,0.55);
}
.orbit-soon-sub {
  font-size: 9px; letter-spacing: 0.10em; text-transform: uppercase;
  color: rgba(33,30,27,0.34);
}
.orbit-soon-note {
  margin-top: 2px;
  font-size: 8px; letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(33,30,27,0.28);
}
.orbit-meta {
  display: block; margin-top: 7px; text-align: center;
  font-family: var(--font-mono, monospace);
  font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase;
  color: rgba(33,30,27,0.42);
  line-height: 1.4;
  transition: color 220ms ease-out;
}

/* ---- focus: one card gains scale; the rest step back ---- */
.orbit-card.is-focus { z-index: 30; }
.orbit-card.is-focus .orbit-lift { transform: scale(var(--eow-focus-scale)); }
.orbit-card.is-focus .orbit-meta { color: rgba(33,30,27,0.82); }
.eow-orbit-field.has-focus .orbit-card:not(.is-focus) { opacity: var(--eow-dim); }

.orbit-card:focus-visible {
  outline: 2px solid rgba(33,30,27,0.72);
  outline-offset: 6px;
  border-radius: 12px;
}

/* ---- centre: wordmark stays fully opaque, above the cards ---- */
.eow-orbit-center {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  z-index: 40;
  width: min(44%, 480px);
  text-align: center;
  pointer-events: none;
  transition: opacity 300ms ease-out;
}
.eow-orbit-title { margin: 0; }
.eow-orbit-mark { display: block; width: 100%; height: auto; }
.ob-e rect, .ob-w { fill: #211E1B; }
.ob-ring { stroke: #211E1B; }
.eow-orbit-caption {
  margin: clamp(10px, 1.6vw, 16px) 0 0;
  font-size: clamp(11px, 1.05vw, 13px);
  font-weight: 400; letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(33,30,27,0.62);
}
.eow-orbit-lede {
  margin: 9px 0 0;
  font-size: clamp(12px, 1.15vw, 14px);
  font-weight: 400; line-height: 1.6;
  color: rgba(33,30,27,0.42);
}
.eow-orbit-note {
  margin: clamp(6px, 1.4vh, 16px) auto 0;
  text-align: center;
  font-family: var(--font-mono, monospace);
  font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(33,30,27,0.34);
  max-width: 640px;
}

/* ---- entrance: opacity only, never touches transform ---- */
.eow-orbit.is-armed .orbit-lift { opacity: 0; }
.eow-orbit.is-in .orbit-lift { opacity: 1; }
.eow-orbit.is-armed .eow-orbit-center,
.eow-orbit.is-armed .eow-orbit-note { opacity: 0; }
.eow-orbit.is-in .eow-orbit-center,
.eow-orbit.is-in .eow-orbit-note { opacity: 1; }
.eow-orbit-center, .eow-orbit-note { transition: opacity 300ms ease-out; }

/* ---- large screens: cards may grow; safe area verified ---- */
@media (min-width: 1360px) {
  .orbit-card { width: calc(var(--w) * 1.10); }
}

/* ---- compact desktop centre ---- */
@media (min-width: 960px) and (max-width: 1439px) {
  .eow-orbit-center { width: min(40%, 420px); }
}

/* ---- short desktop heights: reserve the safe area ---- */
@media (min-width: 960px) and (max-height: 820px) {
  .orbit-card { width: calc(var(--w) * 0.92); }
  .eow-orbit-field .orbit-card:nth-child(1) { top: 15.5%; }
  .eow-orbit-field .orbit-card:nth-child(5),
  .eow-orbit-field .orbit-card:nth-child(6) { top: 83%; }
}
@media (min-width: 960px) and (max-height: 800px) {
  .eow-orbit-center { width: min(36%, 380px); }
}
@media (min-width: 960px) and (max-height: 760px) {
  .orbit-card { width: calc(var(--w) * 0.90); }
  .eow-orbit-field .orbit-card:nth-child(5),
  .eow-orbit-field .orbit-card:nth-child(6) { top: 83.5%; }
  .eow-orbit-caption { margin-top: 8px; font-size: 11px; }
  .eow-orbit-lede { margin-top: 6px; font-size: 12px; }
  .eow-orbit-note { margin-top: 14px; }
}

/* orbit mode on short screens: slightly smaller cards keep the path safe */
@media (min-width: 1024px) and (max-height: 820px) {
  .eow-orbit-field.is-orbiting .orbit-card { width: calc(var(--w) * 0.88); }
}
@media (min-width: 1024px) and (max-height: 760px) {
  .eow-orbit-field.is-orbiting .orbit-card { width: calc(var(--w) * 0.80); }
}

/* ---------- 02 · WHAT E.O.W. MEANS ---------- */
.eow-means-title {
  font-size: clamp(30px, 4.4vw, 52px);
  line-height: 1.08; letter-spacing: -0.02em;
  max-width: 720px; margin-bottom: 0;
}
.eow-means-rule {
  height: 1px; background: rgba(0,0,0,0.10);
  max-width: 480px; margin: var(--space-xl) 0;
  overflow: hidden;
}
.eow-means-rule-line {
  display: block; height: 100%; width: 0;
  background: var(--color-text);
  transition: width 1.1s var(--ease-premium, cubic-bezier(0.22,1,0.36,1));
}
.eow-means.is-visible .eow-means-rule-line { width: 100%; }
.eow-means-body {
  font-size: clamp(17px, 2vw, 21px);
  line-height: 1.7; color: var(--color-text-secondary, #6E6E73);
  max-width: 680px;
}
.eow-means-note {
  font-family: var(--font-mono, monospace);
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-text-muted); margin-top: var(--space-xl);
}

/* ---------- 03 · TRACEABILITY STORY ---------- */
.eow-trace { background: var(--color-bg-alt, #FAFAFA); }
.eow-trace-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 6vw, 88px);
  align-items: center;
}
.eow-trace-visual {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 20px;
  overflow: hidden;
  background: #E9E9EB;
}
.eow-trace-visual-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity 0.6s ease;
}
.eow-trace-visual-img[data-group="0"] { opacity: 1; }
.eow-trace-heading { font-size: clamp(26px, 3.4vw, 40px); letter-spacing: -0.01em; }
.eow-trace-progress {
  height: 1px; background: rgba(0,0,0,0.10);
  margin: var(--space-xl) 0 var(--space-lg);
}
.eow-trace-progress-fill {
  display: block; height: 100%; background: var(--color-primary);
  transform: scaleX(0); transform-origin: left;
}
.eow-trace-stages { display: flex; flex-direction: column; }
.eow-trace-stage {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 20px;
  padding: 20px 0;
  border-top: 1px solid rgba(0,0,0,0.08);
  opacity: 0.28;
  transition: opacity 0.35s var(--ease-standard, cubic-bezier(0.25,1,0.5,1)),
              transform 0.35s var(--ease-standard, cubic-bezier(0.25,1,0.5,1));
}
.eow-trace-stage-num {
  font-family: var(--font-mono, monospace);
  font-size: 12px; letter-spacing: 0.08em;
  color: var(--color-text-muted);
  padding-top: 4px;
}
.eow-trace-stage-label { font-size: 17px; font-weight: var(--font-weight-semibold); margin-bottom: 4px; }
.eow-trace-stage-desc { font-size: 14px; line-height: 1.6; color: var(--color-text-muted); }
.eow-trace-stage.is-active { opacity: 1; transform: translateX(4px); }
.eow-trace-stage.is-active .eow-trace-stage-num { color: var(--color-primary); }
.eow-trace-stage.is-past { opacity: 0.55; }
.eow-trace-stage.is-next { opacity: 0.22; }

/* desktop：sticky scroll storytelling */
@media (min-width: 769px) {
  .eow-trace { height: 560vh; }
  .eow-trace-sticky {
    position: sticky; top: 0; height: 100vh;
    display: flex; align-items: center;
    overflow: hidden;
  }
}

/* ---------- 04 · ORIGIN ARCHIVE (carousel) ---------- */
.eow-archive { padding: var(--space-5xl) 0; overflow: hidden; }
.eow-archive-head { margin-bottom: var(--space-3xl); max-width: 720px; }
.eow-carousel { overflow: hidden; padding: 20px 0 36px; perspective: 1400px; }
.eow-carousel-track {
  display: flex;
  gap: 24px;
  padding: 0 max(24px, calc((100vw - 1280px) / 2));
  will-change: transform;
  position: relative;
  transform-style: preserve-3d;
}
.eow-card {
  position: relative;
  flex: 0 0 auto;
  width: clamp(340px, 24vw, 400px);
  aspect-ratio: 4 / 5;
  border-radius: 20px;
  overflow: hidden;
  background: #FFFFFF;
  box-shadow: 0 8px 30px rgba(0,0,0,0.06);
  transition: box-shadow var(--motion-micro, 280ms) ease;
  will-change: transform, opacity;
  backface-visibility: hidden;
}
.eow-card--estate { color: #FFFFFF; text-decoration: none; }
.eow-card-media { position: absolute; inset: 0; }
.eow-card-media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: filter 0.3s ease;
}
.eow-card-body {
  position: absolute; inset: auto 0 0 0;
  padding: 24px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.72) 100%);
}
.eow-card-index {
  font-family: var(--font-mono, monospace);
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.72); margin-bottom: 8px;
}
.eow-card-name { font-size: 24px; font-weight: var(--font-weight-semibold); margin-bottom: 6px; }
.eow-card-meta {
  font-size: 13px; color: rgba(255,255,255,0.7);
  margin-bottom: 14px; opacity: 0; transform: translateY(6px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.eow-card-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 14px; font-weight: var(--font-weight-medium);
  color: #FFFFFF;
  opacity: 0; transform: translateY(6px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.eow-card--soon { background: #F4F4F6; box-shadow: none; }
.eow-card-soon {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  text-align: center; padding: 24px;
}
.eow-card-soon-pattern {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(0,0,0,0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,0.045) 1px, transparent 1px),
    radial-gradient(circle at 30% 30%, rgba(0,0,0,0.06), transparent 55%),
    radial-gradient(circle at 72% 68%, rgba(0,0,0,0.05), transparent 50%);
  background-size: 28px 28px, 28px 28px, 100% 100%, 100% 100%;
}
.eow-card-soon-label, .eow-card-soon-meta { position: relative; }
.eow-card-soon-label {
  font-family: var(--font-mono, monospace);
  font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase;
  color: #6E6E73; margin-bottom: 10px;
}
.eow-card-soon-meta {
  font-family: var(--font-mono, monospace);
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: #A1A1A6;
}
.eow-archive-note {
  display: block;
  font-family: var(--font-mono, monospace);
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-text-muted);
  margin-top: var(--space-xl);
}
@media (hover: hover) and (pointer: fine) {
  .eow-card--estate:hover { box-shadow: 0 20px 44px rgba(0,0,0,0.14); }
  .eow-card--estate:hover .eow-card-media img { filter: brightness(1.05); }
  .eow-card--estate:hover .eow-card-meta,
  .eow-card--estate:hover .eow-card-cta { opacity: 1; transform: translateY(0); }
}

/* ---------- 05 · ORIGIN → ROAST (dark) ---------- */
.eow-roastlink {
  background: #0F0F12;
  color: #FFFFFF;
  padding: var(--space-5xl) 0;
}
.section-label--on-dark { color: rgba(255,255,255,0.55); }
.eow-roastlink-title {
  font-size: clamp(30px, 4.4vw, 52px);
  letter-spacing: -0.02em; color: #FFFFFF;
  max-width: 720px;
}
.eow-roastlink-desc { color: rgba(255,255,255,0.62); max-width: 620px; margin-top: var(--space-md); }
.eow-roastlink-path {
  display: flex; align-items: center;
  gap: 16px; margin-top: var(--space-3xl);
  flex-wrap: wrap;
}
.rl-node { display: inline-flex; align-items: center; gap: 10px; }
.rl-node-dot { width: 8px; height: 8px; border-radius: 50%; background: #3DD6FF; }
.rl-node-label { font-size: 14px; color: rgba(255,255,255,0.86); white-space: nowrap; }
.rl-line {
  flex: 1 1 40px; min-width: 24px; height: 1px;
  background: rgba(61, 214, 255, 0.35);
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.8s var(--ease-premium, cubic-bezier(0.22,1,0.36,1));
}
.eow-roastlink-path.is-drawn .rl-line { transform: scaleX(1); }
.eow-roastlink-path .rl-line:nth-child(2) { transition-delay: 0.05s; }
.eow-roastlink-path .rl-line:nth-child(4) { transition-delay: 0.22s; }
.eow-roastlink-path .rl-line:nth-child(6) { transition-delay: 0.39s; }
.eow-roastlink-note {
  font-family: var(--font-mono, monospace);
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.4); margin-top: var(--space-lg);
}

/* ---------- Tablet + Mobile: two-column grid ---------- */
@media (max-width: 959px) {
  .eow-orbit { padding: clamp(84px, 13vh, 108px) 0 clamp(28px, 5vh, 48px); }
  .eow-orbit-inner { height: auto; max-width: none; padding: 0 clamp(20px, 4vw, 32px); }
  .eow-orbit-center {
    position: relative; left: auto; top: auto; transform: none;
    width: 100%; margin: 0 auto clamp(28px, 6vw, 40px);
  }
  .eow-orbit-title { max-width: 300px; margin: 0 auto; }
  .eow-orbit-field {
    position: relative; inset: auto;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 3vw, 30px) clamp(16px, 2.4vw, 24px);
    max-width: 560px; margin: 0 auto;
  }
  .eow-orbit-field .orbit-card {
    position: relative; left: auto; top: auto; width: auto; z-index: 1; transform: none;
  }
  .orbit-card--soon { opacity: 0.78; }
  .orbit-drift { animation: none; }
  .orbit-media { aspect-ratio: 4 / 5; }
  .orbit-card.is-focus { z-index: 5; }
  .orbit-card.is-focus .orbit-lift { transform: scale(1.02); }
  .eow-orbit-field.has-focus .orbit-card:not(.is-focus) { opacity: 0.55; }
  .eow-orbit-note { padding: 0 20px; }
}

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
  .eow-trace-layout { grid-template-columns: 1fr; gap: 0; }
  .eow-trace-visual { display: none; }
  .eow-trace-stage { opacity: 1; }
  .eow-carousel { overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; }
  .eow-carousel-track { padding: 0 24px; }
  .eow-card { width: 82vw; scroll-snap-align: start; }
  .eow-card-meta, .eow-card-cta { opacity: 1; transform: none; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .eow-orbit .orbit-drift { animation: none; }
  .eow-orbit .orbit-lift { transition: none; }
  .eow-orbit .orbit-card { transition: none; }
  .eow-orbit .orbit-meta { transition: none; }
  .eow-orbit .orbit-card.is-focus .orbit-lift { transform: none; }
  .eow-orbit.is-armed .orbit-lift,
  .eow-orbit.is-armed .eow-orbit-center,
  .eow-orbit.is-armed .eow-orbit-note { opacity: 1; }
  .eow-orbit-center, .eow-orbit-note { transition: none; }
  .eow-trace { height: auto; }
  .eow-trace-sticky { position: static; height: auto; }
  .eow-trace-stage { opacity: 1; }
  .eow-trace-visual-img { transition: none; }
  .eow-means-rule-line { width: 100%; }
  .eow-roastlink-path .rl-line { transform: scaleX(1); }
  .eow-carousel { overflow-x: auto; }
}

/* ============================================================
 * CALINK GLOBAL VISUAL SYSTEM V1 — T2 scoped master-page layer
 * Applies ONLY to pages carrying body.visual-v1 (index.html, nuha500.html).
 * Nothing here touches the header shell, mega menu, footer or other pages.
 * ============================================================ */

/* ---- 1. reading measure: one column instead of six arbitrary widths ---- */
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-desc,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .hero-home-prop,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .feature-line-desc {
  max-width: var(--calink-measure-reading);
}

/* ---- 2. typography roles ---- */
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .display-title--page {
  font-size: var(--calink-type-page-title);
  line-height: 1.08;
  letter-spacing: -0.02em;
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .hero-home-title {
  font-size: var(--calink-type-display);
  line-height: var(--calink-leading-display);
  letter-spacing: -0.022em;
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .display-title--section {
  font-size: var(--calink-type-section);
  line-height: var(--calink-leading-section);
  letter-spacing: -0.018em;
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .display-title--minor {
  font-size: var(--calink-type-sub);
  line-height: 1.2;
  letter-spacing: -0.012em;
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .b2b-band-title {
  font-size: var(--calink-type-section);
  line-height: var(--calink-leading-section);
  letter-spacing: -0.018em;
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-desc {
  font-size: var(--calink-type-lead);
  line-height: var(--calink-leading-body);
  color: var(--calink-muted);
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .hero-home-prop {
  font-size: var(--calink-type-lead);
  line-height: var(--calink-leading-body);
  max-width: var(--calink-measure-lead);
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-label,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .hero-home-eyebrow,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .media-caption,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .proof-tag {
  font-size: var(--calink-type-label);
  letter-spacing: 0.08em;
}

/* ---- 3. vertical rhythm: three densities, no repeated 128/128 ---- */
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-pad {
  padding-top: var(--calink-space-standard);
  padding-bottom: var(--calink-space-standard);
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #value,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #ai,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #precision {
  padding-top: var(--calink-space-feature);
  padding-bottom: var(--calink-space-feature);
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #partners,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #specifications,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #support {
  padding-top: var(--calink-space-compact);
  padding-bottom: var(--calink-space-compact);
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #partners { padding-bottom: calc(var(--calink-space-compact) + 24px); }

/* ---- 4. surfaces: warm editorial ground, no cool SaaS banding ---- */
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-pad,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #value,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #engineering,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #eow,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #precision,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #spaces,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #design,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #specifications {
  background: var(--calink-canvas);
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-pad[style*="color-bg-alt"],
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #applications,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #software,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #exhaust,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #gallery,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #support {
  background: var(--calink-soft) !important;
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-label { color: var(--calink-muted); }

/* ---- 5. media treatment: real product stage vs editorial image ---- */
/* product stage: the image itself defines the box height, so a 0.96 asset can never
   sit in a 1.3 box with blank bands; no generic grey card, no 12px rounded box */
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .photo-slot--contain {
  background: linear-gradient(180deg, #FBFAF7 0%, #EFEEEA 100%);
  border: 0;
  border-radius: var(--calink-stage-radius);
  box-shadow: 0 24px 48px -32px rgba(29, 29, 31, 0.28);
  aspect-ratio: auto;
  padding: clamp(20px, 3vw, 40px);
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .photo-slot--contain img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: clamp(360px, 46vw, 620px);
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .photo-slot--contain::before { content: none; }
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .media-caption {
  margin-top: 14px;
  color: var(--calink-muted);
}

/* ---- 6. feature list: real hierarchy instead of 16px + 13px ---- */
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .feature-line { border-color: var(--calink-line); }
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .feature-line-title { font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.008em; }
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .feature-line-desc { font-size: 0.9375rem; line-height: var(--calink-leading-body); color: var(--calink-muted); }
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .feature-line-num { color: var(--calink-muted); }

/* ---- 7. CTA sizing lock (in-page only; header CTA untouched) ---- */
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .btn-primary,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .btn-secondary,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .btn-ghost,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .calink-text-link {
  min-height: 44px;
}
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .btn-primary,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .btn-secondary,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .btn-ghost { font-size: 0.9375rem; }
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .calink-text-link { font-size: 0.9375rem; }

/* ---- 8. mobile: recomposed rhythm, not a blind 128px stack ---- */
@media (max-width: 768px) {
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-pad {
    padding-top: clamp(46px, 11vw, 58px);
    padding-bottom: clamp(46px, 11vw, 58px);
  }
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #value,
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #ai,
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #precision {
    padding-top: clamp(52px, 13vw, 68px);
    padding-bottom: clamp(52px, 13vw, 68px);
  }
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #partners,
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #specifications,
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) #support {
    padding-top: clamp(38px, 9vw, 48px);
    padding-bottom: clamp(38px, 9vw, 48px);
  }
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .photo-slot--contain { padding: clamp(14px, 4vw, 22px); }
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-desc,
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .hero-home-prop,
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .feature-line-desc { max-width: none; }
}

/* ---- 9. tablet: avoid 834px crowding ---- */
@media (min-width: 769px) and (max-width: 1024px) {
  body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-pad {
    padding-top: clamp(64px, 8vw, 92px);
    padding-bottom: clamp(64px, 8vw, 92px);
  }
}

/* ============================================================
 * FOOTER V2.1 — CALINK 全站统一深黑柔光 Footer（F01 2026-10-13）
 * 仅作用于 .calink-footer 及其子元素，覆盖旧浅色 Footer。
 * ============================================================ */
.calink-footer {
  --footer-text: #F5F6F8;
  --footer-muted: #ADB6C5;
  --footer-rule: rgba(230, 237, 251, .14);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #090B10;
  background-image:
    radial-gradient(ellipse 54% 108% at 101% -12%, rgba(78,105,168,.30) 0%, rgba(55,75,126,.115) 47%, transparent 80%),
    radial-gradient(ellipse 59% 100% at -3% 116%, rgba(115,80,147,.235) 0%, rgba(63,49,101,.085) 51%, transparent 82%),
    linear-gradient(180deg, #0B0D12 0%, #0D1016 50%, #090B10 100%);
  background-repeat: no-repeat;
  border-top: 1px solid var(--footer-rule);
  color: var(--footer-text);
}
.calink-footer > .container { position: relative; z-index: 1; }
.calink-footer .footer-col-title { color: var(--footer-muted); }
.calink-footer .footer-link { color: var(--footer-text); }
.calink-footer .footer-legal-link,
.calink-footer .muted { color: var(--footer-muted); }
.calink-footer .footer-link:hover,
.calink-footer .footer-legal-link:hover { color: #FF6B5E; }
.calink-footer .footer-legal-link:focus-visible,
.calink-footer .footer-link:focus-visible,
.calink-footer .logo-link:focus-visible {
  outline: 2px solid #9DB6DF;
  outline-offset: 5px;
}

/* ============================================================
 * F02 — FOR ORGANIZATIONS（机构合作草稿页 · .org-v2 作用域）
 * F07-A 精修：连续蓝紫环境光 + 卡片层次；仅作用于 organizations.html。
 * ============================================================ */
.org-v2 {
  --org-bg: #FFFFFF;
  --org-mid: #F7F8FA;
  --org-text: #111417;
  --org-muted: #5C6370;
  --org-line: rgba(17, 20, 23, .10);
  color: var(--org-text);
  background-color: #FFFFFF;
  overflow: clip;
}
.org-v2 .org-container { max-width: 1280px; margin: 0 auto; padding: 0 64px; }
.org-v2 .org-kicker {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--org-muted);
  margin: 0 0 24px;
}
.org-v2 .org-hero { padding: 100px 0 90px; }
.org-v2 .org-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}
.org-v2 .org-hero-title {
  font-size: clamp(64px, 6vw, 86px);
  line-height: 1.04;
  font-weight: 500;
  letter-spacing: -.052em;
  color: var(--org-text);
  margin: 0 0 28px;
}
.org-v2 .org-hero-lead {
  font-size: 18px;
  line-height: 1.62;
  color: var(--org-text);
  max-width: 490px;
  margin: 0 0 16px;
}
.org-v2 .org-hero-sub {
  font-size: 16px;
  line-height: 1.62;
  color: var(--org-muted);
  max-width: 490px;
  margin: 0 0 32px;
}
.org-v2 .org-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.org-v2 .org-status {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .06em;
  color: var(--org-muted);
  margin: 24px 0 0;
}
.org-v2 .org-hero-media { margin: 0; border-radius: 22px; overflow: hidden; background: var(--org-mid); }
.org-v2 .org-hero-media img {
  display: block;
  width: 100%;
  height: clamp(450px, 42vw, 530px);
  object-fit: cover;
  object-position: center;
}
.org-v2 .org-section { padding: 110px 0; }
.org-v2 .org-h2 {
  font-size: clamp(40px, 4.5vw, 56px);
  line-height: 1.08;
  font-weight: 500;
  letter-spacing: -.04em;
  color: var(--org-text);
  margin: 0 0 24px;
}
.org-v2 .org-desc {
  font-size: 16px;
  line-height: 1.62;
  color: var(--org-muted);
  max-width: 560px;
  margin: 0 0 48px;
}
.org-v2 .org-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.org-v2 .org-card {
  min-height: 240px;
  padding: 32px;
  border-radius: 22px;
  background: #F7F8FA;
  border: 1px solid rgba(17,20,23,.10);
  display: flex;
  flex-direction: column;
}
.org-v2 .org-card-num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--org-muted);
  margin: 0 0 18px;
}
.org-v2 .org-card-title {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 500;
  letter-spacing: -.02em;
  color: var(--org-text);
  margin: 0 0 12px;
}
.org-v2 .org-card-text { font-size: 15px; line-height: 1.6; color: var(--org-muted); margin: 0; }
.org-v2 .org-split { display: grid; grid-template-columns: 42fr 58fr; gap: 64px; align-items: center; }
.org-v2 .org-list { list-style: none; margin: 0; padding: 0; }
.org-v2 .org-list li {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--org-line);
  font-size: 16px;
  color: var(--org-text);
}
.org-v2 .org-list-num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  color: var(--org-muted);
}
.org-v2 .org-split-media { margin: 0; border-radius: 22px; overflow: hidden; background: var(--org-mid); }
.org-v2 .org-split-media img { display: block; width: 100%; height: auto; }
.org-v2 .org-figcaption {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .06em;
  color: var(--org-muted);
  padding: 14px 4px 0;
}
.org-v2 .org-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.org-v2 .org-step { padding-top: 20px; border-top: 1px solid var(--org-line); }
.org-v2 .org-step-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--org-muted);
  margin: 0 0 16px;
}
.org-v2 .org-step-title { font-size: 20px; font-weight: 500; color: var(--org-text); margin: 0 0 10px; }
.org-v2 .org-step-text { font-size: 15px; line-height: 1.6; color: var(--org-muted); margin: 0; }
.org-v2 .org-closing { padding: 100px 0 120px; text-align: center; }
.org-v2 .org-closing .org-container { display: flex; flex-direction: column; align-items: center; }
.org-v2 .org-closing-desc {
  font-size: 16px;
  line-height: 1.62;
  color: var(--org-muted);
  max-width: 560px;
  margin: 0 auto 32px;
}
.org-v2 .org-closing .org-actions { justify-content: center; }
.org-v2 .btn-primary { background: #111417; border-color: #111417; color: #FFFFFF; }
.org-v2 .btn-primary:hover { color: #FF6B5E; }
.org-v2 .btn-secondary { color: #111417; border-color: rgba(17,20,23,.25); }
.org-v2 .btn-secondary:hover { color: #C7251E; }
.org-v2 img { display: block; max-width: 100%; height: auto; }

/* 平板 */
@media (max-width: 1199px) {
  .org-v2 .org-container { padding: 0 32px; }
  .org-v2 .org-split { grid-template-columns: 1fr; gap: 40px; }
  .org-v2 .org-steps { grid-template-columns: 1fr 1fr; }
}
/* 手机 */
@media (max-width: 767px) {
  .org-v2 .org-container { padding: 0 20px; }
  .org-v2 .org-hero { padding: 64px 0 72px; }
  .org-v2 .org-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .org-v2 .org-hero-title { font-size: clamp(42px, 11vw, 55px); }
  .org-v2 .org-h2 { font-size: clamp(32px, 8.8vw, 42px); }
  .org-v2 .org-section { padding: 64px 0; }
  .org-v2 .org-cards { grid-template-columns: 1fr; }
  .org-v2 .org-card { padding: 24px; min-height: 0; }
  .org-v2 .org-steps { grid-template-columns: 1fr; }
  .org-v2 .org-closing { padding: 72px 0 80px; }
  .org-v2 .org-hero-media img { height: auto; }
}

/* ============================================================
 * F03 NAV SYSTEM + FOOTER GRID — 六栏目导航 / 深浅主题 / 六栏目页脚
 * ============================================================ */

/* ---- 深色导航主题（机构合作页 .org-v2，与既有 .hero-studio 同一套路） ---- */
body:has(.org-v2) .site-header,
body:has(.org-v2) .site-header.is-transparent {
  background: rgba(11, 13, 19, .88);
  border-bottom-color: rgba(238, 242, 248, .10);
}
body:has(.org-v2) .site-header.is-scrolled,
body:has(.org-v2) .site-header.mega-open {
  background: rgba(11, 13, 19, .96);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-bottom-color: rgba(238, 242, 248, .10);
}
body:has(.org-v2) .site-header .nav-link,
body:has(.org-v2) .site-header.is-transparent .nav-link,
body:has(.org-v2) .site-header.is-scrolled .nav-link {
  color: rgba(245, 246, 248, .86);
}
body:has(.org-v2) .site-header .nav-link:hover,
body:has(.org-v2) .has-mega.is-open > .nav-link {
  color: #FF6B5E;
}
body:has(.org-v2) .site-header .logo-link img.logo-img-dark { display: none; }
body:has(.org-v2) .site-header .logo-link img.logo-img-light { display: block; }
body:has(.org-v2) .site-header .mobile-menu-toggle { color: rgba(245, 246, 248, .86); }
body:has(.org-v2) .site-header .nav-cta-btn { background: #F5F6F7; color: #0B0D13; }

/* 深色 Mega 面板 */
body:has(.org-v2) .mega-panel {
  background: #121722;
  border-color: rgba(238, 242, 248, .10);
  box-shadow: 0 20px 48px rgba(0, 0, 0, .35);
}
body:has(.org-v2) .mega-panel .mega-col-title { color: #B9C1CB; }
body:has(.org-v2) .mega-panel .mega-link,
body:has(.org-v2) .mega-panel .mega-product-link,
body:has(.org-v2) .mega-panel .mega-preview-name,
body:has(.org-v2) .mega-panel .mega-app-title { color: #F5F6F8; }
body:has(.org-v2) .mega-panel .mega-preview-desc,
body:has(.org-v2) .mega-panel .mega-app-desc { color: #B9C1CB; }
body:has(.org-v2) .mega-panel .mega-link:hover,
body:has(.org-v2) .mega-panel .mega-product-link:hover { color: #FF6B5E; }

/* 深色移动菜单 */
body:has(.org-v2) .mobile-nav { background: #0B0D13; color: rgba(245, 246, 248, .9); }
body:has(.org-v2) .mobile-nav .mnav-toggle,
body:has(.org-v2) .mobile-nav .mnav-direct { color: rgba(245, 246, 248, .9); }
body:has(.org-v2) .mobile-nav .mnav-sub-link { color: #B9C1CB; }
body:has(.org-v2) .mobile-nav .mnav-sub-link:hover { color: #FFFFFF; }
body:has(.org-v2) .mobile-nav .mobile-nav-close { color: #F5F6F8; }
body:has(.org-v2) .mobile-nav .btn-primary { background: #F5F6F7; color: #0B0D13; border-color: #F5F6F7; }

/* 移动菜单 Logo 双图切换 */
.mobile-nav .logo-link img.logo-img-light { display: none; }
body:has(.org-v2) .mobile-nav .logo-link img.logo-img-dark { display: none; }
body:has(.org-v2) .mobile-nav .logo-link img.logo-img-light { display: block; }

/* ---- Footer 六栏目栅格（保留 F01 背景） ---- */
.calink-footer .footer-grid {
  display: grid;
  grid-template-columns: 270px 1fr;
  gap: clamp(32px, 5vw, 64px);
  margin-bottom: var(--space-3xl);
}
.calink-footer .footer-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 28px;
  row-gap: 44px;
}
@media (max-width: 1024px) {
  .calink-footer .footer-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .calink-footer .footer-cols { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
 * F03-R1 — 导航视觉返修（Mega 深色卡片 / 手机 Header / 移动菜单字体）
 * ============================================================ */

/* ---- 桌面 Mega：右侧产品展示卡片深色（透明产品图自然融入） ---- */
body:has(.org-v2) .mega-preview-media { background: #171C26; border-radius: 12px; }
body:has(.org-v2) .mega-preview-media img { background: transparent; }

/* ---- Explore 链接：去下划线，hover 改亮度，保留 focus 环 ---- */
.mega-preview-cta { text-decoration: none !important; }
.mega-preview-cta:hover { text-decoration: none !important; color: #FF6B5E; }
body:has(.org-v2) .mega-preview-cta { color: #F5F6F8; }
body:has(.org-v2) .mega-preview-cta:hover { color: #FF6B5E; text-decoration: none !important; }

/* ---- 手机 Header：汉堡按钮 44×44 点击区，图标居中 ---- */
.mobile-menu-toggle {
  width: 44px;
  height: 44px;
  padding: 0;
  align-items: center;
  justify-content: center;
}

/* ---- 移动菜单六项一级导航字体统一 ---- */
.mobile-nav .mnav-toggle,
.mobile-nav .mnav-direct {
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
  min-height: 56px;
  padding: 14px 24px;
  letter-spacing: 0;
}

/* ---- 手机 Header 布局修正：汉堡固定右侧 + Logo 20px 边距 ---- */
@media (max-width: 1024px) {
  .site-header > .container.calink-flex-between {
    grid-template-columns: 1fr auto;
  }
}
@media (max-width: 639px) {
  .site-header > .container.calink-flex-between {
    --container-padding: 20px;
  }
}

/* ============================================================
 * F03-R2 — 全站统一黑色玻璃导航（覆盖旧深浅差异，Header/Mega/Mobile 全黑）
 * ============================================================ */

/* ---- Header：默认 / 透明 / 滚动 —— 保留 F03-R2 深黑玻璃质感（rgba(9,11,16,.94) + blur18） ---- */
.site-header,
.site-header.is-transparent,
.site-header.is-scrolled {
  background: rgba(9, 11, 16, .94) !important;
  border-bottom-color: rgba(239, 243, 251, .10);
}
.site-header.is-scrolled {
  background: rgba(9, 11, 16, .97) !important;
  -webkit-backdrop-filter: blur(18px) saturate(125%);
  backdrop-filter: blur(18px) saturate(125%);
}

/* ---- F09 / F20-A2-R1：展开时 Header 与面板共用同一表面；顶部渐暗，底缘与面板同色 ---- */
.site-header.mega-open {
  background-color: #161E2A !important;
  background-image:
    radial-gradient(ellipse 41% 90% at 2% 68px, rgba(112, 140, 190, 0.28), transparent 83%),
    linear-gradient(180deg, rgba(10, 12, 18, 0.62) 0%, rgba(10, 12, 18, 0) 78%),
    linear-gradient(106deg, #161E2A 0%, #171E29 47%, #141B26 100%) !important;
  background-repeat: no-repeat !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

/* ---- 一级导航文字：全局浅色；hover / 打开 Mega 时为珊瑚红 ---- */
.site-header .nav-link,
.site-header.is-transparent .nav-link,
.site-header.is-scrolled .nav-link,
.site-header.mega-open .nav-link { color: #F1F3F7; }
.site-header .nav-link:hover,
.site-header .has-mega:hover > .nav-link,
.site-header .has-mega:focus-within > .nav-link,
.has-mega.is-open > .nav-link { color: #FF6B5E; }
.site-header .nav-link.is-active,
.site-header .nav-link[aria-current="page"] { color: #FFFFFF; }

/* ---- Logo：全局白字红标，单套显示 ---- */
.site-header .logo-link img.logo-img-dark { display: none !important; }
.site-header .logo-link img.logo-img-light { display: block !important; }

/* ---- 汉堡按钮与 CTA ---- */
/* 与 nav-link 同一模式：显式覆盖 .is-scrolled / .is-transparent / .mega-open，
   压过上方 .site-header.is-scrolled .mobile-menu-toggle { color: var(--color-text) }（深色 Header 上不可见） */
.site-header .mobile-menu-toggle,
.site-header.is-transparent .mobile-menu-toggle,
.site-header.is-scrolled .mobile-menu-toggle,
.site-header.mega-open .mobile-menu-toggle { color: #F1F3F7; }
.site-header .mobile-menu-toggle:hover,
.site-header .mobile-menu-toggle:focus-visible { color: #FFFFFF; }
.site-header .nav-cta-btn { background: #FFFFFF; color: #0B0D13; border-color: #FFFFFF; }
/* F21-UX-R1B：白色胶囊保持，hover 只改文字并上浮 1px */
.site-header .nav-cta-btn:hover,
.site-header .nav-cta-btn:focus-visible {
  background: #FFFFFF;
  border-color: #FFFFFF;
  color: #C7251E;
  transform: translateY(-1px);
}
body:has(.org-v2) .site-header .nav-cta-btn:hover,
body:has(.org-v2) .site-header .nav-cta-btn:focus-visible {
  background: #F5F6F7;
  border-color: #F5F6F7;
  color: #C7251E;
}

/* ---- F20-A2：单一深蓝黑面板 + 双角静态光晕，禁止霓虹/呼吸动画 ---- */
.mega-panel {
  background-color: #161E2A !important;
  background-image:
    radial-gradient(ellipse 41% 91% at 2% -16%, rgba(112, 140, 190, 0.31), transparent 83%),
    radial-gradient(ellipse 50% 87% at 98% 112%, rgba(53, 86, 160, 0.30), transparent 76%),
    radial-gradient(ellipse 28% 36% at 50% 38%, rgba(37, 55, 85, 0.10), transparent 88%),
    linear-gradient(106deg, #161E2A 0%, #171E29 47%, #141B26 100%) !important;
  background-repeat: no-repeat !important;
  border: none !important;
  border-radius: 0 0 28px 28px !important;
  box-shadow: 0 24px 54px rgba(0, 0, 0, .48), inset 0 -1px rgba(255,255,255,.07) !important;
}
.mega-panel .mega-col-title { color: #ACB6C5; }
.mega-panel .mega-link,
.mega-panel .mega-product-link { color: #F5F6F8; }
.mega-panel .mega-link:hover,
.mega-panel .mega-product-link:hover { color: #FF6B5E; }
.mega-panel .mega-app-title { color: #F5F6F8; }
.mega-panel .mega-app-desc { color: #B9C1CB; }

/* ---- 产品预览：外卡片 / 图片区 / 文字全部深色 ---- */
.mega-preview-area,
.mega-preview,
.mega-preview-media { background: #171C26; border-radius: 12px; }
.mega-preview-media { background: #141820; }
.mega-preview-media img { background: transparent; }
.mega-preview-name { color: #F5F6F8; }
.mega-preview-desc { color: #B9C1CB; }
.mega-preview-cta { color: #F5F6F8; text-decoration: none; }
.mega-preview-cta:hover { color: #FF6B5E; text-decoration: none; }

/* ---- About Mega 内媒体区 ---- */
.mega-media { background: #171C26; border-radius: 12px; }

/* ---- 移动菜单：全局深色 ---- */
.mobile-nav {
  background-color: #121924;
  background-image:
    radial-gradient(ellipse 90% 42% at 0% 0%, rgba(112, 140, 190, 0.20), transparent 76%),
    radial-gradient(ellipse 90% 42% at 100% 100%, rgba(53, 86, 160, 0.16), transparent 76%),
    linear-gradient(106deg, #161E2A 0%, #171E29 50%, #141B26 100%);
  color: #F1F3F7;
}
.mobile-nav .mnav-toggle,
.mobile-nav .mnav-direct { color: #F1F3F7; }
.mobile-nav .mnav-sub-link { color: #B9C1CB; }
.mobile-nav .mnav-sub-link:hover { color: #FFFFFF; }
.mobile-nav .mobile-nav-close { color: #F5F6F8; }
.mobile-nav .btn-primary { background: #FFFFFF; color: #0B0D13; border-color: #FFFFFF; }
/* F21-UX-R1B：移动菜单内的白色 CTA 保持底色，hover / focus 只改文字 */
.mobile-nav .btn-primary:hover,
.mobile-nav .btn-primary:focus-visible { color: #C7251E; }
body:has(.org-v2) .mobile-nav .btn-primary:hover,
body:has(.org-v2) .mobile-nav .btn-primary:focus-visible { color: #C7251E; }
.mobile-nav .logo-link img.logo-img-dark { display: none; }
.mobile-nav .logo-link img.logo-img-light { display: block; }

/* ============================================================
 * F05-A — 首页连续深色背景（.v2-home 作用域，仅 index.html）
 * 消除深色 Hero 下方的白灰底，建立连续深黑蓝灰画布。
 * ============================================================ */

/* ---- F05-B：共享连续画布（整页一条极平缓渐变 + 2–3 处跨章节宽幅柔光） ---- */
main.v2-home {
  position: relative;
  isolation: isolate;
  color: var(--v2-dark-text);
  background-color: #0D0F14;
  background-image:
    radial-gradient(ellipse 60% 16% at 88% 10%, rgba(76, 99, 151, .15), transparent 80%),
    radial-gradient(ellipse 55% 13% at 6% 43%, rgba(106, 76, 142, .08), transparent 82%),
    radial-gradient(ellipse 62% 15% at 84% 76%, rgba(76, 99, 151, .11), transparent 80%),
    linear-gradient(180deg, #0D0F14 0%, #111722 17%, #151A24 42%, #121722 65%, #10141A 84%, #0D0F14 100%);
  background-repeat: no-repeat;
}

/* ---- 取消首页白灰过渡带与旧浅色/实体色块（仅首页作用域，ai.html 不受影响） ---- */
main.v2-home .ai-transition { display: none; }
main.v2-home .ai-dark-section { background: transparent; }
main.v2-home .b2b-band { background: transparent; }

/* ---- 各章节透明：让整页画布连续穿过，消除矩形色块接缝 ---- */
main.v2-home .section-pad,
main.v2-home #ai,
main.v2-home #applications,
main.v2-home #engineering,
main.v2-home #eow,
main.v2-home #partners { background: transparent; }

/* ---- H01 页底深色遮罩：软过渡到 H02 画布（不遮挡产品主体） ---- */
main.v2-home #hero::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 110px;
  background: linear-gradient(180deg, rgba(13, 15, 20, 0), #0D0F14);
  pointer-events: none;
  z-index: 2;
}

/* ---- 标题 / 正文 / 眉题深色适配 ---- */
main.v2-home .display-title { color: var(--v2-dark-text); }
main.v2-home .display-title--section { font-size: clamp(34px, 4.5vw, 52px); line-height: 1.12; letter-spacing: -0.018em; }
main.v2-home .section-desc { font-size: 17px; line-height: 1.62; color: var(--v2-dark-muted); }
main.v2-home .section-label { color: #9BAAC6; }
main.v2-home .section-label.cyan { color: var(--ai-cyan, #3DD6FF); }
main.v2-home .media-caption { color: var(--v2-dark-muted); }
main.v2-home .b2b-band-title { color: var(--v2-dark-text); }
main.v2-home .b2b-band-desc { color: var(--v2-dark-muted); }

/* ---- 章节垂直节奏 ---- */
main.v2-home .section-pad { padding-top: 128px; padding-bottom: 128px; }
main.v2-home #ai { padding-top: 128px; padding-bottom: 128px; }

/* ---- 卖点细线列表（H02） ---- */
main.v2-home .feature-line { border-color: rgba(237, 244, 255, .12); }
main.v2-home .feature-line:last-child { border-bottom-color: rgba(237, 244, 255, .12); }
main.v2-home .feature-line-title { color: var(--v2-dark-text); }
main.v2-home .feature-line-desc { color: var(--v2-dark-muted); }
main.v2-home .feature-line-num { color: var(--v2-dark-muted); }

/* ---- 产品媒体台（H02 / H05）：深色台面替代白底 ---- */
main.v2-home .photo-slot--contain {
  background: linear-gradient(180deg, #171C26, #121722);
  border: 1px solid rgba(237, 244, 255, .12);
  border-radius: var(--v2-panel-radius);
  box-shadow: none;
}
main.v2-home .proof-tag { color: var(--v2-dark-muted); border-color: rgba(237, 244, 255, .12); }

/* ---- Industry 卡片（H04）：深卡替代白卡 ---- */
main.v2-home .app-edit-card { background: #171C26; border-color: rgba(237, 244, 255, .12); }
main.v2-home .app-edit-card:hover { border-color: rgba(237, 244, 255, .28); }
main.v2-home .app-edit-media { background: #121722; }
main.v2-home .app-edit-title { color: var(--v2-dark-text); }
main.v2-home .app-edit-desc { color: var(--v2-dark-muted); }
main.v2-home .app-edit-note { color: var(--v2-dark-muted); }

/* ---- Engineering 媒体（H05） ---- */
main.v2-home .eng-media { background: #171C26; }

/* ---- E.O.W. 字段（H06） ---- */
main.v2-home .eow-fields { border-top-color: rgba(237, 244, 255, .12); }
main.v2-home .eow-field { border-bottom-color: rgba(237, 244, 255, .12); }
main.v2-home .eow-field dt { color: var(--v2-dark-muted); }
main.v2-home .eow-field dd { color: var(--v2-dark-text); }
main.v2-home .eow-fields-note { color: var(--v2-dark-muted); }

/* ---- AI 内卡（H03） ---- */
main.v2-home .ai-panel { background: #171C26; border: 1px solid rgba(237, 244, 255, .12); }

/* ---- 按钮与链接：主白底深字 / 次透明白描边 ---- */
main.v2-home .btn-primary { background: var(--v2-dark-text); color: #0D0F14; border-color: var(--v2-dark-text); }
main.v2-home .btn-primary:hover { color: #C7251E; }
main.v2-home .btn-secondary { color: var(--v2-dark-text); border-color: rgba(245, 246, 247, .35); background: transparent; }
main.v2-home .btn-secondary:hover { color: #FF6B5E; }
main.v2-home .calink-text-link { color: var(--v2-dark-text); text-decoration: none; }
main.v2-home .calink-text-link:hover { color: #FF6B5E; text-decoration: none; }

/* ---- 平板 768–1199 ---- */
@media (max-width: 1199px) and (min-width: 768px) {
  main.v2-home .section-pad { padding-top: 88px; padding-bottom: 88px; }
  main.v2-home .display-title--section { font-size: 40px; }
  main.v2-home .section-desc { font-size: 16px; }
}

/* ---- 手机 ≤767 ---- */
@media (max-width: 767px) {
  main.v2-home .section-pad { padding-top: 64px; padding-bottom: 64px; }
  main.v2-home #ai { padding-top: 64px; padding-bottom: 64px; }
  main.v2-home .display-title--section { font-size: 32px; line-height: 1.18; }
  main.v2-home .section-desc { font-size: 16px; }
  main.v2-home .app-edit-card { border-radius: 18px; }
}

/* ---- Reduced motion：内容立即可见，无位移 ---- */
@media (prefers-reduced-motion: reduce) {
  main.v2-home .reveal, main.v2-home .fade-in-up,
  main.v2-home .reveal-img, main.v2-home .seq > * {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* F05-A 补充：photo-slot / eow 媒体的深色边框与背景（避免照片加载前白底闪露） */
main.v2-home .photo-slot { border-color: rgba(237, 244, 255, .12); background: #121722; }
main.v2-home .photo-slot:hover { transform: none; }
main.v2-home .eow-edit-media { background: #121722; border-color: rgba(237, 244, 255, .12); }

/* ============================================================
 * F06-A — PRODUCTS 产品汇总页连续深色（.v2-products 作用域，仅 products.html）
 * 与首页同一套深黑蓝黑画布 + 克制蓝紫柔光；不污染其他页面。
 * ============================================================ */
.v2-products {
  position: relative;
  isolation: isolate;
  color: var(--v2-dark-text, #F5F6F7);
  background-color: var(--v2-dark-base, #0D0F14);
  background-image:
    radial-gradient(ellipse 55% 22% at 85% 12%, rgba(76, 99, 151, .14), transparent 82%),
    radial-gradient(ellipse 52% 18% at 10% 68%, rgba(106, 76, 142, .07), transparent 84%),
    linear-gradient(180deg, #0D0F14 0%, #111722 33%, #19202B 58%, #121722 82%, #0D0F14 100%);
  background-repeat: no-repeat;
}

/* ---- 四段透出同一画布，取消旧浅色/独立背景 ---- */
.v2-products > section { background: transparent; }
.v2-products .page-hero { padding: 148px 0 80px; background: transparent; }
.v2-products .page-hero-bg { background: none; }

/* ---- 章节节奏（替代原 section 内联 padding） ---- */
.v2-products { padding-bottom: 96px; }
.v2-products .products-section--roaster { padding: 120px 0 128px; }
.v2-products .products-section--ecosystem { padding: 0 0 128px; }
.v2-products #products-contact { margin-bottom: 0; }

/* ---- 文字层级 ---- */
.v2-products .display-title { color: var(--v2-dark-text, #F5F6F7); }
.v2-products .section-desc { color: var(--v2-dark-muted, #B9C1CB); font-size: 17px; line-height: 1.62; }
.v2-products .section-label { color: #9BAAC6; }
.v2-products .editorial-statement { color: var(--v2-dark-text, #F5F6F7); }

/* ---- P03 生态入口：细线分隔替代重卡 ---- */
.v2-products .eco-row { color: var(--v2-dark-text, #F5F6F7); border-top-color: rgba(237, 244, 255, .12); }
.v2-products .eco-row:last-child { border-bottom-color: rgba(237, 244, 255, .12); }
.v2-products .eco-row:hover { background: transparent; }
.v2-products .eco-row-k { color: #9BAAC6; }
.v2-products .eco-row-title { color: var(--v2-dark-text, #F5F6F7); }
.v2-products .eco-row-desc { color: var(--v2-dark-muted, #B9C1CB); font-size: 15px; line-height: 1.6; }
.v2-products .eco-row .calink-text-link { color: var(--v2-dark-text, #F5F6F7); text-decoration: none; }
.v2-products .eco-row:hover .calink-text-link { color: #FF6B5E; text-decoration: none; }
.v2-products .eco-row:hover .eco-row-title { color: #FF6B5E; }

/* ---- P04 收尾：低对比分隔线 + 深色回落 ---- */
.v2-products .quiet-closing { border-top-color: rgba(237, 244, 255, .12); }
.v2-products .calink-text-link { color: var(--v2-dark-text, #F5F6F7); text-decoration: none; }
.v2-products .calink-text-link:hover { color: #FF6B5E; text-decoration: none; }

/* ---- 按钮：主白底深字 / 次透明白描边（hover 仅文字变色） ---- */
.v2-products .btn-primary { background: #F5F6F7; color: #0D0F14; border-color: #F5F6F7; }
.v2-products .btn-primary:hover { color: #C7251E; }
.v2-products .btn-secondary { color: #F5F6F7; border-color: rgba(245, 246, 247, .35); background: transparent; }
.v2-products .btn-secondary:hover { color: #FF6B5E; }
.v2-products .calink-text-link:focus-visible,
.v2-products .btn:focus-visible,
.v2-products .eco-row:focus-visible { outline: 2px solid #9DB6DF; outline-offset: 4px; }

/* ---- 平板 768–1199 ---- */
@media (max-width: 1199px) and (min-width: 768px) {
  .v2-products .page-hero { padding: 128px 0 64px; }
  .v2-products .products-section--roaster { padding: 88px 0 88px; }
  .v2-products .products-section--ecosystem { padding: 0 0 88px; }
  .v2-products { padding-bottom: 80px; }
  .v2-products .section-desc { font-size: 16px; }
}

/* ---- 手机 ≤767 ---- */
@media (max-width: 767px) {
  .v2-products .page-hero { padding: 104px 0 48px; }
  .v2-products .products-section--roaster { padding: 56px 0 56px; }
  .v2-products .products-section--ecosystem { padding: 0 0 56px; }
  .v2-products { padding-bottom: 56px; }
  .v2-products .calink-grid-2 { grid-template-columns: 1fr; }
  .v2-products .section-desc { font-size: 16px; }
  .v2-products .quiet-closing { padding: 56px 0; }
  .v2-products .quiet-closing .editorial-statement { font-size: 28px; }
}

/* ---- Reduced motion：内容立即可见 ---- */
@media (prefers-reduced-motion: reduce) {
  .v2-products .fade-in-up, .v2-products .reveal, .v2-products .seq { opacity: 1 !important; transform: none !important; }
}

/* ============================================================
 * F17-P1 — Products V2（P01–P04，仅 .v2-products 作用域）
 * ============================================================ */
/* P01 紧凑，首屏即见 P02 */
.v2-products .pp-intro { padding: 112px 0 40px; }
.v2-products .pp-intro .container { max-width: 1280px; }

/* P02 旗舰：桌面左图（55%）右文（45%），head/body 分列右侧上下 */
.v2-products .pp-stage { padding: 96px 0 96px; }
.v2-products .pp-stage-grid {
  display: grid;
  grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
  grid-template-areas:
    "media head"
    "media body";
  gap: clamp(24px, 3vw, 44px) clamp(28px, 4vw, 64px);
  align-items: center;
}
.v2-products .pp-stage-head { grid-area: head; }
.v2-products .pp-stage-media { grid-area: media; }
.v2-products .pp-stage-body { grid-area: body; }
.v2-products .pp-stage-head { align-self: end; }
.v2-products .pp-stage-body { align-self: start; }
.v2-products .pp-stage-media img {
  display: block;
  width: 100%;
  max-height: clamp(420px, 46vw, 600px);
  object-fit: contain;
  object-position: center;
}
/* P03 生态：与 P02 衔接 */
.v2-products .pp-eco { padding: 0 0 96px; }
/* 黑白切换按钮 */
.v2-products .pp-swatches { display: flex; gap: 10px; margin-bottom: var(--space-xl); }
.v2-products .pp-swatch {
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(245, 246, 247, .66);
  background: transparent;
  border: 1px solid rgba(245, 246, 247, .28);
  border-radius: 999px;
  padding: 9px 20px;
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.v2-products .pp-swatch:hover { color: #FF6B5E; }
.v2-products .pp-swatch.is-active {
  color: #FFFFFF;
  border-color: #FF3B30;
  background: rgba(255, 59, 48, .12);
}
.v2-products .pp-swatch:focus-visible { outline: 2px solid #9DB6DF; outline-offset: 3px; }
/* 三项核心信息 */
.v2-products .pp-specs { margin: 0 0 var(--space-lg); }
.v2-products .pp-spec {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0;
  border-top: 1px solid rgba(237, 244, 255, .12);
}
.v2-products .pp-spec:last-child { border-bottom: 1px solid rgba(237, 244, 255, .12); }
.v2-products .pp-spec dt {
  font-size: 13px;
  color: #9BAAC6;
  letter-spacing: 0.04em;
}
.v2-products .pp-spec dd {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--v2-dark-text, #F5F6F7);
  text-align: right;
}
/* P03 状态标签 */
.v2-products .pp-status {
  display: inline-block;
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #9BAAC6;
  border: 1px solid rgba(157, 182, 223, .35);
  border-radius: 999px;
  padding: 4px 10px;
}
/* P04 居中收口 */
.v2-products .pp-closing { text-align: center; border-top: 1px solid rgba(237, 244, 255, .12); }
.v2-products .pp-closing .container { display: flex; flex-direction: column; align-items: center; }

/* 单栏断点提前至 960px：head → media → body 顺序，机器完整 */
@media (max-width: 959px) {
  .v2-products .pp-stage { padding: 64px 0 64px; }
  .v2-products .pp-stage-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "head"
      "media"
      "body";
    gap: 28px;
  }
  .v2-products .pp-stage-head { align-self: auto; }
  .v2-products .pp-stage-body { align-self: auto; }
  .v2-products .pp-stage-media img { max-height: 560px; }
}
/* 手机 ≤767：进一步收紧 */
@media (max-width: 767px) {
  .v2-products .pp-intro { padding: 96px 0 32px; }
  .v2-products .pp-stage { padding: 48px 0 48px; }
  .v2-products .pp-stage-grid { gap: 24px; }
  .v2-products .pp-stage-media img { max-height: 420px; }
  .v2-products .pp-spec dd { font-size: 15px; }
}

/* ============================================================
 * F06-B — ROAST POD 产品详情页连续深色（.v2-roastpod 作用域，仅 nuha500.html）
 * 与首页/Products 同一套深黑蓝黑画布 + 克制蓝紫柔光；不污染其他页面。
 * ============================================================ */
.v2-roastpod {
  position: relative;
  isolation: isolate;
  color: var(--v2-dark-text, #F5F6F7);
  background-color: var(--v2-dark-base, #0D0F14);
  background-image:
    radial-gradient(ellipse 56% 16% at 86% 9%, rgba(76, 99, 151, .14), transparent 82%),
    radial-gradient(ellipse 56% 15% at 6% 42%, rgba(106, 76, 142, .075), transparent 84%),
    radial-gradient(ellipse 58% 14% at 84% 72%, rgba(76, 99, 151, .10), transparent 82%),
    linear-gradient(180deg, #0D0F14 0%, #111722 26%, #19202B 52%, #121722 78%, #0D0F14 100%);
  background-repeat: no-repeat;
}

/* ---- 九节透出同一画布 ---- */
.v2-roastpod > section { background: transparent; }
.v2-roastpod .page-hero { background: transparent; }
.v2-roastpod .page-hero-bg { background: none; }

/* ---- 文字层级 ---- */
.v2-roastpod .display-title { color: var(--v2-dark-text, #F5F6F7); }
.v2-roastpod .section-desc { color: var(--v2-dark-muted, #B9C1CB); }
.v2-roastpod .section-label { color: #9BAAC6; }
.v2-roastpod .media-caption { color: var(--v2-dark-muted, #B9C1CB); }
.v2-roastpod .muted { color: var(--v2-dark-muted, #B9C1CB); }

/* ---- 页内二级导航：深色玻璃，与全站 Header 同族 ---- */
.v2-roastpod .product-subnav {
  background: rgba(9, 11, 16, .94);
  -webkit-backdrop-filter: blur(16px) saturate(125%);
  backdrop-filter: blur(16px) saturate(125%);
  border-bottom-color: rgba(237, 244, 255, .10);
}
.v2-roastpod .product-subnav-link { color: rgba(245, 246, 248, .72); }
.v2-roastpod .product-subnav-link:hover { color: #FF6B5E; }
.v2-roastpod .product-subnav-link.is-active { color: #FFFFFF; }

/* 锚点滚动偏移：统一避开 sticky Header + 页内子导航 */
.v2-roastpod section[id] { scroll-margin-top: 116px; }

/* ---- B02/B06 媒体台：深色承托，代替白底 ---- */
.v2-roastpod .photo-slot {
  background: #121722;
  border-color: rgba(237, 244, 255, .12);
}
.v2-roastpod .photo-slot:hover { transform: none; }
.v2-roastpod .gallery-slot {
  background: #171C26;
  border-color: rgba(237, 244, 255, .12);
}
.v2-roastpod .gallery-slot:hover { transform: none; }
.v2-roastpod .gallery-meta { color: var(--v2-dark-muted, #B9C1CB); }

/* ---- B02 精密卖点细线 ---- */
.v2-roastpod .precision-features .feature-line { border-top-color: rgba(237, 244, 255, .12); }
.v2-roastpod .feature-line-title { color: var(--v2-dark-text, #F5F6F7); }
.v2-roastpod .feature-line-desc { color: var(--v2-dark-muted, #B9C1CB); }
.v2-roastpod .feature-line-num { color: #9BAAC6; }

/* ---- B03 工作流：深底细线 + 浅字 ---- */
.v2-roastpod .workflow-steps {
  background: transparent;
  border-top-color: rgba(237, 244, 255, .12);
  border-bottom-color: rgba(237, 244, 255, .12);
}
.v2-roastpod .workflow-step + .workflow-step { border-left-color: rgba(237, 244, 255, .12); }
.v2-roastpod .workflow-step-title { color: var(--v2-dark-text, #F5F6F7); }
.v2-roastpod .workflow-step-num,
.v2-roastpod .workflow-step-desc { color: var(--v2-dark-muted, #B9C1CB); }

/* ---- B08 规格表：深底可读 ---- */
.v2-roastpod .spec-row { border-bottom-color: rgba(237, 244, 255, .12); }
.v2-roastpod .spec-row:hover { background: rgba(255, 255, 255, .03); }
.v2-roastpod .spec-label { color: var(--v2-dark-muted, #B9C1CB); }
.v2-roastpod .spec-value { color: var(--v2-dark-text, #F5F6F7); }
.v2-roastpod .spec-tbd { color: var(--v2-dark-muted, #B9C1CB); border-bottom-color: rgba(237, 244, 255, .28); }
.v2-roastpod .spec-value .tbc { color: #9BAAC6; }

/* ---- B09 服务入口：深底细线 ---- */
.v2-roastpod .service-row { color: var(--v2-dark-text, #F5F6F7); border-top-color: rgba(237, 244, 255, .12); }
.v2-roastpod .service-row:last-child { border-bottom-color: rgba(237, 244, 255, .12); }
.v2-roastpod .service-row:hover { background: transparent; }
.v2-roastpod .service-row-title { color: var(--v2-dark-text, #F5F6F7); }
.v2-roastpod .service-row-desc { color: var(--v2-dark-muted, #B9C1CB); }
.v2-roastpod .service-row:hover .service-row-title,
.v2-roastpod .service-row:hover .calink-text-link { color: #FF6B5E; }
.v2-roastpod .roastpod-cta-strip {
  margin-top: var(--space-3xl);
  padding-top: var(--space-2xl);
  border-top: 1px solid rgba(237, 244, 255, .12);
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: var(--space-md);
}

/* ---- 链接与按钮 ---- */
.v2-roastpod .calink-text-link { color: var(--v2-dark-text, #F5F6F7); text-decoration: none; }
.v2-roastpod .calink-text-link:hover { color: #FF6B5E; text-decoration: none; }
.v2-roastpod .btn-primary { background: #F5F6F7; color: #0D0F14; border-color: #F5F6F7; }
.v2-roastpod .btn-primary:hover { color: #C7251E; }
.v2-roastpod .btn-secondary { color: #F5F6F7; border-color: rgba(245, 246, 247, .35); background: transparent; }
.v2-roastpod .btn-secondary:hover { color: #FF6B5E; }
.v2-roastpod .calink-text-link:focus-visible,
.v2-roastpod .btn:focus-visible,
.v2-roastpod .service-row:focus-visible,
.v2-roastpod .product-subnav-link:focus-visible {
  outline: 2px solid #9DB6DF; outline-offset: 4px;
}

/* ---- 手机 ≤767 ---- */
@media (max-width: 767px) {
  .v2-roastpod .page-hero--split .container { grid-template-columns: 1fr; gap: 32px; }
  .v2-roastpod .page-hero { padding: 112px 0 56px; }
  .v2-roastpod .precision-grid { grid-template-columns: 1fr; gap: 32px; }
  .v2-roastpod .media-trio { grid-template-columns: 1fr; }
  .v2-roastpod .gallery-grid--archive { grid-template-columns: 1fr; }
  .v2-roastpod .gallery-grid.gallery-grid--life { grid-template-columns: 1fr 1fr; }
  .v2-roastpod .workflow-steps { flex-direction: column; }
  .v2-roastpod .workflow-step + .workflow-step { border-left: none; border-top: 1px solid rgba(237, 244, 255, .12); }
  .v2-roastpod .roastpod-cta-strip { flex-direction: column; align-items: flex-start; }
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  .v2-roastpod .fade-in-up, .v2-roastpod .reveal, .v2-roastpod .seq { opacity: 1 !important; transform: none !important; }
}

/* F06-B 补充：产品图承托（T2 层已豁免，此处恢复 contain 台面处理） */
.v2-roastpod .photo-slot--contain { aspect-ratio: auto; padding: clamp(18px, 3vw, 40px); }
.v2-roastpod .photo-slot--contain img { width: auto; height: auto; max-width: 100%; max-height: clamp(360px, 46vw, 620px); object-fit: contain; display: block; margin: 0 auto; }
.v2-roastpod .photo-slot--contain::before { content: none; }
.v2-roastpod .display-title--section { font-size: clamp(30px, 4vw, 50px); line-height: 1.12; letter-spacing: -0.018em; }
.v2-roastpod .display-title--page { font-size: clamp(38px, 5.5vw, 78px); line-height: 1.06; }
.v2-roastpod .display-title--minor { font-size: clamp(26px, 3.2vw, 40px); line-height: 1.15; }
.v2-roastpod .feature-line { border-top-color: rgba(237, 244, 255, .12); }
.v2-roastpod .feature-line-title { font-size: 18px; font-weight: 600; }
.v2-roastpod .feature-line-desc { font-size: 15px; line-height: 1.6; }
.v2-roastpod .muted { color: var(--v2-dark-muted, #B9C1CB); }
.v2-roastpod .spec-tbd { border-bottom-style: dashed; }
.v2-roastpod .media-caption { color: var(--v2-dark-muted, #B9C1CB); }

/* ============================================================
 * F06-C — CALINK AI 技术页连续深色（.v2-ai 作用域，仅 ai.html）
 * 与首页/Products/Roast Pod 同一套深黑蓝黑画布 + 克制蓝紫柔光。
 * ============================================================ */
.v2-ai {
  position: relative;
  isolation: isolate;
  color: var(--v2-dark-text, #F5F6F7);
  background-color: var(--v2-dark-base, #0D0F14);
  background-image:
    radial-gradient(ellipse 56% 16% at 86% 12%, rgba(76, 99, 151, .14), transparent 82%),
    radial-gradient(ellipse 56% 15% at 8% 48%, rgba(106, 76, 142, .07), transparent 84%),
    radial-gradient(ellipse 58% 14% at 84% 80%, rgba(76, 99, 151, .10), transparent 82%),
    linear-gradient(180deg, #0D0F14 0%, #111722 26%, #19202B 52%, #121722 78%, #0D0F14 100%);
  background-repeat: no-repeat;
}

/* ---- 七节透出同一画布 ---- */
.v2-ai > section { background: transparent; }
.v2-ai .page-hero { background: transparent; }
.v2-ai .page-hero-bg { background: none; }

/* ---- 移除旧白灰过渡带与浅色深色区渐变 ---- */
.v2-ai .ai-transition { display: none; }
.v2-ai .ai-dark-section { background: transparent; }

/* ---- 文字层级 ---- */
.v2-ai .display-title { color: var(--v2-dark-text, #F5F6F7); }
.v2-ai .display-title.on-dark { color: var(--v2-dark-text, #F5F6F7); }
.v2-ai .section-desc { color: var(--v2-dark-muted, #B9C1CB); }
.v2-ai .section-label { color: #9BAAC6; }
.v2-ai .section-label.cyan { color: var(--ai-cyan, #3DD6FF); }
.v2-ai .media-caption { color: var(--v2-dark-muted, #B9C1CB); }
.v2-ai .muted { color: var(--v2-dark-muted, #B9C1CB); }

/* ---- 数据链 pipeline：浅字 + 浅箭头 ---- */
.v2-ai .ai-pipeline { color: var(--v2-dark-text, #F5F6F7); }
.v2-ai .ai-pipeline > span { color: inherit; }

/* ---- 能力列表 feature-lines：深底细线 ---- */
.v2-ai .feature-lines { background: transparent; }
.v2-ai .feature-line { border-top-color: rgba(237, 244, 255, .12); }
.v2-ai .feature-line:last-child { border-bottom-color: rgba(237, 244, 255, .12); }
.v2-ai .feature-line-title { color: var(--v2-dark-text, #F5F6F7); }
.v2-ai .feature-line-desc { color: var(--v2-dark-muted, #B9C1CB); }
.v2-ai .feature-line-num { color: #9BAAC6; }

/* ---- 步骤序号徽标：深色底 + 浅字 ---- */
.v2-ai .num-badge { background: rgba(255, 255, 255, .08); color: var(--v2-dark-text, #F5F6F7); }

/* ---- 媒体台：深色承托替代白底 ---- */
.v2-ai .photo-slot { background: #121722; border-color: rgba(237, 244, 255, .12); }
.v2-ai .photo-slot:hover { transform: none; }
.v2-ai .ai-panel { border-color: rgba(237, 244, 255, .12); }

/* ---- 链接、按钮 ---- */
.v2-ai .calink-text-link { color: var(--v2-dark-text, #F5F6F7); text-decoration: none; }
.v2-ai .calink-text-link:hover { color: #FF6B5E; text-decoration: none; }
.v2-ai .btn-primary { background: #F5F6F7; color: #0D0F14; border-color: #F5F6F7; }
.v2-ai .btn-primary:hover { color: #C7251E; }
.v2-ai .btn-secondary { color: #F5F6F7; border-color: rgba(245, 246, 247, .35); background: transparent; }
.v2-ai .btn-secondary:hover { color: #FF6B5E; }
.v2-ai .calink-text-link:focus-visible,
.v2-ai .btn:focus-visible,
.v2-ai a:focus-visible { outline: 2px solid #9DB6DF; outline-offset: 4px; }

/* ---- 手机 ≤767 ---- */
@media (max-width: 767px) {
  .v2-ai .page-hero--split .container,
  .v2-ai .calink-grid-2 { grid-template-columns: 1fr; gap: 32px; }
  .v2-ai .media-pair { grid-template-columns: 1fr; }
  .v2-ai .ai-transition { display: none; }
}

/* ============================================================
 * F17-B1 — CALINK AI V2（A01–A06 布局，仅 .v2-ai 作用域）
 * ============================================================ */
/* A02 — Data Workflow：五阶段横向流程 */
.v2-ai .ai-flow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid rgba(237, 244, 255, .12);
}
.v2-ai .ai-flow-step {
  padding: 24px 20px 4px 0;
  border-right: 1px solid rgba(237, 244, 255, .10);
}
.v2-ai .ai-flow-step:last-child { border-right: none; }
.v2-ai .ai-flow-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  color: #9BAAC6;
  margin-bottom: 12px;
}
.v2-ai .ai-flow-title {
  display: block;
  font-size: 17px;
  font-weight: 600;
  color: #F5F6F7;
  margin-bottom: 8px;
}
.v2-ai .ai-flow-text { font-size: 13.5px; line-height: 1.55; color: #B9C1CB; }

/* 状态标记（流程 / 能力 / 集成） */
.v2-ai .ai-flag {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #9BAAC6;
}

/* A03 — Roast Intelligence：全页最大数据主视觉 */
.v2-ai .ai-intelligence .ai-panel { max-width: 1080px; margin: 0 auto; }
.v2-ai .ai-intelligence .ai-wave-box { height: 380px; }

/* A05 — Connected System：Roast Pod 硬件 + 软件概念 */
.v2-ai .ai-system {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.v2-ai .ai-system-media { margin: 0; display: flex; flex-direction: column; justify-content: center; }
.v2-ai .ai-system-media img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 480px;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
}
.v2-ai .ai-system-caption {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #9BAAC6;
  margin-top: 16px;
  text-align: center;
}
.v2-ai .ai-mini-panel {
  background: rgba(23, 28, 38, .72);
  border: 1px solid rgba(237, 244, 255, .12);
  border-radius: 16px;
  padding: 30px 28px;
}
.v2-ai .ai-mini-status {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .62);
  padding-bottom: 18px;
  margin-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, .10);
}
.v2-ai .ai-mini-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  font-size: 15px;
}
.v2-ai .ai-mini-row:last-child { border-bottom: none; }
.v2-ai .ai-mini-row span { color: rgba(255, 255, 255, .55); }
.v2-ai .ai-mini-row b { color: #F5F6F7; font-weight: 600; font-family: var(--font-mono); font-size: 15px; }

@media (max-width: 900px) {
  .v2-ai .ai-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-ai .ai-flow-step { border-right: none; border-bottom: 1px solid rgba(237, 244, 255, .10); padding: 20px 0 16px; }
  .v2-ai .ai-system { grid-template-columns: 1fr; gap: 32px; }
  .v2-ai .ai-system-media img { max-height: 340px; }
  .v2-ai .ai-intelligence .ai-panel { max-width: 100%; }
}
@media (max-width: 560px) {
  .v2-ai .ai-flow { grid-template-columns: 1fr; }
  .v2-ai .ai-intelligence .ai-wave-box { height: 240px; }
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  .v2-ai .fade-in-up, .v2-ai .reveal, .v2-ai .seq { opacity: 1 !important; transform: none !important; }
}
/* ============================================================
 * F08 — E.O.W. 连续高级白色画布（.v2-eow 作用域，仅 eow.html）
 * 基色 #FAFBFC + 跨章节冷银灰 / 淡蓝灰环境光晕；六节全部透明。
 * 由 tools/bodies/eow.html 内 <div class="v2-eow"> 承载。
 * ============================================================ */
.v2-eow {
  position: relative;
  isolation: isolate;
  color: #1D1F23;
  background-color: #FAFBFC;
  background-image:
    radial-gradient(ellipse 72% 30% at 84% 5%, rgba(200, 209, 222, 0.26), transparent 78%),
    radial-gradient(ellipse 76% 32% at 8% 46%, rgba(204, 214, 229, 0.20), transparent 80%),
    radial-gradient(ellipse 70% 28% at 90% 79%, rgba(197, 209, 225, 0.18), transparent 80%),
    linear-gradient(180deg, #FAFBFC 0%, #F7F9FB 36%, #FAFBFC 64%, #F8FAFC 100%);
  background-repeat: no-repeat;
}

/* ---- 六节全部透出同一张画布（取消各 section 独立背景） ---- */
.v2-eow > section { background: transparent; }

/* ---- 01 Hero：去暖白基底、去白色圆斑伪元素 ---- */
.v2-eow .eow-orbit { background: transparent; color: #1D1F23; }
.v2-eow .eow-orbit::before { background: none; }

/* ---- 03 Trace：去 #F5F5F7 灰白块 ---- */
.v2-eow .eow-trace { background: transparent; }

/* ---- 05 Roastlink：深色块完全融入共享画布，保留全部业务文案与链接 ---- */
.v2-eow .eow-roastlink { background: transparent; color: #1D1F23; }
.v2-eow .eow-roastlink .section-label--on-dark { color: #79828D; }
.v2-eow .eow-roastlink-title { color: #14161A; }
.v2-eow .eow-roastlink-desc { color: #5B636D; }
.v2-eow .rl-node-label { color: #39404A; }
.v2-eow .eow-roastlink-note { color: rgba(60, 66, 74, 0.5); }

/* ---- 决策 2：青色数据节点 / 连接线 → 冷石墨灰（仅 E.O.W.，不动 AI 页青与品牌红） ---- */
.v2-eow .rl-node-dot { background: #798695; }
.v2-eow .rl-line { background: rgba(105, 115, 129, 0.28); }

/* ---- 决策 3：Hero 暖色占位中性化（不改真实摄影色彩） ---- */
.v2-eow .orbit-media { background: #E7EAEE; }
.v2-eow .orbit-media--soon {
  background:
    repeating-linear-gradient(45deg, rgba(30, 33, 38, 0.045) 0 1px, transparent 1px 10px),
    #EEF1F4;
  border-color: rgba(30, 33, 38, 0.07);
  box-shadow: 0 12px 26px -16px rgba(30, 33, 38, 0.18);
}
.v2-eow .ob-e rect, .v2-eow .ob-w { fill: #1D1F23; }
.v2-eow .ob-ring { stroke: #1D1F23; }
.v2-eow .eow-orbit-caption { color: rgba(30, 33, 38, 0.62); }
.v2-eow .eow-orbit-lede { color: rgba(30, 33, 38, 0.42); }
.v2-eow .eow-orbit-note { color: rgba(30, 33, 38, 0.34); }
.v2-eow .orbit-soon-label { color: rgba(30, 33, 38, 0.55); }
.v2-eow .orbit-soon-sub { color: rgba(30, 33, 38, 0.34); }
.v2-eow .orbit-soon-note { color: rgba(30, 33, 38, 0.28); }
.v2-eow .orbit-meta { color: rgba(30, 33, 38, 0.42); }
.v2-eow .orbit-card.is-focus .orbit-meta { color: rgba(30, 33, 38, 0.80); }

/* ---- 手机 ≤767：光晕降强，避免窄屏出现大色斑 ---- */
@media (max-width: 767px) {
  .v2-eow {
    background-image:
      radial-gradient(ellipse 92% 22% at 86% 4%, rgba(200, 209, 222, 0.22), transparent 80%),
      radial-gradient(ellipse 96% 24% at 6% 48%, rgba(204, 214, 229, 0.17), transparent 82%),
      radial-gradient(ellipse 90% 20% at 92% 80%, rgba(197, 209, 225, 0.15), transparent 82%),
      linear-gradient(180deg, #FAFBFC 0%, #F7F9FB 40%, #FAFBFC 68%, #F8FAFC 100%);
  }
}

/* ============================================================
 * F10 — Mega Menu UX 升级 + 浅色页面统一
 * ============================================================ */

/* ---- Products Mega：双卡片直选（Oura 式） ---- */
/* 顶部 View All Products 入口行：右对齐，与卡片同宽 */
.mega-products-head {
  display: flex;
  justify-content: flex-end;
  max-width: 880px;
  margin: 0 auto 16px;
}
.mega-all-products {
  font-size: 14px;
  font-weight: 600;
  color: #F5F6F8;
  text-decoration: none;
  transition: color 0.2s ease;
}
.mega-all-products:hover { color: #FF6B5E; text-decoration: none; }
.mega-all-products span {
  margin-left: 5px;
  display: inline-block;
  transition: transform 0.2s ease;
}
.mega-all-products:hover span { transform: translateX(2px); }
.mega-all-products:focus-visible { outline: 2px solid #9DB6DF; outline-offset: 4px; }

.mega-products-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 880px;
  margin: 0 auto;
}
.mega-product-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 18px;
  border-radius: 18px;
  background: #171C26;
  border: 1px solid rgba(239, 243, 251, 0.10);
  text-decoration: none;
  transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.mega-product-card:hover,
.mega-product-card:focus-visible {
  border-color: rgba(239, 243, 251, 0.22);
}
.mega-product-card:hover .mega-product-card-name,
.mega-product-card:focus-visible .mega-product-card-name,
.mega-product-card:hover .mega-product-card-cta,
.mega-product-card:focus-visible .mega-product-card-cta { color: #FF6B5E; }
.mega-product-card:focus-visible { outline: 2px solid #FF6B5E; outline-offset: 3px; }
.mega-product-card-media {
  position: relative;
  display: block;
  background: #141820;
  border-radius: 12px;
  overflow: hidden;
}
.mega-product-card-media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 180px;
  object-fit: contain;
}
.mega-product-card-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mega-product-card-name {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.3;
  color: #F5F6F8;
}
.mega-product-card-desc {
  font-size: 13.5px;
  line-height: 1.55;
  color: #B9C1CB;
}
.mega-product-card-cta {
  margin-top: 6px;
  font-size: 13.5px;
  font-weight: 600;
  color: #F5F6F8;
}
.mega-product-card-cta span { margin-left: 4px; transition: transform 0.2s ease; }
.mega-product-card:hover .mega-product-card-cta span { transform: translateX(2px); }

/* ---- About Mega：图片卡在左，两组文字在右（Brand & Stories 最右，靠近 About Us 触发点） ---- */
/* F18-A2：左侧产品卡改为紧凑横向（图左 / 文右），卡片高度与右侧两列链接自然对齐 */
.mega-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 360px) minmax(0, 1fr) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
  max-width: 980px;
  margin-left: auto;
  margin-right: 0;
}
.mega-about-group { min-width: 0; }
.mega-about-card {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  padding: 12px;
  border-radius: 14px;
  background: #171C26;
  border: 1px solid rgba(239, 243, 251, 0.10);
  text-decoration: none;
  transition: transform 0.2s ease, border-color 0.2s ease;
}
.mega-about-card:hover,
.mega-about-card:focus-visible {
  border-color: rgba(239, 243, 251, 0.22);
}
.mega-about-card:hover .mega-about-card-title,
.mega-about-card:focus-visible .mega-about-card-title,
.mega-about-card:hover .mega-product-card-cta,
.mega-about-card:focus-visible .mega-product-card-cta { color: #FF6B5E; }
.mega-about-card:focus-visible { outline: 2px solid #FF6B5E; outline-offset: 3px; }
.mega-about-card-media {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 102px;
  background: #141820;
  border-radius: 10px;
  overflow: hidden;
}
.mega-about-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
}
.mega-about-card-body { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.mega-about-card-title { font-size: 16px; line-height: 1.3; font-weight: 700; color: #F5F6F8; }
.mega-about-card-desc { font-size: 12.5px; line-height: 1.45; color: #B9C1CB; }

/* ============================================================
 * F21-ABOUT-R1 — About Mega 三列再平衡
 * 左卡 380px；两列文字使用同一标题基线、不同行高：
 * Work & Connect（2 项）用 44px 行高与 600 字重获得更高权重，
 * Brand & Stories（3 项）用 36px 行高与 500 字重，保持 3 项自然节奏。
 * 不新增条目、不拉伸空白、不增加面板高度。
 * ============================================================ */
.mega-about-grid {
  grid-template-columns: minmax(0, 380px) minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
  max-width: 1040px;
}
.mega-about-card {
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 18px;
  padding: 14px;
  min-height: 140px;
}
.mega-about-card-media { height: 112px; }
.mega-about-card-title { font-size: 16.5px; }
.mega-about-card-desc { font-size: 12.5px; line-height: 1.5; }
.mega-about-card .mega-product-card-cta { margin-top: 10px; }

.mega-about-group .mega-col-title {
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(239, 243, 251, 0.10);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: #ACB6C5;
}
.mega-about-group .mega-links { gap: 0; padding-top: 6px; }
.mega-about-group .mega-links > div { display: flex; align-items: center; }
.mega-about-group--connect .mega-link {
  min-height: 44px;
  font-size: 16px;
  font-weight: 600;
}
.mega-about-group--stories .mega-link {
  min-height: 36px;
  font-size: 15px;
  font-weight: 500;
}

/* ============================================================
 * F21-ABOUT-R1 — About 正文正式产品渲染
 * 白机 / 黑机均来自 assets/product/v2 的当前设计透明渲染，
 * 中性浅灰背景 + contain，不裁切、不重绘结构、不加白边。
 * ============================================================ */
.photo-slot.about-render {
  background: linear-gradient(180deg, #F3F4F6 0%, #E8EAEE 100%);
  border: 1px solid rgba(17, 20, 23, 0.08);
}
.photo-slot.about-render:hover { transform: none; }
.photo-slot.about-render img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0;
  filter: drop-shadow(0 18px 22px rgba(17, 20, 23, 0.10));
}
.photo-slot.about-render--white img { padding: 7% 8%; }
.photo-slot.about-render--black img { padding: 5% 14%; }

/* ============================================================
 * F18-B — 新增三个 Mega Menu（E.O.W. / For Organizations / SDGs）
 * 复用 F18-A1 的面板底色、双角光晕、遮罩与 220ms 过渡；仅新增内部排版。
 * ============================================================ */

/* ---- 共用：左右分栏与文字层级 ---- */
.mega-eow,
.mega-org,
.mega-sdg {
  display: grid;
  align-items: start;
  gap: clamp(40px, 4.5vw, 72px);
}
.mega-eow {
  grid-template-columns: minmax(0, 35fr) minmax(0, 65fr);
  align-items: center;
}
.mega-org { grid-template-columns: minmax(0, 30fr) minmax(0, 70fr); }
.mega-sdg { grid-template-columns: minmax(0, 30fr) minmax(0, 70fr); }

.mega-kicker {
  margin: 0 0 16px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #9BAAC6;
}
.mega-title {
  margin: 0 0 12px;
  font-size: clamp(22px, 2.1vw, 30px);
  line-height: 1.16;
  font-weight: 500;
  letter-spacing: -.02em;
  color: #F5F6F8;
}
.mega-desc {
  max-width: 44ch;
  margin: 0 0 22px;
  font-size: 14px;
  line-height: 1.62;
  color: #B9C1CB;
}
.mega-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: #F5F6F8;
  text-decoration: none;
  transition: color .18s ease;
}
.mega-cta span { display: inline-block; transition: transform .18s ease; }
.mega-cta:hover { color: #FF6B5E; }
.mega-cta:hover span { transform: translateX(2px); }
.mega-cta:focus-visible { outline: 2px solid #9DB6DF; outline-offset: 4px; border-radius: 3px; }

/* ---- B1 E.O.W.：字标 + 全称 + 说明 ---- */
.mega-eow-mark { display: flex; flex-direction: column; align-items: flex-start; }
/* F21-03-R2：字标显示宽度 240 → 226px（-6%），图片文件与比例不变 */
.mega-eow-mark img { display: block; width: min(226px, 100%); height: auto; }
.mega-eow-fullname {
  margin: 16px 0 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #B9C1CB;
}

/* ---- B2 For Organizations：2×2 细线信息网格 ---- */
.mega-org-grid { display: grid; grid-template-columns: 1fr 1fr; }
.mega-item {
  display: flex;
  flex-direction: column;
  padding: 0 0 26px;
  text-decoration: none;
  transition: background-color .18s ease;
}
.mega-item:nth-child(odd) { padding-right: 28px; }
.mega-item:nth-child(2n) { padding-left: 28px; border-left: 1px solid rgba(239, 243, 251, .12); }
.mega-item:nth-child(n+3) { padding-top: 24px; border-top: 1px solid rgba(239, 243, 251, .12); }
.mega-item:not(.is-static):hover { background: rgba(255, 255, 255, .035); }
.mega-item:not(.is-static):focus-visible { outline: 2px solid #9DB6DF; outline-offset: 2px; }
.mega-item.is-static { cursor: default; }
.mega-item-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.mega-item-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #B9C1CB;
  transition: color .18s ease;
}
.mega-item:not(.is-static):hover .mega-item-icon { color: #FFFFFF; }
.mega-item-num {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .14em;
  color: #7C8799;
}
.mega-item-title {
  display: block;
  margin-bottom: 7px;
  font-size: 17px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -.01em;
  color: #F5F6F8;
}
.mega-item-desc {
  display: block;
  max-width: 34ch;
  font-size: 13px;
  line-height: 1.55;
  color: #B9C1CB;
}
.mega-item-cta { margin-top: 12px; font-size: 13px; font-weight: 600; color: #F5F6F8; }
.mega-item-cta span { display: inline-block; transition: transform .18s ease; }
.mega-item:hover .mega-item-cta span { transform: translateX(3px); }
.mega-status {
  margin-top: 12px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #7C8799;
}

/* ---- B3 SDGs：三行责任方向 ---- */
.mega-sdg-list { display: flex; flex-direction: column; }
.mega-sdg-row {
  display: grid;
  grid-template-columns: 24px 28px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 22px 0;
  border-top: 1px solid rgba(239, 243, 251, .12);
}
.mega-sdg-row:first-child { padding-top: 2px; border-top: none; }
.mega-sdg-row:last-child { padding-bottom: 2px; }
.mega-sdg-body { display: block; min-width: 0; }
.mega-sdg-row .mega-item-title { margin-bottom: 6px; }
.mega-sdg-row .mega-item-desc { max-width: 52ch; }

/* ---- 移动端：静态信息项的不可点击样式 ---- */
body .mobile-nav .mnav-sub-link.mnav-sub-static,
body:has(.org-v2) .mobile-nav .mnav-sub-link.mnav-sub-static {
  color: #8B93A1;
  cursor: default;
}
body .mobile-nav .mnav-sub-link.mnav-sub-static:hover,
body:has(.org-v2) .mobile-nav .mnav-sub-link.mnav-sub-static:hover { color: #8B93A1; }
.mnav-sub-status {
  display: inline-block;
  margin-left: 8px;
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #8B93A1;
}

/* ---- 移动端：双卡 / About 布局降级 ---- */
@media (max-width: 860px) {
  .mega-products-cards { grid-template-columns: 1fr; }
  .mega-about-grid { grid-template-columns: 1fr; margin-left: 0; }
  .mega-about-card { display: none; }
}

/* ============================================================
 * F10-B — .v2-light 连续高级白画布（浅色二级页面统一）
 * 基色 #FAFBFC + 微变 #F7F9FB；章节透明，卡片 #FFFFFF。
 * ============================================================ */
.v2-light {
  color: #1D1F23;
  background-color: #FAFBFC;
  background-image:
    radial-gradient(ellipse 60% 22% at 88% 4%, rgba(200, 209, 222, 0.18), transparent 78%),
    radial-gradient(ellipse 64% 24% at 6% 52%, rgba(204, 214, 229, 0.14), transparent 80%),
    linear-gradient(180deg, #FAFBFC 0%, #F7F9FB 42%, #FAFBFC 70%, #F8FAFC 100%);
  background-repeat: no-repeat;
}
.v2-light > section { background: transparent !important; }
.v2-light .page-hero { background: transparent; }
.v2-light .page-hero-bg { background: none; }
.v2-light .section-pad { background: transparent; }
/* 卡片用纯白，与画布形成克制层次 */
.v2-light .card,
.v2-light .feature-line,
.v2-light .workflow-step,
.v2-light .dl-row {
  background: #FFFFFF;
}
@media (max-width: 767px) {
  .v2-light {
    background-image:
      radial-gradient(ellipse 90% 18% at 88% 3%, rgba(200, 209, 222, 0.15), transparent 80%),
      radial-gradient(ellipse 92% 20% at 6% 50%, rgba(204, 214, 229, 0.12), transparent 82%),
      linear-gradient(180deg, #FAFBFC 0%, #F7F9FB 44%, #FAFBFC 72%, #F8FAFC 100%);
  }
}

/* ============================================================
 * F13 — 首页 H01–H08 排版优化（main.v2-home 作用域）
 * 降字号密度、双色展示插槽、三卖点、概念披露、工程尺寸标签。
 * ============================================================ */
/* H1 / H2 字号收敛到蓝图建议区间 */
main.v2-home .hero-home-title {
  font-size: clamp(46px, 5vw, 58px);
  line-height: 1.05;
}
main.v2-home .hero-home-prop {
  font-size: clamp(16px, 1.4vw, 18px);
  max-width: 460px;
}
main.v2-home .display-title--section {
  font-size: clamp(30px, 3vw, 38px);
  line-height: 1.14;
}

/* H02 产品平台：左图右文 + 双机透明摄影（黑右前 / 白左后） */
main.v2-home #finish { padding-top: 104px; padding-bottom: 104px; }
.finish-split {
  display: grid;
  grid-template-columns: minmax(0, 52fr) minmax(0, 48fr);
  grid-template-areas: "visual head" "visual body";
  align-items: start;
  column-gap: clamp(40px, 5vw, 72px);
}
.finish-visual { grid-area: visual; align-self: center; }
.finish-head { grid-area: head; }
.finish-body { grid-area: body; }

.finish-stage {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.finish-item { margin: 0; text-align: center; }
.finish-item--black {
  position: relative;
  z-index: 2;
  width: min(68%, 540px);
  flex-shrink: 0;
}
.finish-item--white {
  position: relative;
  z-index: 1;
  width: min(54%, 430px);
  flex-shrink: 0;
  margin: 0 -10% 26px 0;
  transform: translateX(-9%);
}
.finish-media {
  display: flex;
  align-items: center;
  justify-content: center;
}
.finish-media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.finish-caption {
  margin-top: var(--space-md);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--v2-dark-muted, #B9C1CB);
}

/* HOME-P01 — blended dual-machine visual (left side of #finish only) */
main.v2-home #finish .finish-stage--blend {
  display: block;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
}
main.v2-home #finish .finish-item--blend {
  width: 100%;
  margin: 0;
  text-align: left;
}
main.v2-home #finish .finish-item--blend img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* H02 信息列：简介 / 三项参数 / 四项功能卖点 */
.finish-lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--v2-dark-muted, #B9C1CB);
  max-width: 46ch;
  margin: 0 0 var(--space-xl);
}
.finish-specs {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 16px;
  margin: 0 0 var(--space-xl);
  padding: 20px 0;
  border-top: 1px solid rgba(237, 244, 255, 0.12);
  border-bottom: 1px solid rgba(237, 244, 255, 0.12);
}
.finish-spec { display: flex; flex-direction: column; gap: 4px; }
.finish-spec dt {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--v2-dark-muted, #B9C1CB);
}
.finish-spec dd {
  margin: 0;
  font-family: var(--font-accent);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--v2-dark-text, #F5F6F7);
}
.finish-features {
  list-style: none;
  margin: 0 0 var(--space-xl);
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 28px;
}
.finish-feature {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.finish-feature-icon {
  flex: none;
  width: 24px;
  height: 24px;
  color: rgba(255, 255, 255, 0.72);
}
.finish-feature-icon svg { display: block; }
.finish-feature-text { display: flex; flex-direction: column; gap: 4px; }
.finish-feature-title {
  font-family: var(--font-accent);
  font-size: 16px;
  font-weight: 600;
  color: var(--v2-dark-text, #F5F6F7);
}
.finish-feature-desc {
  font-size: 13px;
  line-height: 1.6;
  color: var(--v2-dark-muted, #B9C1CB);
}

/* H04 概念披露 */
.ai-disclosure {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

/* H06 工程视觉：左文右图（约 40/60），黑机实物 + 工程线稿（概念展示） */
.eng-split {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  grid-template-areas: "copy visual" "cta visual";
  align-items: center;
  column-gap: 44px;
  row-gap: 28px;
}
.eng-copy { grid-area: copy; }
.eng-cta { grid-area: cta; }
.eng-visual { grid-area: visual; min-width: 0; }

.eng-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.eng-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: var(--space-lg);
}
.eng-fact {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.58);
  text-align: center;
  padding: 2px 16px;
}
.eng-fact + .eng-fact { border-left: 1px solid rgba(237, 244, 255, 0.14); }

@media (max-width: 900px) {
  .eng-split { grid-template-columns: 1fr; grid-template-areas: "copy" "visual" "cta"; row-gap: 24px; }
  .eng-facts { grid-template-columns: 1fr; gap: 12px; }
  .eng-fact + .eng-fact { border-left: none; }
  .eng-fact { text-align: left; padding: 0; }
}

/* H04 曲线强化：左文右图（约 40/60），修复 ai-panel 溢出 */
main.v2-home #ai .ai-split {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr);
}
main.v2-home #ai .ai-wave-box { height: 320px; }
main.v2-home #ai .ai-panel { min-width: 0; }

/* H06 工程尺寸图：16:9 承载（1672:941） */
main.v2-home .eng-media { aspect-ratio: 1672 / 941; margin: 0; border-radius: 14px; overflow: hidden; }

/* 响应式 */
/* H02 产品平台：平板/手机单列（标题→简介→双机图→参数→卖点→CTA） */
@media (max-width: 959px) {
  .finish-split { display: flex; flex-direction: column; gap: 32px; }
  .finish-head { order: 1; }
  .finish-visual { order: 2; align-self: center; }
  .finish-body { order: 3; }
  .finish-item--black { width: min(60%, 320px); }
  .finish-item--white { width: min(44%, 250px); }
  main.v2-home #finish .finish-stage--blend { max-width: 560px; }
  .finish-specs { grid-template-columns: 1fr; gap: 16px; }
  .finish-features { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 767px) {
  main.v2-home #ai .ai-split { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  main.v2-home #ai .ai-wave-box { height: 220px; }
  main.v2-home #ai .ai-panel-status { flex-direction: column; align-items: flex-start; gap: 8px; }
  .p2-ai-machine { width: 96px; height: 96px; }
}

/* ============================================================
 * F17-D1 — DISTRIBUTORS 经销商合作页（D01–D07，仅 .v2-dist 作用域）
 * 白底 + 细线 + 低对比信息模块；不改共享 Header/Footer。
 * ============================================================ */
.v2-dist {
  --dist-bg: #FFFFFF;
  --dist-soft: #F7F8FA;
  --dist-text: #111417;
  --dist-muted: #5C6370;
  --dist-line: rgba(17, 20, 23, 0.10);
  --dist-line-strong: rgba(17, 20, 23, 0.16);
  color: var(--dist-text);
  background: var(--dist-bg);
  overflow: clip;
}
.v2-dist > section { background: transparent; }
/* F21-15：内容边线与 For Organizations 编辑网格统一（1440 → 左右各 80px，内容 1280） */
.v2-dist .dist-container { max-width: 1440px; margin: 0 auto; padding: 0 80px; }
.v2-dist section[id] { scroll-margin-top: 96px; }
.v2-dist img { display: block; max-width: 100%; }

/* ---- 文字层级 ---- */
.v2-dist .dist-kicker {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--dist-muted);
  margin: 0 0 22px;
}
.v2-dist .dist-h1 {
  font-size: clamp(44px, 4.8vw, 70px);
  line-height: 1.02;
  font-weight: 500;
  letter-spacing: -.045em;
  color: var(--dist-text);
  margin: 0 0 24px;
}
/* F21-15：两行标题由编辑决定断行 */
.v2-dist .dist-h1 span { display: block; }
.v2-dist .dist-h2 {
  font-size: clamp(32px, 3.6vw, 50px);
  line-height: 1.06;
  font-weight: 500;
  letter-spacing: -.04em;
  color: var(--dist-text);
  margin: 0 0 18px;
}
.v2-dist .dist-lead {
  font-size: 18px;
  line-height: 1.62;
  color: var(--dist-muted);
  max-width: 480px;
  margin: 0 0 16px;
}
.v2-dist .dist-note {
  font-size: 14px;
  line-height: 1.6;
  color: #7A818C;
  max-width: 440px;
  margin: 0 0 32px;
}
.v2-dist .dist-desc {
  font-size: 17px;
  line-height: 1.62;
  color: var(--dist-muted);
  max-width: 620px;
  margin: 0;
}
.v2-dist .dist-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

/* ---- 键盘焦点：白底页面用深色描边，避免沿用深色区反白焦点 ---- */
.v2-dist a:focus-visible,
.v2-dist button:focus-visible {
  outline: 2px solid #111417;
  outline-offset: 3px;
  border-radius: 4px;
}
.v2-dist .btn-primary:focus-visible { color: #FFFFFF; }
.v2-dist .btn-secondary:focus-visible { color: var(--dist-text); }

/* ---- D01 Hero：与模块 12 列网格对齐（左 6 列 + 1 列空档 + 右 5 列） ---- */
.v2-dist .dist-hero { padding: 148px 0 88px; }
.v2-dist .dist-hero-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 24px;
  align-items: start;
}
.v2-dist .dist-hero-copy {
  grid-column: 1 / 7;
  max-width: none;
}
.v2-dist .dist-hero-media { grid-column: 8 / 13; }
.v2-dist .dist-hero .dist-kicker { display: inline-flex; align-items: center; gap: 10px; }
.v2-dist .dist-hero .dist-kicker::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #FF3B30;
  flex: none;
}
.v2-dist .dist-hero-media { margin: 0; display: flex; justify-content: center; }
.v2-dist .dist-hero-media img {
  width: 100%;
  height: clamp(360px, 36vw, 540px);
  object-fit: contain;
  object-position: center;
}

/* ---- 章节节奏 ---- */
.v2-dist .dist-section { padding: 112px 0; }
.v2-dist .dist-section-head { max-width: 760px; margin: 0 0 56px; }
.v2-dist .dist-section-head .dist-desc { margin-top: 20px; }

/* ---- D02 合作对象：两列低对比卡片 ---- */
.v2-dist .dist-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.v2-dist .dist-card {
  padding: 30px 32px;
  border-radius: 18px;
  background: var(--dist-soft);
  border: 1px solid var(--dist-line);
}
.v2-dist .dist-card-title {
  font-size: 20px;
  line-height: 1.25;
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--dist-text);
  margin: 0 0 10px;
}
.v2-dist .dist-card-text { font-size: 15.5px; line-height: 1.62; color: var(--dist-muted); margin: 0; max-width: 44ch; }

/* ---- D03 产品理由：编号 + 分隔线 ---- */
.v2-dist .dist-list { border-top: 1px solid var(--dist-line); }
.v2-dist .dist-list-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 300px) minmax(0, 1fr);
  gap: clamp(20px, 3vw, 48px);
  align-items: baseline;
  padding: 30px 0;
  border-bottom: 1px solid var(--dist-line);
}
.v2-dist .dist-list-num {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .12em;
  color: #8A9099;
}
.v2-dist .dist-list-title {
  font-size: 19px;
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--dist-text);
  margin: 0;
}
.v2-dist .dist-list-text { font-size: 15.5px; line-height: 1.62; color: var(--dist-muted); margin: 0; max-width: 560px; }
.v2-dist .dist-nw { white-space: nowrap; }
.v2-dist .dist-footnote {
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.7;
  letter-spacing: .04em;
  color: #7A818C;
  max-width: 620px;
  margin: 22px 0 0;
}

/* ---- D04 商业考量：浅灰信息面板 ---- */
.v2-dist .dist-info-panel {
  background: var(--dist-soft);
  border: 1px solid var(--dist-line);
  border-radius: 22px;
  padding: 8px 36px;
}
.v2-dist .dist-info-row {
  display: grid;
  grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
  gap: 32px;
  padding: 26px 0;
}
.v2-dist .dist-info-row + .dist-info-row { border-top: 1px solid var(--dist-line); }
.v2-dist .dist-info-k {
  font-size: 16px;
  line-height: 1.4;
  font-weight: 500;
  color: var(--dist-text);
  margin: 0;
}
.v2-dist .dist-info-text { font-size: 15.5px; line-height: 1.62; color: var(--dist-muted); margin: 0; max-width: 560px; }

/* ---- D05 合作流程：四列细线步骤 ---- */
.v2-dist .dist-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 40px); }
.v2-dist .dist-step { padding-top: 22px; border-top: 1px solid var(--dist-line-strong); }
.v2-dist .dist-step-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .12em;
  color: #8A9099;
  margin: 0 0 18px;
}
.v2-dist .dist-step-title { font-size: 20px; line-height: 1.3; font-weight: 500; color: var(--dist-text); margin: 0 0 10px; }
.v2-dist .dist-step-text { font-size: 15.5px; line-height: 1.62; color: var(--dist-muted); margin: 0; }

/* ---- D06 询盘收尾（合并原 D06 / D07） ---- */
.v2-dist .dist-closing { padding: 112px 0 112px; text-align: center; }
.v2-dist .dist-closing .dist-kicker { margin-bottom: 18px; }
.v2-dist .dist-closing-desc { margin: 0 auto 32px; }
.v2-dist .dist-closing-actions { display: flex; justify-content: center; }
.v2-dist .dist-closing-mail {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .04em;
  color: #7A818C;
  margin: 20px 0 0;
}
.v2-dist .dist-closing-mail a { color: inherit; text-decoration: none; }
.v2-dist .dist-closing-mail a:hover { color: #C7251E; }
.v2-dist .dist-closing-actions { gap: 14px; flex-wrap: wrap; }
.v2-dist .dist-closing-note {
  max-width: 520px;
  margin: 22px auto 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: #7A818C;
}
/* #contact 兼容旧锚点：与 #distributor 同段落点，不产生重复 id */
.v2-dist .dist-anchor { display: block; height: 0; scroll-margin-top: 96px; }

/* ---- 平板 960–1199 ---- */
@media (max-width: 1199px) {
  .v2-dist .dist-container { padding: 0 48px; }
  .v2-dist .dist-hero { padding: 136px 0 72px; }
  .v2-dist .dist-section { padding: 92px 0; }
  .v2-dist .dist-steps { grid-template-columns: 1fr 1fr; row-gap: 36px; }
}
@media (max-width: 1024px) {
  .v2-dist .dist-container { padding: 0 40px; }
}
/* ---- 单栏切换 ≤959 ---- */
@media (max-width: 959px) {
  .v2-dist .dist-hero-grid { grid-template-columns: minmax(0, 1fr); row-gap: 36px; }
  .v2-dist .dist-hero-copy { grid-column: 1 / -1; max-width: 640px; }
  .v2-dist .dist-hero-media { grid-column: 1 / -1; order: 2; }
  .v2-dist .dist-hero-media img { height: clamp(320px, 52vw, 440px); }
}
/* ---- 手机 ≤767 ---- */
@media (max-width: 767px) {
  .v2-dist .dist-container { padding: 0 20px; }
  .v2-dist .dist-hero { padding: 116px 0 56px; }
  .v2-dist .dist-h1 { font-size: clamp(34px, 10.4vw, 44px); }
  .v2-dist .dist-h2 { font-size: clamp(28px, 8vw, 36px); }
  .v2-dist .dist-lead { font-size: 16px; }
  .v2-dist .dist-section { padding: 64px 0; }
  .v2-dist .dist-section-head { margin-bottom: 36px; }
  .v2-dist .dist-section-head .dist-desc { margin-top: 16px; }
  .v2-dist .dist-cards { grid-template-columns: 1fr; gap: 14px; }
  .v2-dist .dist-card { padding: 24px; }
  .v2-dist .dist-list-row { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 24px 0; }
  .v2-dist .dist-list-num { margin-bottom: 2px; }
  .v2-dist .dist-info-panel { padding: 4px 22px; border-radius: 18px; }
  .v2-dist .dist-info-row { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 22px 0; }
  .v2-dist .dist-steps { grid-template-columns: 1fr; gap: 0; }
  .v2-dist .dist-step { padding: 22px 0; border-top: 1px solid var(--dist-line); }
  .v2-dist .dist-closing { padding: 64px 0 72px; }
}

/* ============================================================
 * F18-C1 — 首页 H03 CALINK AI：精简平衡式（仅 main.v2-home #ai）
 * 目标：文案 48 / 视觉 52，面板 ≤580×约 420，曲线不再压过品牌主张。
 * ============================================================ */
main.v2-home #ai .ai-split {
  grid-template-columns: minmax(0, 48fr) minmax(0, 52fr);
  column-gap: clamp(48px, 4vw, 56px);
}
main.v2-home #ai .ai-copy { max-width: 560px; }
main.v2-home #ai .ai-title {
  margin: 0 0 26px;
  font-size: clamp(40px, 3.55vw, 54px);
  line-height: 1.06;
  letter-spacing: -0.025em;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
/* F21-03-R1：单一语义 H2，两行独立控制；空行 = 视觉间距，不是空标题 */
main.v2-home #ai .ai-title-line { display: block; }
main.v2-home #ai .ai-lede {
  max-width: 46ch;
  margin: 0 0 24px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 16px;
  line-height: 1.65;
}
main.v2-home #ai .ai-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
main.v2-home #ai .ai-flow-arrow { color: rgba(61, 214, 255, 0.5); }
main.v2-home #ai .ai-disclosure { margin: 0 0 18px; }

/* 右侧面板：收窄、压低，作为视觉辅助 */
main.v2-home #ai .ai-panel {
  width: 100%;
  max-width: 580px;
  justify-self: end;
  padding: 20px 22px;
  border-radius: 14px;
}
main.v2-home #ai .ai-panel-status {
  padding-bottom: 11px;
  margin-bottom: 11px;
}
main.v2-home #ai .ai-status-label { font-size: 11px; }
main.v2-home #ai .p2-ai-demo-tag { font-size: 9.5px; }
main.v2-home #ai .ai-wave-box { height: 185px; }
main.v2-home #ai .ai-data-stream { margin-top: 10px; gap: 5px; }
main.v2-home #ai .ai-data-row { padding: 5px 0; }
main.v2-home #ai .ai-data-label { font-size: 12.5px; }
main.v2-home #ai .ai-data-value { font-size: 13.5px; }

/* 平板：双栏不再可读时切换上下排列（文案在上，曲线在下） */
@media (max-width: 959px) {
  main.v2-home #ai .ai-split { grid-template-columns: minmax(0, 1fr); row-gap: 36px; }
  main.v2-home #ai .ai-copy { max-width: 640px; }
  main.v2-home #ai .ai-panel { max-width: none; justify-self: stretch; }
  main.v2-home #ai .ai-wave-box { height: 230px; }
  main.v2-home #ai .ai-title { font-size: clamp(36px, 4.8vw, 46px); gap: 24px; }
}

/* 手机：单列、文字先于图表、CTA 触控区 ≥44px */
@media (max-width: 767px) {
  main.v2-home #ai .ai-split { row-gap: 28px; }
  main.v2-home #ai .ai-title { font-size: clamp(27px, 7.6vw, 34px); gap: 12px; margin-bottom: 22px; }
  main.v2-home #ai .ai-lede { font-size: 15.5px; margin-bottom: 20px; }
  main.v2-home #ai .ai-flow { gap: 8px; margin-bottom: 18px; }
  main.v2-home #ai .ai-wave-box { height: 200px; }
  main.v2-home #ai .ai-cta .calink-text-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
}

/* ============================================================
 * F19-B2 — FOR ORGANIZATIONS · ONE CONTINUOUS CANVAS
 * Scoped to organizations.html via .org-r1 only.
 * The existing .org-v2 class is retained on the page wrapper solely as
 * the shared dark-header/mobile-nav theme hook.
 * ============================================================ */
body:has(.org-r1),
body:has(.org-r1) #main-content {
  background-color: #F7F7F5;
}
.org-r1 {
  --org-r1-paper: #F7F7F5;
  --org-r1-ink: #18191B;
  --org-r1-muted: #6F7377;
  --org-r1-line: rgba(24, 25, 27, .13);
  --org-r1-soft: #85898E;
  --org-r1-max: 1190px;
  --org-r1-ease: cubic-bezier(.22, 1, .36, 1);
  color: var(--org-r1-ink);
  background-color: var(--org-r1-paper);
}
.org-r1 p { margin: 0; }
.org-r1 img { max-width: 100%; }
.org-r1 a { color: inherit; text-decoration: none; }
.org-r1 .org-r1-wrap {
  width: min(var(--org-r1-max), calc(100% - 50px));
  margin: 0 auto;
}
.org-r1 [id] { scroll-margin-top: 92px; }
/* F20-A2：三个生态锚点位于 reveal 元素内，补 14px 以抵消 translateY(14px) */
.org-r1 .org-r1-editorial[id] { scroll-margin-top: 106px; }

/* component colour restoration over the inherited anchor colour */
.org-r1 .org-r1-btn-dark { color: #FFFFFF; }
.org-r1 .org-r1-textlink { color: var(--org-r1-ink); }
.org-r1 .org-r1-subtle { color: var(--org-r1-muted); }

/* ---------- hero — fixed header offset + paper canvas ---------- */
.org-r1 .org-r1-hero { padding: 120px 0 88px; }
.org-r1 .org-r1-hero-inner {
  display: grid;
  grid-template-columns: 1.09fr .91fr;
  gap: 20px;
  align-items: center;
}
.org-r1 .org-r1-eyebrow {
  margin: 0 0 24px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .19em;
  text-transform: uppercase;
  color: #73777C;
}
.org-r1 .org-r1-hero-title {
  max-width: 720px;
  margin: 0 0 30px;
  font-size: clamp(48px, 5.35vw, 76px);
  font-weight: 650;
  line-height: 1.035;
  letter-spacing: -.065em;
  color: var(--org-r1-ink);
}
.org-r1 .org-r1-hero-lede {
  max-width: 540px;
  margin: 0 0 34px;
  color: var(--org-r1-muted);
  font-size: 16px;
  line-height: 1.8;
}
.org-r1 .org-r1-hero-actions { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.org-r1 .org-r1-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  padding: 15px 23px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.org-r1 .org-r1-btn-dark { background: #1A1B1E; color: #FFFFFF; }
.org-r1 .org-r1-btn-dark:hover { color: #FF6B5E; transform: translateY(-1px); }
.org-r1 .org-r1-textlink {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 2px;
  font-size: 13px;
  font-weight: 620;
  color: var(--org-r1-ink);
  transition: color .2s ease, opacity .2s ease;
}
.org-r1 .org-r1-textlink:hover { color: #C7251E; opacity: 1; }
.org-r1 .org-r1-arrow { display: inline-block; line-height: 1; transition: transform .2s ease; }
.org-r1 .org-r1-textlink:hover .org-r1-arrow { transform: translate(2px, -2px); }
.org-r1 .org-r1-hero-media {
  position: relative;
  margin: 0;
  min-height: 505px;
  display: grid;
  align-items: center;
  justify-items: center;
}
.org-r1 .org-r1-hero-media img {
  width: 100%;
  height: auto;
  max-height: 540px;
  object-fit: contain;
  filter: drop-shadow(14px 26px 24px rgba(0,0,0,.14));
}
.org-r1 .org-r1-hero-media figcaption {
  position: absolute;
  right: 2%;
  bottom: -6px;
  color: #9B9DA0;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .10em;
}
.org-r1 .org-r1-rule { height: 1px; background: var(--org-r1-line); }

/* ---------- product collaboration ---------- */
.org-r1 .org-r1-product { padding: 0; }
.org-r1 .org-r1-introline {
  display: grid;
  grid-template-columns: 1fr 1.45fr;
  gap: 80px;
  padding: 78px 0 26px;
}
.org-r1 .org-r1-h2 {
  margin: 20px 0 25px;
  font-size: clamp(38px, 4.2vw, 58px);
  font-weight: 650;
  line-height: 1.12;
  letter-spacing: -.06em;
  color: var(--org-r1-ink);
}
.org-r1 .org-r1-introline-copy { padding-top: 4px; }
.org-r1 .org-r1-intro {
  max-width: 540px;
  color: var(--org-r1-muted);
  font-size: 15px;
  line-height: 1.85;
}
.org-r1 .org-r1-product-links {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 26px;
}
.org-r1 .org-r1-subtle {
  color: var(--org-r1-muted);
  font-size: 12px;
  padding-bottom: 2px;
  transition: color .2s ease, opacity .2s ease;
}
.org-r1 .org-r1-subtle:hover { color: #C7251E; opacity: 1; }
.org-r1 .org-r1-footnote {
  max-width: 720px;
  margin-top: 20px;
  color: var(--org-r1-muted);
  font-size: 11px;
  line-height: 1.6;
}
.org-r1 .org-r1-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 36px 0 110px;
}
.org-r1 .org-r1-feature { padding: 16px 30px 8px 0; }
.org-r1 .org-r1-feature + .org-r1-feature {
  border-left: 1px solid var(--org-r1-line);
  padding-left: 35px;
}
.org-r1 .org-r1-number {
  color: #7E8286;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .13em;
}
.org-r1 .org-r1-feature h3 {
  margin: 24px 0 12px;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -.03em;
  color: var(--org-r1-ink);
}
.org-r1 .org-r1-feature p {
  max-width: 275px;
  color: var(--org-r1-muted);
  font-size: 13px;
  line-height: 1.75;
}

/* ---------- ecosystem editorial rows ---------- */
.org-r1 .org-r1-ecosystem { padding: 0; }
.org-r1 .org-r1-section-head { max-width: 730px; padding: 90px 0 58px; }
.org-r1 .org-r1-section-head h2 {
  margin: 20px 0 25px;
  font-size: clamp(41px, 4.7vw, 65px);
  font-weight: 650;
  line-height: 1.12;
  letter-spacing: -.064em;
  color: var(--org-r1-ink);
}
.org-r1 .org-r1-section-head p {
  max-width: 540px;
  color: var(--org-r1-muted);
  font-size: 15px;
  line-height: 1.85;
}
.org-r1 .org-r1-editorial {
  display: grid;
  grid-template-columns: 80px minmax(340px, 1fr) minmax(280px, .88fr);
  gap: 45px;
  min-height: 320px;
  align-items: start;
  padding: 66px 0 82px;
  border-top: 1px solid var(--org-r1-line);
}
.org-r1 .org-r1-editorial:last-child { border-bottom: 1px solid var(--org-r1-line); }
.org-r1 .org-r1-index {
  color: #85898E;
  font-family: var(--font-mono);
  font-size: 12px;
}
.org-r1 .org-r1-editorial h3 {
  margin: 0 0 22px;
  font-size: clamp(32px, 3vw, 44px);
  font-weight: 640;
  line-height: 1.12;
  letter-spacing: -.058em;
  color: var(--org-r1-ink);
}
.org-r1 .org-r1-editorial p {
  max-width: 485px;
  margin: 0 0 28px;
  color: var(--org-r1-muted);
  font-size: 15px;
  line-height: 1.8;
}
.org-r1 .org-r1-side-note {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-height: 175px;
  padding-left: 48px;
  border-left: 1px solid var(--org-r1-line);
  color: var(--org-r1-muted);
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.85;
}
.org-r1 .org-r1-side-note strong {
  display: block;
  margin-bottom: 12px;
  color: #9EA3A7;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(35px, 4vw, 57px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.07em;
}
.org-r1 .org-r1-side-note span {
  display: block;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.org-r1 .org-r1-side-note span + span { margin-top: 4px; }

/* ---------- process ---------- */
.org-r1 .org-r1-process { padding: 115px 0 110px; }
.org-r1 .org-r1-process h2,
.org-r1 .org-r1-finish h2 {
  max-width: 720px;
  margin: 22px 0 24px;
  font-size: clamp(39px, 4.4vw, 61px);
  font-weight: 650;
  line-height: 1.1;
  letter-spacing: -.065em;
  color: var(--org-r1-ink);
}
.org-r1 .org-r1-lead {
  max-width: 650px;
  color: var(--org-r1-muted);
  font-size: 15px;
  line-height: 1.8;
}
.org-r1 .org-r1-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 42px;
  margin-top: 67px;
}
.org-r1 .org-r1-step { padding-top: 22px; border-top: 1px solid var(--org-r1-line); }
.org-r1 .org-r1-step-name {
  margin: 16px 0 10px;
  font-size: 19px;
  font-weight: 620;
  letter-spacing: -.04em;
}
.org-r1 .org-r1-step p {
  color: var(--org-r1-muted);
  font-size: 13px;
  line-height: 1.7;
}
.org-r1 .org-r1-process-note {
  max-width: 720px;
  margin-top: 26px;
  color: var(--org-r1-muted);
  font-size: 12px;
  line-height: 1.6;
}

/* ---------- finish: paper, dark button only ---------- */
.org-r1 .org-r1-finish { padding: 78px 0 130px; }
.org-r1 .org-r1-finish-inner {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: end;
  gap: 45px;
}
.org-r1 .org-r1-finish h2 { font-size: clamp(47px, 4.5vw, 64px); }
.org-r1 .org-r1-finish .org-r1-btn { justify-self: end; align-self: end; }

/* ---------- scroll reveal ---------- */
.org-r1-js .org-r1-reveal { opacity: 0; transform: translateY(14px); }
.org-r1-js .org-r1-reveal.is-visible {
  opacity: 1;
  transform: none;
  transition: opacity .55s ease, transform .55s var(--org-r1-ease);
}

/* ---------- focus ---------- */
.org-r1 a:focus-visible,
.org-r1 button:focus-visible {
  outline: 2px solid var(--org-r1-ink);
  outline-offset: 4px;
  border-radius: 4px;
}

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .org-r1 .org-r1-hero { padding: 112px 0 72px; }
  .org-r1 .org-r1-hero-media { min-height: 460px; }
  .org-r1 .org-r1-hero-media img { max-height: 490px; }
  .org-r1 .org-r1-introline { gap: 54px; }
}
@media (max-width: 920px) {
  .org-r1 .org-r1-hero { padding: 134px 0 80px; }
  .org-r1 .org-r1-hero-inner { grid-template-columns: 1fr; gap: 20px; }
  .org-r1 .org-r1-hero-title { font-size: 48px; }
  .org-r1 .org-r1-hero-media { min-height: 390px; }
  .org-r1 .org-r1-hero-media img { width: min(94%, 430px); max-height: 445px; }
  .org-r1 .org-r1-hero-media figcaption { right: 3%; }
  .org-r1 .org-r1-introline { grid-template-columns: 1fr; gap: 15px; padding-top: 64px; }
  .org-r1 .org-r1-introline-copy { padding-top: 0; }
  .org-r1 .org-r1-editorial {
    grid-template-columns: 45px 1fr;
    gap: 22px;
    padding: 56px 0 66px;
    min-height: 0;
  }
  .org-r1 .org-r1-side-note {
    grid-column: 2;
    min-height: 60px;
    padding-left: 0;
    padding-top: 16px;
    border-left: 0;
    border-top: 1px solid var(--org-r1-line);
  }
  .org-r1 .org-r1-side-note strong { font-size: 43px; }
  .org-r1 .org-r1-steps { grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 48px; }
  .org-r1 .org-r1-process { padding: 90px 0 85px; }
  .org-r1 .org-r1-finish { padding: 65px 0 110px; }
  .org-r1 .org-r1-finish-inner { grid-template-columns: 1fr; gap: 30px; }
  .org-r1 .org-r1-finish .org-r1-btn { justify-self: start; }
}
@media (max-width: 560px) {
  .org-r1 .org-r1-wrap { width: calc(100% - 44px); }
  .org-r1 .org-r1-hero { padding: 126px 0 65px; }
  .org-r1 .org-r1-hero-title { margin: 18px 0 23px; font-size: clamp(43px, 11vw, 55px); letter-spacing: -.06em; }
  .org-r1 .org-r1-hero-lede { font-size: 14px; margin-bottom: 26px; }
  .org-r1 .org-r1-hero-actions { gap: 18px; }
  .org-r1 .org-r1-btn { padding: 14px 19px; }
  .org-r1 .org-r1-hero-media { min-height: 345px; }
  .org-r1 .org-r1-hero-media img { width: 94%; max-height: 350px; }
  .org-r1 .org-r1-hero-media figcaption { right: 2%; font-size: 9px; }
  .org-r1 .org-r1-introline { padding: 62px 0 22px; }
  .org-r1 .org-r1-h2 { font-size: 41px; }
  .org-r1 .org-r1-product-links { gap: 16px; }
  .org-r1 .org-r1-features { grid-template-columns: 1fr; gap: 0; padding: 28px 0 65px; }
  .org-r1 .org-r1-feature { padding: 18px 0 20px; border-top: 1px solid var(--org-r1-line); }
  .org-r1 .org-r1-feature + .org-r1-feature { border-left: 0; padding-left: 0; }
  .org-r1 .org-r1-feature h3 { margin: 12px 0 7px; }
  .org-r1 .org-r1-feature p { margin: 0; max-width: none; }
  .org-r1 .org-r1-section-head { padding: 62px 0 42px; }
  .org-r1 .org-r1-section-head h2 { font-size: 43px; }
  .org-r1 .org-r1-editorial { grid-template-columns: 34px 1fr; gap: 13px; padding: 42px 0 52px; }
  .org-r1 .org-r1-editorial h3 { font-size: 33px; }
  .org-r1 .org-r1-editorial p { font-size: 13px; }
  .org-r1 .org-r1-side-note { padding-top: 12px; margin-top: 8px; }
  .org-r1 .org-r1-side-note strong { font-size: 39px; }
  .org-r1 .org-r1-process { padding: 82px 0 75px; }
  .org-r1 .org-r1-process h2,
  .org-r1 .org-r1-finish h2 { font-size: 42px; }
  .org-r1 .org-r1-steps { gap: 24px; margin-top: 38px; }
  .org-r1 .org-r1-step-name { font-size: 16px; }
  .org-r1 .org-r1-step p { font-size: 12px; }
  .org-r1 .org-r1-finish { padding: 55px 0 105px; }
  .org-r1 .org-r1-lead { font-size: 14px; }
}
@media (max-width: 360px) {
  .org-r1 .org-r1-steps { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .org-r1-js .org-r1-reveal { opacity: 1; transform: none; }
  .org-r1-js .org-r1-reveal.is-visible { transition: none; }
  .org-r1 .org-r1-btn,
  .org-r1 .org-r1-textlink,
  .org-r1 .org-r1-subtle { transition: none; }
  .org-r1 .org-r1-btn-dark:hover { transform: none; box-shadow: none; }
  .org-r1 .org-r1-textlink:hover .org-r1-arrow { transform: none; }
}

/* ============================================================
 * F20-B2 — E.O.W. record explorer & editorial sections
 * Scope: .v2-eow only. Orbit Hero rules above remain untouched.
 * ============================================================ */

.v2-eow .eow-record,
.v2-eow .eow-origin-perspective,
.v2-eow .eow-flow,
.v2-eow .eow-coop {
  padding: clamp(72px, 9vw, 120px) 0;
  border-top: 1px solid rgba(20, 22, 26, 0.07);
}
.v2-eow .eow-record [id],
.v2-eow .eow-origin-perspective [id],
.v2-eow .eow-flow [id],
.v2-eow .eow-coop [id] { scroll-margin-top: 92px; }

.v2-eow .eow-explorer-head,
.v2-eow .eow-origin-head { max-width: 940px; }

.v2-eow .eow-f20-eyebrow {
  margin: 0 0 18px;
  font-family: var(--font-mono, monospace);
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #79828D;
}
.v2-eow .eow-f20-title {
  margin: 0;
  max-width: 920px;
  font-size: clamp(34px, 4.4vw, 58px);
  line-height: 1.06;
  letter-spacing: -0.035em;
  font-weight: 500;
  color: #14161A;
}
.v2-eow .eow-f20-lede {
  margin: 20px 0 0;
  max-width: 640px;
  font-size: 16px;
  line-height: 1.65;
  color: #5B636D;
}
.v2-eow .eow-f20-status {
  margin: 20px 0 0;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #8A919B;
}
.v2-eow .eow-f20-status span { margin: 0 6px; color: rgba(20, 22, 26, 0.25); }

.v2-eow .eow-f20-tag {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  padding: 4px 7px;
  border: 1px solid rgba(20, 22, 26, 0.18);
  border-radius: 2px;
  font-family: var(--font-mono, monospace);
  font-size: 9px;
  line-height: 1.2;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #39404A;
}
.v2-eow .eow-stage-group-label {
  margin: 0;
  font-family: var(--font-mono, monospace);
  font-size: 9.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8A919B;
}
.v2-eow .eow-f20-fineprint {
  margin: 16px 0 0;
  max-width: 760px;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  line-height: 1.7;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8A919B;
}

/* ---- 02 · Record Explorer ---- */
.v2-eow .eow-explorer-grid {
  display: grid;
  grid-template-columns: 46fr 54fr;
  /* F21-03-R2：图文间距 71.25 → 约 91px（+2ch），随视口收敛 */
  gap: clamp(32px, calc(5vw + 20px), 91px);
  margin-top: clamp(34px, 4vw, 56px);
  align-items: stretch;
}
.v2-eow .eow-explorer-media { margin: 0; min-width: 0; }
.v2-eow .eow-explorer-stack {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #EDEFF2;
  border-radius: 2px;
}
.v2-eow .eow-explorer-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 240ms ease;
}
.v2-eow .eow-explorer-img.is-on { opacity: 1; }
.v2-eow .eow-explorer-caption {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 3.2em;
  margin-top: 14px;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #79828D;
}
@media (min-width: 1024px) {
  .v2-eow .eow-explorer-media { display: flex; flex-direction: column; }
  .v2-eow .eow-explorer-stack {
    flex: 1 1 auto;
    aspect-ratio: auto;
    min-height: 420px;
  }
  .v2-eow .eow-explorer-caption { flex: 0 0 auto; }
}
.v2-eow .eow-explorer-content { min-width: 0; }
.v2-eow .eow-explorer-selected {
  border-top: 0;
  padding-top: 0;
  margin-bottom: 6px;
}
.v2-eow .eow-explorer-kicker {
  margin: 0;
  font-family: var(--font-mono, monospace);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #14161A;
}
.v2-eow .eow-explorer-detail {
  margin: 9px 0 0;
  max-width: 58ch;
  font-size: 15px;
  line-height: 1.62;
  color: #39404A;
}
.v2-eow .eow-explorer-sample {
  margin: 9px 0 0;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8A919B;
}
.v2-eow .eow-explorer-sample span { margin-left: 6px; color: rgba(20, 22, 26, 0.35); }

.v2-eow .eow-stage-groups { margin-top: 22px; }
.v2-eow .eow-stage-group { margin-top: 22px; }
.v2-eow .eow-stage-group:first-child { margin-top: 0; }
.v2-eow .eow-stage-group .eow-stage-group-label { margin-bottom: 8px; }

.v2-eow .eow-stage {
  position: relative;
  display: flex;
  gap: 16px;
  width: 100%;
  padding: 12px 0 12px 12px;
  border: 0;
  background: none;
  text-align: left;
  cursor: pointer;
  color: #39404A;
  transition: color 0.18s ease, background-color 0.18s ease;
}
.v2-eow .eow-stage::before {
  content: '';
  position: absolute;
  left: 0;
  top: 11px;
  bottom: 11px;
  width: 2px;
  background: transparent;
  transition: background-color 0.18s ease;
}
.v2-eow .eow-stage:hover { color: #14161A; background: transparent; }
.v2-eow .eow-stage:hover .eow-stage-num,
.v2-eow .eow-stage:hover .eow-stage-name { color: #C7251E; }
.v2-eow .eow-stage.is-active { color: #14161A; }
.v2-eow .eow-stage.is-active::before { background: #14161A; }
.v2-eow .eow-stage:focus-visible {
  outline: 2px solid #14161A;
  outline-offset: 2px;
  border-radius: 2px;
}
.v2-eow .eow-stage-num {
  flex: 0 0 22px;
  padding-top: 3px;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: #8A919B;
}
.v2-eow .eow-stage-body { display: block; min-width: 0; }
.v2-eow .eow-stage-name {
  display: block;
  font-size: 15.5px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: -0.01em;
}
.v2-eow .eow-stage-desc {
  display: block;
  margin-top: 3px;
  font-size: 12.5px;
  line-height: 1.5;
  color: #6B737D;
}
.v2-eow .eow-stage.is-active .eow-stage-desc { color: #5B636D; }

/* ---- 03 · Origin Perspective ---- */
.v2-eow .eow-origin-media {
  margin: clamp(32px, 4vw, 56px) 0 0;
  border-radius: 2px;
  overflow: hidden;
}
.v2-eow .eow-origin-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.v2-eow .eow-origin-media figcaption {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #79828D;
}
.v2-eow .eow-origin-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin-top: clamp(36px, 4vw, 60px);
}
.v2-eow .eow-origin-grid article {
  border-top: 0;
  padding-top: 0;
}
.v2-eow .eow-origin-grid h3 {
  margin: 10px 0 8px;
  font-size: 20px;
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: #14161A;
}
.v2-eow .eow-origin-grid p:not(.eow-stage-group-label) {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: #5B636D;
}
.v2-eow .eow-origin-links {
  margin-top: clamp(36px, 4vw, 56px);
  border-top: 1px solid rgba(20, 22, 26, 0.10);
  padding-top: 20px;
}
.v2-eow .eow-origin-link-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 32px;
  margin-top: 10px;
}
.v2-eow .eow-origin-link-row a {
  font-size: 14px;
  font-weight: 500;
  color: #14161A;
  text-decoration: none;
  transition: opacity 0.18s ease;
}
.v2-eow .eow-origin-link-row a span {
  display: inline-block;
  margin-left: 4px;
  transition: transform 0.18s ease;
}
.v2-eow .eow-origin-link-row a:hover { opacity: 0.72; }
.v2-eow .eow-origin-link-row a:hover span { transform: translateX(2px); }

/* ---- 04 · From Origin to Roast ---- */
.v2-eow .eow-flow-path {
  list-style: none;
  display: flex;
  margin: clamp(34px, 4vw, 56px) 0 0;
  padding: 0;
  border-top: 1px solid rgba(20, 22, 26, 0.10);
  border-bottom: 0;
}
.v2-eow .eow-flow-path li {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  padding: 24px 28px 26px 0;
}
.v2-eow .eow-flow-path li + li {
  padding-left: 40px;
  border-left: 0;
}
.v2-eow .eow-flow-path li + li::before {
  content: '→';
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  padding: 0;
  background: transparent;
  font-size: 13px;
  color: #8A919B;
}
.v2-eow .eow-flow-step {
  display: block;
  margin-bottom: 14px;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #8A919B;
}
.v2-eow .eow-flow-path strong {
  display: block;
  font-size: 19px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: #14161A;
}
.v2-eow .eow-flow-path small {
  display: block;
  margin-top: 8px;
  font-family: var(--font-mono, monospace);
  font-size: 9.5px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #79828D;
}
.v2-eow .eow-flow-note {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 20px 0 0;
  font-size: 13px;
  line-height: 1.6;
  color: #5B636D;
}

/* ---- 05 · Cooperation ---- */
.v2-eow .eow-coop-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}
.v2-eow .eow-coop-actions .btn {
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
}
.v2-eow .eow-coop-actions .btn-primary {
  background: #14161A;
  border-color: #14161A;
  color: #FFFFFF;
}
.v2-eow .eow-coop-actions .btn-primary:hover {
  color: #FF6B5E;
}
.v2-eow .eow-coop-actions .btn-secondary {
  background: transparent;
  border-color: rgba(20, 22, 26, 0.28);
  color: #14161A;
}
.v2-eow .eow-coop-actions .btn-secondary:hover {
  color: #C7251E;
}
.v2-eow .eow-coop-actions .btn:focus-visible {
  outline: 2px solid #14161A;
  outline-offset: 3px;
}
.v2-eow .eow-coop-actions .btn span {
  display: inline-block;
  margin-left: 6px;
  transition: transform 0.18s ease;
}
.v2-eow .eow-coop-actions .btn:hover span { transform: translateX(2px); }

/* ---- responsive ---- */
@media (max-width: 1023px) {
  .v2-eow .eow-explorer-grid { grid-template-columns: 1fr; gap: 30px; }
  .v2-eow .eow-explorer-stack { aspect-ratio: 4 / 3; }
  .v2-eow .eow-origin-grid { grid-template-columns: 1fr; gap: 24px; }
  .v2-eow .eow-origin-grid article { padding-top: 16px; }
}
@media (max-width: 767px) {
  .v2-eow .eow-record,
  .v2-eow .eow-origin-perspective,
  .v2-eow .eow-flow,
  .v2-eow .eow-coop { padding: 68px 0; }
  .v2-eow .eow-f20-title { font-size: clamp(32px, 8.6vw, 44px); }
  .v2-eow .eow-f20-lede { font-size: 15px; }
  .v2-eow .eow-flow-path { flex-direction: column; }
  .v2-eow .eow-flow-path li { padding: 20px 0 22px; }
  .v2-eow .eow-flow-path li + li {
    padding-left: 0;
    margin-top: 18px;
    border-top: 0;
  }
  .v2-eow .eow-flow-path li + li::before {
    content: '↓';
    left: auto;
    right: 0;
    top: 0;
    transform: translateY(-50%);
    padding: 0 6px;
  }
  .v2-eow .eow-origin-media figcaption,
  .v2-eow .eow-explorer-caption { font-size: 9.5px; }
}
@media (max-width: 560px) {
  .v2-eow .eow-stage { padding: 12px 0 12px 10px; gap: 12px; }
  .v2-eow .eow-stage-name { font-size: 15px; }
  .v2-eow .eow-stage-desc { font-size: 12px; }
  .v2-eow .eow-coop-actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .v2-eow .eow-explorer-img,
  .v2-eow .eow-stage,
  .v2-eow .eow-stage::before,
  .v2-eow .eow-origin-link-row a span,
  .v2-eow .eow-coop-actions .btn,
  .v2-eow .eow-coop-actions .btn span { transition: none; }
}

/* ============================================================
 * F20-A2 — Mega Menu editorial panels (Products / Organizations)
 * Scope: .mega-panel--editorial only. Other four menus keep their markup.
 * ============================================================ */

.mega-panel--editorial {
  padding: 0;
  min-height: 448px;
}
.mega-panel--editorial .mega-editorial-inner {
  max-width: 1300px;
  padding: 48px 42px 38px;
}

.mega-products-editorial,
.mega-org-editorial {
  display: grid;
  grid-template-columns: 32% 1fr;
  gap: 8%;
  align-items: center;
}

.mega-a1-lead {
  align-self: stretch;
  max-width: 340px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.mega-a1-eyebrow {
  margin: 0;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 2.3px;
  text-transform: uppercase;
  color: #9BACBF;
}
.mega-a1-title {
  margin: 14px 0 13px;
  font-size: 34px;
  line-height: 1.15;
  letter-spacing: -1.15px;
  font-weight: 600;
  color: #F5F8FC;
}
.mega-a1-tilde { color: #FF3232; }
.mega-a1-copy {
  margin: 0 0 27px;
  max-width: 300px;
  font-size: 14px;
  line-height: 1.7;
  color: #A8B5C8;
}
.mega-a1-route,
.mega-a1-inline {
  display: inline-flex;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #F1F4FA;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.mega-a1-route:hover,
.mega-a1-route:focus-visible,
.mega-a1-inline:hover,
.mega-a1-inline:focus-visible { color: #FF6B5E; }
.mega-a1-route span,
.mega-a1-inline span,
.mega-a1-item-action span {
  display: inline-block;
  margin-left: 7px;
  transition: transform 0.26s cubic-bezier(.2,.7,.3,1);
}
.mega-a1-route:hover span,
.mega-a1-inline:hover span,
.mega-org-link:hover .mega-a1-item-action span,
.mega-org-link:focus-visible .mega-a1-item-action span { transform: translate(2px, -2px); }

.mega-product-showcase {
  display: grid;
  grid-template-columns: 42% 34% 24%;
  align-items: center;
  min-height: 327px;
}
.mega-product-visual {
  height: 304px;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse 56% 60% at 52% 56%, rgba(91,107,132,.17), transparent 96%);
}
.mega-product-visual img {
  display: block;
  width: 99%;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 22px 17px rgba(0,0,0,.22));
}
.mega-product-copy {
  max-width: 235px;
  padding-left: 14px;
}
.mega-product-copy h3 {
  margin: 11px 0 10px;
  font-size: 28px;
  line-height: 1.15;
  letter-spacing: -.7px;
  font-weight: 600;
  color: #F5F8FC;
}
.mega-product-copy p:not(.mega-a1-eyebrow) {
  margin: 0 0 17px;
  font-size: 13px;
  line-height: 1.65;
  color: #A8B5C8;
}
.mega-product-secondary {
  align-self: center;
  margin-left: 13px;
  padding-left: 20px;
  border-left: 1px solid rgba(220,234,255,.105);
}
.mega-product-secondary h4 {
  margin: 12px 0 16px;
  font-size: 17px;
  line-height: 1.35;
  letter-spacing: -.2px;
  font-weight: 600;
  color: #F5F8FC;
}

.mega-org-grid-a1 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  min-height: 320px;
}
.mega-org-link {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 160px;
  padding: 24px 28px;
  color: #EAF0F8;
  text-decoration: none;
  transition: background-color .25s ease;
}
.mega-org-link:nth-child(odd) { border-right: 1px solid rgba(220,234,255,.105); }
.mega-org-link:nth-child(-n+2) { border-bottom: 1px solid rgba(220,234,255,.105); }
.mega-org-link:hover,
.mega-org-link:focus-visible { background: transparent; }
.mega-org-link:active { background: rgba(194,212,255,.06); }
.mega-org-link:hover .mega-a1-item-title,
.mega-org-link:focus-visible .mega-a1-item-title,
.mega-org-link:hover .mega-a1-item-action,
.mega-org-link:focus-visible .mega-a1-item-action { color: #FF6B5E; }
.mega-org-link:focus-visible {
  outline: 2px solid #FF6B5E;
  outline-offset: -2px;
}
.mega-org-link .mega-a1-eyebrow { display: block; }
.mega-a1-item-title {
  display: block;
  margin: 13px 0 8px;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: -.35px;
  font-weight: 600;
  color: #F5F8FC;
}
.mega-a1-item-desc {
  display: block;
  font-size: 12.5px;
  line-height: 1.55;
  color: #A8B5C8;
}
.mega-a1-item-action {
  display: block;
  margin-top: auto;
  padding-top: 13px;
  font-size: 11px;
  font-weight: 600;
  color: #D6E2F3;
}

/* keep the incoming panel above the outgoing panel during a switch */
.mega-panel.mega-switch-in { z-index: 1001; }

@media (max-width: 1280px) {
  .mega-products-editorial,
  .mega-org-editorial { gap: 4%; }
  .mega-a1-title { font-size: 30px; }
  .mega-product-showcase { grid-template-columns: 42% 35% 23%; }
  .mega-product-copy h3 { font-size: 26px; }
  .mega-product-secondary { margin-left: 8px; padding-left: 14px; }
  .mega-product-secondary h4 { font-size: 15.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .mega-panel {
    transition: none !important;
    transform: none !important;
  }
  body::after {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .mega-a1-route span,
  .mega-a1-inline span,
  .mega-a1-item-action span { transition: none; }
}

/* ============================================================
 * F20-D3 — SDGs in Action · Apple-like refinement
 * 作用域：.impact-d2（仅 impact.html）
 * 连续纯白画布 / 统一 1:1 栅格 / 轻动效
 * ============================================================ */

body:has(.impact-d2),
body:has(.impact-d2) #main-content {
  background-color: #FFFFFF;
}

/* ---- 画布与基础排版 ---- */
.impact-d2 {
  --canvas: #FFFFFF;
  --ink: #111315;
  --body: #4B504D;
  --muted: #6E736F;
  --green: #2F5D45;
  --green-soft: #E7EEE9;
  --hair: rgba(17, 19, 21, .10);
  --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --max: 1240px;
  --d3-gap: clamp(56px, 6vw, 92px);
  --d3-h: clamp(540px, 58vh, 640px);
  position: relative;
  overflow-x: clip;
  background: #FFFFFF;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.impact-d2 *,
.impact-d2 *::before,
.impact-d2 *::after { box-sizing: border-box; }
.impact-d2 h1,
.impact-d2 h2,
.impact-d2 h3,
.impact-d2 p,
.impact-d2 figure { margin: 0; }
.impact-d2 a { color: inherit; text-decoration: none; }
.impact-d2 img { max-width: 100%; }
.impact-d2 a:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 4px;
}

.impact-d2 .wrap {
  width: min(var(--max), calc(100% - 96px));
  margin: 0 auto;
}
.impact-d2 .act { padding: clamp(92px, 9.5vw, 132px) 0; }

/* ---- 统一文字层级 ---- */
.impact-d2 .eyebrow {
  margin: 0 0 20px;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--green);
}
.impact-d2 .eyebrow--light {
  color: rgba(240, 246, 242, .92);
  text-shadow: 0 1px 12px rgba(0, 0, 0, .38);
}
.impact-d2 .body {
  max-width: 540px;
  margin: 0;
  font-size: 17.5px;
  line-height: 1.72;
  color: var(--body);
}
.impact-d2 .status {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  max-width: 480px;
  margin: 26px 0 0;
  font-family: var(--font-mono);
  font-size: 10.5px;
  line-height: 1.65;
  letter-spacing: .02em;
  color: #5A605C;
}
.impact-d2 .dot {
  flex: 0 0 5px;
  width: 5px;
  height: 5px;
  margin-top: 6px;
  border-radius: 50%;
  background: var(--green);
}
.impact-d2 .text-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 34px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  transition: color .2s ease;
}
.impact-d2 .text-link span { transition: transform .26s cubic-bezier(.2, .7, .3, 1); }
.impact-d2 .text-link:hover { color: var(--green); }
.impact-d2 .text-link:hover span { transform: translate(3px, -3px); }

/* ---- Hero ---- */
.impact-d2 .hero {
  position: relative;
  height: min(94vh, 920px);
  min-height: 620px;
  overflow: hidden;
  background: #121614;
  color: #FFFFFF;
}
.impact-d2 .hero-media { position: absolute; inset: 0; z-index: 0; background: #121614; }
.impact-d2 .hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
  transform: scale(1);
  transform-origin: 50% 44%;
  will-change: transform;
}
.impact-d2 .hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(6, 8, 8, .42) 0%, rgba(6, 8, 8, .12) 24%, rgba(6, 8, 8, 0) 50%, rgba(6, 8, 8, .28) 76%, rgba(6, 8, 8, .70) 100%),
    linear-gradient(90deg, rgba(6, 8, 8, .36) 0%, rgba(6, 8, 8, .10) 48%, rgba(6, 8, 8, 0) 74%);
  pointer-events: none;
}
.impact-d2 .hero-content {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(64px, 8vw, 104px);
  z-index: 2;
  animation: d3HeroIn .85s cubic-bezier(.22, 1, .36, 1) .06s both;
}
.impact-d2 .hero-content .wrap { max-width: 1240px; }
.impact-d2 .hero h1 {
  max-width: 960px;
  margin: 0;
  font-size: clamp(46px, 6.1vw, 88px);
  line-height: .99;
  letter-spacing: -2.9px;
  font-weight: 600;
  color: #FBFCFB;
  text-wrap: balance;
}
.impact-d2 .hero-sub {
  max-width: 600px;
  margin: 26px 0 0;
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 1.65;
  color: rgba(244, 248, 246, .82);
}
.impact-d2 .hero-note {
  max-width: 560px;
  margin: 28px 0 0;
  font-family: var(--font-mono);
  font-size: 10.5px;
  line-height: 1.6;
  letter-spacing: .04em;
  color: rgba(241, 246, 243, .68);
  text-shadow: 0 1px 10px rgba(0, 0, 0, .32);
}
.impact-d2 .hero-label {
  position: absolute;
  right: 28px;
  bottom: 24px;
  z-index: 3;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(244, 248, 246, .45);
}
@keyframes d3HeroIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

/* ---- 原创标记 ---- */
.impact-d2 .hero-mark {
  position: absolute;
  right: 6%;
  top: 47%;
  z-index: 2;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.impact-d2 .loop-mark {
  display: block;
  width: 300px;
  height: 300px;
  color: #F4F8F5;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, .35)) drop-shadow(0 10px 30px rgba(0, 0, 0, .28));
}
.impact-d2 .loop-line {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: d3LoopDraw 1.4s cubic-bezier(.4, 0, .2, 1) forwards;
}
.impact-d2 .loop-line--thin { stroke-width: 1.05; opacity: .8; animation-delay: .5s; }
.impact-d2 .loop-orbit { animation-delay: .06s; }
.impact-d2 .loop-bean { animation-delay: .2s; }
.impact-d2 .loop-stem { animation-delay: .36s; }
.impact-d2 .loop-leaf {
  fill: rgba(138, 178, 148, .18);
  stroke: currentColor;
  stroke-width: 1.1;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0;
  animation: d3LoopDraw 1.05s cubic-bezier(.4, 0, .2, 1) .62s forwards,
             d3LeafIn .6s ease .62s forwards;
}
.impact-d2 .loop-leaf--two { animation-delay: .78s; }
.impact-d2 .loop-dot {
  fill: currentColor;
  opacity: 0;
  animation: d3DotIn .4s ease 1.28s forwards;
}
.impact-d2 .hero-mark-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(244, 248, 246, .72);
  text-shadow: 0 1px 10px rgba(0, 0, 0, .4);
}
@keyframes d3LoopDraw { to { stroke-dashoffset: 0; } }
@keyframes d3LeafIn { to { opacity: 1; } }
@keyframes d3DotIn { to { opacity: 1; } }

/* ---- 统一 1:1 图文栅格（01 / 02 / 03） ---- */
.impact-d2 .d3-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--d3-gap);
  align-items: stretch;
}
.impact-d2 .d3-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: var(--d3-h);
  max-width: none;
  width: 100%;
}
.impact-d2 .d3-copy h2 {
  margin: 0 0 26px;
  font-size: clamp(40px, 4.3vw, 62px);
  line-height: 1.02;
  letter-spacing: -2px;
  font-weight: 600;
  color: var(--ink);
  text-wrap: balance;
}
.impact-d2 .d3-media {
  display: flex;
  flex-direction: column;
  min-height: var(--d3-h);
  margin: 0;
  width: 100%;
}
.impact-d2 .d3-frame {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  background: #F2F2F0;
  clip-path: inset(0 0 0 0);
  transition: clip-path .9s cubic-bezier(.22, 1, .36, 1);
}
.impact-d2 .d3-frame--from-right { clip-path: inset(0 0 0 100%); }
.impact-d2 .d3-frame--from-left { clip-path: inset(0 100% 0 0); }
.impact-d2 .d3-row.is-visible .d3-frame { clip-path: inset(0 0 0 0); }
.impact-d2 .d3-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
  transform: scale(1.03);
  transition: transform 1.3s cubic-bezier(.22, 1, .36, 1);
}
.impact-d2 #impact-people .d3-frame img { object-position: 62% 44%; }
.impact-d2 .d3-row.is-visible .d3-frame img { transform: scale(1); }
.impact-d2 .d3-media figcaption {
  flex: 0 0 28px;
  display: flex;
  align-items: flex-end;
  gap: 7px;
  font-family: var(--font-mono);
  font-size: 9.5px;
  line-height: 1.5;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #5F6A64;
}
.impact-d2 .d3-media figcaption span { color: #7A807C; }
.impact-d2 .d3-frame.is-missing::after,
.impact-d2 .d3-stage.is-missing::after,
.impact-d2 .hero-media.is-missing::after {
  content: attr(data-fallback);
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #F2F2F0;
  color: #5F6A64;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
}
.impact-d2 .hero-media.is-missing::after { background: #121614; color: #AEB9B2; }
.impact-d2 .d3-frame.is-missing img,
.impact-d2 .d3-stage.is-missing img,
.impact-d2 .hero-media.is-missing img { visibility: hidden; }

/* ---- Design / 产品接地 ---- */
.impact-d2 .d3-stage {
  position: relative;
  align-items: center;
  justify-content: center;
}
.impact-d2 .product-wrap {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 100%;
}
.impact-d2 .product-wrap img {
  position: relative;
  z-index: 1;
  display: block;
  width: min(74%, 430px);
  height: auto;
  max-height: calc(var(--d3-h) - 64px);
  object-fit: contain;
  filter: drop-shadow(0 26px 30px rgba(20, 24, 28, .13));
}
.impact-d2 .product-ground {
  position: absolute;
  left: 50%;
  bottom: -6px;
  z-index: 0;
  width: 58%;
  height: 26px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(20, 24, 28, .22) 0%, rgba(20, 24, 28, .10) 46%, transparent 74%);
  filter: blur(8px);
}
.impact-d2 .product-note {
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #5F6A64;
}
.impact-d2 .measure-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 56px);
  margin-top: clamp(64px, 7vw, 96px);
}
.impact-d2 .measure-num {
  display: block;
  margin-bottom: 12px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .14em;
  color: var(--green);
}
.impact-d2 .measure h3 {
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: -.3px;
  font-weight: 600;
  color: var(--ink);
}
.impact-d2 .measure p {
  max-width: 330px;
  margin: 0;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--body);
}

/* ---- 单线 roast curve ---- */
.impact-d2 .curve-block { margin-top: clamp(64px, 7vw, 96px); }
.impact-d2 .curve-visual {
  height: clamp(118px, 13vw, 158px);
  --curve-p: 0;
}
.impact-d2 .curve-visual svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.impact-d2 .roast-line {
  fill: none;
  stroke: var(--green);
  stroke-width: 1.4;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--curve-p));
}
.impact-d2 .roast-dot {
  fill: var(--green);
  opacity: var(--curve-p);
}
.impact-d2 .curve-note {
  max-width: 760px;
  margin: 16px 0 0;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1.65;
  letter-spacing: .03em;
  color: #5F6A64;
}
.impact-d2 .design-note {
  max-width: 760px;
  margin: 14px 0 0;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1.65;
  letter-spacing: .03em;
  color: #6E736F;
}

/* ---- 04 SDGs 目录页 ---- */
.impact-d2 .sdg-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--d3-gap);
  align-items: start;
}
.impact-d2 .sdg-intro { max-width: 560px; }
.impact-d2 .sdg-intro h2 {
  margin: 0 0 26px;
  font-size: clamp(44px, 4.6vw, 66px);
  line-height: 1.01;
  letter-spacing: -2.4px;
  font-weight: 600;
  color: var(--ink);
  text-wrap: balance;
}
.impact-d2 .sdg-intro .body { max-width: 500px; }
.impact-d2 .sdg-mark-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  margin-top: clamp(42px, 5vw, 64px);
}
.impact-d2 .loop-mark--sdg {
  width: 260px;
  height: 260px;
  color: var(--green);
  filter: none;
  margin-left: -18px;
}
.impact-d2 .loop-mark--sdg .loop-line,
.impact-d2 .loop-mark--sdg .loop-leaf {
  stroke-width: 1.8;
  stroke-dasharray: none !important;
  animation: none !important;
  stroke-dashoffset: 0 !important;
  opacity: 1;
}
.impact-d2 .loop-mark--sdg .loop-dot { animation: none; opacity: 1; }
.impact-d2 .sdg-mark-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #3D6B53;
}
.impact-d2 .sdg-mark-note {
  font-family: var(--font-mono);
  font-size: 9px;
  line-height: 1.55;
  letter-spacing: .02em;
  color: #7A807C;
}
.impact-d2 .sdg-list { display: flex; flex-direction: column; }
.impact-d2 .sdg-item {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 24px;
  padding: 22px 0;
  align-items: start;
}
.impact-d2 .sdg-item:first-child { padding-top: 4px; }
.impact-d2 .sdg-item .sdg-num {
  padding-top: 3px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .1em;
  color: var(--green);
  white-space: nowrap;
}
.impact-d2 .sdg-body { display: block; }
.impact-d2 .sdg-item .sdg-name {
  display: block;
  font-size: 19px;
  line-height: 1.32;
  font-weight: 600;
  letter-spacing: -.3px;
  color: var(--ink);
}
.impact-d2 .sdg-item .sdg-desc {
  display: block;
  margin-top: 6px;
  font-size: 14.5px;
  line-height: 1.62;
  color: var(--body);
}
.impact-d2 .sdg-status {
  display: block;
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #6B726C;
}
.impact-d2 .sdg-note {
  max-width: 980px;
  margin: 48px 0 0;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1.7;
  letter-spacing: .03em;
  color: #5F6A64;
}
.impact-d2 .sdg-note a { color: var(--ink); border-bottom: 0; transition: color .2s ease; }
.impact-d2 .sdg-note a:hover { color: var(--green); }
.impact-d2 .sdg-note a span { display: inline-block; margin-left: 4px; }
.impact-d2 .sdg-official {
  max-width: 920px;
  margin: 10px 0 0;
  font-family: var(--font-mono);
  font-size: 9.5px;
  line-height: 1.6;
  letter-spacing: .03em;
  color: #7A807C;
}

/* ---- 05 Contact ---- */
.impact-d2 .contact-section {
  padding: clamp(120px, 12vw, 172px) 0 clamp(140px, 14vw, 200px);
}
.impact-d2 .contact-inner { max-width: 1040px; }
.impact-d2 .contact-section h2 {
  max-width: 960px;
  margin: 0 0 28px;
  font-size: clamp(48px, 6vw, 86px);
  line-height: 1;
  letter-spacing: -2.9px;
  font-weight: 600;
  color: var(--ink);
  text-wrap: balance;
}
.impact-d2 .contact-section .body { max-width: 640px; font-size: 18px; }
.impact-d2 .actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 32px;
  margin-top: 40px;
}
.impact-d2 .button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 26px;
  border-radius: 999px;
  background: var(--ink);
  color: #FFFFFF;
  font-size: 13px;
  font-weight: 600;
  transition: background-color .2s ease, transform .2s ease;
}
.impact-d2 .button:hover { background: #000000; transform: translateY(-1px); }
.impact-d2 .actions .text-link { margin-top: 0; }

/* ---- 一次性入场（无 JS 时全部可见） ---- */
html.has-js .impact-d2 [data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.22, 1, .36, 1);
}
html.has-js .impact-d2 [data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* ---- 响应式 ---- */
@media (max-width: 1280px) {
  .impact-d2 { --d3-gap: 64px; }
  .impact-d2 .hero-mark { right: 4.5%; }
  .impact-d2 .loop-mark { width: 260px; height: 260px; }
}
@media (max-width: 1024px) {
  .impact-d2 .wrap { width: calc(100% - 40px); }
  .impact-d2 {
    --d3-gap: 40px;
    --d3-h: 500px;
  }
  .impact-d2 .hero { height: min(80vh, 720px); min-height: 520px; }
  .impact-d2 .hero-content { bottom: 46px; }
  .impact-d2 .hero h1 { font-size: clamp(40px, 7.2vw, 60px); letter-spacing: -2px; }
  .impact-d2 .hero-sub { font-size: 15.5px; max-width: 540px; }
  .impact-d2 .hero-note { font-size: 10px; }
  .impact-d2 .hero-label { right: 20px; bottom: 16px; }
  .impact-d2 .hero-mark { right: 3.5%; top: 43%; }
  .impact-d2 .loop-mark { width: 200px; height: 200px; }
  .impact-d2 .hero-mark-label { font-size: 8px; }
  .impact-d2 .d3-copy h2 { font-size: clamp(34px, 5vw, 46px); letter-spacing: -1.4px; }
  .impact-d2 .body { font-size: 16px; }
  .impact-d2 .d3-copy { max-width: none; }
  .impact-d2 .measure-grid { grid-template-columns: 1fr; gap: 28px; margin-top: 52px; }
  .impact-d2 .measure p { max-width: none; }
  .impact-d2 .loop-mark--sdg { width: 210px; height: 210px; }
  .impact-d2 .sdg-item { grid-template-columns: 66px minmax(0, 1fr); gap: 16px; }
  .impact-d2 .sdg-item .sdg-name { font-size: 17.5px; }
  .impact-d2 .contact-section h2 { font-size: clamp(40px, 8vw, 58px); letter-spacing: -2px; }
}
@media (max-width: 900px) {
  .impact-d2 .act { padding: 76px 0; }
  .impact-d2 .d3-row,
  .impact-d2 .d3-row--reverse,
  .impact-d2 .sdg-layout { grid-template-columns: 1fr; gap: 32px; }
  .impact-d2 .d3-copy { min-height: 0; max-width: none; }
  .impact-d2 .d3-row--reverse .d3-media { order: 2; }
  .impact-d2 .d3-row--reverse .d3-copy { order: 1; }
  .impact-d2 .d3-media { min-height: 0; }
  .impact-d2 .d3-frame {
    flex: none;
    height: auto;
    aspect-ratio: 4 / 3;
  }
  .impact-d2 #impact-people .d3-frame img { object-position: center 44%; }
  .impact-d2 .d3-stage { min-height: 0; padding: 16px 0 8px; }
  .impact-d2 .product-wrap img { width: min(70%, 360px); max-height: 460px; }
  .impact-d2 .sdg-intro { max-width: none; }
  .impact-d2 .loop-mark--sdg { width: 200px; height: 200px; }
  .impact-d2 .sdg-note { margin-top: 40px; }
  .impact-d2 .contact-section h2 { font-size: clamp(38px, 9vw, 52px); }
}
@media (max-width: 640px) {
  .impact-d2 .wrap { width: calc(100% - 36px); }
  .impact-d2 .hero { height: min(88vh, 660px); min-height: 560px; }
  .impact-d2 .hero-content { bottom: 36px; }
  .impact-d2 .hero h1 { font-size: clamp(36px, 10vw, 46px); letter-spacing: -1.4px; }
  .impact-d2 .hero-sub { margin-top: 18px; font-size: 14.5px; }
  .impact-d2 .hero-note { margin-top: 20px; font-size: 9.5px; }
  .impact-d2 .hero-mark { top: 15%; right: 18px; gap: 8px; }
  .impact-d2 .loop-mark { width: 112px; height: 112px; }
  .impact-d2 .loop-mark--sdg { width: 180px; height: 180px; margin-left: -8px; }
  .impact-d2 .hero-mark-label { font-size: 7.5px; letter-spacing: .16em; }
  .impact-d2 .eyebrow { margin-bottom: 16px; font-size: 9.5px; }
  .impact-d2 .d3-copy h2,
  .impact-d2 .sdg-intro h2 { font-size: clamp(32px, 8.6vw, 40px); letter-spacing: -1.2px; }
  .impact-d2 .body { font-size: 15.5px; line-height: 1.7; }
  .impact-d2 .status { margin-top: 22px; font-size: 10px; }
  .impact-d2 .text-link { margin-top: 28px; }
  .impact-d2 .d3-frame { aspect-ratio: 4 / 3; }
  .impact-d2 .measure-grid { margin-top: 42px; gap: 24px; }
  .impact-d2 .curve-visual { height: 130px; }
  .impact-d2 .sdg-item { grid-template-columns: 1fr; gap: 4px; padding: 18px 0; }
  .impact-d2 .sdg-item .sdg-num { padding-top: 0; }
  .impact-d2 .sdg-item .sdg-name { font-size: 18px; }
  .impact-d2 .sdg-item .sdg-desc { font-size: 14px; }
  .impact-d2 .contact-section { padding: 88px 0 104px; }
  .impact-d2 .contact-section h2 { font-size: clamp(38px, 10vw, 48px); letter-spacing: -1.6px; }
  .impact-d2 .contact-section .body { font-size: 16px; }
  .impact-d2 .actions { gap: 20px; margin-top: 32px; }
}
@media (max-width: 380px) {
  .impact-d2 .loop-mark { width: 96px; height: 96px; }
  .impact-d2 .loop-mark--sdg { width: 160px; height: 160px; }
  .impact-d2 .hero h1 { font-size: 34px; }
  .impact-d2 .hero-sub { font-size: 13.5px; }
  .impact-d2 .d3-copy h2,
  .impact-d2 .sdg-intro h2 { font-size: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  .impact-d2 .hero-content { animation: none !important; opacity: 1 !important; transform: none !important; }
  .impact-d2 .hero-media img { transform: none !important; }
  html.has-js .impact-d2 [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .impact-d2 .d3-frame,
  .impact-d2 .d3-frame--from-right,
  .impact-d2 .d3-frame--from-left {
    clip-path: none !important;
    transition: none !important;
  }
  .impact-d2 .d3-frame img { transform: none !important; }
  .impact-d2 .loop-line,
  .impact-d2 .loop-leaf,
  .impact-d2 .loop-dot {
    animation: none !important;
    stroke-dashoffset: 0 !important;
    opacity: 1 !important;
  }
  .impact-d2 .curve-visual { --curve-p: 1; }
  .impact-d2 .text-link span,
  .impact-d2 .button { transition: none !important; }
}

/* ============================================================
 * F20-D5 — 2030 Icon Choreography × Estate Reveal（正式接入）
 * 作用域：.impact-d2 内的 story-wrap / stage
 * ============================================================ */

/* ---- sticky story ---- */
.impact-d2 .story-wrap {
  position: relative;
  height: 200svh;
  background: #FFFFFF;
}
.impact-d2 .stage {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  background: #FFFFFF;
  isolation: isolate;
}

/* ---- photograph ---- */
.impact-d2 .scene {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  transform: translate3d(0, calc(var(--scene-y, 70) * 1%), 0) scale(var(--scene-s, 1.04));
  transform-origin: 50% 50%;
  will-change: transform;
}
.impact-d2 .scene img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 12%);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 12%);
}
/* 冷色、近白的天空过渡，消除摄影顶边硬切 */
.impact-d2 .scene::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
    rgba(238, 246, 248, .58) 0%,
    rgba(240, 247, 249, .34) 20%,
    rgba(250, 252, 251, .10) 38%,
    rgba(255, 255, 255, 0) 52%);
  pointer-events: none;
}

/* ---- sky veil ---- */
.impact-d2 .veil {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 2;
  height: calc(var(--veil, 70) * 1%);
  background: linear-gradient(
    to bottom,
    #FCFDFB 0%,
    #FAFCFA 52%,
    #F7FBF9 68%,
    rgba(246, 250, 248, .96) 80%,
    rgba(243, 249, 246, .82) 90%,
    rgba(240, 248, 244, .38) 96%,
    rgba(238, 247, 243, 0) 100%);
  pointer-events: none;
  will-change: height;
}

/* ---- 2030 lockup ---- */
.impact-d2 .foreground {
  position: absolute;
  inset: 0;
  z-index: 3;
  opacity: var(--fg-o, 1);
  transform: translateY(var(--fg-y, 0px)) scale(var(--fg-s, 1));
  transform-origin: 50% 32%;
  pointer-events: none;
  will-change: transform, opacity;
}
.impact-d2 .fg-inner {
  position: absolute;
  left: 50%;
  top: 19.5%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(96%, 1100px);
}
/* F21-10-R2：整组 2030 为 500×150 的统一线条视窗（数字 + 两个符号槽） */
.impact-d2 .lockup {
  width: min(545px, 88vw);
  margin-inline: auto;
  margin: 0;
  color: #14171A;
  position: relative;
}
/* Video First：2030 动画改为 7s 视频，白底 + multiply 与山林摄影无缝合成（无矩形边界） */
.impact-d2 .lockup-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #fff;
  mix-blend-mode: multiply;
  pointer-events: none;
  /* .foreground 因 will-change 形成隔离组，multiply 只与组内白色底相乘；
     这里把视频白底压到与 Hero 实际底色一致（≈249），消除 545×157 的白色矩形边缘 */
  filter: brightness(0.982);
}
.impact-d2 .lockup.has-video .lockup-svg { visibility: hidden; }
/* 重播按钮：圆形 32px，图形右侧；无下划线，保持极简 */
.impact-d2 .lockup-replay {
  position: absolute;
  left: calc(100% + 16px);
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  padding: 0;
  margin: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(20, 23, 26, 0.28);
  border-radius: 50%;
  background: transparent;
  color: #14171A;
  cursor: pointer;
  text-decoration: none;
  transition: border-color 0.18s ease, background-color 0.18s ease;
}
.impact-d2 .lockup-replay svg { width: 18px; height: 18px; fill: currentColor; display: block; }
.impact-d2 .lockup-replay:hover,
.impact-d2 .lockup-replay:focus-visible {
  border-color: rgba(20, 23, 26, 0.62);
  background: rgba(255, 255, 255, 0.55);
  text-decoration: none;
  outline: none;
}
.impact-d2 .lockup-replay:focus-visible { box-shadow: 0 0 0 2px rgba(20, 23, 26, 0.18); }
@media (max-width: 760px) {
  .impact-d2 .lockup { margin-bottom: 44px; }
  .impact-d2 .lockup-replay {
    left: auto;
    right: 0;
    top: calc(100% + 10px);
    transform: none;
  }
}
.impact-d2 .slot-state[data-state="sun"],
.impact-d2 .slot-state[data-state="turbine"] { display: none; }
@media (prefers-reduced-motion: reduce) {
  .impact-d2 .lockup-video { display: none; }
  .impact-d2 .lockup-replay { display: none; }
  .impact-d2 .lockup.has-video .lockup-svg { visibility: visible; }
}
.impact-d2 .lockup-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;   /* 入场旋转时不允许被 viewBox 边缘裁切 */
}

/* F21-10 C1：数字层静止；左右槽各自独立，旋转/缩放以自身视觉中心为轴 */
.impact-d2 .slot-state {
  transform-box: fill-box;
  transform-origin: 50% 50%;
}
html:not(.has-js) .impact-d2 .slot-state[data-state="sun"],
html:not(.has-js) .impact-d2 .slot-state[data-state="turbine"] {
  display: none;
}
.impact-d2 .digit-shape path,
.impact-d2 .sym {
  fill: none;
  stroke: #14171A;
  stroke-width: 15;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.impact-d2 .sym { opacity: 0; }
.impact-d2 .sym.is-on { opacity: 1; }
.impact-d2 .narrative {
  margin-top: clamp(12px, 2.4vh, 20px);
  text-align: center;
}
.impact-d2 .tagline {
  margin: 0;
  font-family: var(--font-body, 'Inter', system-ui, sans-serif);
  font-size: clamp(22px, 4vh, 34px);
  line-height: 1.25;
  letter-spacing: -0.02em;
  font-weight: 500;
  color: #14171A;
}
.impact-d2 .disclosure {
  margin: 14px 0 0;
  font-family: var(--font-mono, monospace);
  font-size: 13px;
  line-height: 1.55;
  letter-spacing: 0.02em;
  color: #6E736F;
}
.impact-d2 .replay {
  margin-top: 10px;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  color: #6E736F;
  font-family: var(--font-mono, monospace);
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  opacity: .62;
  transition: opacity .2s ease, color .2s ease;
  pointer-events: auto;
}
.impact-d2 .replay:hover { opacity: 1; color: #14171A; }
.impact-d2 .replay[disabled] { opacity: .28; cursor: default; }

/* ---- F21-10-R1 pause / replay controls (44×44 hit area) ---- */
.impact-d2 .stage-controls {
  position: absolute;
  z-index: 4;
  top: 92px;
  right: 32px;
  display: flex;
  gap: 8px;
}
.impact-d2 .ctl {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(20, 23, 26, .14);
  background: rgba(255, 255, 255, .78);
  color: #14171A;
  cursor: pointer;
  pointer-events: auto;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.impact-d2 .ctl:hover { background: #FFFFFF; border-color: rgba(20, 23, 26, .28); }
.impact-d2 .ctl:active { transform: scale(.96); }
.impact-d2 .ctl:focus-visible { outline: 2px solid #C7251E; outline-offset: 3px; }
.impact-d2 .ctl svg { display: block; width: 18px; height: 18px; }
.impact-d2 .ctl .ico-play { display: none; }
.impact-d2 .ctl.is-paused .ico-pause { display: none; }
.impact-d2 .ctl.is-paused .ico-play { display: block; }
/* 无 JS 时不显示不可用的控件 */
html:not(.has-js) .impact-d2 .stage-controls { display: none; }

/* ---- final D3 hero ---- */
.impact-d2 .final-shade {
  position: absolute;
  inset: 0;
  z-index: 4;
  background: linear-gradient(to top,
    rgba(6, 8, 8, .74) 0%, rgba(6, 8, 8, .42) 28%, rgba(6, 8, 8, .12) 52%, rgba(6, 8, 8, 0) 72%);
  opacity: var(--shade-o, 0);
  pointer-events: none;
}
.impact-d2 .final {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: flex-end;
  opacity: var(--final-o, 0);
  transform: translateY(var(--final-y, 16px));
  pointer-events: none;
}
.impact-d2 .final-wrap {
  width: min(1240px, calc(100% - 96px));
  margin: 0 auto;
  padding-bottom: clamp(64px, 8vw, 104px);
}
.impact-d2 .final .eyebrow {
  margin: 0 0 20px;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(240, 246, 242, .92);
  text-shadow: 0 1px 12px rgba(0, 0, 0, .38);
}
.impact-d2 .final h1 {
  max-width: 960px;
  font-size: clamp(46px, 6.1vw, 88px);
  line-height: .99;
  letter-spacing: -2.9px;
  font-weight: 600;
  color: #FBFCFB;
  text-wrap: balance;
}
.impact-d2 .final .hero-sub {
  max-width: 600px;
  margin: 24px 0 0;
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 1.65;
  color: rgba(244, 248, 246, .84);
}
.impact-d2 .final .hero-note {
  max-width: 560px;
  margin: 26px 0 0;
  font-family: var(--font-mono, monospace);
  font-size: 10.5px;
  line-height: 1.6;
  letter-spacing: .04em;
  color: rgba(241, 246, 243, .66);
  text-shadow: 0 1px 10px rgba(0, 0, 0, .32);
}
.impact-d2 .stage-label {
  position: absolute;
  right: 28px;
  bottom: 22px;
  z-index: 6;
  font-family: var(--font-mono, monospace);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(244, 248, 246, .5);
  opacity: var(--final-o, 0);
  pointer-events: none;
}

/* ---- responsive ---- */
@media (max-width: 1024px) {
  .impact-d2 .final-wrap { width: calc(100% - 40px); }
  .impact-d2 .final h1 { font-size: clamp(40px, 6.6vw, 60px); letter-spacing: -2px; }
}
@media (max-width: 900px) {
  .impact-d2 .final h1 { font-size: clamp(38px, 8vw, 54px); }
}
@media (max-width: 640px) {
  .impact-d2 .fg-inner { width: calc(100% - 32px); }
  .impact-d2 .narrative { margin-top: 18px; }
  .impact-d2 .tagline { font-size: clamp(20px, 5.4vw, 28px); }
  .impact-d2 .disclosure { margin-top: 12px; font-size: 12.5px; }
  .impact-d2 .final-wrap { width: calc(100% - 36px); padding-bottom: 52px; }
  .impact-d2 .final .eyebrow { margin-bottom: 14px; font-size: 9.5px; }
  .impact-d2 .final h1 { font-size: clamp(36px, 10vw, 46px); letter-spacing: -1.4px; }
  .impact-d2 .final .hero-sub { margin-top: 16px; font-size: 14.5px; }
  .impact-d2 .final .hero-note { margin-top: 18px; font-size: 9.5px; }
  .impact-d2 .stage-label { right: 16px; bottom: 16px; font-size: 8px; }
}
@media (max-width: 380px) {
  .impact-d2 .final h1 { font-size: 34px; }
  .impact-d2 .final .hero-sub { font-size: 13.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .impact-d2 .story-wrap { height: auto; }
  .impact-d2 .stage {
    position: relative;
    top: 0;
    height: 100svh;
  }
  .impact-d2 .scene { transform: none !important; }
  .impact-d2 .veil { height: 62% !important; }
  .impact-d2 .foreground { display: block !important; opacity: 1 !important; transform: none !important; }
  .impact-d2 .final { opacity: 0 !important; transform: none !important; }
  .impact-d2 .final-shade { opacity: 0 !important; }
  .impact-d2 .stage-controls { display: none !important; }
}

/* ============================================================
 * F21-UX-R1B 正式交互规范（文字主导）
 * - 所有按钮保留默认底色 / 描边 / 圆角，hover 只改文字 + 1px 上浮
 * - 深底文字 #FF6B5E，浅底文字 #C7251E，SDGs 保持绿色
 * - 旧 F21-01 的 background:#FF3B30 !important 已移除
 * ============================================================ */

/* 过渡统一为 200ms 的显式属性，避免 transition:all 带来的副作用 */
.btn,
.nav-cta-btn,
.org-r1 .org-r1-btn,
.mega-a1-route,
.mega-a1-inline,
.mega-cta,
.mega-a1-item-title,
.mega-a1-item-action,
.mega-about-card-title,
.mega-product-card-cta,
.eow-stage-num,
.eow-stage-name {
  transition: color .2s ease,
              background-color .2s ease,
              border-color .2s ease,
              transform .2s ease,
              box-shadow .2s ease;
}

/* 深色 Header / Mega 内的键盘焦点：珊瑚红轮廓，确保可见 */
.site-header a:focus-visible,
.site-header button:focus-visible,
.mega-panel a:focus-visible,
.mega-panel button:focus-visible {
  outline: 2px solid #FF6B5E;
  outline-offset: 3px;
}

/* 机构页主按钮：深底白字 → hover 珊瑚红文字 */
.org-r1 .org-r1-btn:hover {
  color: #FF6B5E;
  transform: translateY(-1px);
  transition: color .2s ease, transform .2s ease;
}
/* ---- 键盘焦点：每种背景均有清晰轮廓 ---- */
.v2-home .btn:focus-visible,
.v2-roastpod .btn:focus-visible,
.v2-eow .btn:focus-visible,
.org-r1 .org-r1-btn:focus-visible,
.v2-home .calink-text-link:focus-visible,
.v2-roastpod .calink-text-link:focus-visible,
.org-r1 .org-r1-textlink:focus-visible,
.org-r1 .org-r1-subtle:focus-visible {
  outline: 2px solid #FF3B30;
  outline-offset: 2px;
}
/* 白底次级链接默认色 4.45:1 → 加深到 #5A5E62（6.16:1） */
.org-r1 .org-r1-subtle {
  color: #5A5E62 !important;
}
/* ---- 触控热区：独立 CTA 与文本链接 ≥44px ---- */
.org-r1 .org-r1-btn { min-height: 44px; }
.v2-home a.calink-text-link,
.v2-roastpod a.calink-text-link,
.org-r1 a.org-r1-textlink,
.org-r1 a.org-r1-subtle,
.impact-d2 a.text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* ---- 微型字号 A：eyebrow / section label（11px → 13px）---- */
.v2-home .section-label,
.v2-home .hero-home-eyebrow,
.v2-roastpod .section-label,
.v2-eow .eow-f20-eyebrow,
.org-r1 .org-r1-eyebrow,
.impact-d2 .act .eyebrow {
  font-size: 13px;
}

/* ---- 微型字号 B：事实状态 / 披露 / 注释（9–10.5px → 12.5–13px）---- */
.impact-d2 .act .status,
.impact-d2 .act figcaption,
.impact-d2 .act .curve-note,
.impact-d2 .act .product-note,
.impact-d2 .act .design-note,
.impact-d2 .act .sdg-tag,
.impact-d2 .act .sdg-status,
.v2-eow .eow-stage-desc,
.v2-eow .eow-stage-num,
.v2-eow .eow-stage-group-label,
.v2-eow .eow-f20-fineprint,
.v2-eow .eow-f20-tag,
.org-r1 .org-r1-footnote,
.org-r1 .org-r1-number,
.v2-roastpod .demo-badge,
.v2-roastpod .spec-tbd,
.v2-roastpod .media-caption {
  font-size: 12.5px;
}
.impact-d2 .sdg-item .sdg-num,
.impact-d2 .measure-num,
.impact-d2 .sdg-note,
.impact-d2 .sdg-official {
  font-size: 13px;
}

/* ---- reduced-motion：取消非必要位移 ---- */
@media (prefers-reduced-motion: reduce) {
  .v2-home .btn:hover,
  .v2-roastpod .btn:hover,
  .v2-eow .btn:hover,
  .org-r1 .org-r1-btn:hover {
    transform: none;
    transition: none;
  }
}

/* ============================================================
 * F21-01B-P1 品牌文字（普通文本保持小写 calink）
 * eyebrow / caption 等全大写样式内，品牌词单独取消 uppercase。
 * 只影响包裹品牌词的 span，不改变其他标签的全大写设计。
 * ============================================================ */
.brand-lower { text-transform: none; }

/* ============================================================
 * F21-01B-P2 全站字体与 CTA 收尾（受控作用域）
 * - 全站正文页：eyebrow / caption / 状态徽标 / 编号 / 页脚提升
 * - CTA：品牌红 hover/focus，深浅背景统一深色文字
 * - 不触碰 Header / Mega 结构、Logo、2030 动效、E.O.W. 交互
 * ============================================================ */

/* ---- A. 字体分级 ---- */
main .section-label { font-size: 13px; }
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .section-label,
body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .hero-home-eyebrow {
  font-size: 13px;
}
main .eyebrow { font-size: 13px; }
.impact-d2 .final .eyebrow { font-size: 13px; }
.impact-d2 .hero-note,
.impact-d2 .disclosure { font-size: 12.5px; }

body.visual-v1 main:not(.v2-home):not(:has(.v2-roastpod)) .media-caption { font-size: 13px; }
main .media-caption { font-size: 13px; }
main .demo-badge,
main .demo-badge--inline { font-size: 12.5px; }
main .feature-line-num,
main .workflow-step-num,
main .chapter-format,
main .dist-step-num,
main .dist-list-num,
main .trace-label,
main .dist-kicker,
main .spec-tbd,
main .tbc,
main .path-item-k,
main .ai-flow-num,
main .ai-data-label { font-size: 13px; }
.spec-value .tbc { font-size: 13px; }
main .sdg-status { font-size: 13px; }
.v2-ai .ai-flow-num { font-size: 13px; }
main .finish-specs dt,
main .pp-specs dt { font-size: 13px; }
main .app-card-points li { font-size: 13px; }
main .empty-state-k { font-size: 13px; }
main .img-slot--placeholder { font-size: 12.5px; }

/* 页脚：导航 14px / 栏目标题 13px / 法务 13px */
.calink-footer .footer-col-title { font-size: 13px; }
.calink-footer .footer-link { font-size: 14px; }
.calink-footer .footer-legal-link { font-size: 13px; }

/* Organizations 辅助文字与编号 */
.org-r1 .org-r1-number,
.org-r1 .org-r1-index,
.org-r1 .org-r1-side-note,
.org-r1 .org-r1-process-note,
.org-r1 .org-r1-footnote { font-size: 13px; }
.org-r1 .org-r1-number,
.org-r1 .org-r1-index,
.org-r1 .org-r1-side-note,
.org-r1 .org-r1-process-note,
.org-r1 .org-r1-footnote,
.org-r1 .org-r1-eyebrow,
.org-r1 p { color: #5A5E62; }
.org-r1 .org-r1-hero-media figcaption { font-size: 12.5px; color: #5A5E62; }
.org-r1 .org-r1-feature p { color: #5A5E62; }
.org-r1 .org-r1-step p { color: #5A5E62; }

/* E.O.W.：仅字号/颜色，不改九字段交互结构与顺序 */
.v2-eow .eow-stage-num,
.v2-eow .eow-stage-group-label,
.v2-eow .eow-stage-desc,
.v2-eow .eow-f20-fineprint,
.v2-eow .eow-f20-tag { font-size: 13px; }
.v2-eow .eow-f20-status,
.v2-eow .eow-explorer-caption,
.v2-eow .eow-explorer-sample,
.v2-eow .eow-flow-step { font-size: 12.5px; }
.v2-eow .eow-stage-num,
.v2-eow .eow-stage-group-label,
.v2-eow .eow-f20-fineprint,
.v2-eow .eow-f20-status,
.v2-eow .eow-explorer-caption,
.v2-eow .eow-explorer-sample { color: #5F666F; }
.v2-eow .eow-f20-eyebrow { color: #5B636D; }
.v2-eow .eow-flow-step,
.v2-eow .eow-flow-path small { color: #5F666F; }
.v2-eow .eow-flow-path small { font-size: 12.5px; }
.v2-eow .eow-origin-media figcaption { font-size: 12.5px; color: #5F666F; }
.v2-eow .orbit-soon-label { color: rgba(30, 33, 38, .72); }
.v2-eow .orbit-soon-sub { color: rgba(30, 33, 38, .55); }
.v2-eow .orbit-soon-note { color: rgba(30, 33, 38, .50); }

/* Distributors 编号与邮箱 */
.v2-dist .dist-step-num,
.v2-dist .dist-list-num { font-size: 13px; color: #5F666F; }
.v2-dist .dist-closing-mail { font-size: 13px; color: #5A616B; }
.v2-dist .dist-footnote { font-size: 13px; color: #5A616B; }
.v2-dist .dist-kicker { font-size: 13px; }

/* SDGs 文案对比度（非动画节点） */
.impact-d2 .sdg-note,
.impact-d2 .sdg-official,
.impact-d2 .sdg-mark-note,
.impact-d2 figcaption span,
.impact-d2 .d3-media figcaption span { color: #5E645F; }
.impact-d2 .disclosure { color: #5E645F; }

/* 图片角标：加深遮罩，保证白字在浅图上的对比度 */
.demo-badge { background: rgba(17, 18, 20, .62); }
.demo-badge--inline { background: rgba(17, 18, 20, .78); color: #FFFFFF; }
.roast-degree-label { font-size: 12.5px; background: rgba(0, 0, 0, .62); }
.calink-label > span { color: #C7251E !important; }

/* 浅色连续画布内的 B2B 带：保持白画布，不再使用深底白字 */
.v2-light .b2b-band .section-label { color: #6B7076; }
.v2-light .b2b-band-title { color: #1D1F23; }
.v2-light .b2b-band-desc { color: #555A60; }
.v2-light .b2b-band .btn-secondary { color: #1D1F23; border-color: rgba(29, 31, 35, .35); }

/* ---- B. CTA 焦点：hover 由组件规则接管文字色，这里只负责清晰的焦点轮廓 ---- */
main a.btn.btn-primary:focus-visible,
main a.btn.btn-secondary:focus-visible {
  outline: 2px solid #FF3B30;
  outline-offset: 2px;
}

/* 文字链接：focus 恢复继承色（保证深浅背景均可读），并给出清晰轮廓 */
main a.calink-link:focus-visible,
main a.calink-text-link:focus-visible,
main a.text-link:focus-visible {
  color: inherit;
  outline: 2px solid #FF3B30;
  outline-offset: 2px;
}

/* 触控：独立文字 CTA ≥44px；段落内联链接保留 24px+ 的 inline 例外 */
main a.calink-text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
main a.calink-link { padding-block: 2px; }

@media (prefers-reduced-motion: reduce) {
  main a.btn.btn-primary:hover,
  main a.btn.btn-primary:focus-visible,
  main a.btn.btn-secondary:hover,
  main a.btn.btn-secondary:focus-visible {
    transform: none;
    transition: none;
  }
}

/* ============================================================
 * F21-02A 一级导航逻辑与移动端展开控件
 * - 移动端：栏目文字链接 + 独立 44px 展开按钮
 * - calink Care 在 Mega / 移动子菜单中突出
 * ============================================================ */
.mobile-nav .mnav-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
}
.mobile-nav .mnav-head .mnav-link {
  flex: 1;
  display: flex;
  align-items: center;
  min-height: 56px;
  padding: 14px 0;
  font-family: var(--font-accent);
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
  letter-spacing: 0;
  color: #F1F3F7;
}
.mobile-nav .mnav-head .mnav-link:hover { color: #FFFFFF; }
body:has(.org-v2) .mobile-nav .mnav-head .mnav-link { color: #B9C1CB; }
body:has(.org-v2) .mobile-nav .mnav-head .mnav-link:hover { color: #FFFFFF; }
.mobile-nav .mnav-head .mnav-toggle {
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.mega-link--care,
.mobile-nav .mnav-sub-care {
  font-weight: 600;
  color: #FF6B5E;
}
.mega-link--care:hover,
.mobile-nav .mnav-sub-care:hover { color: #FFFFFF; }
.service-row--featured .service-row-title { font-weight: 600; }

/* ============================================================
 * F21-15 — FOR ORGANIZATIONS 编辑式 12 列系统
 * 作用域：.org-edit（Hub / Origin / Media / Developers + Distributors 交叉区）
 * 设计原则：结构先于装饰；12 列；不对称 Hero；编号章节；细线节奏。
 * 不包含任何红色网格辅助线；辅助线仅用于 Grid QA 截图。
 * ============================================================ */
.org-edit {
  --oe-max: 1280px;
  --oe-line: rgba(17, 20, 23, 0.14);
  --oe-line-soft: rgba(17, 20, 23, 0.08);
  --oe-ink: #111417;
  --oe-muted: #5B6168;
  --oe-soft: #6B7076;
  --oe-paper: #FAFAF8;
  background: var(--oe-paper);
  color: var(--oe-ink);
}
.org-edit .oe-wrap {
  width: min(var(--oe-max), calc(100% - 160px));
  margin: 0 auto;
}
.org-edit .oe-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 24px;
}
.org-edit a { text-decoration: none; }
.org-edit ::selection { background: rgba(255, 59, 48, 0.16); }

/* ---- type ---- */
.org-edit .oe-eyebrow {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--oe-soft);
}
.org-edit .oe-h1 {
  margin: 22px 0 26px;
  font-size: clamp(48px, 4.8vw, 70px);
  line-height: 1.02;
  letter-spacing: -0.038em;
  font-weight: 650;
  color: var(--oe-ink);
}
.org-edit .oe-h1 span { display: block; }
.org-edit .oe-h2 {
  margin: 0;
  font-size: clamp(34px, 3.45vw, 50px);
  line-height: 1.06;
  letter-spacing: -0.03em;
  font-weight: 600;
  color: var(--oe-ink);
}
.org-edit .oe-h3 {
  margin: 0;
  font-size: clamp(20px, 1.8vw, 25px);
  line-height: 1.25;
  letter-spacing: -0.015em;
  font-weight: 600;
}
.org-edit .oe-lead {
  margin: 0;
  max-width: 56ch;
  font-size: 18px;
  line-height: 1.62;
  color: #444A51;
}
.org-edit .oe-body {
  margin: 0;
  max-width: 62ch;
  font-size: 16.5px;
  line-height: 1.68;
  color: #444A51;
}
.org-edit .oe-small {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--oe-muted);
}
.org-edit .oe-note {
  margin: 28px 0 0;
  max-width: 76ch;
  padding-top: 14px;
  border-top: 1px solid var(--oe-line-soft);
  font-size: 14px;
  line-height: 1.7;
  color: var(--oe-muted);
}
.org-edit .oe-caption {
  display: flex;
  gap: 10px;
  margin: 10px 0 0;
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--oe-soft);
}
.org-edit .oe-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 34px;
}

/* ---- hero ---- */
.org-edit .oe-hero {
  padding: 132px 0 96px;
}
/* 顶端对齐：右侧图像不因底对齐而侵入固定页头 */
.org-edit .oe-hero .oe-grid { align-items: start; }
/* H1 可占 8 列（lead 仍受 56ch 限制）；底部说明行与图像底边对齐 */
.org-edit .oe-hero-copy {
  grid-column: 1 / 9;
  display: flex;
  flex-direction: column;
  align-self: stretch;
}
.org-edit .oe-hero-copy .oe-actions { margin-top: 34px; }
.org-edit .oe-hero-copy .oe-hero-meta { margin-top: auto; }
.org-edit .oe-hero-side { grid-column: 9 / 13; }
.org-edit .oe-hero-media {
  grid-column: 9 / 13;
  margin: 0 0 4px;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #E9EBEE;
}
.org-edit .oe-hero-media--landscape { aspect-ratio: 5 / 4; }
/* 横构图页：图像填满文案列高度，避免右栏下方出现无意义空白 */
.org-edit .oe-hero-side--fill {
  align-self: stretch;
  display: flex;
  flex-direction: column;
}
.org-edit .oe-hero-side--fill .oe-hero-media {
  flex: 1 1 auto;
  aspect-ratio: auto;
  min-height: 300px;
}
.org-edit .oe-figure { margin: 0; }
.org-edit .oe-figure figcaption,
.org-edit .oe-band figcaption,
.org-edit .oe-split-media figcaption {
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--oe-soft);
}
.org-edit .oe-hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.org-edit .oe-hero-media--contain {
  background: linear-gradient(180deg, #F3F4F6 0%, #E8EAEE 100%);
  border: 1px solid var(--oe-line-soft);
  display: flex;
  align-items: center;
  justify-content: center;
}
.org-edit .oe-hero-media--contain img {
  object-fit: contain;
  padding: 7% 8%;
  filter: drop-shadow(0 20px 24px rgba(17, 20, 23, 0.10));
}
.org-edit .oe-hero-meta {
  display: flex;
  gap: 28px;
  margin-top: 30px;
  padding-top: 16px;
  border-top: 1px solid var(--oe-line-soft);
}
.org-edit .oe-hero-meta span {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--oe-soft);
}

/* ---- section ---- */
.org-edit .oe-section {
  padding: clamp(72px, 7vw, 112px) 0;
  border-top: 1px solid var(--oe-line);
}
.org-edit .oe-head {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 24px;
  align-items: start;
  margin-bottom: clamp(36px, 4vw, 56px);
}
.org-edit .oe-head .oe-eyebrow { grid-column: 1 / 3; padding-top: 8px; }
.org-edit .oe-head .oe-h2 { grid-column: 3 / 10; }
.org-edit .oe-head .oe-intro { grid-column: 10 / 13; }
.org-edit .oe-head .oe-intro .oe-body { font-size: 15.5px; }

/* ---- numbered route rows (hub) ---- */
.org-edit .oe-routes { border-top: 1px solid var(--oe-line); }
.org-edit .oe-route {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 24px;
  padding: 38px 0;
  border-bottom: 1px solid var(--oe-line);
  color: inherit;
  transition: color 0.2s ease;
}
.org-edit .oe-route-num {
  grid-column: 1 / 2;
  padding-top: 7px;
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--oe-soft);
}
.org-edit .oe-route-title {
  grid-column: 2 / 6;
  font-size: clamp(24px, 2.2vw, 34px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  font-weight: 600;
  transition: color 0.2s ease;
}
.org-edit .oe-route-desc {
  grid-column: 7 / 10;
  padding-top: 3px;
  font-size: 16px;
  line-height: 1.62;
  color: #444A51;
}
.org-edit .oe-route-cta {
  grid-column: 11 / 13;
  justify-self: end;
  padding-top: 6px;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  transition: color 0.2s ease;
}
.org-edit .oe-route-cta span {
  display: inline-block;
  margin-left: 8px;
  transition: transform 0.2s ease;
}
.org-edit .oe-route:hover .oe-route-title,
.org-edit .oe-route:hover .oe-route-cta { color: #C7251E; }
.org-edit .oe-route:hover .oe-route-cta span { transform: translateX(2px); }
.org-edit .oe-route:focus-visible {
  outline: 2px solid #FF3B30;
  outline-offset: 4px;
}

/* ---- 3-step / 3-item columns ---- */
.org-edit .oe-steps,
.org-edit .oe-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 24px;
}
.org-edit .oe-step,
.org-edit .oe-item {
  padding: 24px 0 8px;
  border-top: 1px solid var(--oe-line);
}
.org-edit .oe-step-num,
.org-edit .oe-item-num {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--oe-soft);
}
.org-edit .oe-step-title,
.org-edit .oe-item-title {
  margin: 14px 0 8px;
  font-size: clamp(19px, 1.5vw, 22px);
  line-height: 1.25;
  letter-spacing: -0.015em;
  font-weight: 600;
}
.org-edit .oe-step-desc,
.org-edit .oe-item-desc {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.65;
  color: #4B5158;
}

/* ---- editorial rows (non-interactive) ---- */
.org-edit .oe-rows { border-top: 1px solid var(--oe-line); }
.org-edit .oe-row {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 24px;
  padding: 26px 0;
  border-bottom: 1px solid var(--oe-line-soft);
}
.org-edit .oe-row-num {
  grid-column: 1 / 2;
  padding-top: 4px;
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--oe-soft);
}
.org-edit .oe-row-title {
  grid-column: 2 / 6;
  font-size: clamp(19px, 1.5vw, 22px);
  line-height: 1.3;
  letter-spacing: -0.015em;
  font-weight: 600;
}
.org-edit .oe-row-desc {
  grid-column: 7 / 12;
  padding-top: 2px;
  font-size: 15.5px;
  line-height: 1.65;
  color: #444A51;
}

/* ---- wide documentary band ---- */
.org-edit .oe-band { margin: clamp(36px, 4vw, 56px) 0 0; }
.org-edit .oe-band img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  background: #E9EBEE;
}

/* ---- split block ---- */
.org-edit .oe-split {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 24px;
}
.org-edit .oe-split-copy { grid-column: 1 / 6; }
.org-edit .oe-split-copy .oe-h2 { margin-bottom: 22px; }
.org-edit .oe-split-copy .oe-body + .oe-body { margin-top: 14px; }
.org-edit .oe-split-side { grid-column: 8 / 13; }
.org-edit .oe-split-media { grid-column: 7 / 13; margin: 0; }
.org-edit .oe-split-media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* ---- CTA ---- */
.org-edit .oe-cta { padding: clamp(72px, 7vw, 112px) 0; border-top: 1px solid var(--oe-line); }
.org-edit .oe-cta .oe-grid { align-items: end; }
.org-edit .oe-cta-copy { grid-column: 1 / 8; }
.org-edit .oe-cta-side { grid-column: 9 / 13; }
.org-edit .oe-cta-side .oe-body { margin-bottom: 26px; }
.org-edit .oe-cta-side .oe-actions { margin-top: 0; }

/* ---- cross recommendations ---- */
.org-edit .oe-cross {
  padding: clamp(48px, 5vw, 72px) 0;
  border-top: 1px solid var(--oe-line);
}
.org-edit .oe-cross-label {
  margin: 0 0 18px;
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--oe-soft);
}
.org-edit .oe-cross-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 24px;
}
.org-edit .oe-cross a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--oe-line);
  font-size: 16px;
  font-weight: 600;
  color: var(--oe-ink);
  transition: color 0.2s ease;
}
.org-edit .oe-cross a span {
  display: inline-block;
  transition: transform 0.2s ease;
  color: var(--oe-soft);
}
.org-edit .oe-cross a:hover,
.org-edit .oe-cross a:hover span { color: #C7251E; }
.org-edit .oe-cross a:hover span { transform: translateX(2px); }

/* ---- responsive ---- */
@media (max-width: 1440px) {
  .org-edit .oe-wrap { width: min(var(--oe-max), calc(100% - 128px)); }
}
@media (max-width: 1200px) {
  .org-edit .oe-wrap { width: calc(100% - 96px); }
}
@media (max-width: 1024px) {
  .org-edit .oe-wrap { width: calc(100% - 80px); }
  .org-edit .oe-hero { padding: 112px 0 72px; }
  .org-edit .oe-hero .oe-grid { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }
  .org-edit .oe-hero-copy,
  .org-edit .oe-hero-side,
  .org-edit .oe-hero-media { grid-column: 1 / -1; }
  .org-edit .oe-hero-media {
    aspect-ratio: 16 / 10;
    max-height: 460px;
  }
  .org-edit .oe-head { grid-template-columns: minmax(0, 1fr); row-gap: 18px; }
  .org-edit .oe-head .oe-eyebrow,
  .org-edit .oe-head .oe-h2,
  .org-edit .oe-head .oe-intro { grid-column: 1 / -1; padding-top: 0; }
  .org-edit .oe-route {
    grid-template-columns: 44px minmax(0, 1fr);
    row-gap: 10px;
    padding: 28px 0;
  }
  .org-edit .oe-route-num { grid-column: 1; grid-row: 1; padding-top: 2px; }
  .org-edit .oe-route-title { grid-column: 2; grid-row: 1; }
  .org-edit .oe-route-desc { grid-column: 2; grid-row: 2; }
  .org-edit .oe-route-cta { grid-column: 2; grid-row: 3; justify-self: start; padding-top: 2px; }
  .org-edit .oe-steps,
  .org-edit .oe-items,
  .org-edit .oe-cross-grid { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .org-edit .oe-step,
  .org-edit .oe-item { padding: 22px 0; }
  .org-edit .oe-row {
    grid-template-columns: 44px minmax(0, 1fr);
    row-gap: 6px;
    padding: 22px 0;
  }
  .org-edit .oe-row-num { grid-column: 1; grid-row: 1; padding-top: 2px; }
  .org-edit .oe-row-title { grid-column: 2; grid-row: 1; }
  .org-edit .oe-row-desc { grid-column: 2; grid-row: 2; }
  .org-edit .oe-split { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
  .org-edit .oe-split-copy,
  .org-edit .oe-split-side,
  .org-edit .oe-split-media { grid-column: 1 / -1; }
  .org-edit .oe-cta .oe-grid { grid-template-columns: minmax(0, 1fr); row-gap: 24px; }
  .org-edit .oe-cta-copy,
  .org-edit .oe-cta-side { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .org-edit .oe-wrap { width: calc(100% - 40px); }
  .org-edit .oe-hero { padding: 100px 0 56px; }
  .org-edit .oe-h1 { font-size: clamp(38px, 10.4vw, 48px); margin: 18px 0 20px; }
  .org-edit .oe-h2 { font-size: clamp(28px, 7.4vw, 36px); }
  .org-edit .oe-lead { font-size: 16px; }
  .org-edit .oe-section { padding: 56px 0; }
  .org-edit .oe-cta { padding: 56px 0; }
  .org-edit .oe-actions { margin-top: 26px; }
  .org-edit .oe-hero-meta { gap: 18px; flex-wrap: wrap; }
  .org-edit .oe-route-title { font-size: 24px; }
  .org-edit .oe-cross a { font-size: 15px; }
  .org-edit .oe-band img { aspect-ratio: 4 / 3; }
}

.org-edit [id] { scroll-margin-top: 96px; }

/* F21-15：移动二级导航触控高度 ≥44px（9px → 10px，全站一致） */
.mobile-nav .mnav-sub-link { padding: 10px 0; }

/* Grid QA overlay（仅截图脚本注入，正式页面默认不显示） */
.org-edit .oe-qa-grid {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 24px;
  pointer-events: none;
}
.org-edit .oe-qa-grid span {
  display: block;
  background: rgba(255, 0, 0, 0.06);
  border-left: 1px solid rgba(255, 0, 0, 0.6);
  border-right: 1px solid rgba(255, 0, 0, 0.6);
}
.org-edit .oe-qa-wrap { position: relative; }



/* ---- F21-10 C1: debug timeline bar (默认隐藏，仅 ?debug=1 显示) ---- */
.impact-d2 .dbg-bar {
  position: fixed;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  z-index: 40;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(20, 23, 26, .86);
  color: #fff;
  font-family: var(--font-mono, monospace);
  font-size: 12px;
  line-height: 1;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .18);
}
.impact-d2 .dbg-bar[hidden] { display: none; }
.impact-d2 .dbg-bar .dbg-label {
  padding: 0 6px;
  opacity: .55;
  letter-spacing: .08em;
  font-size: 10px;
}
.impact-d2 .dbg-bar .dbg-time {
  min-width: 44px;
  text-align: center;
  opacity: .8;
}
.impact-d2 .dbg-bar button {
  appearance: none;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, .72);
  font: inherit;
  padding: 8px 9px;
  border-radius: 999px;
  cursor: pointer;
}
.impact-d2 .dbg-bar button:hover { color: #fff; }
.impact-d2 .dbg-bar button.is-on { background: #fff; color: #14171A; }
.impact-d2 .dbg-bar .dbg-range {
  width: min(38vw, 300px);
  accent-color: #fff;
  cursor: pointer;
}
@media (max-width: 640px) {
  .impact-d2 .dbg-bar { bottom: 12px; gap: 0; padding: 4px 5px; }
  .impact-d2 .dbg-bar .dbg-label { display: none; }
  .impact-d2 .dbg-bar button { padding: 7px 6px; font-size: 11px; }
  .impact-d2 .dbg-bar .dbg-range { width: 32vw; }
}


/* ==================== F22-F23 · About / Careers ==================== */
.about-pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px;margin-top:var(--space-3xl)}
.about-pillar{padding:26px 0;border-top:1px solid var(--color-divider)}
.about-pillar .about-k{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6b6b;margin-bottom:10px}
.about-pillar h3{font-size:clamp(19px,1.9vw,23px);line-height:1.3;margin:0 0 10px}
.about-pillar p{font-size:var(--font-size-sm);line-height:1.68;color:#4a4a4a;margin:0 0 12px;max-width:46ch}
.about-pillar a{font-size:var(--font-size-sm)}
.about-contact-list{max-width:760px;margin-top:var(--space-2xl)}
.about-contact-row{display:flex;gap:24px;padding:14px 0;border-top:1px solid var(--color-divider);align-items:baseline}
.about-contact-row:last-child{border-bottom:1px solid var(--color-divider)}
.about-contact-row .k{flex:0 0 230px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6b6b6b}
.about-contact-row .v{font-size:var(--font-size-sm)}

.careers-hero{padding:calc(var(--space-4xl) + 32px) 0 var(--space-4xl)}
.careers-hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:64px;align-items:center}
.careers-hero-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#eceff1}
.careers-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.careers-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;margin-top:var(--space-3xl)}
.careers-field{padding:22px 0;border-top:1px solid var(--color-divider)}
.careers-field .about-k{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6b6b;margin-bottom:8px}
.careers-field h3{font-size:clamp(18px,1.7vw,21px);line-height:1.3;margin:0 0 8px}
.careers-field p{font-size:var(--font-size-sm);line-height:1.65;color:#4a4a4a;margin:0}
.careers-faq{max-width:880px;margin-top:var(--space-2xl)}
.careers-faq details{border-top:1px solid var(--color-divider)}
.careers-faq details:last-child{border-bottom:1px solid var(--color-divider)}
.careers-faq summary{cursor:pointer;padding:18px 44px 18px 0;position:relative;font-weight:600;font-size:var(--font-size-md);list-style:none}
.careers-faq summary::-webkit-details-marker{display:none}
.careers-faq summary::after{content:"+";position:absolute;right:4px;top:14px;font-size:20px;line-height:1;color:#777}
.careers-faq details[open] summary::after{content:"\2013"}
.careers-faq .faq-a{padding:0 0 20px;max-width:72ch;color:#4a4a4a;font-size:var(--font-size-sm);line-height:1.75}
@media (max-width:900px){
  .about-pillars{grid-template-columns:1fr}
  .about-contact-row{flex-direction:column;gap:4px}
  .about-contact-row .k{flex:none}
  .careers-hero-grid{grid-template-columns:1fr;gap:32px}
  .careers-fields{grid-template-columns:1fr}
}

/* ============================================================
 * F22 V4 — About calink / News / User Stories / Careers / Contact
 * 作用域：.f22v4（含内层 .f22v4-*）
 * 仅新增，不覆盖既有组件；沿用 Inter / IBM Plex Mono / 既有 tokens。
 * ============================================================ */

.f22v4 {
  background: #F6F6F4;
  color: #14171A;
}
/* 固定导航 56px + 视觉呼吸：锚点跳转不要被 Header 压住 */
.f22v4 [id] { scroll-margin-top: 88px; }

/* ---------- Hero（满幅深色影像，与全站深色 Header 连续） ---------- */
.f22v4-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: min(88vh, 820px);
  background: #0B0E13;
  color: #F4F5F7;
  overflow: hidden;
}
.f22v4-hero__media { position: absolute; inset: 0; }
.f22v4-hero__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(.92) contrast(1.02) brightness(.9);
}
.f22v4-hero__media::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(8, 10, 14, .62) 0%, rgba(8, 10, 14, .30) 38%, rgba(8, 10, 14, .90) 100%),
    linear-gradient(90deg, rgba(8, 10, 14, .74) 0%, rgba(8, 10, 14, .30) 48%, rgba(8, 10, 14, 0) 74%);
}
/* About Hero：云层原图本身偏暗，单独降低压暗并提亮 */
.f22v4-hero--cloud .f22v4-hero__media img {
  filter: brightness(1.32) contrast(1.03) saturate(1.06);
  object-position: 62% 50%;
}
.f22v4-hero--cloud .f22v4-hero__media::after {
  background:
    linear-gradient(180deg, rgba(8, 10, 14, .40) 0%, rgba(8, 10, 14, .16) 42%, rgba(8, 10, 14, .86) 100%),
    linear-gradient(90deg, rgba(8, 10, 14, .58) 0%, rgba(8, 10, 14, .12) 56%, rgba(8, 10, 14, 0) 80%);
}
.f22v4-hero__inner {
  position: relative; z-index: 2; width: 100%;
  padding: clamp(148px, 19vh, 208px) 0 clamp(56px, 7vh, 88px);
}
.f22v4-eyebrow {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #6E7479;
  margin: 0;
}
.f22v4-hero .f22v4-eyebrow {
  color: #F4F5F7;
  opacity: .92;
  text-shadow: 0 1px 10px rgba(8, 10, 14, .62);
}
.f22v4-h1 {
  margin: 18px 0 0;
  font-size: clamp(40px, 6.1vw, 92px);
  line-height: .96;
  letter-spacing: -.035em;
  font-weight: 600;
  color: #FFFFFF;
}
.f22v4-h1 em {
  font-style: italic;
  font-weight: 500;
  letter-spacing: -.022em;
}
.f22v4-hero__lead {
  margin: 26px 0 0;
  max-width: 620px;
  font-size: clamp(16px, 1.22vw, 20px);
  line-height: 1.6;
  color: rgba(244, 245, 247, .80);
}
.f22v4-hero__foot {
  margin-top: clamp(36px, 5vh, 64px);
  display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em;
  text-transform: uppercase; color: rgba(244, 245, 247, .58);
}
.f22v4-hero__foot a { color: rgba(244, 245, 247, .82); text-decoration: none; }
.f22v4-hero__foot a:hover { color: #FFFFFF; }

/* ---------- 通用板块 ---------- */
.f22v4-section { padding: clamp(56px, 7vw, 112px) 0; }
.f22v4-section--tight { padding: clamp(40px, 4.5vw, 72px) 0; }
.f22v4-section--divide { border-top: 1px solid rgba(20, 23, 26, .10); }
.f22v4-section--dark { background: #0D1015; color: #F4F5F7; }
.f22v4-section--dark .f22v4-h2,
.f22v4-section--dark .f22v4-p,
.f22v4-section--dark .f22v4-lead { color: #E9EBEE; }
.f22v4-section--dark h2,
.f22v4-section--dark h3,
.f22v4-section--dark .f22v4-vision__statement { color: #F4F5F7; }
.f22v4-section--dark .f22v4-micro { color: rgba(244, 245, 247, .55); }

.f22v4-h2 {
  margin: 14px 0 0;
  font-size: clamp(28px, 3.5vw, 52px);
  line-height: 1.06;
  letter-spacing: -.028em;
  font-weight: 600;
}
.f22v4-h3 {
  margin: 0;
  font-size: clamp(19px, 1.7vw, 24px);
  line-height: 1.28;
  letter-spacing: -.012em;
  font-weight: 600;
}
.f22v4-lead {
  margin: 18px 0 0;
  font-size: clamp(16px, 1.28vw, 19px);
  line-height: 1.65;
  color: #3E4348;
  max-width: 760px;
}
.f22v4-p {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
  color: #4B5056;
}
.f22v4-p + .f22v4-p { margin-top: 16px; }
.f22v4-micro {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #6E7479;
  margin: 0;
}
.f22v4-note {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: #6E7479;
  max-width: 820px;
}
.f22v4-note--strong { color: #8A5A17; }
.f22v4-rule { height: 1px; background: rgba(20, 23, 26, .10); border: 0; margin: 0; }

.f22v4-link {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 15px; color: #14171A; text-decoration: none;
  border-bottom: 1px solid rgba(20, 23, 26, .28);
  padding-bottom: 2px;
}
.f22v4-link:hover { border-bottom-color: #14171A; color: #000; }
.f22v4-link--light { color: #F4F5F7; border-bottom-color: rgba(244, 245, 247, .38); }
.f22v4-link--light:hover { color: #FFFFFF; border-bottom-color: #FFFFFF; }

/* ---------- About：belief ---------- */
.f22v4-believe__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: clamp(32px, 5vw, 88px);
  align-items: start;
}
.f22v4-believe__statement {
  margin: 18px 0 0;
  font-size: clamp(28px, 3.6vw, 52px);
  line-height: 1.12;
  letter-spacing: -.028em;
  font-weight: 600;
}
.f22v4-believe__statement span { display: block; color: #8B9198; }

/* ---------- About：五步 ---------- */
.f22v4-flow {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  gap: clamp(28px, 4.5vw, 72px);
  align-items: start;
}
.f22v4-flow__media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #E7E4DE;
}
.f22v4-flow__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  position: absolute; inset: 0;
  opacity: 0; transition: opacity .3s ease;
}
.f22v4-flow__media img.is-active { opacity: 1; }
.f22v4-flow__caption {
  margin: 12px 0 0;
  font-family: var(--font-mono); font-size: 14px; letter-spacing: .06em;
  color: #6E7479;
}
.f22v4-steps { display: flex; flex-direction: column; }
.f22v4-step {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 18px;
  align-items: baseline;
  width: 100%;
  padding: 18px 0;
  background: none;
  border: 0;
  border-top: 1px solid rgba(20, 23, 26, .12);
  text-align: left;
  cursor: pointer;
  color: #8B9198;
  font: inherit;
  transition: color .2s ease;
}
.f22v4-step:last-of-type { border-bottom: 1px solid rgba(20, 23, 26, .12); }
.f22v4-step:hover { color: #3E4348; }
.f22v4-step[aria-selected="true"] { color: #14171A; }
.f22v4-step__num {
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em;
  color: inherit;
}
.f22v4-step__name {
  font-size: clamp(19px, 1.9vw, 26px);
  letter-spacing: -.015em;
  font-weight: 600;
}
.f22v4-step[aria-selected="true"] .f22v4-step__name { color: #14171A; }
.f22v4-flow__detail { margin-top: 32px; min-height: 132px; }
.f22v4-flow__detail h3 {
  margin: 0 0 12px;
  font-size: clamp(18px, 1.5vw, 21px);
  letter-spacing: -.01em;
  font-weight: 600;
  color: #14171A;
}

/* ---------- About：founders ---------- */
.f22v4-founders {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(28px, 4.5vw, 72px);
  align-items: start;
  margin-top: clamp(28px, 3vw, 48px);
}
.f22v4-portrait {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #12161C;
  overflow: hidden;
}
.f22v4-portrait img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transition: opacity .32s ease;
}
.f22v4-portrait img.is-active { opacity: 1; }
.f22v4-founder__note {
  margin: 12px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: #74797F;
  max-width: 46ch;
}
.f22v4-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.f22v4-pill {
  padding: 10px 18px;
  border: 1px solid rgba(20, 23, 26, .18);
  border-radius: 999px;
  background: transparent;
  color: #5B6167;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.f22v4-pill:hover { border-color: #14171A; color: #14171A; }
.f22v4-pill[aria-selected="true"] { background: #14171A; border-color: #14171A; color: #FFFFFF; }
.f22v4-founder__role {
  margin: 28px 0 0;
  font-family: var(--font-mono); font-size: 14px; letter-spacing: .08em;
  color: #6E7479;
}
.f22v4-founder__name {
  margin: 12px 0 0;
  font-size: clamp(28px, 2.6vw, 38px);
  line-height: 1.1;
  letter-spacing: -.025em;
  font-weight: 600;
}
.f22v4-founder__bio { margin: 16px 0 0; max-width: 54ch; }
.f22v4-founder__counter {
  margin-top: 28px; font-family: var(--font-mono); font-size: 12px;
  letter-spacing: .14em; text-transform: uppercase; color: #9AA0A6;
}

/* ---------- About：timeline ---------- */
.f22v4-stages { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.f22v4-stage {
  padding: 10px 18px; border-radius: 999px;
  border: 1px solid rgba(20, 23, 26, .18);
  background: transparent; color: #5B6167;
  font-family: var(--font-mono); font-size: 14px; letter-spacing: .08em;
  cursor: pointer;
}
.f22v4-stage[aria-selected="true"] { background: #14171A; border-color: #14171A; color: #FFFFFF; }
.f22v4-stage-panel {
  margin-top: 32px; padding-top: 28px;
  border-top: 1px solid rgba(20, 23, 26, .10);
  max-width: 760px;
}
.f22v4-stage-panel h3 { margin: 0 0 12px; font-size: clamp(19px, 1.7vw, 23px); font-weight: 600; letter-spacing: -.012em; }

/* ---------- About：vision ---------- */
.f22v4-vision__statement {
  margin: 18px 0 0;
  font-size: clamp(28px, 3.8vw, 56px);
  line-height: 1.1;
  letter-spacing: -.028em;
  font-weight: 600;
  max-width: 20ch;
}
.f22v4-vision__labels {
  display: flex; flex-wrap: wrap; gap: 14px 40px;
  margin-top: clamp(32px, 5vw, 64px);
  padding-top: 24px;
  border-top: 1px solid rgba(244, 245, 247, .16);
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em;
  text-transform: uppercase; color: rgba(244, 245, 247, .6);
}

/* ---------- News ---------- */
.f22v4-news__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px 56px;
  align-items: start;
}
.f22v4-news__press {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
  text-align: right;
}
.f22v4-press-mail {
  font-size: 18px;
  font-weight: 600;
  color: #14171A;
  text-decoration: none;
  border-bottom: 1px solid rgba(20, 23, 26, .30);
  padding-bottom: 2px;
  min-height: 28px;
  display: inline-block;
}
.f22v4-press-mail:hover { color: #000; border-bottom-color: #14171A; }
.f22v4-news__list { margin-top: clamp(28px, 3.5vw, 48px); border-bottom: 1px solid rgba(20, 23, 26, .12); }
.f22v4-news__item { border-top: 1px solid rgba(20, 23, 26, .12); }
.f22v4-news__btn {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) 32px;
  gap: 24px;
  align-items: center;
  width: 100%;
  padding: 26px 0;
  background: none; border: 0;
  text-align: left; cursor: pointer; color: inherit; font: inherit;
}
.f22v4-news__date {
  font-family: var(--font-mono); font-size: 12.5px; letter-spacing: .06em;
  color: #74797F;
}
.f22v4-news__title {
  font-size: clamp(19px, 1.85vw, 28px);
  line-height: 1.25;
  letter-spacing: -.018em;
  font-weight: 600;
}
.f22v4-news__btn:hover .f22v4-news__title { color: #000; }
.f22v4-chev {
  width: 26px; height: 26px; justify-self: end;
  color: #6E7479;
  transition: transform .28s ease, color .2s ease;
}
.f22v4-news__btn[aria-expanded="true"] .f22v4-chev { transform: rotate(180deg); color: #14171A; }
.f22v4-news__panel { display: none; padding: 0 0 32px; }
.f22v4-news__panel.is-open { display: block; }
.f22v4-news__panel-inner {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 24px;
}
.f22v4-news__body { max-width: 72ch; }
.f22v4-news__body p { margin: 0 0 14px; }
.f22v4-news__body p:last-child { margin-bottom: 0; }

/* ---------- Stories ---------- */
.f22v4-filters { display: flex; flex-wrap: wrap; gap: 10px; }
.f22v4-filter {
  padding: 10px 18px; border-radius: 999px;
  border: 1px solid rgba(20, 23, 26, .18);
  background: transparent; color: #5B6167;
  font: inherit; font-size: 14px; cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.f22v4-filter:hover { border-color: #14171A; color: #14171A; }
.f22v4-filter[aria-pressed="true"] { background: #14171A; border-color: #14171A; color: #FFFFFF; }
.f22v4-stories {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 2.6vw, 40px);
  margin-top: clamp(28px, 3.5vw, 48px);
}
.f22v4-story {
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit;
}
.f22v4-story__media {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #E7E4DE;
}
.f22v4-story__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .7s cubic-bezier(.2, .6, .2, 1);
}
.f22v4-story:hover .f22v4-story__media img { transform: scale(1.035); }
.f22v4-story__tag {
  margin: 18px 0 0;
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .14em;
  text-transform: uppercase; color: #74797F;
}
.f22v4-story__title {
  margin: 10px 0 0;
  font-size: clamp(19px, 1.6vw, 23px);
  line-height: 1.28; letter-spacing: -.018em; font-weight: 600;
}
.f22v4-story__desc { margin: 10px 0 0; font-size: 15px; line-height: 1.65; color: #5B6167; }
.f22v4-story__open {
  margin-top: 14px;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; color: #14171A;
}
.f22v4-story[hidden] { display: none; }
.f22v4-empty {
  margin-top: 32px; padding: 28px 0;
  border-top: 1px solid rgba(20, 23, 26, .12);
  font-size: 15px; line-height: 1.7; color: #5B6167;
}

/* ---------- Careers ---------- */
.f22v4-careers__filters {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: clamp(24px, 3vw, 36px);
}
.f22v4-field { display: flex; flex-direction: column; gap: 8px; }
.f22v4-field label {
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .14em;
  text-transform: uppercase; color: #74797F;
}
.f22v4-input,
.f22v4-select {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid rgba(20, 23, 26, .18);
  border-radius: 10px;
  background: #FFFFFF;
  color: #14171A;
  font-family: inherit;
  font-size: 15px;
  appearance: none;
}
.f22v4-select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236E7479' stroke-width='2' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 38px;
}
.f22v4-input:focus,
.f22v4-select:focus { outline: 2px solid #14171A; outline-offset: 2px; }
.f22v4-depts { margin-top: clamp(28px, 3.5vw, 44px); border-bottom: 1px solid rgba(20, 23, 26, .12); }
.f22v4-dept { border-top: 1px solid rgba(20, 23, 26, .12); }
.f22v4-dept__btn {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 140px 26px;
  gap: 20px;
  align-items: center;
  width: 100%;
  padding: 24px 0;
  background: none; border: 0;
  text-align: left; cursor: pointer; color: inherit; font: inherit;
}
.f22v4-dept__name {
  font-size: clamp(18px, 1.7vw, 24px);
  letter-spacing: -.018em;
  font-weight: 600;
}
.f22v4-dept__meta {
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em;
  text-transform: uppercase; color: #74797F;
}
.f22v4-dept__btn[aria-expanded="true"] .f22v4-chev { transform: rotate(180deg); color: #14171A; }
.f22v4-dept__panel { display: none; padding: 0 0 28px; }
.f22v4-dept__panel.is-open { display: block; }
.f22v4-role {
  max-width: 560px;
  padding: 22px 24px;
  border: 1px solid rgba(20, 23, 26, .12);
  border-radius: 14px;
  background: #FFFFFF;
}
.f22v4-role__title { margin: 0 0 8px; font-size: 19px; font-weight: 600; letter-spacing: -.012em; }
.f22v4-role__meta { margin: 0 0 14px; font-size: 14px; color: #5B6167; }
.f22v4-role__flag {
  margin: 0;
  font-family: var(--font-mono); font-size: 14px; letter-spacing: .06em;
  color: #8A5A17;
}
.f22v4-dept[hidden] { display: none; }

/* ---------- Contact ---------- */
.f22v4-emails {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 32px);
  margin-top: clamp(28px, 3.5vw, 48px);
}
.f22v4-email {
  display: flex; flex-direction: column; gap: 10px;
  padding: 22px 0 4px;
  border-top: 1px solid rgba(20, 23, 26, .14);
  text-decoration: none; color: inherit;
}
.f22v4-email__cat {
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .14em;
  text-transform: uppercase; color: #74797F;
}
.f22v4-email__role { font-size: 18px; line-height: 1.3; letter-spacing: -.012em; font-weight: 600; }
.f22v4-email__addr { font-size: 14px; color: #5B6167; word-break: break-word; }
.f22v4-email:hover .f22v4-email__role { color: #000; }
.f22v4-email:hover .f22v4-email__addr { color: #14171A; }

/* ---------- Story detail ---------- */
.f22v4-detail__meta {
  display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: center;
  margin-top: 18px;
}
.f22v4-detail__body { max-width: 72ch; margin-top: clamp(32px, 4vw, 56px); }
.f22v4-detail__body h2 {
  margin: 0 0 18px; font-size: clamp(20px, 1.9vw, 26px);
  letter-spacing: -.015em; font-weight: 600;
}
.f22v4-detail__foot {
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: 24px;
  border-top: 1px solid rgba(20, 23, 26, .12);
  display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between;
}
.f22v4-detail__note { font-size: 14px; line-height: 1.6; color: #6E7479; max-width: 60ch; }

/* ---------- 键盘焦点（沿用系统可见焦点，统一形状） ---------- */
.f22v4-step:focus-visible,
.f22v4-pill:focus-visible,
.f22v4-stage:focus-visible,
.f22v4-filter:focus-visible,
.f22v4-news__btn:focus-visible,
.f22v4-dept__btn:focus-visible,
.f22v4-story:focus-visible,
.f22v4-email:focus-visible {
  outline: 2px solid #14171A;
  outline-offset: 3px;
  border-radius: 6px;
}
.f22v4-section--dark .f22v4-stage:focus-visible { outline-color: #F4F5F7; }

/* ---------- About Us Mega Menu：图片卡片（纯图，无文案） ---------- */
.mega-about-card--image {
  display: block;
  padding: 0;
  overflow: hidden;
  border-radius: 14px;
  background: #141820;
}
.mega-about-card--image .mega-about-card-media {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  border-radius: 14px;
  overflow: hidden;
  background: #141820;
}
.mega-about-card--image .mega-about-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 42%;
  display: block;
  transition: transform .45s cubic-bezier(.2, .6, .2, 1);
}
.mega-about-card--image:hover .mega-about-card-media img,
.mega-about-card--image:focus-visible .mega-about-card-media img { transform: scale(1.025); }

/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {
  .f22v4-emails { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .f22v4-careers__filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .f22v4-hero { min-height: min(80vh, 620px); }
  .f22v4-believe__grid,
  .f22v4-flow,
  .f22v4-founders { grid-template-columns: minmax(0, 1fr); }
  .f22v4-flow__media { aspect-ratio: 16 / 10; }
  .f22v4-portrait { aspect-ratio: 4 / 5; }
  .f22v4-news__head { grid-template-columns: minmax(0, 1fr); }
  .f22v4-news__press { align-items: flex-start; text-align: left; margin-top: 8px; }
  .f22v4-stories { grid-template-columns: minmax(0, 1fr); }
  .f22v4-news__btn { grid-template-columns: minmax(0, 1fr) 28px; gap: 8px 16px; }
  .f22v4-news__date { grid-column: 1 / -1; }
  .f22v4-news__panel-inner { grid-template-columns: minmax(0, 1fr); }
  .f22v4-dept__btn { grid-template-columns: minmax(0, 1fr) 26px; }
  .f22v4-dept__meta { grid-column: 1 / 2; grid-row: 2; }
  .f22v4-dept__btn .f22v4-chev { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
}
@media (max-width: 640px) {
  .f22v4-hero__inner { padding-top: 132px; }
  .f22v4-emails { grid-template-columns: minmax(0, 1fr); }
  .f22v4-careers__filters { grid-template-columns: minmax(0, 1fr); }
  .f22v4-h1 { font-size: clamp(34px, 10vw, 46px); }
  .f22v4-story__media { aspect-ratio: 4 / 5; }
}

/* ============================================================
 * F23 Mega Menu R2 — 三核心菜单精修（产品双列 / 组织四行 / SDGs 三列编辑）
 * 作用域：mega-panel 系列。仅新增/覆盖，不破坏其它页面。
 * ============================================================ */

/* ---------- R2 通用入口（三核心菜单共用） ---------- */
.mega-r2-entry {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: #F5F6F8;
  cursor: pointer;
  transition: background-color .2s ease;
}
.mega-r2-eyebrow {
  font-family: var(--font-mono, 'IBM Plex Mono', monospace);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .08em;
  color: #A8AFBB;
  margin: 0;
}
.mega-r2-title {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 20px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #F5F6F8;
  margin: 8px 0 0;
  text-decoration: none;
}
.mega-r2-desc {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 15px;
  line-height: 1.5;
  font-weight: 400;
  color: #A8AFBB;
  margin: 4px 0 0;
}
.mega-r2-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #FFFFFF;
  margin-top: 12px;
  text-decoration: none;
}
.mega-r2-arrow {
  font-size: 19px;
  line-height: 1;
  color: #A8AFBB;
}
.mega-r2-entry:hover,
.mega-r2-entry:focus-visible { background: rgba(255, 255, 255, .04); }
.mega-r2-entry:hover .mega-r2-title,
.mega-r2-entry:focus-visible .mega-r2-title,
.mega-r2-entry:hover .mega-r2-action,
.mega-r2-entry:focus-visible .mega-r2-action { color: #FF6B5E; }
.mega-r2-entry:hover .mega-r2-arrow,
.mega-r2-entry:focus-visible .mega-r2-arrow { color: #FF6B5E; }
.mega-r2-entry:focus-visible {
  outline: 2px solid #9DB6DF;
  outline-offset: -2px;
  border-radius: 8px;
}

/* ---------- Products：产品图 + 两个并排双列 ---------- */
.mega-panel--editorial.mega-panel--products,
.mega-panel--editorial.mega-panel--org { min-height: 0; }
.mega-products-editorial--r2 {
  display: grid;
  grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}
.mega-products-editorial--r2 .mega-product-visual {
  height: 250px;
  background: radial-gradient(ellipse 56% 60% at 52% 56%, rgba(91,107,132,.17), transparent 96%);
}
.mega-products-editorial--r2 .mega-product-visual img {
  filter: drop-shadow(0 18px 14px rgba(0,0,0,.22));
}
.mega-prod-entries {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}
.mega-prod-entries .mega-r2-entry {
  min-height: 190px;
  padding: 33px 34px;
  justify-content: center;
  border-left: 1px solid rgba(220, 234, 255, .105);
}

/* ---------- For Organizations：摄影图 + 四行纵向列表 ---------- */
.mega-org-editorial--r2 {
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 58%);
  gap: 28px;
  align-items: stretch;
}
.mega-org-photo {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  background: #141820;
}
.mega-org-editorial--r2 .mega-org-photo { height: 100%; min-height: 340px; }
.mega-org-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: saturate(.8);
}
.mega-org-list-r2 {
  display: grid;
  grid-template-rows: repeat(4, 1fr);
  align-items: stretch;
}
.mega-r2-entry--row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 25px;
  align-items: center;
  gap: 12px;
  min-height: 80px;
  padding: 11px 22px;
  border-bottom: 1px solid rgba(220, 234, 255, .105);
  flex-direction: row;
}
.mega-r2-entry--row:last-child { border-bottom: 0; }
.mega-r2-row-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* ---------- SDGs in Action：三列编辑布局 ---------- */
.mega-sdg--r2 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
}
.mega-sdg--r2 .mega-r2-entry {
  min-height: 230px;
  padding: 40px 34px;
  justify-content: center;
  border-left: 1px solid rgba(220, 234, 255, .105);
}
.mega-sdg--r2 .mega-r2-entry:first-child { border-left: 0; }

/* ---------- 统一其它菜单入口标题 / 分组标签 / 辅助说明（A-1） ---------- */
.mega-panel .mega-link {
  font-size: 20px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #F5F6F8;
  text-decoration: none;
}
.mega-panel .mega-link:hover,
.mega-panel .mega-link:focus-visible { color: #FF6B5E; text-decoration: none; }
.mega-about-group--connect .mega-link,
.mega-about-group--stories .mega-link { font-size: 20px; line-height: 1.3; }
.mega-panel .mega-col-title,
.mega-about-group .mega-col-title {
  font-family: var(--font-mono, 'IBM Plex Mono', monospace);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: none;
  color: #A8AFBB;
}
.mega-desc,
.mega-link-desc { font-size: 14px; font-weight: 400; color: #A8AFBB; }
.mega-eow-fullname { color: #A8AFBB; }

/* 无 hover 下划线兜底 */
.mega-panel a { text-decoration: none; }
.mega-panel a:hover { text-decoration: none; }

/* SDGs 页内锚点：sticky header 偏移 */
body:has(.impact-d2) section[id] { scroll-margin-top: 88px; }

/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {
  .mega-products-editorial--r2 { grid-template-columns: minmax(0, 36%) minmax(0, 1fr); gap: 16px; }
  .mega-org-editorial--r2 { gap: 20px; }
}
@media (max-width: 850px) {
  .mega-products-editorial--r2,
  .mega-org-editorial--r2,
  .mega-sdg--r2,
  .mega-prod-entries,
  .mega-org-list-r2 { display: flex; flex-direction: column; align-items: stretch; }
  .mega-products-editorial--r2 .mega-product-visual { height: 190px; }
  .mega-prod-entries .mega-r2-entry,
  .mega-sdg--r2 .mega-r2-entry {
    border-left: 0;
    border-top: 1px solid rgba(220, 234, 255, .105);
    min-height: auto;
    padding: 24px 12px;
  }
  .mega-org-editorial--r2 .mega-org-photo { height: 220px; min-height: 0; }
  .mega-org-list-r2 { grid-template-rows: none; }
  .mega-r2-entry--row { padding: 16px 12px; min-height: auto; }
}

/* ============================================================
 * F24 — 五页 Hero 自然光恢复（仅覆盖 .f22v4-hero 叠加层与图片滤镜）
 * 目的：去掉全幅重黑罩，保留文字侧弱局部渐变 + 顶部导航过渡
 * ============================================================ */
.f22v4-hero__media img {
  filter: saturate(1.02) contrast(1.02) brightness(1.06);
}
/* 小字号 eyebrow：在自然光照片上靠柔和阴影保证可读，而非再压暗整幅照片 */
.f22v4-hero .f22v4-eyebrow {
  text-shadow: 0 1px 18px rgba(0, 0, 0, .62), 0 0 3px rgba(0, 0, 0, .42);
}
.f22v4-hero__media::after {
  background:
    linear-gradient(180deg, rgba(8, 10, 14, .36) 0%, rgba(8, 10, 14, 0) 24%),
    radial-gradient(72% 80% at 3% 72%, rgba(8, 10, 14, .66) 0%, rgba(8, 10, 14, .36) 44%, rgba(8, 10, 14, 0) 80%),
    linear-gradient(180deg, rgba(8, 10, 14, 0) 60%, rgba(8, 10, 14, .34) 100%);
}

/* 亮背景照片（News / Careers）：仅文字侧加深，画面主体保持原亮度 */
.f22v4-hero--bright .f22v4-hero__media img {
  filter: saturate(1.02) contrast(1.02) brightness(1.0);
}
.f22v4-hero--bright .f22v4-hero__media::after {
  background:
    linear-gradient(180deg, rgba(8, 10, 14, .40) 0%, rgba(8, 10, 14, 0) 24%),
    radial-gradient(72% 80% at 3% 72%, rgba(8, 10, 14, .78) 0%, rgba(8, 10, 14, .46) 44%, rgba(8, 10, 14, 0) 80%),
    linear-gradient(180deg, rgba(8, 10, 14, 0) 60%, rgba(8, 10, 14, .36) 100%);
}

/* About 云首屏：保留自然深蓝明暗，不再叠加重黑 */
.f22v4-hero--cloud .f22v4-hero__media img {
  filter: brightness(1.34) contrast(1.02) saturate(1.06);
}
.f22v4-hero--cloud .f22v4-hero__media::after {
  background:
    linear-gradient(180deg, rgba(8, 10, 14, .30) 0%, rgba(8, 10, 14, .02) 42%, rgba(8, 10, 14, .52) 100%),
    linear-gradient(90deg, rgba(8, 10, 14, .46) 0%, rgba(8, 10, 14, .16) 42%, rgba(8, 10, 14, 0) 68%),
    radial-gradient(88% 76% at 4% 88%, rgba(8, 10, 14, .46) 0%, rgba(8, 10, 14, .18) 48%, rgba(8, 10, 14, 0) 74%);
}

/* ============================================================
 * F24 — Contact：Our Global Presence（七城，无地址）
 * ============================================================ */
.f24-presence__head { max-width: 780px; }
.f24-presence__lead { margin-top: 16px; max-width: 640px; }
.f24-presence__grid {
  list-style: none; margin: 48px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 16px;
  align-items: start;
}
.f24-presence__item { margin: 0; }
.f24-presence__item:nth-child(even) { margin-top: 44px; }
.f24-presence__media { margin: 0; overflow: hidden; }
.f24-presence__media img {
  display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  filter: grayscale(.10) saturate(.94) contrast(1.02); background: #E6E2DB;
  transition: transform .65s cubic-bezier(.2, .7, .2, 1), filter .4s ease;
}
.f24-presence__item:hover .f24-presence__media img { transform: scale(1.035); filter: grayscale(0) saturate(1); }
.f24-presence__cap { display: flex; flex-direction: column; margin-top: 12px; }
.f24-presence__idx {
  font-family: var(--font-mono, 'IBM Plex Mono', monospace);
  font-size: 11px; letter-spacing: .1em; color: #9A9E9F; margin-bottom: 5px;
}
.f24-presence__city { font-size: 15px; font-weight: 600; letter-spacing: -.01em; color: #14171A; }
.f24-presence__region { font-size: 12px; color: #6E7479; margin-top: 3px; }
.f24-presence__note { margin-top: 44px; max-width: 680px; }

@media (max-width: 1100px) {
  .f24-presence__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 28px; }
  .f24-presence__item:nth-child(even) { margin-top: 0; }
}
@media (max-width: 640px) {
  .f24-presence__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; margin-top: 34px; }
  .f24-presence__city { font-size: 14px; }
  .f24-presence__note { margin-top: 32px; }
}

/* 移动端：亮照片收紧裁切，避免标题压在人脸/断头处 */
@media (max-width: 640px) {
  .f22v4-hero--bright .f22v4-hero__media img { object-position: 58% 46%; }
  .f22v4-hero__media::after {
    background:
      linear-gradient(180deg, rgba(8, 10, 14, .34) 0%, rgba(8, 10, 14, .04) 34%, rgba(8, 10, 14, .10) 58%, rgba(8, 10, 14, .62) 100%),
      linear-gradient(90deg, rgba(8, 10, 14, .46) 0%, rgba(8, 10, 14, .18) 52%, rgba(8, 10, 14, 0) 88%),
      radial-gradient(120% 58% at 0% 82%, rgba(8, 10, 14, .52) 0%, rgba(8, 10, 14, .22) 48%, rgba(8, 10, 14, 0) 76%);
  }
  .f22v4-hero--bright .f22v4-hero__media::after {
    background:
      linear-gradient(180deg, rgba(8, 10, 14, .38) 0%, rgba(8, 10, 14, .06) 34%, rgba(8, 10, 14, .14) 58%, rgba(8, 10, 14, .66) 100%),
      linear-gradient(90deg, rgba(8, 10, 14, .54) 0%, rgba(8, 10, 14, .28) 56%, rgba(8, 10, 14, .04) 96%),
      radial-gradient(120% 58% at 0% 82%, rgba(8, 10, 14, .58) 0%, rgba(8, 10, 14, .26) 48%, rgba(8, 10, 14, 0) 76%);
  }
}

/* Render the original SDGs first frame without the global page fade. */
body.page-fade-in:has(.impact-d2) { animation: none; }

/* F27-04A L001: text labels stack only in the Care protection list on mobile. */
@media (max-width: 768px) {
  .care-protection-lines > .feature-line {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 8px;
    align-items: start;
  }
}
