/*
 * Caijun Mold 品牌设计令牌 + 视觉语言（阶段 1）
 * 风格基调：业界顶级工业企业官网——大留白、清晰栅格、强信息层级、克制动效。
 * 约束：仅 transition 动效；零 webfont（系统字体栈）；gzip 后 ~4KB。
 * 阶段 1 视觉语言由首页立样板：区块间距节奏 / 标题阶梯 / 卡片语言，其余页面沿用。
 */

:root {
	/* 品牌色：mold 工业蓝系 */
	--cj-primary: #0A5AA8;
	--cj-primary-dark: #084A8A;
	--cj-primary-light: #E8F1FA;

	/* 中性与功能色 */
	--cj-text: #1A2433;
	--cj-gray: #F5F7FA;
	--cj-border: #E3E9F0;

	/* 形状与节奏 */
	--cj-radius: 4px;
	--cj-section-space: 5rem;
	--cj-container: 1200px;

	/* 字体栈：零 webfont，跨平台中英文渲染一致 */
	--cj-font-stack: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
}

/* ---- 基础 ---- */

body {
	font-family: var(--cj-font-stack);
	color: var(--cj-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

a {
	color: var(--cj-primary);
	transition: color 0.2s ease;
}

a:hover,
a:focus {
	color: var(--cj-primary-dark);
}

img {
	max-width: 100%;
	height: auto;
}

/* ---- 容器 ---- */

.cj-container {
	max-width: var(--cj-container);
	margin-inline: auto;
	padding-inline: 1.5rem;
}

/* ---- 标题阶梯 ---- */

h1 {
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.2;
	font-weight: 700;
	letter-spacing: -0.01em;
}

h2 {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	line-height: 1.25;
	font-weight: 700;
	letter-spacing: -0.01em;
}

h3 {
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	line-height: 1.35;
	font-weight: 600;
}

/* ---- 区块间距 ---- */

.cj-section {
	padding-block: var(--cj-section-space);
}

.cj-section--gray {
	background: var(--cj-gray);
}

@media (max-width: 768px) {
	:root {
		--cj-section-space: 3rem;
	}
}

/* ---- 按钮基类 ---- */

.cj-btn {
	display: inline-block;
	padding: 0.75rem 1.75rem;
	border-radius: var(--cj-radius);
	background: var(--cj-primary);
	color: #fff;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.cj-btn:hover,
.cj-btn:focus {
	background: var(--cj-primary-dark);
	color: #fff;
}

.cj-btn--ghost {
	background: transparent;
	color: var(--cj-primary);
	border: 1px solid var(--cj-primary);
}

.cj-btn--ghost:hover,
.cj-btn--ghost:focus {
	background: var(--cj-primary-light);
	color: var(--cj-primary-dark);
}

/* ---- 简洁表格（设备清单 / 检测参数表） ---- */

.cj-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.cj-table th,
.cj-table td {
	padding: 0.75rem 1rem;
	border-bottom: 1px solid var(--cj-border);
	text-align: left;
	vertical-align: top;
}

.cj-table thead th {
	background: var(--cj-gray);
	font-weight: 600;
	white-space: nowrap;
}

.cj-table tbody tr {
	transition: background-color 0.15s ease;
}

.cj-table tbody tr:hover {
	background: var(--cj-primary-light);
}

/* ---- 图库占位（原生相册/画廊网格基线） ---- */

.cj-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1rem;
}

.cj-gallery figure {
	margin: 0;
}

.cj-gallery img {
	width: 100%;
	height: auto;
	border-radius: var(--cj-radius);
	transition: transform 0.2s ease;
}

.cj-gallery img:hover {
	transform: scale(1.02);
}

/* ---- 响应式表格兜底（窄屏横向滚动，不破版） ---- */

.cj-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* ==========================================================
 * 阶段 1：视觉语言扩展（工业精密主义，首页为设计样板）
 * ========================================================== */

/* ---- GP 骨架对齐：内容容器全宽化，区块自带 cj-container 控宽 ---- */

.caijun-mold .site.grid-container {
	max-width: 100%;
	padding-inline: 0;
}

.caijun-mold .inside-header.grid-container,
.caijun-mold .inside-navigation.grid-container {
	max-width: var(--cj-container);
}

.caijun-mold .site-main .inside-article {
	padding: 0;
	margin: 0;
	border: 0;
	background: none;
	box-shadow: none;
}

.caijun-mold .site-main {
	margin-bottom: 0;
}

/* ---- GP group 垫层清零（cj 体系内，与 consulting 站同构）----
 * GP 输出 .site-main .wp-block-group__inner-container{padding:40px}
 * （≤768px 为 30px）与 .wp-block-group__inner-container{max-width:1200px;
 * margin-inline:auto}，作用于每一层 group 内层容器。cj 体系的
 * section → cj-container 双层 group 嵌套会逐层叠加该垫层：375 视口下
 * columns 内容宽 375-60-48-60 = 207px（约 1/3 留白）。
 * 清零后控宽与边距由 cj-container（max-width 1200 + padding 1.5rem）
 * 与 cj-hero-inner（自带 padding-inline）自任。
 * 特异度：inner① 规则 (0,2,1)、inner②/cj-hero-inner 规则 (0,3,0)，
 * 稳压 GP 的 .site-main .wp-block-group__inner-container (0,2,0)。
 * hero-inner 补丁（任务 #22）：hero 内层 cj-hero-inner group 的
 * inner 容器同样吃 GP 垫层，需一并清零，移动端 Hero 内容才满宽。
 * form-card 补丁（任务 #28）：联系页表单卡 cj-form-card group 的
 * inner 容器同样吃 GP 垫层（375 视口下表单内容宽被压到 ≈315），
 * 清零后卡片内容区满宽（卡片自身 padding 由 cj-form-card 承担）。
 * 卡类补丁（任务 #38 ⑧）：优势三卡/分类卡/步骤卡 group 的 inner
 * 容器同样吃 GP 垫层（优势卡内容宽被压到 227/365，EN 标题被逼成
 * 3 行与同行卡错位）；清零后卡片 padding 由卡自身（2rem 1.75rem）承担。
 */
section.cj-section > .wp-block-group__inner-container,
section.cj-hero > .wp-block-group__inner-container,
section.cj-trustbar > .wp-block-group__inner-container,
section.cj-cta-bar > .wp-block-group__inner-container,
section.cj-page-hero > .wp-block-group__inner-container,
.wp-block-group.cj-container > .wp-block-group__inner-container,
.wp-block-group.cj-hero-inner > .wp-block-group__inner-container,
.wp-block-group.cj-form-card > .wp-block-group__inner-container,
.wp-block-group.cj-card > .wp-block-group__inner-container,
.wp-block-group.cj-cat-card > .wp-block-group__inner-container,
.wp-block-group.cj-step > .wp-block-group__inner-container {
	padding: 0;
	max-width: none;
}

/* ---- Header sticky（任务 #38 ②，与 consulting 站对称）----
 * GP 3.6.1 free 无原生 sticky 模块（GP Premium Elements 才有），
 * 用 position:sticky 实现：GP header 是 body 直子元素、父级链无
 * overflow 裁剪，兼容无跳动。背景显式白底防透字；滚动分隔阴影
 * 克制（1px，对标现代工业企业官网）；admin-bar 下同步偏移。
 * 任务 #45 修正（Ryan M3）：WP core admin bar 桌面 32px / ≤782px 视口
 * 46px，旧值一刀切 46px 导致桌面登录态 header 偏高 14px。
 */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}

.admin-bar .site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

/* ---- 锚点定位偏移（任务 #45，Daniel MINOR-4，与 consulting 站对称）----
 * sticky header 常驻占位：:target 锚点滚动时补 scroll-margin-top，
 * 防跳转目标被置顶 header 遮挡（页内锚链接通用预防性约定）。
 */
:target {
	scroll-margin-top: 5rem;
}

/* ---- 品牌字标（内联 SVG，替代 GP 站名） ---- */

.caijun-mold .site-branding {
	display: none;
}

.cj-brand {
	display: flex;
	align-items: center;
}

.cj-brand a {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	text-decoration: none;
	color: var(--cj-text);
}

.cj-brand-mark {
	width: 34px;
	height: 34px;
	color: var(--cj-primary);
	flex: none;
}

.cj-brand-text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
	font-weight: 700;
	font-size: 1.15rem;
	letter-spacing: 0.02em;
	color: var(--cj-text);
}

