/* =====================================================================
   匠芯企业主题 CraftPro - 前台样式（原创，无第三方框架依赖）
   ===================================================================== */

:root {
	--cp-primary: #1a6df2;
	--cp-primary-dark: #1454c2;
	--cp-text: #1f2733;
	--cp-text-light: #64748b;
	--cp-bg: #ffffff;
	--cp-bg-alt: #f4f7fb;
	--cp-border: #e5eaf1;
	--cp-dark: #101828;
	--cp-radius: 12px;
	--cp-shadow: 0 6px 24px rgba(16, 24, 40, .08);
	--cp-shadow-hover: 0 14px 32px rgba(16, 24, 40, .14);
	--cp-container: 1180px;
	--cp-header-h: 62px;
	--cp-hero-h: 660px;
	--cp-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--cp-font);
	font-size: 16px;
	line-height: 1.7;
	color: var(--cp-text);
	background: var(--cp-bg);
}

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

a { color: var(--cp-primary); text-decoration: none; transition: color .2s; }
a:hover { color: var(--cp-primary-dark); }

h1, h2, h3, h4, h5, h6 { line-height: 1.3; margin: 0 0 .5em; color: var(--cp-text); font-weight: 700; }

button { font-family: inherit; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	border: 0;
}
.skip-link { left: -9999px; }
.skip-link:focus { left: 8px; top: 8px; z-index: 10000; width: auto; height: auto; clip: auto; padding: 8px 16px; background: var(--cp-primary); color: #fff; border-radius: 6px; }

/* ---------------- 布局容器 ---------------- */
.cp-container {
	max-width: var(--cp-container);
	margin: 0 auto;
	padding: 0 20px;
}
.cp-main { min-height: 40vh; }

/* ---------------- 按钮 ---------------- */
.cp-btn {
	display: inline-block;
	padding: 11px 30px;
	border: 0;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	cursor: pointer;
	transition: all .25s;
}
.cp-btn-primary { background: var(--cp-primary); color: #fff; box-shadow: 0 8px 20px rgba(26, 109, 242, .3); }
.cp-btn-primary:hover { background: var(--cp-primary-dark); color: #fff; transform: translateY(-2px); }
.cp-btn-ghost { background: transparent; color: var(--cp-primary); border: 1px solid var(--cp-primary); }
.cp-btn-ghost:hover { background: var(--cp-primary); color: #fff; }

/* ---------------- 顶部信息栏 ---------------- */
.cp-header { background: #fff; position: relative; z-index: 100; }

.cp-topbar { padding: 22px 0; border-bottom: 1px solid var(--cp-border); }
.cp-topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }

.cp-logo { display: inline-flex; align-items: center; }
.cp-logo img { max-height: 56px; width: auto; }
.cp-logo-text {
	font-size: 26px;
	font-weight: 800;
	color: var(--cp-text);
	letter-spacing: 1px;
}
.cp-logo-text:hover { color: var(--cp-primary); }

.cp-topinfo { display: flex; gap: 36px; flex-wrap: wrap; }
.cp-topinfo-item { display: flex; align-items: center; gap: 12px; }
.cp-topinfo-icon {
	width: 42px; height: 42px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: #eaf1fe;
	background: color-mix(in srgb, var(--cp-primary) 10%, #fff);
	color: var(--cp-primary);
	flex-shrink: 0;
}
.cp-topinfo-text { display: flex; flex-direction: column; line-height: 1.35; }
.cp-topinfo-text small { color: var(--cp-text-light); font-size: 13px; }
.cp-topinfo-text a { color: var(--cp-text); font-weight: 700; font-size: 16px; }
.cp-topinfo-text a:hover { color: var(--cp-primary); }

/* ---------------- 主导航 ---------------- */
.cp-nav {
	background: var(--cp-primary);
	z-index: 99;
	transition: background .25s, box-shadow .25s;
}

/* 吸顶与变色仅在电脑端生效（手机端保持静态蓝色导航） */
@media (min-width: 768px) {
	.cp-nav {
		position: sticky;
		top: 0;
	}
	/* 滚动吸顶后：蓝色导航变为白色 */
	.cp-nav.is-stuck {
		background: #fff;
		box-shadow: 0 6px 20px rgba(16, 24, 40, .12);
	}
	.cp-nav.is-stuck .cp-menu a { color: var(--cp-text); }
	.cp-nav.is-stuck .cp-menu a:hover,
	.cp-nav.is-stuck .cp-menu .current-menu-item > a,
	.cp-nav.is-stuck .cp-menu .current_page_item > a { color: var(--cp-primary); }
	.cp-nav.is-stuck .cp-menu a::after { background: var(--cp-primary); }
	.cp-nav.is-stuck .cp-wechat-btn {
		color: var(--cp-primary);
		border-color: var(--cp-primary);
	}
	.cp-nav.is-stuck .cp-wechat-btn:hover {
		background: var(--cp-primary);
		color: #fff;
	}
}

/* 后台管理员工具条存在时下移吸附位置 */
@media (min-width: 768px) {
	.admin-bar .cp-nav { top: 32px; }
}
@media (min-width: 768px) and (max-width: 782px) {
	.admin-bar .cp-nav { top: 46px; }
}

.cp-nav-in { display: flex; align-items: center; gap: 18px; min-height: var(--cp-header-h); position: relative; }

.cp-nav-logo { display: none; color: #fff; font-weight: 800; font-size: 20px; white-space: nowrap; }
.cp-nav-logo img { max-height: 40px; width: auto; }

.cp-menu-wrap { flex: 1 1 auto; }

.cp-menu { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.cp-menu li { position: relative; }
.cp-menu a {
	display: block;
	padding: 16px 20px;
	color: rgba(255, 255, 255, .92);
	font-size: 15.5px;
	font-weight: 600;
	position: relative;
}
.cp-menu a:hover,
.cp-menu .current-menu-item > a,
.cp-menu .current_page_item > a { color: #fff; }
.cp-menu a::after {
	content: "";
	position: absolute;
	left: 20px; right: 20px; bottom: 8px;
	height: 2px;
	background: #fff;
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s;
}
.cp-menu a:hover::after,
.cp-menu .current-menu-item > a::after,
.cp-menu .current_page_item > a::after { transform: scaleX(1); }

/* 下拉菜单（纯 CSS） */
.cp-menu ul {
	position: absolute;
	top: 100%; left: 0;
	min-width: 180px;
	margin: 0; padding: 8px 0;
	list-style: none;
	background: #fff;
	border-radius: 10px;
	box-shadow: var(--cp-shadow-hover);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: all .22s;
	z-index: 98;
}
.cp-menu li:hover > ul,
.cp-menu li:focus-within > ul { opacity: 1; visibility: visible; transform: translateY(0); }
.cp-menu ul ul { top: 0; left: 100%; }
.cp-menu ul a {
	color: #5d5a5a;
	padding: 12px 18px;
	font-size: 14.5px;
	font-weight: 400;
}
.cp-menu ul a::after { display: none; }
.cp-menu ul a:hover { background: var(--cp-bg-alt); color: var(--cp-primary); }
/* 子菜单里的当前项：不能沿用顶栏的白字（白底面板上会看不见） */
.cp-menu ul .current-menu-item > a,
.cp-menu ul .current_page_item > a,
.cp-menu ul .current-menu-ancestor > a { color: var(--cp-primary); background: var(--cp-bg-alt); }
.cp-nav.is-stuck .cp-menu ul .current-menu-item > a,
.cp-nav.is-stuck .cp-menu ul .current_page_item > a,
.cp-nav.is-stuck .cp-menu ul .current-menu-ancestor > a { color: var(--cp-primary); }

.cp-menu .menu-item-has-children > a { padding-right: 34px; }
.cp-menu .menu-item-has-children > a::before {
	content: "";
	position: absolute;
	right: 20px; top: 50%;
	width: 7px; height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-70%) rotate(45deg);
}

/* 微信咨询按钮 */
.cp-wechat-btn {
	display: inline-flex; align-items: center; gap: 8px;
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 999px;
	padding: 8px 20px;
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
	transition: all .25s;
	white-space: nowrap;
}
.cp-wechat-btn:hover { background: #fff; color: var(--cp-primary); border-color: #fff; }

/* 汉堡按钮 */
.cp-burger { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.cp-burger span { display: block; width: 24px; height: 2.5px; background: #fff; border-radius: 2px; margin: 5px 0; transition: all .25s; }

/* ---------------- 首页轮播大图 ---------------- */
.cp-hero {
	position: relative;
	overflow: hidden;
	background: var(--cp-dark);
	--cp-hero-h: 660px;
	--cp-hero-ov: .72;
}
.cp-hero-slides { position: relative; }

.cp-hero-slide {
	position: absolute;
	inset: 0;
	background-color: #0c1524;
	/* cover：等比放大填满容器，超出部分居中裁切——各种屏幕比例下都不变形、不留黑边 */
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1s ease;
	display: flex;
	align-items: center;
	min-height: var(--cp-hero-h);
	overflow: hidden;
}
.cp-hero-slide.is-active { opacity: 1; visibility: visible; position: relative; }

/* 有图轮播项：图片交给伪元素承载
   - background-size: cover：等比放大并居中裁切，超宽图/方形图/竖图在任何屏幕比例下都能铺满、不变形、不留黑边
   - transform: scale 做「缓速推近」（Ken Burns），等比缩放，动画过程同样不变形 */
.cp-hero-slide.has-photo { background-image: none; }
.cp-hero-slide.has-photo::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--cp-slide-bg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform: scale(1);
	transition: transform 9s ease-out;
	z-index: 0;
}
.cp-hero-slide.has-photo.is-active::before { transform: scale(1.12); }
/* 手机端只加载 1024px 的小图（大图留给电脑），两者都写在 CSS 里，浏览器只下载真正用到的那张 */
@media (max-width: 767px) {
	.cp-hero-slide.has-photo::before { background-image: var(--cp-slide-bg-sm, var(--cp-slide-bg)); }
}

.cp-hero-fallback {
	background-image: linear-gradient(120deg, #0a1729 0%, #123a86 48%, var(--cp-primary) 100%);
	background-size: 100% 100%;
	transition: opacity 1s ease, background-size 8s ease-out;
}
.cp-hero-fallback.is-active { background-size: 106% 106%; }

.cp-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 1; /* 盖在轮播图片之上（图片为 z-index:0 的伪元素） */
	background: linear-gradient(100deg, rgba(7, 13, 26, .96) 0%, rgba(7, 13, 26, .78) 40%, rgba(7, 13, 26, .34) 72%, rgba(7, 13, 26, .06) 100%);
	opacity: var(--cp-hero-ov);
	pointer-events: none;
}
.cp-hero-slide > .cp-container { position: relative; width: 100%; z-index: 2; }

.cp-hero-content {
	max-width: 800px;
	padding: clamp(76px, 11vh, 130px) 0 clamp(96px, 13vh, 160px);
	color: #fff;
}

.cp-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 20px;
	margin-bottom: 22px;
	border: 1px solid rgba(255, 255, 255, .38);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: #fff;
	font-size: 13.5px;
	letter-spacing: 2.5px;
	transform: translateY(22px);
	opacity: 0;
}
.cp-hero-badge::before {
	content: "";
	width: 6px; height: 6px;
	border-radius: 50%;
	background: #7fb0ff;
	box-shadow: 0 0 0 4px rgba(127, 176, 255, .28), 0 0 14px rgba(127, 176, 255, .9);
}

.cp-hero-title {
	color: #fff;
	font-size: clamp(32px, 5vw, 58px);
	line-height: 1.14;
	letter-spacing: 1.5px;
	margin: 0 0 22px;
	text-shadow: 0 8px 36px rgba(0, 0, 0, .45);
	transform: translateY(28px);
	opacity: 0;
}

.cp-hero-rule {
	display: block;
	width: 84px;
	height: 4px;
	margin-bottom: 26px;
	border-radius: 4px;
	background: linear-gradient(90deg, #7fb0ff, var(--cp-primary));
	box-shadow: 0 0 22px rgba(110, 165, 255, .65);
	transform: translateY(28px);
	opacity: 0;
}

.cp-hero-desc {
	color: rgba(255, 255, 255, .88);
	font-size: clamp(15.5px, 1.45vw, 19px);
	line-height: 1.95;
	max-width: 640px;
	margin: 0 0 36px;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .35);
	transform: translateY(28px);
	opacity: 0;
}

.cp-hero-actions { display: flex; gap: 16px; flex-wrap: wrap; transform: translateY(28px); opacity: 0; }

.cp-btn-lg {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 42px;
	font-size: 16.5px;
	border-radius: 999px;
}
.cp-btn-lg svg { transition: transform .25s; }
.cp-btn-lg:hover svg { transform: translateX(4px); }
.cp-hero .cp-btn-primary {
	background: linear-gradient(135deg, var(--cp-primary) 0%, var(--cp-primary-dark) 100%);
	box-shadow: 0 14px 34px rgba(12, 46, 110, .45);
}

.cp-hero-slide.is-active .cp-hero-badge,
.cp-hero-slide.is-active .cp-hero-title,
.cp-hero-slide.is-active .cp-hero-rule,
.cp-hero-slide.is-active .cp-hero-desc,
.cp-hero-slide.is-active .cp-hero-actions {
	animation: cp-rise .85s cubic-bezier(.22, .68, .32, 1) forwards;
}
.cp-hero-slide.is-active .cp-hero-title { animation-delay: .1s; }
.cp-hero-slide.is-active .cp-hero-rule { animation-delay: .22s; }
.cp-hero-slide.is-active .cp-hero-desc { animation-delay: .32s; }
.cp-hero-slide.is-active .cp-hero-actions { animation-delay: .45s; }

@keyframes cp-rise {
	to { transform: translateY(0); opacity: 1; }
}

/* 指示点 */
.cp-hero-dots, .cp-tstm-dots {
	position: absolute;
	left: 50%; bottom: 30px;
	transform: translateX(-50%);
	display: flex; gap: 10px;
	z-index: 6;
}
.cp-hero-dot, .cp-tstm-dot {
	width: 28px; height: 4px;
	border: 0; padding: 0;
	border-radius: 4px;
	background: rgba(255, 255, 255, .42);
	cursor: pointer;
	transition: all .25s;
}
.cp-hero-dot.is-active, .cp-tstm-dot.is-active { background: #fff; width: 44px; }
.cp-tstm-dot { background: #cbd5e1; }
.cp-tstm-dot.is-active { background: var(--cp-primary); }

/* 左右箭头 */
.cp-hero-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 54px; height: 54px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	transition: all .25s;
	z-index: 6;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	opacity: .75;
}
.cp-hero-arrow:hover { background: var(--cp-primary); border-color: var(--cp-primary); opacity: 1; }
.cp-hero-prev { left: 26px; }
.cp-hero-next { right: 26px; }
@media (hover: hover) and (min-width: 992px) {
	.cp-hero-arrow { opacity: 0; }
	.cp-hero:hover .cp-hero-arrow { opacity: .8; }
	.cp-hero-arrow:hover { opacity: 1; }
}

/* 自动播放进度条 */
.cp-hero-progress {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 3px;
	background: rgba(255, 255, 255, .16);
	z-index: 6;
	pointer-events: none;
}
.cp-hero-progress span {
	display: block;
	height: 100%;
	width: 0;
	background: linear-gradient(90deg, #7fb0ff, var(--cp-primary));
	animation: cp-progress linear forwards;
}
@keyframes cp-progress { from { width: 0; } to { width: 100%; } }

/* 向下浏览提示 */
.cp-hero-scroll {
	position: absolute;
	left: 50%; bottom: 54px;
	transform: translateX(-50%);
	width: 26px; height: 44px;
	border: 2px solid rgba(255, 255, 255, .45);
	border-radius: 14px;
	background: transparent;
	cursor: pointer;
	z-index: 6;
	padding: 0;
}
.cp-hero-scroll span {
	position: absolute;
	left: 50%; top: 8px;
	width: 3px; height: 9px;
	margin-left: -1.5px;
	border-radius: 2px;
	background: #fff;
	animation: cp-scroll-hint 1.9s ease-in-out infinite;
}
@keyframes cp-scroll-hint {
	0% { opacity: 0; transform: translateY(0); }
	30% { opacity: 1; }
	100% { opacity: 0; transform: translateY(16px); }
}

/* 轮播资讯浮层（右上方，白字 + 深色渐变背衬，向上滚动循环） */
.cp-hero-news {
	position: absolute;
	/* 顶部约与左侧主标题区域平齐，形成左右平衡；底缘略过中线仍在箭头高度带内，
	   但水平方向已让出箭头按钮（浮层右缘 88px > 箭头右缘 80px），互不重叠 */
	top: 26%;
	/* 向左对齐主内容容器右缘（窄屏时保底 90px，仍让出箭头按钮） */
	right: max(90px, calc((100% - 1180px) / 2));
	width: min(340px, 34%);
	padding: 14px 16px 12px;
	/*
	 * 高透明度深色过渡背衬：左上最实、右下完全淡出，既压住亮部保证白字可读，
	 * 又不会形成「一块黑卡」遮挡轮播图；2px 毛玻璃让底图细节仍在。
	 */
	background: linear-gradient(135deg, rgba(9, 17, 30, .62) 0%, rgba(9, 17, 30, .44) 55%, rgba(9, 17, 30, .20) 100%);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	border: 0;
	border-radius: 14px;
	box-shadow: none;
	z-index: 3;
}
.cp-hero-news-head {
	position: relative;
	display: flex;
	align-items: center;
	padding: 0 0 10px 12px;
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 15px;
	letter-spacing: .5px;
}
/* 左侧主色短竖条，替代底色块作为视觉锚点 */
.cp-hero-news-head::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 3px;
	height: 16px;
	border-radius: 2px;
	background: #fff;
	opacity: .9;
}
.cp-hero-news-head strong { font-weight: 700; }
.cp-hero-news-viewport {
	height: calc(var(--cp-hn-count, 2) * 45px);
	overflow: hidden;
	/* 上下 12px 渐隐，滚动时条目不会硬切 */
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
	mask-image: linear-gradient(to bottom, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
}
.cp-hero-news-list { list-style: none; margin: 0; padding: 0; }
.cp-hero-news-list li { height: 45px; box-sizing: border-box; border: 0; }
.cp-hero-news-list a {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 100%;
	padding: 0 4px 0 12px;
	color: rgba(255, 255, 255, .93);
	font-size: 13.5px;
	text-decoration: none;
	text-shadow: 0 1px 6px rgba(0, 0, 0, .55);
}
.cp-hero-news-list time { flex-shrink: 0; font-size: 11.5px; color: rgba(255, 255, 255, .65); font-variant-numeric: tabular-nums; }
.cp-hero-news-list span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-hero-news-list a:hover span { color: #fff; text-decoration: underline; }
/* 条目多于可见条数时无缝向上滚动；悬停暂停 */
.cp-hero-news.is-scroll .cp-hero-news-list { animation: cp-hero-news-up 14s linear infinite; }
.cp-hero-news:hover .cp-hero-news-list { animation-play-state: paused; }
@keyframes cp-hero-news-up {
	from { transform: translateY(0); }
	to { transform: translateY(-50%); }
}
@media (max-width: 1279px) {
	/* 中小屏幕下与左侧主标题重叠，直接隐藏 */
	.cp-hero-news { display: none; }
}

/* 手机端单条滚动浮层（红框位置：hero 左下、按钮下方、圆点上方） */
.cp-hero-news-m { display: none; }
@media (max-width: 767px) {
	.cp-hero-news-m {
		position: absolute;
		left: 16px;
		bottom: 44px;
		z-index: 3;
		display: flex;
		align-items: center;
		gap: 2px;
		width: calc(100% - 32px);
		max-width: 430px;
		padding: 5px 12px;
		border-radius: 10px;
		/* 与桌面浮层同款深色渐变背衬：左实右淡 */
		background: linear-gradient(135deg, rgba(9, 17, 30, .65) 0%, rgba(9, 17, 30, .45) 55%, rgba(9, 17, 30, .22) 100%);
		-webkit-backdrop-filter: blur(2px);
		backdrop-filter: blur(2px);
		overflow: hidden;
	}
	.cp-hero-news-m-tag { flex-shrink: 0; color: #fff; font-size: 12.5px; font-weight: 700; text-shadow: 0 1px 6px rgba(0, 0, 0, .5); }
	.cp-hero-news-m-viewport {
		flex: 1;
		height: 21px;
		overflow: hidden;
		-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 5px, #000 calc(100% - 5px), transparent 100%);
		mask-image: linear-gradient(to bottom, transparent 0, #000 5px, #000 calc(100% - 5px), transparent 100%);
	}
	.cp-hero-news-m-list { list-style: none; margin: 0; padding: 0; }
	.cp-hero-news-m-list li { height: 21px; box-sizing: border-box; }
	.cp-hero-news-m-list a {
		display: block;
		color: rgba(255, 255, 255, .93);
		font-size: 12.5px;
		line-height: 21px;
		text-decoration: none;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		text-shadow: 0 1px 6px rgba(0, 0, 0, .5);
	}
	/* 多于 1 条时向上无缝滚动；悬停暂停 */
	.cp-hero-news-m-list.is-scroll { animation: cp-hero-news-up 10s linear infinite; }
	.cp-hero-news-m:hover .cp-hero-news-m-list { animation-play-state: paused; }
}

/* ---------------- 通用区块 ---------------- */
.cp-section { padding: 84px 0; }
.cp-section.cp-alt { background: var(--cp-bg-alt); }
.cp-alt + .cp-section:not(.cp-alt) { border-top: 1px solid var(--cp-border); }

.cp-section-head { text-align: center; margin-bottom: 48px; }
.cp-section-head h3 {
	font-size: clamp(24px, 2.6vw, 32px);
	position: relative;
	display: inline-block;
	padding-bottom: 16px;
	margin-bottom: 6px;
}
.cp-section-head h3::before,
.cp-section-head h3::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 46px; height: 3px;
	border-radius: 3px;
	background: var(--cp-primary);
	opacity: .85;
}
.cp-section-head h3::before { right: calc(100% + 18px); }
.cp-section-head h3::after { left: calc(100% + 18px); }
.cp-section-head p { color: var(--cp-text-light); letter-spacing: 2px; margin: 0; }
.cp-align-left h3::before { display: none; }

/* 网格 */
.cp-grid { display: grid; gap: 24px; }
.cp-grid-2 { grid-template-columns: repeat(2, 1fr); }
.cp-grid-3 { grid-template-columns: repeat(3, 1fr); }
.cp-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* 产品 Tab */
.cp-tabs-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-bottom: 34px; }
.cp-tab-btn {
	padding: 9px 26px;
	border: 1px solid var(--cp-border);
	border-radius: 999px;
	background: #fff;
	color: var(--cp-text);
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
	transition: all .25s;
}
.cp-tab-btn:hover { border-color: var(--cp-primary); color: var(--cp-primary); }
.cp-tab-btn.is-active { background: var(--cp-primary); border-color: var(--cp-primary); color: #fff; box-shadow: 0 6px 16px rgba(26, 109, 242, .28); }
.cp-tab-pane { display: none; }
.cp-tab-pane.is-active { display: block; animation: cp-fade .4s ease; }
@keyframes cp-fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* 卡片 */
.cp-card {
	background: #fff;
	border-radius: var(--cp-radius);
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(16, 24, 40, .06);
	transition: transform .3s, box-shadow .3s;
}
.cp-card:hover { transform: translateY(-6px); box-shadow: var(--cp-shadow-hover); }
.cp-card-media { display: block; overflow: hidden; position: relative; aspect-ratio: 4 / 3; }
.cp-card-img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.cp-card:hover .cp-card-img { transform: scale(1.06); }
/* 产品 / 案例卡片：按后台设置放大裁边（裁掉图片自带边框），悬停时在放大基础上再缩放 */
.cp-product-card .cp-card-img,
.cp-case-card .cp-card-img { transform: scale(var(--cp-card-zoom, 1)); }
.cp-product-card:hover .cp-card-img,
.cp-case-card:hover .cp-card-img { transform: scale(calc(var(--cp-card-zoom, 1) * 1.06)); }
.cp-card-body { padding: 18px 20px 22px; }
.cp-card-title { font-size: 15px; margin: 0; text-align: center; }
.cp-card-title a { color: var(--cp-text); }
.cp-card-title a:hover { color: var(--cp-primary); }
.cp-card-meta { font-size: 13px; color: var(--cp-text-light); margin-bottom: 6px; }
.cp-card-excerpt { color: var(--cp-text-light); font-size: 14.5px; margin: 8px 0 0; text-align: left; }

.cp-news-card .cp-card-media { aspect-ratio: 16 / 10; }
.cp-news-date {
	position: absolute;
	left: 14px; top: 14px;
	display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	width: 54px; height: 54px;
	border-radius: 10px;
	background: rgba(255, 255, 255, .95);
	box-shadow: 0 4px 12px rgba(16, 24, 40, .18);
	line-height: 1.15;
}
.cp-news-day { font-size: 20px; font-weight: 800; color: var(--cp-primary); }
.cp-news-month { font-size: 11.5px; color: var(--cp-text-light); }

.cp-section-more { text-align: center; margin-top: 36px; }

/* 分类资讯：图文列表版式（左右两列，白色条目 + 缩略图 + 日期） */
.cp-notice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 26px; }
.cp-notice-item {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 18px;
	background: #fff;
	border: 1px solid var(--cp-border);
	border-radius: var(--cp-radius);
	box-shadow: 0 2px 10px rgba(16, 24, 40, .05);
	transition: transform .3s, box-shadow .3s;
}
.cp-notice-item:hover { transform: translateY(-4px); box-shadow: var(--cp-shadow-hover); }
.cp-notice-thumb { flex: 0 0 92px; width: 92px; height: 74px; border-radius: 8px; overflow: hidden; display: block; background: #f2f5fa; }
.cp-notice-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.cp-notice-item:hover .cp-notice-img { transform: scale(1.06); }
.cp-notice-body { flex: 1 1 auto; min-width: 0; }
.cp-notice-title { font-size: 15px; font-weight: 600; margin: 0 0 6px; line-height: 1.4; }
.cp-notice-title a { color: #333; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-notice-title a:hover { color: var(--cp-primary); }
.cp-notice-desc {
	margin: 0 0 8px;
	font-size: 13.5px;
	color: rgba(85, 85, 85, 1);
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cp-notice-date { font-size: 12.5px; color: var(--cp-text-light); letter-spacing: .4px; }
@media (max-width: 991px) {
	.cp-notice-list { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.cp-notice-item { padding: 12px 14px; gap: 12px; }
	.cp-notice-thumb { flex: 0 0 76px; width: 76px; height: 62px; }
	.cp-notice-title { font-size: 14px; }
	.cp-notice-desc { margin-bottom: 6px; }
}

/* 关于我们 */
.cp-about-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.cp-about-media img {
	width: 100%;
	border-radius: var(--cp-radius);
	box-shadow: var(--cp-shadow);
	aspect-ratio: 9 / 7;
	object-fit: cover;
}
.cp-about-content { color: var(--cp-text-light); }
.cp-about-content p:first-child { margin-top: 0; }
.cp-counters { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 34px; }
.cp-counter { text-align: center; padding: 20px 8px; border-radius: var(--cp-radius); background: #fff; box-shadow: 0 2px 10px rgba(16, 24, 40, .06); }
/* 统计卡带自定义链接时渲染为 <a>：保持原样式并加悬停反馈 */
a.cp-counter { display: block; text-decoration: none; color: inherit; transition: transform .2s ease, box-shadow .2s ease; }
a.cp-counter:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgba(16, 24, 40, .12); }
a.cp-counter:hover .cp-counter-num { color: var(--cp-primary-dark); }
.cp-counter-num { display: block; font-size: clamp(26px, 3vw, 36px); font-weight: 800; color: var(--cp-primary); line-height: 1.2; }
/* 数字后的单位（汉字/符号）：字号小两号、同主色，跟随数字基线 */
.cp-counter-unit { font-size: .68em; font-weight: 700; color: inherit; margin-left: 2px; }
.cp-counter-label { font-size: 13px; color: var(--cp-text-light); }

/* 团队横向滚动 */
.cp-scroller {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 72px) / 4);
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 6px;
}
.cp-scroller::-webkit-scrollbar { display: none; }
.cp-team-card { scroll-snap-align: start; background: #fff; border-radius: var(--cp-radius); overflow: hidden; box-shadow: 0 2px 10px rgba(16, 24, 40, .06); transition: transform .3s, box-shadow .3s; }
.cp-team-card:hover { transform: translateY(-6px); box-shadow: var(--cp-shadow-hover); }
.cp-team-media { display: block; overflow: hidden; aspect-ratio: 1 / 1.05; }
.cp-team-media .cp-card-img { object-position: top; }
.cp-team-body { padding: 16px 18px 20px; text-align: center; }
.cp-team-body h4 { font-size: 16.5px; margin-bottom: 4px; }

/* 团队成员详情页 */
.cp-team-single-in { max-width: 880px; }
.cp-team-single-card { display: grid; grid-template-columns: 300px 1fr; gap: 34px; background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-radius); padding: 30px; box-shadow: var(--cp-shadow); }
.cp-team-single-media { border-radius: 10px; overflow: hidden; background: var(--cp-bg-alt); align-self: start; }
.cp-team-single-img { width: 100%; height: auto; display: block; }
.cp-team-single-name { font-size: 26px; margin: 4px 0 6px; color: #333; }
.cp-team-single-role { color: var(--cp-primary); font-weight: 600; margin: 0 0 16px; }
.cp-team-single-bio { color: var(--cp-text-light); }
.cp-team-single-bio img { max-width: 100%; height: auto; }
.cp-team-single-back { margin-top: 26px; }
@media (max-width: 767px) {
	.cp-team-single-card { grid-template-columns: 1fr; padding: 20px; }
	.cp-team-single-media { max-width: 320px; }
}
.cp-team-body h4 a { color: var(--cp-text); }
.cp-team-body h4 a:hover { color: var(--cp-primary); }
.cp-team-body p { margin: 0; color: var(--cp-text-light); font-size: 13.5px; }
.cp-scroller-nav { display: flex; justify-content: center; gap: 12px; margin-top: 30px; }
.cp-scroller-btn {
	width: 42px; height: 42px;
	border: 1px solid var(--cp-border);
	border-radius: 50%;
	background: #fff;
	color: var(--cp-text);
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	transition: all .25s;
}
.cp-scroller-btn:hover { background: var(--cp-primary); border-color: var(--cp-primary); color: #fff; }

/* 客户反馈 */
.cp-tstm-slider { position: relative; min-height: 220px; }
.cp-tstm-slide {
	position: absolute; inset: 0;
	opacity: 0; visibility: hidden;
	transition: opacity .6s ease;
	display: flex; align-items: stretch; justify-content: center;
}
.cp-tstm-slide.is-active { opacity: 1; visibility: visible; position: relative; }
.cp-tstm-card {
	max-width: 760px;
	background: #fff;
	border-radius: var(--cp-radius);
	box-shadow: var(--cp-shadow);
	padding: 40px 48px;
	display: flex;
	gap: 28px;
	align-items: flex-start;
}
.cp-tstm-avatar {
	flex-shrink: 0;
	width: 76px; height: 76px;
	border-radius: 50%;
	overflow: hidden;
	border: 3px solid #d7e5fd;
	border-color: color-mix(in srgb, var(--cp-primary) 25%, #fff);
}
.cp-tstm-img { width: 100%; height: 100%; object-fit: cover; }
.cp-tstm-content p:first-child { margin-top: 0; }
.cp-tstm-name { font-weight: 700; color: var(--cp-text); margin-top: 14px; }
.cp-tstm-dots { position: static; transform: none; justify-content: center; margin-top: 26px; }

/* 友情链接 */
.cp-links { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.cp-links-title { font-weight: 700; color: var(--cp-text); }
.cp-links ul { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 0; padding: 0; list-style: none; }
.cp-links a { color: var(--cp-text-light); font-size: 14.5px; }
.cp-links a:hover { color: var(--cp-primary); }

/* ---------------- 列表/归档/详情 ---------------- */
.cp-breadcrumb { padding: 16px 0; background: var(--cp-bg-alt); border-bottom: 1px solid var(--cp-border); font-size: 14px; color: var(--cp-text-light); }
.cp-breadcrumb a { color: var(--cp-text-light); }
.cp-breadcrumb a:hover { color: var(--cp-primary); }

.cp-archive-head { margin-bottom: 36px; }
.cp-archive-head h1 { font-size: 28px; margin-bottom: 6px; }
.cp-archive-desc { color: var(--cp-text-light); }

.cp-single { max-width: 900px; margin: 0 auto; }
.cp-single-head { margin-bottom: 26px; }
.cp-single-head h1 { font-size: clamp(24px, 3vw, 32px); }
.cp-single-thumb img { border-radius: var(--cp-radius); width: 100%; margin-bottom: 28px; }
.cp-single-content { font-size: 16px; }
.cp-single-content p { margin: 0 0 1.2em; }
.cp-single-content h2, .cp-single-content h3 { margin-top: 1.6em; }
.cp-single-content img { border-radius: 10px; }
.cp-single-content blockquote { margin: 1.5em 0; padding: 14px 22px; border-left: 4px solid var(--cp-primary); background: var(--cp-bg-alt); border-radius: 0 10px 10px 0; }
.cp-page-links { margin: 1.5em 0; }

.cp-empty { text-align: center; color: var(--cp-text-light); padding: 40px 0; }
.cp-search-again { max-width: 480px; margin: 24px auto 0; }

/* ---------------- 产品详情页 / 列表页 ---------------- */
/* 顶部横幅 */
.cp-pd-banner { position: relative; overflow: hidden; background: var(--cp-dark); padding: 56px 0 44px; text-align: center; }
.cp-pd-banner-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .34; }
.cp-pd-banner-default { background: linear-gradient(120deg, #0a1729 0%, #123a86 55%, var(--cp-primary) 100%); }
.cp-pd-banner .cp-container { position: relative; }
.cp-pd-banner-title {
	color: #fff; margin: 0;
	font-size: clamp(26px, 3.6vw, 40px);
	letter-spacing: 1px;
}
.cp-pd-banner-label {
	display: inline-block; color: #fff; margin: 0;
	font-size: clamp(24px, 3.4vw, 38px);
	font-weight: 700;
	letter-spacing: 1px;
}
.cp-pd-banner-label::after {
	content: ""; display: block; width: 54px; height: 3px;
	background: var(--cp-primary); border-radius: 3px; margin: 14px auto 0;
}
.cp-pd-bc { margin-top: 16px; color: rgba(255, 255, 255, .72); font-size: 14px; }
.cp-pd-bc a { color: rgba(255, 255, 255, .8); }
.cp-pd-bc a:hover { color: #fff; }
.cp-pd-bc span { margin: 0 8px; color: rgba(255, 255, 255, .45); }

/* 布局 */
.cp-pd-wrap {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 34px;
	align-items: start;
	padding-top: 46px;
	padding-bottom: 60px;
}
.cp-pd-wrap.is-wide { grid-template-columns: 1fr; }
.cp-pd-side { position: sticky; top: 96px; display: grid; gap: 20px; }
.cp-pd-main { min-width: 0; }
.cp-pd-card {
	background: #fff;
	border: 1px solid var(--cp-border);
	border-radius: var(--cp-radius);
	box-shadow: var(--cp-shadow);
	padding: 26px;
}
.cp-pd-box { border: 1px solid var(--cp-border); border-radius: var(--cp-radius); overflow: hidden; background: #fff; box-shadow: var(--cp-shadow); }
.cp-pd-box-head { background: var(--cp-primary-dark); padding: 14px 20px; }
.cp-pd-box-head h4 { color: #fff; margin: 0; font-size: 17px; letter-spacing: .5px; }
.cp-pd-box-body { padding: 10px 0; }

/* 侧栏分类树 */
.cp-pd-catlist, .cp-pd-catlist ul { list-style: none; margin: 0; padding: 0; }
.cp-pd-catlist a {
	display: block;
	padding: 11px 20px;
	color: var(--cp-text);
	font-size: 15px;
	border-left: 3px solid transparent;
	transition: all .2s;
}
.cp-pd-catlist > li > a { font-weight: 600; }
.cp-pd-catlist .children a,
.cp-pd-catlist .sub-menu a { padding-left: 40px; color: var(--cp-text-light); font-weight: 400; }
.cp-pd-catlist a:hover { background: var(--cp-bg-alt); color: var(--cp-primary); border-left-color: var(--cp-primary); }
.cp-pd-catlist .current-cat > a,
.cp-pd-catlist .current-cat-parent > a,
.cp-pd-catlist .current-menu-item > a {
	color: var(--cp-primary); background: #eef4ff; border-left-color: var(--cp-primary); font-weight: 600;
}
.cp-pd-side-tip { margin: 12px 20px 4px; font-size: 12px; color: var(--cp-text-light); line-height: 1.6; }

/* 侧栏联系卡 */
.cp-pd-contactbox { padding: 0; }
.cp-pd-contactimg { height: 150px; overflow: hidden; }
.cp-pd-contactimg img { width: 100%; height: 100%; object-fit: cover; }
.cp-pd-contactbody {
	padding: 18px 18px 22px;
	text-align: center;
	background: linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%);
}
.cp-pd-contacticon { display: inline-flex; width: 58px; height: 58px; align-items: center; justify-content: center; border-radius: 50%; background: var(--cp-primary); color: #fff; }
.cp-pd-contacttitle { display: block; margin-top: 12px; font-size: 13px; color: var(--cp-text-light); }
.cp-pd-contacttel { display: block; margin: 4px 0 14px; font-size: 19px; font-weight: 700; color: var(--cp-dark); }
.cp-pd-contacttel:hover { color: var(--cp-primary); }
.cp-btn-block { display: block; width: 100%; text-align: center; }

/* 商品主体：图册 + 信息 */
.cp-pd-top { display: grid; grid-template-columns: minmax(0, 440px) 1fr; gap: 32px; }
.cp-pd-stage { border: 1px solid var(--cp-border); border-radius: 10px; overflow: hidden; background: var(--cp-bg-alt); }
.cp-pd-stage-img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
.cp-pd-thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.cp-pd-thumb {
	width: 74px; height: 74px; padding: 0;
	border: 1px solid var(--cp-border); border-radius: 8px;
	background: #fff; overflow: hidden; cursor: pointer;
	transition: all .2s;
}
.cp-pd-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cp-pd-thumb:hover { border-color: var(--cp-primary); }
.cp-pd-thumb.is-active { border-color: var(--cp-primary); box-shadow: 0 0 0 2px rgba(26, 109, 242, .22); }

.cp-pd-info { min-width: 0; }
.cp-pd-title { margin: 0 0 10px; font-size: clamp(22px, 2.6vw, 30px); }
.cp-pd-subtitle { color: var(--cp-primary); font-size: 16px; font-weight: 600; margin-bottom: 14px; }
.cp-pd-summary { color: var(--cp-text-light); line-height: 1.9; margin-bottom: 18px; }
.cp-pd-tags { margin-bottom: 20px; }
.cp-pd-tags a {
	display: inline-block; padding: 5px 14px;
	border-radius: 999px; background: #eef4ff; color: var(--cp-primary);
	font-size: 13px; font-weight: 600;
}
.cp-pd-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* 正文 / 规格 页签 */
.cp-pd-body { margin-top: 30px; border-top: 1px solid var(--cp-border); padding-top: 26px; }
.cp-pd-body .cp-tabs-nav { justify-content: flex-start; margin-bottom: 22px; }
.cp-spec-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--cp-border); border-radius: 10px; overflow: hidden; }
.cp-spec-table tr:nth-child(odd) { background: var(--cp-bg-alt); }
.cp-spec-table th, .cp-spec-table td { padding: 13px 20px; border-bottom: 1px solid var(--cp-border); font-size: 15px; text-align: left; }
.cp-spec-table tr:last-child th, .cp-spec-table tr:last-child td { border-bottom: 0; }
.cp-spec-table th { width: 220px; color: var(--cp-dark); font-weight: 600; }
.cp-spec-table td { color: var(--cp-text-light); }

/* 上下篇产品 */
.cp-pd-nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 26px; padding-top: 20px; border-top: 1px dashed var(--cp-border); font-size: 14px; }
.cp-pd-nav-item { max-width: 48%; }
.cp-pd-nav-next { text-align: right; }
.cp-pd-nav-item span { display: block; color: var(--cp-text-light); font-size: 12.5px; margin-bottom: 2px; }
.cp-pd-nav-item a:hover { color: var(--cp-primary); }

/* 相关产品 */
.cp-pd-related { margin-top: 48px; }
.cp-pd-related .cp-section-head { margin-bottom: 26px; }

/* 列表页 */
.cp-term-desc { color: var(--cp-text-light); line-height: 1.9; margin-bottom: 22px; }
.cp-pd-listing,
.cp-listing-card { padding: 30px; }

/* 灯箱 */
.cp-lightbox {
	position: fixed; inset: 0; z-index: 2000;
	display: flex; align-items: center; justify-content: center;
	background: rgba(8, 12, 20, .88);
	padding: 40px;
	cursor: zoom-out;
	animation: cp-fade .25s ease;
}
.cp-lightbox img { max-width: 100%; max-height: 100%; border-radius: 6px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); }
.cp-lightbox-close {
	position: absolute; top: 24px; right: 32px;
	width: 44px; height: 44px; border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .16); color: #fff; font-size: 26px; line-height: 1;
	cursor: pointer;
}
.cp-search-again .search-form { display: flex; gap: 10px; }
.cp-search-again .search-form input[type="search"] { flex: 1; padding: 10px 16px; border: 1px solid var(--cp-border); border-radius: 8px; font-size: 15px; }
.cp-search-again .search-form button { padding: 10px 22px; border: 0; border-radius: 8px; background: var(--cp-primary); color: #fff; cursor: pointer; }

/* 分页 */
.pagination, .nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 44px; flex-wrap: wrap; }
.pagination .page-numbers, .nav-links .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px;
	padding: 0 12px;
	border-radius: 8px;
	background: #fff;
	border: 1px solid var(--cp-border);
	color: var(--cp-text);
	font-weight: 600;
	transition: all .2s;
}
.pagination .page-numbers.current, .nav-links .page-numbers.current { background: var(--cp-primary); border-color: var(--cp-primary); color: #fff; }
.pagination .page-numbers:hover, .nav-links .page-numbers:hover { border-color: var(--cp-primary); color: var(--cp-primary); }

/* 404 */
.cp-404 { text-align: center; padding: 90px 0; }
.cp-404 h1 { font-size: 90px; color: var(--cp-primary); line-height: 1; margin-bottom: .3em; }

/* 评论 */
.cp-comments { max-width: 900px; margin: 0 auto; padding: 0 20px 60px; }
.cp-comment-list { list-style: none; margin: 0; padding: 0; }
.cp-comment-list ol.children { list-style: none; padding-left: 30px; }
.cp-comment-list .comment { border-top: 1px solid var(--cp-border); padding: 20px 0; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--cp-border);
	border-radius: 8px;
	font-size: 15px;
	font-family: inherit;
}
.comment-form .submit {
	padding: 11px 28px;
	border: 0;
	border-radius: 999px;
	background: var(--cp-primary);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}

/* ---------------- 页脚 ---------------- */
.cp-footer { color: rgba(255, 255, 255, .78); margin-top: auto; }
.cp-footer h3, .cp-footer h4 { color: #fff; }

.cp-footer-top { background: var(--cp-dark); padding: 40px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.cp-footer-top-in { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.cp-footer-live { display: flex; align-items: center; gap: 18px; }
.cp-footer-live-icon { color: var(--cp-primary); }
.cp-footer-live h3 { font-size: 22px; margin: 0 0 2px; }
.cp-footer-live p { margin: 0; font-size: 14.5px; }
.cp-footer-search form { display: flex; border-radius: 999px; overflow: hidden; background: rgba(255, 255, 255, .1); }
.cp-footer-search input {
	border: 0; outline: 0;
	background: transparent;
	color: #fff;
	padding: 12px 22px;
	width: 300px;
	max-width: 60vw;
	font-size: 14.5px;
}
.cp-footer-search input::placeholder { color: rgba(255, 255, 255, .5); }
.cp-footer-search button {
	border: 0;
	background: var(--cp-primary);
	color: #fff;
	padding: 0 28px;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s;
}
.cp-footer-search button:hover { background: var(--cp-primary-dark); }

.cp-footer-main { background: var(--cp-dark); padding: 56px 0 44px; }
.cp-footer-main-in { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px; }
.cp-footer-brand img { max-height: 48px; margin-bottom: 16px; }
.cp-footer-brand strong { font-size: 22px; color: #fff; letter-spacing: 1px; }
.cp-footer-about-text { font-size: 14.5px; line-height: 1.8; }
.cp-footer-col h4 { font-size: 17px; margin-bottom: 18px; position: relative; padding-bottom: 10px; }
.cp-footer-col h4::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 3px; background: var(--cp-primary); border-radius: 2px; }
.cp-footer-links { list-style: none; margin: 0; padding: 0; }
.cp-footer-links li { margin-bottom: 10px; display: flex; align-items: center; gap: 8px; font-size: 14.5px; }
.cp-footer-links a { color: rgba(255, 255, 255, .72); }
.cp-footer-links a:hover { color: #fff; }
.cp-footer-qr img { width: 120px; height: 120px; border-radius: 8px; background: #fff; padding: 4px; }

.cp-footer-bottom { background: #0b1220; padding: 18px 0; font-size: 13.5px; }
.cp-footer-bottom-in { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 20px; }
.cp-footer-bottom-in > div:only-child { margin: 0 auto; text-align: center; }
.cp-footer-extra { color: rgba(255, 255, 255, .6); }
.cp-footer-bottom a { color: rgba(255, 255, 255, .72); }
.cp-footer-bottom a:hover { color: #fff; }

/* ---------------- 弹窗 / 返回顶部 / 移动端栏 ---------------- */
.cp-modal { position: fixed; inset: 0; z-index: 9999; display: none; }
.cp-modal.is-open { display: block; }
.cp-modal-mask { position: absolute; inset: 0; background: rgba(10, 16, 28, .62); backdrop-filter: blur(3px); }
.cp-modal-dialog {
	position: absolute;
	left: 50%; top: 50%;
	transform: translate(-50%, -50%);
	background: #fff;
	border-radius: 16px;
	padding: 26px;
	text-align: center;
	max-width: 320px;
	width: calc(100vw - 48px);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
	animation: cp-pop .28s ease;
}
@keyframes cp-pop { from { transform: translate(-50%, -46%); opacity: 0; } to { transform: translate(-50%, -50%); opacity: 1; } }
.cp-modal-dialog img { border-radius: 10px; margin: 0 auto 14px; }
.cp-modal-dialog p { margin: 0; color: var(--cp-text-light); font-size: 14.5px; }
.cp-modal-close {
	position: absolute;
	right: 10px; top: 10px;
	width: 30px; height: 30px;
	border: 0; border-radius: 50%;
	background: var(--cp-bg-alt);
	color: var(--cp-text-light);
	font-size: 18px;
	cursor: pointer;
	line-height: 1;
}

.cp-backtop {
	position: fixed;
	right: 26px; bottom: 90px;
	width: 46px; height: 46px;
	border: 0; border-radius: 10px;
	background: var(--cp-primary);
	color: #fff;
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 10px 24px rgba(26, 109, 242, .35);
	opacity: 0;
	visibility: hidden;
	transform: translateY(14px);
	transition: all .3s;
	z-index: 900;
}
.cp-backtop.is-visible { opacity: 1; visibility: visible; transform: none; }
.cp-backtop:hover { background: var(--cp-primary-dark); }

.cp-mobile-bar {
	display: none;
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 950;
	background: #fff;
	border-top: 1px solid var(--cp-border);
	box-shadow: 0 -6px 20px rgba(16, 24, 40, .08);
}
.cp-mobile-bar a, .cp-mobile-bar button {
	flex: 1;
	display: flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 0;
	border: 0;
	background: none;
	color: var(--cp-text);
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
}
.cp-mobile-bar button:first-child, .cp-mobile-bar a:first-child { color: var(--cp-primary); }
.cp-mobile-bar > * + * { border-left: 1px solid var(--cp-border); }

/* ---------------- 进场动画 ---------------- */
.cp-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.cp-reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.cp-reveal { opacity: 1; transform: none; transition: none; }
	html { scroll-behavior: auto; }
}

/* ---------------- 响应式 ---------------- */
@media (max-width: 991px) {
	.cp-topbar { padding: 16px 0; }
	.cp-topinfo { gap: 22px; }

	.cp-grid-4 { grid-template-columns: repeat(3, 1fr); }
	.cp-scroller { grid-auto-columns: calc((100% - 48px) / 3); }
	.cp-about-grid { grid-template-columns: 1fr; gap: 36px; }
	.cp-footer-main-in { grid-template-columns: 1fr 1fr; }
	.cp-hero-title { letter-spacing: .5px; }

	/* 产品页：侧栏移到内容下方 */
	.cp-pd-wrap { grid-template-columns: 1fr; gap: 24px; padding-top: 34px; }
	.cp-pd-side { position: static; grid-template-columns: 1fr 1fr; }
	.cp-pd-side .cp-pd-contactbox { align-self: start; }
	.cp-pd-top { grid-template-columns: 1fr; gap: 22px; }
	.cp-pd-stage { max-width: 460px; }
	.cp-pd-card { padding: 20px; }
	.cp-pd-listing { padding: 20px; }
}

@media (max-width: 767px) {
	:root { --cp-header-h: 56px; }
	.cp-section { padding: 56px 0; }

	.cp-topbar { display: none; }
	.cp-nav-logo { display: inline-flex; margin-right: auto; }
	.cp-burger { display: block; order: -1; }

	/* 移动端抽屉菜单 */
	.cp-menu-wrap {
		position: fixed;
		top: 0; right: 0;
		width: min(78vw, 320px);
		height: 100vh;
		background: #fff;
		transform: translateX(100%);
		transition: transform .3s ease;
		z-index: 2000;
		overflow-y: auto;
		padding: 20px 0 40px;
		box-shadow: -12px 0 32px rgba(16, 24, 40, .18);
	}
	.cp-menu-wrap.is-open { transform: translateX(0); }
	.cp-menu { flex-direction: column; align-items: stretch; gap: 0; padding: 0 12px; }
	.cp-menu a { color: var(--cp-text); padding: 13px 14px; border-radius: 8px; }
	.cp-menu a:hover { color: var(--cp-primary); }
	/* 抽屉里当前项/父级项也不能是白字（白底抽屉看不见） */
	.cp-menu .current-menu-item > a,
	.cp-menu .current_page_item > a,
	.cp-menu .current-menu-ancestor > a { color: var(--cp-primary); }
	.cp-menu a::after { display: none; }
	.cp-menu .menu-item-has-children > a { padding-right: 34px; }
	.cp-menu .menu-item-has-children > a::before { border-color: var(--cp-text-light); }
	.cp-menu ul {
		position: static;
		opacity: 1; visibility: visible; transform: none;
		box-shadow: none;
		background: var(--cp-bg-alt);
		border-radius: 8px;
		margin: 4px 0 8px;
		padding: 6px;
		display: none;
	}
	.cp-menu li.is-sub-open > ul { display: block; }
	.cp-menu ul a { padding: 10px 14px; font-size: 14.5px; font-weight: 400; }
	.cp-wechat-btn {
		display: none;
		color: var(--cp-primary);
		border-color: var(--cp-border);
		width: calc(100% - 24px);
		justify-content: center;
		margin: 12px;
	}
	.cp-wechat-btn:hover { color: var(--cp-primary); }

	.cp-burger { z-index: 2001; position: relative; }
	.cp-burger.is-open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
	.cp-burger.is-open span:nth-child(2) { opacity: 0; }
	.cp-burger.is-open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
	.cp-menu-mask {
		position: fixed; inset: 0;
		background: rgba(10, 16, 28, .5);
		z-index: 1500;
		opacity: 0; visibility: hidden;
		transition: opacity .3s;
	}
	.cp-menu-mask.is-visible { opacity: 1; visibility: visible; }

	.cp-grid-2, .cp-grid-3, .cp-grid-4 { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.cp-scroller { grid-auto-columns: 72%; gap: 14px; }
	.cp-counters { grid-template-columns: repeat(3, 1fr); gap: 10px; }
	.cp-tstm-card { flex-direction: column; gap: 18px; padding: 28px 24px; text-align: center; }
	.cp-tstm-avatar { margin: 0 auto; }
	.cp-hero-slide { min-height: calc(var(--cp-hero-h, 660px) * .62); }
	.cp-hero-content { padding: 62px 0 84px; }
	.cp-hero-badge { letter-spacing: 1.5px; padding: 6px 16px; margin-bottom: 16px; font-size: 12.5px; }
	.cp-hero-rule { width: 62px; margin-bottom: 20px; }
	.cp-hero-desc { line-height: 1.8; margin-bottom: 26px; }
	.cp-btn-lg { padding: 9px 22px; font-size: 14px; gap: 7px; }
	.cp-btn-lg svg { width: 15px; height: 15px; }
	.cp-hero-arrow { display: none; }
	.cp-hero-scroll { display: none; }
	.cp-hero-dots { bottom: 20px; }
	.cp-footer-top-in { flex-direction: column; text-align: center; }
	.cp-footer-live { flex-direction: column; text-align: center; }
	.cp-footer-main-in { grid-template-columns: 1fr; gap: 30px; }
	.cp-footer-bottom-in { flex-direction: column; text-align: center; }

	body.cp-has-mobile-bar { padding-bottom: 52px; }
	.cp-mobile-bar { display: flex; }
	.cp-backtop { bottom: 64px; right: 14px; width: 42px; height: 42px; }

	.cp-pd-banner { padding: 40px 0 32px; }
	.cp-pd-side { grid-template-columns: 1fr; }
	/* 手机端：隐藏侧栏联系卡（底部联系栏已有电话/微信入口） */
	.cp-pd-side .cp-pd-contactbox { display: none; }
	/* 手机端：分类导航改为胶囊按钮组（无边框卡片、无标题栏） */
	.cp-pd-catnav { background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
	.cp-pd-catnav .cp-pd-box-head { display: none; }
	.cp-pd-catnav .cp-pd-box-body { padding: 0; }
	.cp-pd-catnav .cp-pd-side-tip { display: none; }
	.cp-pd-catnav .cp-pd-catlist,
	.cp-pd-catnav .cp-pd-catlist ul { display: flex; flex-wrap: wrap; gap: 10px; }
	.cp-pd-catnav .cp-pd-catlist a,
	.cp-pd-catnav .cp-pd-catlist .children a,
	.cp-pd-catnav .cp-pd-catlist .sub-menu a {
		display: inline-block;
		padding: 8px 18px;
		background: #fff;
		border: 1px solid var(--cp-border);
		border-left: 1px solid var(--cp-border);
		border-radius: 999px;
		color: var(--cp-text);
		font-size: 13.5px;
		font-weight: 500;
		line-height: 1.5;
	}
	.cp-pd-catnav .cp-pd-catlist a:hover { background: var(--cp-bg-alt); color: var(--cp-primary); border-color: var(--cp-primary); }
	.cp-pd-catnav .cp-pd-catlist .current-cat > a,
	.cp-pd-catnav .cp-pd-catlist .current-cat-parent > a,
	.cp-pd-catnav .cp-pd-catlist .current-menu-item > a {
		background: var(--cp-primary);
		border-color: var(--cp-primary);
		color: #fff;
	}
	.cp-pd-stage { max-width: none; }
	.cp-spec-table th { width: 120px; }
	.cp-spec-table th, .cp-spec-table td { padding: 11px 14px; font-size: 14px; }
	.cp-pd-nav { flex-direction: column; gap: 10px; }
	.cp-pd-nav-item, .cp-pd-nav-next { max-width: none; text-align: left; }
	.cp-pd-actions .cp-btn { flex: 1; justify-content: center; }
	.cp-pd-body .cp-tabs-nav { justify-content: center; }
}

@media (max-width: 420px) {
	.cp-grid-2, .cp-grid-3, .cp-grid-4 { grid-template-columns: 1fr; }
	.cp-scroller { grid-auto-columns: 86%; }
}

/* ---------------- 编辑器/工具类 ---------------- */
.aligncenter { display: block; margin: 0 auto; }
.alignright { float: right; margin: 0 0 16px 16px; }
.alignleft { float: left; margin: 0 16px 16px 0; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 13px; color: var(--cp-text-light); text-align: center; }

/* ---------------- 移动端隐藏详情页/列表页顶部横幅（可在主题设置中关闭） ---------------- */
@media (max-width: 767px) {
	.cp-banner-hide-mobile { display: none; }
}

/* ---------------- 文章 / 页面内容卡片（参照企业主题通用版式） ---------------- */
.cp-post-card { padding: 36px 42px; }
.cp-post-head { text-align: center; }
.cp-post-title {
	font-size: clamp(22px, 2.6vw, 30px);
	line-height: 1.35;
	margin: 0 0 14px;
}
.cp-post-meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 18px;
	margin: 0;
	color: var(--cp-text-light);
	font-size: 13.5px;
}
.cp-post-meta-item { display: inline-flex; align-items: center; gap: 5px; }
.cp-post-meta-item a { color: var(--cp-primary); }
.cp-post-meta-item a:hover { text-decoration: underline; }
.cp-post-line {
	position: relative;
	height: 2px;
	max-width: 72%;
	margin: 26px auto 32px;
	background: linear-gradient(90deg, transparent 0%, var(--cp-border) 18%, var(--cp-border) 82%, transparent 100%);
}
.cp-post-line span {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 4px;
	border-radius: 4px;
	background: var(--cp-primary);
}
.cp-post-thumb { margin: 0 0 26px; }
.cp-post-thumb img { width: 100%; border-radius: 10px; display: block; }
.cp-post-tags {
	margin-top: 30px;
	padding-top: 18px;
	border-top: 1px dashed var(--cp-border);
	font-size: 13.5px;
	color: var(--cp-text-light);
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.cp-post-tags a {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 999px;
	background: var(--cp-bg-alt);
	color: var(--cp-text);
	font-size: 13px;
	transition: all .2s;
}
.cp-post-tags a:hover { background: var(--cp-primary); color: #fff; }
.cp-post-nav { margin-top: 30px; }

/* 侧栏：搜索框 */
.cp-post-search { display: flex; gap: 8px; padding: 12px; }
.cp-post-search input[type="search"] {
	flex: 1;
	min-width: 0;
	border: 1px solid var(--cp-border);
	border-radius: 8px;
	padding: 9px 12px;
	font-size: 14px;
	background: var(--cp-bg-alt);
}
.cp-post-search input[type="search"]:focus { outline: none; border-color: var(--cp-primary); background: #fff; }
.cp-post-search button {
	width: 42px;
	border: 0;
	border-radius: 8px;
	background: var(--cp-primary);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .2s;
}
.cp-post-search button:hover { background: var(--cp-primary-dark); }

/* 侧栏：相关文章 / 最新文章列表 */
.cp-post-relist { list-style: none; margin: 0; padding: 4px 14px; }
.cp-post-relitem {
	display: flex;
	gap: 12px;
	padding: 12px 0;
	align-items: center;
}
.cp-post-relitem + .cp-post-relitem { border-top: 1px dashed var(--cp-border); }
.cp-post-relthumb {
	flex-shrink: 0;
	width: 96px;
	height: 66px;
	border-radius: 8px;
	overflow: hidden;
	display: block;
	background: var(--cp-bg-alt);
}
.cp-post-relimg { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.cp-post-relitem:hover .cp-post-relimg { transform: scale(1.06); }
.cp-post-relbody { min-width: 0; }
.cp-post-relbody h5 {
	margin: 0 0 4px;
	font-size: 14px;
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cp-post-relbody h5 a { color: var(--cp-text); }
.cp-post-relbody h5 a:hover { color: var(--cp-primary); }
.cp-post-relbody time { font-size: 12px; color: var(--cp-text-light); }

@media (max-width: 767px) {
	.cp-post-card { padding: 22px 18px; }
	.cp-post-line { max-width: 100%; }
}

/* 文章 / 页面：内容在左、侧栏在右（产品/案例页保持侧栏在左不变）
   限定桌面端，避免覆盖移动端媒体查询的单列布局 */
@media (min-width: 992px) {
	.cp-pd-wrap.has-side-right { grid-template-columns: 1fr 280px; }
}

/* ---------------- 正文与标题配色调整（v1.3.7） ---------------- */
/* 产品中心 / 案例展示 / 新闻动态页面：正文统一为 rgba(85,85,85,1) */
.cp-pd-main { color: rgba(85, 85, 85, 1); }

/* 这些页面的 h2~h5 标题用 #333（侧栏蓝色盒头标题不在 cp-pd-main 内，仍为白色） */
.cp-pd-main h2, .cp-pd-main h3, .cp-pd-main h4, .cp-pd-main h5 { color: #333; }

/* 卡片标题（首页/列表页圈选处）：中等字重（不要太粗），颜色 rgba(85,85,85,1) */
.cp-card-title { font-weight: 500; }
.cp-pd-main .cp-card-title,
.cp-pd-main .cp-card-title a,
.cp-card-title a { color: rgba(85, 85, 85, 1); }
.cp-card-title a:hover { color: var(--cp-primary); }

/* 侧栏分类导航（圈选处）：取消加粗，颜色改为 rgba(85,85,85,1)
   当前分类仍保留浅蓝背景与左侧蓝条高亮，仅文字不再加粗变色 */
.cp-pd-catlist a,
.cp-pd-catlist > li > a,
.cp-pd-catlist .children a,
.cp-pd-catlist .sub-menu a,
.cp-pd-catlist .current-cat > a,
.cp-pd-catlist .current-cat-parent > a,
.cp-pd-catlist .current-menu-item > a {
	color: rgba(85, 85, 85, 1);
	font-weight: 500;
}
.cp-pd-catlist a:hover { color: var(--cp-primary); }

/* 新闻卡片标题：字号小一号（16.5 → 15） */
.cp-news-card .cp-card-title { font-size: 15px; }

/* ---------------- 列表页分页（首页/上一页/页码/下一页/尾页） ---------------- */
.cp-pagination { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 44px; flex-wrap: wrap; }
.cp-page-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 38px;
	padding: 0 14px;
	background: #fff;
	border: 1px solid var(--cp-border);
	border-radius: 4px;
	color: var(--cp-text);
	font-size: 14px;
	transition: all .2s;
	white-space: nowrap;
}
a.cp-page-btn:hover { border-color: var(--cp-primary); color: var(--cp-primary); }
.cp-page-btn.is-current {
	background: var(--cp-primary);
	border-color: var(--cp-primary);
	color: #fff;
	font-weight: 600;
}
.cp-page-btn.cp-page-total { color: var(--cp-text-light); background: var(--cp-bg-alt); }
.cp-page-btn.is-disabled { color: #b8c0cc; background: #f7f9fc; cursor: not-allowed; }