.cj-brand-text small {
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.32em;
	color: var(--cj-primary);
}

/* ---- Header language switcher（任务 #61 revision：下拉式，对齐计划 L90/L8）----
 * Native <details>/<summary> dropdown: zero JS, keyboard accessible
 * (Enter/Space toggles, panel links tab-able; re-tapping the trigger
 * closes — Esc is NOT a native details behavior per WHATWG, that belongs
 * to dialog/popover; click-outside does not close — accepted native
 * behavior).
 * Vertical panel scales to the planned 10-language architecture (plan L8):
 * max-height + overflow scroll guards, min/max-width keeps the panel inside
 * a 375px viewport, right-aligned under the trigger. Polylang's
 * hide_if_no_translation renders only translated languages (currently
 * zh/en; batch 2/3 languages appear automatically once translations
 * exist). Mounted as the last flex child of .inside-header (desktop: right
 * of the main menu); mobile order next to the burger via the 768px block.
 * Tap targets >=40px (trigger + each menu item). Contrast on white header
 * bg (WCAG): trigger/menu text --cj-text #1A2433 = 15.6:1; hover/focus
 * --cj-primary-dark #084A8A on --cj-primary-light #E8F1FA = 7.8:1;
 * current language #084A8A on #fff = 8.9:1 — all AA (>=4.5:1).
 */
.cj-lang-dropdown {
	position: relative;
	margin-left: 1rem;
	font-size: 0.9rem;
	line-height: 1;
	white-space: nowrap;
}

.cj-lang-trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 40px;
	padding: 0 0.7rem;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	background: #fff;
	color: var(--cj-text);
	font-size: 0.9rem;
	cursor: pointer;
	list-style: none;
	user-select: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.cj-lang-trigger::-webkit-details-marker {
	display: none;
}

.cj-lang-trigger:hover,
.cj-lang-trigger:focus-visible,
.cj-lang-dropdown[open] > .cj-lang-trigger {
	border-color: var(--cj-primary);
	color: var(--cj-primary-dark);
}

/* 自绘 caret（替换默认 marker，展开时上翻） */
.cj-lang-caret {
	width: 0;
	height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	transition: transform 0.2s ease;
}

.cj-lang-dropdown[open] .cj-lang-caret {
	transform: rotate(180deg);
}

.cj-lang-menu {
	position: absolute;
	top: calc(100% + 0.4rem);
	right: 0;
	z-index: 110; /* 高于 header 内 GP main-nav 的 z-index:100，sticky 上下文内 */
	min-width: 11rem; /* 容纳最长语言名 Português */
	max-width: calc(100vw - 2rem); /* 375px 视口内不溢出 */
	max-height: 16.5rem; /* 10 语言 × 40px 热区 + padding 保险 */
	overflow-y: auto;
	margin: 0;
	padding: 0.3rem 0;
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	box-shadow: 0 12px 32px rgba(10, 30, 60, 0.16);
	list-style: none;
}

.cj-lang-menu li {
	list-style: none;
}

.cj-lang-menu a {
	display: flex;
	align-items: center;
	min-height: 40px;
	padding: 0 0.9rem;
	color: var(--cj-text);
	text-decoration: none;
	white-space: nowrap;
}

.cj-lang-menu a:hover,
.cj-lang-menu a:focus {
	background: var(--cj-primary-light);
	color: var(--cj-primary-dark);
}

/* 当前语言：高亮（Polylang 原生输出 aria-current="true"） */
.cj-lang-menu .current-lang > a {
	color: var(--cj-primary-dark);
	font-weight: 700;
}

/* Mobile (GP nav breakpoint 768px): GP wraps #site-navigation onto its own
 * row (flex-basis:100%) and right-aligns the burger via margin-left:auto;
 * raw source order would drop the switcher below that nav row. Reorder
 * flex items so row 1 = brand … switcher + burger (>=40px tap targets
 * kept; nav dropdown stays full-width below; panel right-aligned inside
 * the viewport via max-width guard above). */
@media (max-width: 768px) {
	.cj-lang-dropdown {
		order: 5;
		margin-left: auto;
		margin-right: 0.75rem;
	}

	.inside-header .mobile-menu-control-wrapper {
		order: 6;
		margin-left: 0;
	}

	.inside-header #site-navigation {
		order: 10;
	}

	.cj-lang-trigger {
		padding: 0 0.6rem;
	}
}

/* ---- 主导航多语言标签防断行（任务 #62）----
 * 根因（实测 2026-09-05，CDP）：GP 的 .main-nav>ul 为 flex-wrap:wrap 且
 * li flex-shrink:1——空间不足时先按比例压缩 li 再整项换行；而菜单 a 的
 * white-space:normal 使压缩阶段项内文本/下拉箭头断行（mold en 1280 实测
 * "Contact Us" 项内断行、mold zh "产品中心" 箭头掉行）。英文菜单总宽
 * （en 六项 925px）超出页头行 nav 可用宽（header 1200 容器 - padding 80
 * - 品牌 168 - 切换器 105 = 847px），连 1920 宽屏都触发整项换行（header
 * 被撑到 160px）。
 * 三层防御（对计划中 10 语言架构的硬保障）：
 * 1) 项内永不断行：全层级菜单 a nowrap（li 的 min-content = 整标签宽，
 *    flex 压不动，空间不足只整项换行）+ 子菜单宽度自适应（长标签不
 *    溢出 GP 固定 200px）；
 * 2) 长标签语言紧凑档：非中文语言（html[lang] 排除 zh*）顶级菜单字号
 *    15→14px、项内边距 20→14px——en 需求 925→约 807px，1200px 容器内
 *    单行可容纳；中文标签短（2-4 字）维持 GP 原生尺寸；
 * 3) 中间带汉堡：GP 768 断点之上、单行放不下的宽度带（mold 实测
 *    769-1199px），长标签语言切换 GP 原生汉堡形态（复用 .toggled
 *    展开生态与 #61 的行序规则），页头行保持单行高（100px），与中文版
 *    视觉等高；中文不受影响（标签短，维持 GP 原生 768 断点）。
 */

/* 1) 菜单项标签作为整体存在（任何语言、任何视口、含子菜单） */
.main-nav ul li a {
	white-space: nowrap;
}

/* GP 子菜单固定 200px → 随最长标签自适应，nowrap 长标签不溢出 */
.main-navigation ul ul {
	width: auto;
	min-width: 12.5rem;
}

/* 极端无空格长词兜底（未来 de/ru 等语言 + 窄屏展开态），防横向滚动 */
@media (max-width: 768px) {
	.main-navigation.toggled .main-nav ul li a {
		overflow-wrap: anywhere;
	}
}

/* 品牌与语言切换器不参与页头行压缩；主导航允许整体收缩（整项换行兜底） */
.cj-brand,
.cj-lang-dropdown {
	flex: none;
}

.nav-float-right #site-navigation {
	min-width: 0;
}

/* 2) 长标签语言紧凑档（en 现行；de/ru/pt 上线自动生效）。
 * 特异度 (0,2,4) 稳压 GP 的 .main-navigation .main-nav ul li a (0,2,3)。
 * 任务 #67：加回 Home 项后 7 项实测需求 884px（14px/14px 档），超出
 * 1200px 容器 nav 可用 847px——且容器 max-width 封顶不随视口增宽，
 * 外扩汉堡断点无解（1200-1450 全档 2 行实测），档位再加压：
 * 字号 14→13px、边距 14→12px，需求 ≈807px 余量 40px，断点维持
 * 769-1199px 不变。zh 不受影响（选择器排除 zh*）。
 * 2026-10-07 生产验收复核（playwright 实测，本文件原 12px 档仍换行）：
 * 8 项实际需求 868px（li 宽度和，#67 估算漏计字体渲染与箭头宽度），
 * 可用仅 831px（容器 1200 − 上下 padding 40×2 − 品牌区 184 − 切换器
 * 89+16），缺口 37px。边距再加压 12→8px（8 项×两侧×4px = 省 64px），
 * 需求 804px，余量 27px；字号维持 13px；汉堡带与 zh 均不受影响。 */
html:not([lang^="zh"]) .main-nav > ul > li > a {
	font-size: 13px;
	padding-left: 8px;
	padding-right: 8px;
}

/* 3) 中间带汉堡（769-1199px，仅长标签语言；单行临界实测约 1160px，
 * 取 1200 与 --cj-container 对齐并留安全余量；任务 #67 复核：7 项经
 * 紧凑档加压后 1200px 单行恢复，断点维持不变）。复用 GP 原生 768 断点
 * 的规则集：burger button（GP 默认 display:none，仅 768 断点内显示）
 * 与 wrapper 同步显示，展开态由 GP 自带 JS 加 .toggled 驱动，
 * 关闭态隐藏 ul。 */
@media (min-width: 769px) and (max-width: 1199px) {
	html:not([lang^="zh"]) .has-inline-mobile-toggle .mobile-menu-control-wrapper {
		display: flex;
	}

	html:not([lang^="zh"]) .has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle {
		display: block;
	}

	html:not([lang^="zh"]) .main-navigation:not(.toggled) .main-nav > ul {
		display: none;
	}

	html:not([lang^="zh"]) .has-inline-mobile-toggle #site-navigation {
		flex-basis: 100%;
		order: 10;
	}

	html:not([lang^="zh"]) .cj-lang-dropdown {
		order: 5;
		margin-left: auto;
		margin-right: 0.75rem;
	}

	html:not([lang^="zh"]) .inside-header .mobile-menu-control-wrapper {
		order: 6;
		margin-left: 0;
	}
}

/* ---- 面包屑（全站钩子输出，main 顶部） ---- */

.cj-breadcrumb {
	max-width: var(--cj-container);
	margin-inline: auto;
	padding: 1.25rem 1.5rem 0;
	font-size: 0.85rem;
	color: #6b7a8f;
}

.cj-breadcrumb a {
	color: #6b7a8f;
	text-decoration: none;
}

.cj-breadcrumb a:hover,
.cj-breadcrumb a:focus {
	color: var(--cj-primary);
}

.cj-crumb-sep {
	margin: 0 0.4rem;
	color: #b4c0ce;
}

.cj-crumb-current {
	color: var(--cj-text);
}

/* ---- 按钮系统（区块按钮 + 链接按钮两种形态统一） ----
 * 特异度说明：GP 动态内联输出 a.wp-block-button__link:not(.has-background)
 * {background-color:#55555e} 为 (0,2,1)、其 :hover/:focus 为 (0,3,1)；
 * 故区块按钮统一用 "> a.wp-block-button__link:not(.has-background)"
 * 前缀（基态 (0,3,1)、交互态 (0,4,1)）稳定压过，不依赖样式表顺序。
 */

.cj-btn > a.wp-block-button__link:not(.has-background),
a.cj-btn {
	padding: 0.8rem 1.75rem;
	border-radius: var(--cj-radius);
	background: var(--cj-primary);
	border: 1px solid var(--cj-primary);
	color: #fff;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.cj-btn > a.wp-block-button__link:not(.has-background):hover,
.cj-btn > a.wp-block-button__link:not(.has-background):focus,
a.cj-btn:hover,
a.cj-btn:focus {
	background: var(--cj-primary-dark);
	color: #fff;
}

.cj-btn--primary > a.wp-block-button__link:not(.has-background),
.cj-btn--invert > a.wp-block-button__link:not(.has-background) {
	background: #fff;
	border-color: #fff;
	color: var(--cj-primary-dark);
}

.cj-btn--primary > a.wp-block-button__link:not(.has-background):hover,
.cj-btn--primary > a.wp-block-button__link:not(.has-background):focus,
.cj-btn--invert > a.wp-block-button__link:not(.has-background):hover,
.cj-btn--invert > a.wp-block-button__link:not(.has-background):focus {
	background: var(--cj-primary-light);
	border-color: var(--cj-primary-light);
	color: var(--cj-primary-dark);
}

.cj-btn--ghost-on-dark > a.wp-block-button__link:not(.has-background) {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.75);
	color: #fff;
}

.cj-btn--ghost-on-dark > a.wp-block-button__link:not(.has-background):hover,
.cj-btn--ghost-on-dark > a.wp-block-button__link:not(.has-background):focus {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
}

/* ---- 首页 Hero：大图 + 一句话定位 + CTA ---- */

.cj-hero {
	position: relative;
	min-height: 88vh;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, #0b2239 0%, #084a8a 100%);
	overflow: hidden;
}

.cj-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(9, 22, 38, 0.82) 0%, rgba(9, 22, 38, 0.45) 55%, rgba(9, 22, 38, 0.28) 100%);
	z-index: 1;
}

.cj-hero-bg {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 0;
}

.cj-hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cj-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--cj-container);
	margin-inline: auto;
	padding-inline: 1.5rem;
	color: #fff;
}

.cj-hero-title {
	color: #fff;
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	margin: 0;
}

.cj-hero-sub {
	margin: 1.25rem 0 0;
	font-size: clamp(1.05rem, 1.6vw, 1.35rem);
	color: rgba(255, 255, 255, 0.92);
	max-width: 40em;
}

.cj-hero-points {
	margin: 1rem 0 0;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.95rem;
}

.cj-hero-actions {
	margin-top: 2.25rem;
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
}

/* ---- 信任数据条 ---- */

.cj-trustbar {
	background: var(--cj-primary);
	color: #fff;
	padding-block: 2.75rem;
}

.cj-trustbar-grid {
	margin: 0;
}

.cj-trustbar .cj-stat-num {
	margin: 0;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: #fff;
}

.cj-trustbar .cj-stat-unit {
	margin-left: 0.25rem;
	font-size: 0.95rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.85);
}

.cj-trustbar .cj-stat-label {
	margin: 0.35rem 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.9rem;
}

.cj-trustbar-grid .wp-block-column + .wp-block-column {
	border-left: 1px solid rgba(255, 255, 255, 0.28);
	padding-left: 2rem;
}

/* ---- 区块标题与导语 ---- */

.cj-section-title {
	position: relative;
	margin: 0 0 1.1rem;
	padding-bottom: 0.9rem;
}

.cj-section-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 3rem;
	height: 3px;
	background: var(--cj-primary);
}

.cj-section-intro {
	margin: 0 0 2.75rem;
	max-width: 46em;
	color: #4a5568;
}

/* ---- 卡片语言（优势三卡 / 分类卡 / 步骤卡 / 设备卡） ---- */

.cj-cards-3,
.cj-cat-grid,
.cj-feature-equip,
.cj-steps-row,
.cj-stats-grid,
.cj-contact-grid {
	gap: 1.75rem;
}

.cj-card {
	height: 100%;
	background: #fff;
	border: 1px solid var(--cj-border);
	border-top: 3px solid var(--cj-primary);
	border-radius: var(--cj-radius);
	padding: 2rem 1.75rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-card:hover,
.cj-card:focus-within {
	border-color: var(--cj-primary);
	box-shadow: 0 8px 24px rgba(10, 90, 168, 0.08);
}

/* 任务 #38 ⑧：优势三卡标题 min-height 兼容英文 2 行换行
 * （中文一行/英文两行时正文起始行对齐；h3 line-height 1.35，
 * 2.7em 即两行高度）。 */
.cj-card-title {
	margin: 0 0 0.75rem;
	min-height: 2.7em;
}

.cj-cat-card {
	height: 100%;
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-cat-card:hover {
	border-color: var(--cj-primary);
	box-shadow: 0 10px 28px rgba(10, 90, 168, 0.1);
}

.cj-cat-media {
	margin: 0;
	overflow: hidden;
}

.cj-cat-media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.25s ease;
}

.cj-cat-card:hover .cj-cat-media img {
	transform: scale(1.03);
}

.cj-cat-title {
	margin: 1.25rem 1.5rem 0.75rem;
	font-size: 1.15rem;
}

.cj-cat-desc {
	margin: 0 1.5rem 1rem;
	color: #4a5568;
	font-size: 0.95rem;
}

.cj-cat-link {
	display: inline-block;
	margin: 0 1.5rem 1.5rem;
	font-weight: 600;
	text-decoration: none;
}

.cj-cat-link::after {
	content: "\2192";
	margin-left: 0.35rem;
}

/* ---- 设备亮点与统计 ---- */

.cj-equip-item {
	height: 100%;
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	padding: 1.25rem;
	text-align: center;
}

.cj-equip-media {
	margin: 0;
}

.cj-equip-media img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--cj-radius);
}

.cj-equip-name {
	margin: 1rem 0 0;
	font-size: 1.05rem;
}

.cj-equip-stats {
	margin-top: 2.75rem;
	border-top: 1px solid var(--cj-border);
	padding-top: 2.25rem;
}

.cj-stats-grid {
	margin-bottom: 1.75rem;
}

.cj-stats-grid:last-child {
	margin-bottom: 0;
}

.cj-stats-grid .cj-stat-num {
	margin: 0;
	color: var(--cj-primary);
	font-size: clamp(1.6rem, 2.5vw, 2.1rem);
	font-weight: 700;
}

.cj-stats-grid .cj-stat-label {
	margin: 0.3rem 0 0;
	color: #4a5568;
	font-size: 0.9rem;
}

.cj-lead-note {
	margin: 2.5rem 0 0;
	border-left: 3px solid var(--cj-primary);
	background: var(--cj-primary-light);
	padding: 1rem 1.25rem;
	border-radius: 0 var(--cj-radius) var(--cj-radius) 0;
}

/* ---- 九步流程 ---- */

.cj-step {
	height: 100%;
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	padding: 1.5rem;
}

.cj-step-num {
	margin: 0;
	font-size: 2.2rem;
	font-weight: 800;
	line-height: 1;
	color: #bfd8f0;
}

.cj-step-name {
	margin: 0.75rem 0 0.5rem;
	font-size: 1rem;
}

.cj-step-note {
	margin: 0;
	color: #8296ab;
	font-size: 0.85rem;
}

/* 任务 #70：/process/ 页步骤卡配图（出血式卡头图，对齐 .cj-cat-card 先例与老站
 * h-col-113 排布）。选择器全部以 .cj-process--media 前缀——该类仅存在于
 * posts 68/115 的 post_content（tools/t68-process-media.php 注入，DB 重放 ⑧），
 * 结构性零泄漏，首页同构 .cj-step 不受影响。9 图均近方图（400×400 上下）取
 * aspect-ratio 1/1；375px 单列由既有 781px 断点覆盖，无需新断点。红线：不挂
 * 裸 .cj-step/.cj-process 配图规则（首页泄漏）、不动 .cj-gallery 系规则
 * （首页公司展示/设备/检测页在用）。数值耦合：.cj-step-media 出血
 * margin -1.5rem 与 .cj-step padding 1.5rem 数值耦合，改 padding 须同步出血量。 */
.cj-process--media .cj-step {
	overflow: hidden;
}

.cj-process--media .cj-step-media {
	margin: -1.5rem -1.5rem 1.25rem;
	overflow: hidden;
}

.cj-process--media .cj-step-media img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* ---- 工厂画廊 ---- */

.cj-gallery-section .wp-block-gallery {
	margin: 0;
	gap: 1.25rem;
}

.cj-gallery figure.wp-block-image {
	margin: 0;
}

.cj-gallery img {
	border-radius: var(--cj-radius);
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---- CTA 转化条 ---- */

.cj-cta-bar {
	background: linear-gradient(120deg, var(--cj-primary-dark), var(--cj-primary));
	color: #fff;
	padding-block: 4rem;
	text-align: center;
}

.cj-cta-title {
	margin: 0;
	color: #fff;
}

.cj-cta-actions {
	justify-content: center;
	margin-top: 2rem;
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
}

/* ---- 内页横幅 ---- */

.cj-page-hero {
	background: linear-gradient(120deg, #0b2239, var(--cj-primary-dark));
	color: #fff;
	padding-block: 4.5rem 3.75rem;
}

.cj-page-hero-title {
	margin: 0;
	color: #fff;
}

/* ---- 时间轴（关于页） ---- */

.cj-timeline-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cj-timeline-list li {
	position: relative;
	margin-left: 0.5rem;
	padding: 0 0 1.75rem 2rem;
	border-left: 2px solid var(--cj-border);
}

.cj-timeline-list li:last-child {
	padding-bottom: 0;
}

.cj-timeline-list li::before {
	content: "";
	position: absolute;
	left: -6px;
	top: 0.35rem;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--cj-primary);
}

.cj-timeline-list strong {
	margin-right: 0.5rem;
	color: var(--cj-primary);
	font-weight: 700;
}

/* ---- 产品分类归档（taxonomy 模板） ---- */

.cj-archive-header {
	padding-block: 3.5rem 0.5rem;
}

.cj-entry-title {
	margin: 0;
}

.cj-entry-desc {
	margin-top: 1rem;
	max-width: 46em;
	color: #4a5568;
}

.cj-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.5rem;
}

.cj-product-card {
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-product-card:hover {
	border-color: var(--cj-primary);
	box-shadow: 0 8px 24px rgba(10, 90, 168, 0.1);
}

.cj-product-card__link {
	display: block;
	color: var(--cj-text);
	text-decoration: none;
}

.cj-product-card__media {
	margin: 0;
}

.cj-product-card__media img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.cj-product-card__noimg {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	background: var(--cj-gray);
	color: #8296ab;
}

.cj-product-card__title {
	margin: 0;
	padding: 1rem 1.25rem;
	font-size: 1rem;
	font-weight: 600;
}

.cj-empty-note {
	color: #6b7a8f;
}

/* ---- 产品单页 ---- */

.cj-entry-header {
	padding-block: 3rem 1rem;
}

.cj-product-single__body {
	padding-block: 1.5rem 3.5rem;
}

.cj-product-single__media img {
	border-radius: var(--cj-radius);
}

.cj-cta-inline {
	margin-top: 3rem;
	background: var(--cj-gray);
	border-radius: var(--cj-radius);
	padding: 2rem;
	text-align: center;
}

/* ---- 联系信息栏 ---- */

.cj-contact-label {
	margin: 0 0 0.5rem;
	color: var(--cj-primary);
	font-size: 1rem;
}

/* 语义升级：联系字段标题 h3→h2（避免 h1→h3 跳级），视觉保持原 h3 阶梯 */
h2.cj-contact-label {
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
}

/* ---- 页脚多列深色（任务 #38 ④⑨，与 consulting 站对称）----
 * 深蓝收尾 #0B2239，4 列：品牌简介 / 站点地图 / 联系方式 / 产品中心；
 * bottom 行更深一档（#0e1b2a）放版权 + 语言切换 + ICP 备案链接。
 * 深底正文 rgba(255,255,255,0.78) 对 #0B2239 对比度 ≈9:1，达 WCAG AA。
 */

.cj-footer {
	background: #0B2239;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.95rem;
}

.cj-footer-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1.3fr 1fr;
	gap: 2.5rem 3rem;
	padding-block: 4rem;
}

.cj-footer-title {
	margin: 0 0 1.1rem;
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.cj-footer-brand-name {
	margin: 0 0 0.75rem;
	color: #fff;
	font-weight: 700;
}

.cj-footer-brand-desc {
	margin: 0;
	max-width: 26em;
}

.cj-footer-col ul,
.cj-footer .cj-footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cj-footer-col li,
.cj-footer .cj-footer-menu li {
	margin: 0 0 0.6rem;
}

.cj-footer-col p {
	margin: 0 0 0.6rem;
}

.cj-footer a {
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
	transition: color 0.2s ease;
}

.cj-footer a:hover,
.cj-footer a:focus {
	color: #fff;
	text-decoration: underline;
}

.cj-footer-bottom {
	background: #0e1b2a;
	padding-block: 1.4rem;
	font-size: 0.85rem;
}

/* 任务 #61：切换器迁至页头后 bottom 行只剩版权 + ICP 单一子项，
 * 布局简化为左对齐（不再需要 space-between 双端分布）。 */
.cj-footer-bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
}

.cj-footer-copy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 1.5rem;
	margin: 0;
	color: rgba(255, 255, 255, 0.7);
}

.cj-footer-copy a {
	color: rgba(255, 255, 255, 0.7);
}

.cj-footer-copy a:hover,
.cj-footer-copy a:focus {
	color: #fff;
}

/* 任务 #38 ⑨：英文页 ICP 备案号保留法定中文原文（合规白名单豁免项），
 * 加 "ICP License" 前缀说明 + 缩小字号，视觉不再突兀。 */
.cj-footer-icp-en {
	font-size: 0.75rem;
	letter-spacing: 0.02em;
}

/* 语言切换器样式已随任务 #61 迁至页头（见文件头部 Header language
 * switcher 区块），页脚不再输出切换器。 */

/* ---- 窄屏适配：多列堆叠 + 数据条分隔线切换 ---- */

@media (max-width: 781px) {
	.cj-cards-3,
	.cj-cat-grid,
	.cj-feature-equip,
	.cj-steps-row,
	.cj-trustbar-grid,
	.cj-stats-grid,
	.cj-contact-grid {
		flex-direction: column;
	}

	.cj-trustbar-grid .wp-block-column + .wp-block-column {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid rgba(255, 255, 255, 0.22);
		margin-top: 1.25rem;
		padding-top: 1.25rem;
	}

	.cj-hero {
		min-height: 72vh;
	}

	.cj-footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
		padding-block: 3rem;
	}
}

@media (max-width: 480px) {
	.cj-footer-grid {
		grid-template-columns: 1fr;
	}
}

/* ---- Fluent Forms 询盘表单（任务 #22：cj-card 卡片语言 + 品牌按钮） ---- */

.cj-form-card {
	background: #fff;
	border: 1px solid var(--cj-border);
	border-top: 3px solid var(--cj-primary);
	border-radius: var(--cj-radius);
	padding: 2rem 1.75rem;
}

.cj-form-card .fluentform .ff-el-group {
	margin-bottom: 1.25rem;
}

.cj-form-card .fluentform .ff-el-input--label {
	margin-bottom: 0.375rem;
	font-weight: 600;
}

.cj-form-card .fluentform .ff-el-form-control {
	width: 100%;
	border: 1px solid var(--cj-border);
	border-radius: 6px;
	padding: 0.625rem 0.875rem;
	font-size: 1rem;
	line-height: 1.5;
	background: #fff;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-form-card .fluentform .ff-el-form-control:focus {
	border-color: var(--cj-primary);
	box-shadow: 0 0 0 3px var(--cj-primary-light);
	outline: none;
}

.cj-form-card .fluentform textarea.ff-el-form-control {
	resize: vertical;
}

/* 提交按钮：品牌色（覆盖 Fluent Forms 默认蓝） */
.cj-form-card .fluentform .ff-btn-submit {
	background-color: var(--cj-primary);
	border: 0;
	border-radius: var(--cj-radius);
	color: #fff;
	padding: 0.75rem 2.25rem;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.cj-form-card .fluentform .ff-btn-submit:hover,
.cj-form-card .fluentform .ff-btn-submit:focus {
	background-color: var(--cj-primary-dark);
	color: #fff;
}

/* 文件上传 UI（mu-plugin 补丁） */
.cj-ff-file-btn {
	background: #fff;
	border: 1px dashed var(--cj-primary);
	border-radius: 6px;
	color: var(--cj-primary);
	padding: 0.5rem 1.25rem;
	font-size: 0.9375rem;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.cj-ff-file-btn:hover,
.cj-ff-file-btn:focus {
	background: var(--cj-primary-light);
}

.cj-ff-file-hint {
	display: block;
	margin-top: 0.5rem;
	font-size: 0.875rem;
	color: #6b7280;
}

.cj-ff-file-msg {
	font-size: 0.875rem;
	margin-top: 0.375rem;
}

.cj-ff-file-msg.is-error {
	color: #b91c1c;
}

.cj-ff-file-msg.is-ok {
	color: var(--cj-primary-dark);
}

.cj-ff-file-list {
	margin-top: 0.5rem;
	display: grid;
	gap: 0.375rem;
}

.cj-ff-file-item {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	border: 1px solid var(--cj-border);
	border-radius: 6px;
	padding: 0.375rem 0.75rem;
	background: #f8fafc;
}

.cj-ff-file-name {
	flex: 1;
	font-size: 0.875rem;
	color: #1f2937;
	word-break: break-all;
}

.cj-ff-file-remove {
	border: 0;
	background: none;
	color: #6b7280;
	font-size: 1.125rem;
	line-height: 1;
	cursor: pointer;
	padding: 0.125rem 0.375rem;
	border-radius: 4px;
}

.cj-ff-file-remove:hover,
.cj-ff-file-remove:focus {
	color: #b91c1c;
	background: #fef2f2;
}

/* 隐私勾选 & 成功/错误消息 */
.cj-form-card .fluentform .ff-el-tc {
	font-size: 0.9375rem;
}

.cj-form-card .fluentform .ff-el-tc a {
	color: var(--cj-primary);
}

.cj-form-card .ff-message-success {
	border: 1px solid var(--cj-primary);
	background: var(--cj-primary-light);
	color: var(--cj-primary-dark);
	border-radius: var(--cj-radius);
	padding: 1rem 1.25rem;
}

.cj-form-card .ff-el-group .error {
	color: #b91c1c;
	font-size: 0.875rem;
}

@media (max-width: 768px) {
	.cj-form-card {
		padding: 1.5rem 1.25rem;
	}
}

/* ---- 品牌化 404（任务 #29 t29-4） ---- */

.cj-404 {
	background: linear-gradient(135deg, #0b2239 0%, var(--cj-primary-dark) 100%);
	color: #fff;
	padding-block: 7rem 6rem;
	text-align: center;
}

.cj-404__inner {
	max-width: var(--cj-container);
	margin-inline: auto;
	padding-inline: 1.5rem;
}

.cj-404__code {
	margin: 0;
	font-size: clamp(5rem, 14vw, 9rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.16);
}

.cj-404__title {
	margin: 0.5rem 0 0;
	color: #fff;
}

.cj-404__desc {
	margin: 1.25rem auto 0;
	max-width: 40em;
	color: rgba(255, 255, 255, 0.85);
}

.cj-404__actions {
	margin-top: 2.25rem;
	display: flex;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.cj-404__actions a {
	display: inline-block;
	padding: 0.75rem 1.75rem;
	border-radius: var(--cj-radius);
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.cj-404__actions .cj-404__btn-home {
	background: #fff;
	border: 1px solid #fff;
	color: var(--cj-primary-dark);
}

.cj-404__actions .cj-404__btn-home:hover,
.cj-404__actions .cj-404__btn-home:focus {
	background: var(--cj-primary-light);
	border-color: var(--cj-primary-light);
	color: var(--cj-primary-dark);
}

.cj-404__actions .cj-404__btn-ghost {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.75);
	color: #fff;
}

.cj-404__actions .cj-404__btn-ghost:hover,
.cj-404__actions .cj-404__btn-ghost:focus {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
}

@media (max-width: 768px) {
	.cj-404 {
		padding-block: 4.5rem 3.5rem;
	}
}

/* ---- 动态文章分类标签（照 consulting 站同款，任务 #91 补缺） ---- */

.cj-entry-tags {
	margin: 0 0 0.75rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.cj-tag {
	margin: 0;
	padding: 0.35rem 0.9rem;
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: 999px;
	color: var(--cj-primary-dark);
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

a.cj-tag:hover,
a.cj-tag:focus {
	border-color: var(--cj-primary);
	background: var(--cj-primary-light);
}

/* ---- 才隽动态（/news/ 归档 / 文章页 / 首页最新动态，任务 #91） ---- */

.cj-news-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
}

.cj-news-card {
	background: #fff;
	border: 1px solid var(--cj-border);
	border-top: 3px solid var(--cj-primary);
	border-radius: var(--cj-radius);
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-news-card:hover {
	border-color: var(--cj-primary);
	box-shadow: 0 8px 24px rgba(10, 90, 168, 0.1);
}

.cj-news-card__link {
	display: block;
	color: var(--cj-text);
	text-decoration: none;
}

.cj-news-card__thumb {
	margin: 0;
}

.cj-news-card__thumb img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.cj-news-card__body {
	padding: 1.25rem 1.5rem 1.5rem;
}

.cj-news-card__cat {
	margin: 0 0 0.6rem;
	color: var(--cj-primary-dark);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.06em;
}

.cj-news-card__title {
	margin: 0;
	font-size: 1.08rem;
	line-height: 1.4;
}

.cj-news-card__date {
	margin: 0.5rem 0 0;
	color: #6b7a8f;
	font-size: 0.88rem;
}

.cj-news-card__excerpt {
	margin: 0.6rem 0 0;
	color: #4a5568;
	font-size: 0.94rem;
	line-height: 1.7;
}

.cj-news-single__date {
	margin: 0.75rem 0 0;
	color: #6b7a8f;
}

.cj-news-single__body {
	padding-block: 1.5rem 3.5rem;
}

.cj-news-single__content {
	max-width: 860px;
}

.cj-news-single__thumb img {
	border-radius: var(--cj-radius);
	width: 100%;
	height: auto;
}

.cj-news-single__content > p {
	line-height: 1.85;
}

.cj-news-home {
	padding-block: 4rem;
}

.cj-news-home__title {
	margin: 0;
}

.cj-news-home-grid {
	margin-top: 1.5rem;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
}

.cj-news-home-card {
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	padding: 1.25rem 1.5rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-news-home-card:hover {
	border-color: var(--cj-primary);
	box-shadow: 0 8px 24px rgba(10, 90, 168, 0.1);
}

.cj-news-home-card__link {
	display: block;
	color: var(--cj-text);
	text-decoration: none;
}

.cj-news-home-card__title {
	margin: 0 0 0.5rem;
	font-size: 1.05rem;
	line-height: 1.4;
}

.cj-news-home-card__date {
	color: #6b7a8f;
	font-size: 0.88rem;
}

.cj-news-home__more {
	margin: 1.75rem 0 0;
	text-align: center;
}

/* ---- 资质认证卡片（S5.1：文字表格改体系认证图标卡片） ---- */
.cj-certs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}

.cj-cert-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 1.5rem 1.25rem;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	background: #fff;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-cert-card:hover {
	border-color: var(--cj-primary);
	box-shadow: 0 0 0 3px var(--cj-primary-light);
}

.cj-cert-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--cj-primary-light);
	color: var(--cj-primary);
	flex: 0 0 auto;
}

.cj-cert-icon svg {
	width: 28px;
	height: 28px;
	display: block;
}

.cj-cert-name {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--cj-text);
	line-height: 1.3;
}

.cj-cert-desc {
	margin: 0;
	font-size: 0.9rem;
	color: #6b7a8f;
	line-height: 1.6;
}

@media (max-width: 900px) {
	.cj-certs {
		grid-template-columns: repeat(2, 1fr);
	}
}

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

/* ---- 基地实景自动滚动轮播（S5.2：静态画廊改 marquee 循环） ---- */
.cj-carousel {
	overflow: hidden;
	border-radius: var(--cj-radius);
	-webkit-mask-image: linear-gradient( 90deg, transparent, #000 48px, #000 calc(100% - 48px), transparent );
	mask-image: linear-gradient( 90deg, transparent, #000 48px, #000 calc(100% - 48px), transparent );
}

.cj-carousel-track {
	display: flex;
	width: max-content;
	animation: cj-marquee 45s linear infinite;
}

.cj-carousel:hover .cj-carousel-track,
.cj-carousel:focus-within .cj-carousel-track {
	animation-play-state: paused;
}

.cj-carousel-track img {
	flex: 0 0 auto;
	display: block;
	height: 280px;
	width: auto;
	max-width: none;
	margin-right: 16px;
	border-radius: var(--cj-radius);
	border: 1px solid var(--cj-border);
}

@keyframes cj-marquee {
	from {
		transform: translateX( 0 );
	}
	to {
		transform: translateX( -50% );
	}
}

@media (max-width: 600px) {
	.cj-carousel-track img {
		height: 200px;
		margin-right: 10px;
	}
	.cj-carousel {
		-webkit-mask-image: linear-gradient( 90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent );
		mask-image: linear-gradient( 90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent );
	}
}

@media (prefers-reduced-motion: reduce) {
	.cj-carousel-track {
		animation: none;
	}
	.cj-carousel {
		overflow-x: auto;
		-webkit-mask-image: none;
		mask-image: none;
	}
}

/* ---- 关于页 2.0：图文简介 / 行业图卡 / 能力图标卡 / 愿景带 / 基地数字 ---- */

.cj-about-intro {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: 3rem;
	align-items: center;
	margin-top: 2.25rem;
}

.cj-about-intro-text p {
	margin: 0 0 1.1rem;
	line-height: 2;
	color: #3d4a5c;
}

.cj-about-intro-text p:last-child {
	margin-bottom: 0;
}

.cj-about-intro-media {
	border-radius: var(--cj-radius);
	overflow: hidden;
	border: 1px solid var(--cj-border);
}

.cj-about-intro-media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.cj-ind-cards,
.cj-cap-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 2.25rem;
}

.cj-ind-card {
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-ind-card:hover {
	border-color: var(--cj-primary);
	box-shadow: 0 8px 24px rgba(10, 90, 168, 0.08);
}

.cj-ind-card img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.cj-ind-body {
	padding: 1.4rem 1.5rem 1.6rem;
}

.cj-ind-tag {
	margin: 0 0 0.4rem;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--cj-primary);
}

.cj-ind-title {
	margin: 0 0 0.55rem;
	font-size: 1.12rem;
}

.cj-ind-desc {
	margin: 0;
	font-size: 0.93rem;
	line-height: 1.8;
	color: #3d4a5c;
}

.cj-cap-card {
	height: 100%;
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	padding: 1.75rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cj-cap-card:hover {
	border-color: var(--cj-primary);
	box-shadow: 0 8px 24px rgba(10, 90, 168, 0.08);
}

.cj-cap-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--cj-primary-light);
	color: var(--cj-primary);
	margin-bottom: 1.1rem;
}

.cj-cap-icon svg {
	width: 26px;
	height: 26px;
}

.cj-cap-name {
	margin: 0 0 0.55rem;
	font-size: 1.08rem;
}

.cj-cap-desc {
	margin: 0;
	font-size: 0.93rem;
	line-height: 1.85;
	color: #3d4a5c;
}

.cj-vision {
	margin-top: 2.25rem;
	background: var(--cj-gray);
	border-left: 3px solid var(--cj-primary);
	border-radius: var(--cj-radius);
	padding: 2rem 2.25rem;
}

.cj-vision p {
	margin: 0;
	font-size: 1.08rem;
	line-height: 2;
	color: var(--cj-text);
}

.cj-base-lead {
	margin: 2.25rem 0 0;
	color: #3d4a5c;
	line-height: 1.9;
}

.cj-base-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 1.75rem;
}

.cj-base-stat {
	background: #fff;
	border: 1px solid var(--cj-border);
	border-radius: var(--cj-radius);
	padding: 1.75rem 1rem;
	text-align: center;
}

.cj-base-num {
	margin: 0;
	color: var(--cj-primary);
	font-size: clamp(1.6rem, 2.5vw, 2.1rem);
	font-weight: 700;
}

.cj-base-label {
	margin: 0.35rem 0 0;
	color: #4a5568;
	font-size: 0.9rem;
}

@media (max-width: 900px) {
	.cj-about-intro {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}
	.cj-ind-cards,
	.cj-cap-cards,
	.cj-base-stats {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 600px) {
	.cj-ind-cards,
	.cj-cap-cards,
	.cj-base-stats {
		grid-template-columns: 1fr;
	}
}

/* =====================================================================
 * P0 视觉升级补丁（2026-10-08）：大气感四件套
 * 1) 区块留白提档 5rem -> 7rem（移动端 4rem）
 * 2) Hero 大标题提档 56px -> 72px，收紧字距/行高
 * 3) 滚动进场揭示（依赖 .cj-anim + JS 注入 .cj-reveal；无 JS 则无影响）
 * 4) 信任数据条数字滚动（依赖 JS；尊重 prefers-reduced-motion）
 * 5) 内容卡双层质感（纯阴影层，不改动 HTML 结构）
 * 全部追加式，可整段删除回滚。
 * ===================================================================== */

/* 1) 留白提档 */
:root { --cj-section-space: 7rem; }
@media (max-width: 768px) { :root { --cj-section-space: 4rem; } }

/* 2) Hero 大标题（覆盖首页 hero 标题 + 内页 page-hero-title / page-title 多套体系） */
.cj-hero-title,
.cj-page-hero-title,
.cj-page-title {
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	line-height: 1.12;
	letter-spacing: -0.02em;
}

/* 3) 滚动进场揭示（仅在 html.cj-anim 下隐藏，JS 失效内容仍可见） */
.cj-anim .cj-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1);
	will-change: opacity, transform;
}
.cj-anim .cj-reveal.is-in {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.cj-anim .cj-reveal { opacity: 1 !important; transform: none !important; }
}

/* 4) 数字滚动（JS 控制；无 JS 时直接显示原数字） */
.cj-stat-num.is-counting { font-variant-numeric: tabular-nums; }

/* 5) 内容卡双层质感（纯阴影层，不改动 HTML） */
.cj-card,
.cj-result-card,
.cj-cap-card,
.cj-cert-card,
.cj-form-card,
.cj-step,
.cj-ind-card,
.cj-cat-card,
.cj-product-entry,
.cj-equip-item,
.cj-cat-media {
	box-shadow: 0 2px 4px rgba(20, 32, 28, 0.04), 0 16px 34px -18px rgba(20, 32, 28, 0.16);
}

/* =====================================================================
 * P1 视觉打磨（2026-10-08）：内容堆叠页的区块纵向节奏
 * 问题：关于我们 / 联系我们 等页面把多个小节放在同一个 .cj-section
 *       容器内，小节标题（.cj-section-title）与上一节内容之间只有 WP
 *       流式布局的默认间距，版面板块「贴」在一起、层级不清晰。
 * 方案：仅对「容器内非首个子元素」的小节标题补足上间距——
 *       · :first-child（首个小节标题，如「公司简介」）不受影响；
 *       · 嵌套在图文简介内的标题（父级非 inner-container）不受影响；
 *       · 首页 / 列表页等「每节独立 .cj-section」的页面完全不受影响。
 * 纯追加式，可整段删除回滚。
 * ===================================================================== */
.cj-container > .wp-block-group__inner-container > .cj-section-title:not(:first-child),
.cj-container > .wp-block-group__inner-container > .cj-h2:not(:first-child) {
	margin-top: 7rem;
}

/* 眉标（.cj-eyebrow）：简版小节序号标签，与紧随其后的标题组成一组。 */
.cj-eyebrow {
	margin: 0 0 0.75rem;
	color: var(--cj-primary-dark);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

/* 区块节奏：小节间距（7rem）上移到眉标（每节首个元素）承担，标题紧随眉标保持紧贴。 */
.cj-container > .wp-block-group__inner-container > .cj-eyebrow:not(:first-child) {
	margin-top: 7rem;
}

/* 标题→正文的内部间距统一为约 53px（14.4px 下边距内边距 + 38.4px 外边距），
 * 消除因相邻块 margin 折叠导致的不一致（部分小节曾低至 6px / 负值）。 */
.cj-container > .wp-block-group__inner-container > .cj-section-title,
.cj-container > .wp-block-group__inner-container > .cj-h2 {
	margin-bottom: 2.4rem;
}
.cj-container > .wp-block-group__inner-container > .cj-section-title + *,
.cj-container > .wp-block-group__inner-container > .cj-h2 + * {
	margin-top: 0;
}

@media (max-width: 768px) {
	.cj-container > .wp-block-group__inner-container > .cj-section-title:not(:first-child),
	.cj-container > .wp-block-group__inner-container > .cj-h2:not(:first-child),
	.cj-container > .wp-block-group__inner-container > .cj-eyebrow:not(:first-child) {
		margin-top: 3.5rem;
	}
}

/* 眉标（.cj-eyebrow，如「服务体系」）与紧随其后的小节标题属同一组标题，
 * 必须保持紧贴，不能被上面的节奏规则撑开。置于最后以确保优先级。 */
.cj-container > .wp-block-group__inner-container > .cj-eyebrow + .cj-section-title,
.cj-container > .wp-block-group__inner-container > .cj-eyebrow + .cj-h2 {
	margin-top: 0;
}


/* ---- 主导航下拉子菜单（2026-10-08：与站内视觉语言统一）----
 * GP dynamic CSS 把子菜单渲染成灰底方块（.main-navigation ul ul → --base
 * #f0f0f0），与站内"白卡 + 细边框 + 克制阴影"的卡片语言脱节。
 * 桌面态（≥769px）重构：白底 + --cj-border 细边 + 柔和投影 + 品牌
 * 浅底 hover；特异度 (0,2,2)/(0,2,3) 起步，稳压 GP dynamic CSS 的
 * (0,1,2)；hover/current 用与 GP 相同的 :not([class*="current-menu-"])
 * 结构加高一层，稳压其 hover 色规则。移动端汉堡展开态不受影响
 * （≤768px 不进入本媒体块，维持 GP 原生内联列表样式）。
 */
@media (min-width: 769px) {
	.main-navigation .main-nav ul ul {
		background: #fff;
		border: 1px solid var(--cj-border);
		border-radius: var(--cj-radius);
		box-shadow: 0 10px 30px rgba(26, 36, 51, 0.10), 0 2px 8px rgba(26, 36, 51, 0.05);
		padding: 0.4rem 0;
	}

	.main-navigation .main-nav ul ul li a {
		color: var(--cj-text);
		padding: 0.55rem 1.25rem;
		transition: color 0.2s ease, background-color 0.2s ease;
	}

	.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a,
	.main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"]) > a,
	.main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
		color: var(--cj-primary-dark);
		background: var(--cj-primary-light);
	}
}

/* ---- 加工设备页·六大制程实拍图墙（2026-10-08）----
 * 与站内卡片语言一致：白卡 + 细边框 + 克制投影 + hover 上浮。
 * 3 列网格（移动端 1 列），图 230px cover 统一裁切，题注条分隔。
 */
.cj-equip-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:2.5rem 0 0.5rem;}
/* WP 经典主题会给 wp:group 包一层 __inner-container，若不处理六张图会全部
 * 挤进第一列；display:contents 让图块直接成为外层网格项（无内层时同样成立）。 */
.cj-equip-gallery>.wp-block-group__inner-container{display:contents;}
.cj-equip-gcell{margin:0;background:#fff;border:1px solid var(--cj-border);border-radius:var(--cj-radius);overflow:hidden;box-shadow:0 2px 10px rgba(26,36,51,0.05);transition:transform 0.25s ease,box-shadow 0.25s ease;}
.cj-equip-gcell:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(26,36,51,0.12);}
.cj-equip-gcell img{width:100%;height:230px;object-fit:cover;display:block;}
.cj-equip-gcell figcaption{padding:0.75rem 1rem;font-size:0.9rem;font-weight:600;color:var(--cj-text);border-top:1px solid var(--cj-border);}
@media (max-width:768px){.cj-equip-gallery{grid-template-columns:1fr;}}
