/* ========== 全局 ========== */
:root {
	--bg: #03040A;            /* 站点底色 */
	--bg-2: #0d1226;
	--card: #101636;          /* 合作卡片底色（设计指定） */
	--line: rgba(255, 255, 255, 0.08);
	--text: #ffffff;
	--sub: rgba(255, 255, 255, 0.55);
	--blue: #2f7bff;
	--cyan: #00d4ff;
	--grad: linear-gradient(135deg, #2f7bff, #00d4ff);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	background: var(--bg);
	color: var(--text);
	font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
	line-height: 1.6;
	overflow-x: hidden;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

.container { width: min(1200px, 92%); margin: 0 auto; }

/* ========== 滚动入场动画系统 ==========
   基于 CSS animation（而非 transition）实现，避免与卡片自身 hover 过渡互相覆盖；
   级联延迟由 JS 按同父级分组写入 animation-delay（见 main.js）；
   方向变体：reveal-left / reveal-right / reveal-scale / reveal-blur，与 reveal 叠加使用 */
.reveal, .reveal-left, .reveal-right, .reveal-scale, .reveal-blur { opacity: 0; }
/* fill 只用 backwards：延迟期间显示起始帧（隐藏），动画结束后回归自然样式，
   避免填充的最终帧一直压住卡片 hover 的 transform */
.reveal.in { opacity: 1; animation: rv-up 1s cubic-bezier(0.22, 0.61, 0.36, 1) backwards; }
.reveal-left.in { opacity: 1; animation: rv-left 1s cubic-bezier(0.22, 0.61, 0.36, 1) backwards; }
.reveal-right.in { opacity: 1; animation: rv-right 1s cubic-bezier(0.22, 0.61, 0.36, 1) backwards; }
.reveal-scale.in { opacity: 1; animation: rv-scale 1s cubic-bezier(0.22, 0.61, 0.36, 1) backwards; }
.reveal-blur.in { opacity: 1; animation: rv-blur 1s cubic-bezier(0.22, 0.61, 0.36, 1) backwards; }
@keyframes rv-up { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: none; } }
@keyframes rv-left { from { opacity: 0; transform: translateX(-60px); } to { opacity: 1; transform: none; } }
@keyframes rv-right { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: none; } }
@keyframes rv-scale { from { opacity: 0; transform: scale(0.88); } to { opacity: 1; transform: none; } }
@keyframes rv-blur { from { opacity: 0; filter: blur(12px); transform: translateY(24px); } to { opacity: 1; filter: blur(0); transform: none; } }

/* 合作伙伴「对开门」入场：同一排左右两半分别从两侧向中间合拢；
   位移比通用变体更大（90px）以突出开门感，方向随断点列数重排（见响应式） */
@keyframes doorL { from { opacity: 0; transform: translateX(-90px); } to { opacity: 1; transform: none; } }
@keyframes doorR { from { opacity: 0; transform: translateX(90px); } to { opacity: 1; transform: none; } }
.com-grid > .reveal.in:nth-child(4n+1), .com-grid > .reveal.in:nth-child(4n+2) { animation-name: doorL; }
.com-grid > .reveal.in:nth-child(4n+3), .com-grid > .reveal.in:nth-child(4n) { animation-name: doorR; }

/* Hero 首屏编排：页面加载时 Hero 文字元素依次浮现（nth-child 越靠后越晚，第 6 个起统一 0.9s） */
@keyframes heroRise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.hero-copy > *, .cust-hero-copy > *, .sol-hero-copy > * {
	animation: heroRise 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) backwards;
	animation-delay: 0.9s;
}
.hero-copy > *:nth-child(1), .cust-hero-copy > *:nth-child(1), .sol-hero-copy > *:nth-child(1) { animation-delay: 0.15s; }
.hero-copy > *:nth-child(2), .cust-hero-copy > *:nth-child(2), .sol-hero-copy > *:nth-child(2) { animation-delay: 0.32s; }
.hero-copy > *:nth-child(3), .cust-hero-copy > *:nth-child(3), .sol-hero-copy > *:nth-child(3) { animation-delay: 0.49s; }
.hero-copy > *:nth-child(4), .cust-hero-copy > *:nth-child(4), .sol-hero-copy > *:nth-child(4) { animation-delay: 0.66s; }
.hero-copy > *:nth-child(5), .cust-hero-copy > *:nth-child(5), .sol-hero-copy > *:nth-child(5) { animation-delay: 0.78s; }

/* 首页大标题：从左向右擦入（clip-path 划开 + 左侧起始位移），替代默认的底部上浮 */
@keyframes heroWipe {
	from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-28px); }
	to { opacity: 1; clip-path: inset(0 0 0 0); transform: none; }
}
.hero-copy h1 { animation-name: heroWipe; animation-duration: 1s; }

/* ========== 主按钮微交互：hover 光泽扫过 + 箭头方向位移 ==========
   光带用 ::after 内 background-position 动画实现（不依赖 overflow:hidden，
   避免裁掉 hero-btn 外扩 2px 的四角角标）；过渡只声明在 hover 态，移开时瞬间复位 */
.nav-btn, .hero-btn, .process-btn, .pain-btn, .news-btn, .sol-btn, .cust-hero-cta,
.contact-form button[type="submit"], .ct-submit { position: relative; }
.nav-btn::after, .hero-btn::after, .process-btn::after, .pain-btn::after, .news-btn::after,
.sol-btn::after, .cust-hero-cta::after, .contact-form button[type="submit"]::after, .ct-submit::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
	background: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, 0.45) 50%, transparent 60%);
	background-size: 250% 100%;
	background-position: 100% 0;   /* 光带停靠在左外侧 */
}
.nav-btn:hover::after, .hero-btn:hover::after, .process-btn:hover::after, .pain-btn:hover::after,
.news-btn:hover::after, .sol-btn:hover::after, .cust-hero-cta:hover::after,
.contact-form button[type="submit"]:hover::after, .ct-submit:hover::after {
	background-position: -50% 0;   /* hover：光带从左向右扫过 */
	transition: background-position 0.9s ease;
}
/* 箭头图标随 hover 平移，暗示指向方向 */
.hero-btn img, .process-btn img, .pain-btn img, .sol-btn img, .svc-link img,
.contact-form button[type="submit"] img, .ct-submit img { transition: transform 0.3s ease; }
.hero-btn:hover img, .svc-link:hover img,
.contact-form button[type="submit"]:hover img { transform: translate(2px, -2px); }        /* ↗ 上右 */
.process-btn:hover img, .pain-btn:hover img, .sol-btn:hover img, .ct-submit:hover img { transform: translateX(4px); }  /* → 向右 */

/* 通用标题（无整图头部的板块用） */
.section-title { text-align: center; margin-bottom: 56px; }
.section-title h2 { font-size: 34px; letter-spacing: 2px; }
.section-title p { color: var(--sub); margin-top: 10px; font-size: 15px; }

/* 整图区块头部（文字已切进图内） */
.section-head-img { text-align: center; margin-bottom: 56px; }
.section-head-img img { width: min(1000px, 100%); height: auto; margin: 0 auto; }

/* ========== 导航（仅中间 tab 栏为白色玻璃胶囊，logo 与按钮独立在外） ========== */
.nav {
	position: fixed; top: 14px; left: 0; right: 0; z-index: 100;
}
/* 整行布局：logo 左、tab 胶囊居中、按钮右 */
.nav-inner {
	width: min(1400px, 94%); margin: 0 auto;
	height: 64px; display: flex; align-items: center; gap: 20px;
}
.nav-logo img { height: 62px; width: auto; }
/* tab 胶囊容器：白色 10% 透明度 + 模糊 */
.nav-menu {
	display: flex; gap: 4px; margin: 0 auto;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
	padding: 6px;
	transition: background 0.35s ease;
}
/* 滚动后胶囊底色略加深，保证可读 */
.nav.scrolled .nav-menu { background: rgba(255, 255, 255, 0.16); }
.nav-menu a {
	font-size: 14px; color: rgba(255, 255, 255, 0.82);
	padding: 7px 13px; border-radius: 999px;
	transition: color 0.25s, background 0.25s;
}
.nav-menu a:hover { color: #fff; background: rgba(255, 255, 255, 0.08); }
/* 激活态：深色药丸高亮 */
.nav-menu a.active { color: #fff; background: #1c2444; }
/* 下拉箭头 ▼ */
.nav-menu a.has-drop::after {
	content: ""; display: inline-block; vertical-align: 2px; margin-left: 5px;
	width: 0; height: 0;
	border-left: 4px solid transparent; border-right: 4px solid transparent;
	border-top: 5px solid rgba(255, 255, 255, 0.55);
	transition: border-top-color 0.25s;
}
.nav-menu a:hover.has-drop::after,
.nav-menu a.active.has-drop::after { border-top-color: #fff; }
.nav-btn {
	padding: 9px 22px; border-radius: 999px; font-size: 14px;
	background: var(--grad); color: #fff; white-space: nowrap;
	box-shadow: 0 4px 18px rgba(47, 123, 255, 0.4);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.nav-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(47, 123, 255, 0.55); }
.nav-toggle { display: none; background: none; border: 0; flex-direction: column; gap: 5px; margin-left: auto; }
.nav-toggle span { width: 22px; height: 2px; background: #fff; transition: 0.3s; }

/* ========== Hero（背景图 + 文字叠放，左侧竖排居中） ========== */
/* Sticky Hero：首屏钉在视口顶部，后续板块滚动时从下往上盖住（"内容上滑覆盖"效果） */
.hero { position: sticky; top: 0; z-index: 1; }
/* 配套：main 内其余板块提升到钉住的 Hero 之上；
   原先背景透明（透 body 底）的板块补上同色实底，保证能盖住 Hero，视觉无变化 */
main > section:not(.hero) { position: relative; z-index: 2; }
.partners, .services, .process, .why, .case, .news { background: var(--bg); }
/* 增强层（"沉下去"纵深感）：JS 按滚动深度写 --hero-scale（背景微缩）/
   --hero-pop（圆球+文案组强缩）/--hero-fade（圆球+文案组渐隐）/--hero-dim（整体压暗），
   变量默认值 1/1/1/0，无 JS 或 reduce-motion 时零影响 */
.hero::after {
	content: ''; position: absolute; inset: 0; z-index: 3;
	background: #000; opacity: var(--hero-dim, 0); pointer-events: none;
}
.hero > img { transform: scale(var(--hero-scale, 1)); }
.hero img { width: 100%; height: auto; }
.hero-copy {
	position: absolute; left: 15%; top: 35%;
	transform: translateY(-50%) scale(var(--hero-pop, 1));
	opacity: var(--hero-fade, 1);
	max-width: 560px;
}
/* 右侧圆球（从背景图抠出的独立元素）：右侧垂直居中；
   入场从右向左滑入（与左侧文字同族动效，延迟卡在标题与正文之间）；
   持续旋转拆到内层 img 上——外层管位移、内层管旋转，transform 互不覆盖 */
.hero-sphere {
	position: absolute; right: 4%; top: 50%;
	width: clamp(320px, 40vw, 800px);
	transform: translateY(-50%) scale(var(--hero-pop, 1));
	opacity: var(--hero-fade, 1);
	pointer-events: none;
	animation: sphereIn 1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.5s backwards;
}
.hero-sphere img { display: block; width: 100%; height: auto; animation: sphereSpin 20s linear infinite; }
@keyframes sphereIn {
	from { opacity: 0; transform: translate(90px, -50%); }
	to { opacity: 1; transform: translate(0, -50%); }
}
@keyframes sphereSpin { to { transform: rotate(360deg); } }
/* 描边小标签 */
.hero-tag {
	display: inline-block; padding: 4px 10px;
	border: 1px solid rgba(122, 150, 199, 0.65);
	font-size: 13px; color: rgba(255, 255, 255, 0.85); letter-spacing: 1px;
	margin-bottom: 22px;
}
/* 三行大标题：第二行青色 */
.hero-copy h1 { font-size: clamp(38px, 3.7vw, 68px); line-height: 1.22; font-weight: 700; letter-spacing: 2px; }
.hero-copy h1 em { font-style: normal; color: var(--cyan); }
/* 小字介绍 */
.hero-copy p { margin-top: 16px; max-width: 460px; font-size: 14px; line-height: 1.8; color: rgba(255, 255, 255, 0.6); }
/* 免费咨询按钮：蓝紫底 + 四角白色角标框（用 8 条渐变细条画出四个 L 角） */
.hero-btn {
	position: relative;
	display: inline-flex; align-items: center; gap: 8px;
	margin-top: 26px; padding: 11px 26px;
	background: #4237E8;
	font-size: 14px; color: #fff; letter-spacing: 1px;
	transition: transform 0.25s ease, background 0.25s ease;
}
.hero-btn::before {
	content: ""; position: absolute; inset: -2px; pointer-events: none;
	background:
		linear-gradient(#fff, #fff) left 0 top 0 / 10px 2px,
		linear-gradient(#fff, #fff) left 0 top 0 / 2px 10px,
		linear-gradient(#fff, #fff) right 0 top 0 / 10px 2px,
		linear-gradient(#fff, #fff) right 0 top 0 / 2px 10px,
		linear-gradient(#fff, #fff) left 0 bottom 0 / 10px 2px,
		linear-gradient(#fff, #fff) left 0 bottom 0 / 2px 10px,
		linear-gradient(#fff, #fff) right 0 bottom 0 / 10px 2px,
		linear-gradient(#fff, #fff) right 0 bottom 0 / 2px 10px;
	background-repeat: no-repeat;
}
.hero-btn img { width: 16px; height: 16px; }
.hero-btn:hover { transform: translateY(-4px); background: #5248f0; }

/* ========== 开发服务范围 ========== */
.services { padding: 40px 0; }
.svc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.svc-card {
	background: var(--bg-2); border: 1px solid var(--line); border-radius: 16px;
	padding: 24px; transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
/* hover 蓝色光晕边框（还原设计稿） */
.svc-card:hover {
	transform: translateY(-6px);
	border-color: rgba(47, 123, 255, 0.65);
	box-shadow: 0 0 24px rgba(47, 123, 255, 0.25), inset 0 0 12px rgba(47, 123, 255, 0.08);
}
.svc-img {
	border-radius: 12px; overflow: hidden; border: 1px solid var(--line);
	background: #070a14;
}
.svc-img img { width: 100%; height: auto; }
.svc-card h3 { font-size: 22px; margin: 18px 0 4px; }
.svc-link {
	display: inline-flex; align-items: center; gap: 6px;
	margin-top: 14px;
	font-size: 13px; color: #fff;
	border: 1px solid var(--line); border-radius: 999px; padding: 4px 14px;
	transition: color 0.25s, border-color 0.25s;
}
.svc-link img { width: 12px; height: 12px; }
.svc-link:hover { color: #fff; border-color: rgba(47, 123, 255, 0.6); }
.svc-card > p { font-size: 14px; color: var(--sub); margin-top: 12px; }

/* ========== 软件开发流程（左右结构：左文字 + 右步骤卡片） ========== */
.process { padding: 40px 0; }
.process-wrap { display: grid; grid-template-columns: 2fr 3fr; gap: 56px; align-items: center; }
/* 左侧 */
.process-label {
	display: inline-block; font-size: 12px; letter-spacing: 2px; color: var(--cyan);
	border: 1px solid rgba(0, 212, 255, 0.35); border-radius: 999px; padding: 6px 14px; margin-bottom: 22px;
}
.process-left h2 { font-size: 36px; margin-bottom: 16px; }
.process-left > p { color: var(--sub); font-size: 15px; line-height: 1.8; margin-bottom: 32px; }
.process-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 13px 30px; border-radius: 999px;
	background: linear-gradient(135deg, #2f7bff, #7b5cff); color: #fff;
	font-size: 13px; letter-spacing: 1px;
	box-shadow: 0 6px 20px rgba(47, 123, 255, 0.35);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.process-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(47, 123, 255, 0.5); }
.process-btn img { width: 14px; height: 14px; }
/* 右侧步骤卡片 */
.process-right { display: flex; flex-direction: column; gap: 16px; }
.p-card {
	background: rgba(255, 255, 255, 0.05); border: 1px solid var(--line); border-radius: 14px;
	padding: 20px 22px;
	transition: background 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}
/* hover 深靛蓝高亮（还原设计稿激活态） */
.p-card:hover {
	background: rgba(30, 27, 75, 0.85);
	border-color: rgba(123, 92, 255, 0.45);
	transform: translateX(6px);
}
.p-head { display: flex; align-items: center; gap: 14px; }
.p-num {
	width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
	background: #1c2136; border: 1px solid var(--line);
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-style: italic; font-size: 14px; color: #fff;
}
.p-head h3 { font-size: 17px; }
.p-plus { margin-left: auto; color: var(--sub); font-size: 20px; font-weight: 300; }
.p-card > p { font-size: 13px; color: var(--sub); line-height: 1.7; margin-top: 12px; }

/* ========== 为什么多米诺脱颖而出 ========== */
.why { padding: 20px 0 60px; }
/* 设计稿：3 列网格、5 张卡 */
.why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.why-card {
	position: relative; border: 1px solid #0E122E;
	background: #00020F;
	border-radius: 16px; padding: 20px 22px; overflow: hidden;
	transition: transform 0.35s ease, border-color 0.35s ease;
}
/* 角落蓝色光晕装饰（还原设计稿角标） */
.why-card::before {
	content: ""; position: absolute; top: -40px; right: -40px;
	width: 110px; height: 110px; border-radius: 50%;
	background: radial-gradient(circle, rgba(47,123,255,.35), transparent 70%);
	opacity: 0; transition: opacity 0.4s ease;
}
.why-card:hover { transform: translateY(-6px); border-color: rgba(47, 123, 255, 0.5); }
.why-card:hover::before { opacity: 1; }
.why-icon { width: 34px; height: 34px; margin: 0 0 14px; }
.why-card h3 { font-size: 18px; margin-bottom: 8px; }
.why-card p { font-size: 13px; color: var(--sub); }

/* ========== 合作伙伴（紧接 Hero，无标题，卡片上叠压住 Banner 底部） ========== */
.partners {
	position: relative; z-index: 2;
	margin-top: -72px;              /* 负边距：卡片压住 Hero 底部，还原设计稿叠层 */
	padding: 0 0 40px;
}
.com-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
/* 核心效果：默认 #101636 深蓝底 + logo 居中 */
.com-card {
	position: relative; overflow: hidden;
	background: var(--card);
	border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 14px;
	height: 190px;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
	transition: border-color 0.35s ease, transform 0.35s ease;
}
.com-card:hover { border-color: rgba(255, 255, 255, 0.35); transform: translateY(-4px); }
.com-logo { max-height: 58px; max-width: 62%; width: auto; object-fit: contain; }
/* hover 层：白色半透明 + 模糊，默认藏在卡片底部，hover 从底部推上来覆盖全卡 */
.com-mask {
	position: absolute; inset: 0;
	background: rgba(255, 255, 255, 0.16);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	display: flex; flex-direction: column;
	padding: 20px;
	transform: translateY(101%);
	transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.com-card:hover .com-mask { transform: translateY(0); }
/* 引文：白色文字，顶部对齐，最多 4 行 */
.com-quote {
	font-size: 13px; line-height: 1.7; color: #fff;
	display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
/* 底部品牌栏：分割线 + logo/公司名（左）+ 成功故事标签（右） */
.com-foot {
	margin-top: auto;
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	padding-top: 12px;
}
.com-brand { display: flex; align-items: center; gap: 8px; min-width: 0; }
.com-brand img { height: 26px; width: auto; max-width: 84px; object-fit: contain; flex-shrink: 0; }
.com-brand span {
	font-size: 13px; font-weight: 600; color: #fff;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.com-tag {
	flex-shrink: 0; font-size: 11px; line-height: 1; padding: 5px 10px;
	border-radius: 999px; color: #7ef0b2;
	background: rgba(76, 222, 128, 0.14); border: 1px solid rgba(76, 222, 128, 0.35);
}

/* ========== 案例展示（顶部渐变字胶囊标签+标题描述，下方 300px 长图横向滚动，上下黑色渐变阴影） ========== */
.case { padding-top:40px; }
/* 头部：胶囊标签（渐变字）+ 居中标题 + 描述 */
.case-head { text-align: center; margin-bottom: 36px; }
.case-tag {
	display: inline-block; padding: 7px 18px; margin-bottom: 18px;
	border: 1px solid rgba(255, 255, 255, 0.10); border-radius: 1000px;
	font-size: 13px; letter-spacing: 1px;
	background: linear-gradient(90deg, #4B33FF, #FFFFFF);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent;
}
.case-head h2 { font-size: 40px; margin-bottom: 14px; }
.case-head p { max-width: 640px; margin: 0 auto; font-size: 14px; line-height: 1.75; color: var(--sub); }
.case-inner {
	position: relative; overflow: hidden;
	height: 500px;
}
/* 上下黑色渐变阴影：PC 上下各 150px，中间留出干净区 */
.case-inner::before,
.case-inner::after {
	content: ""; position: absolute; left: 0; right: 0; height: 150px;
	z-index: 2; pointer-events: none;
}
.case-inner::before { top: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0.92), transparent); }
.case-inner::after { bottom: 0; background: linear-gradient(0deg, rgba(0, 0, 0, 0.92), transparent); }
/* 长图无缝循环横滚：两份相同图并排，平移 -50% 后回绕 */
.case-track {
	display: flex; align-items: center;
	height: 100%; width: max-content;
	animation: caseScroll 60s linear infinite;
	will-change: transform;
}
.case-track img { height: 100%; width: auto; flex-shrink: 0; }
@keyframes caseScroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
/* 居中胶囊横幅 */
.case-banner {
	position: absolute; top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	z-index: 5;
	filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.5));
}
.case-banner img { width: min(656px, 72vw); height: auto; }
/* 移动端专用胶囊图（case-conet2），桌面端隐藏 */
.case-banner .banner-m { display: none; }

/* ========== 客户答疑（渐变背景：桌面左右结构=左文字排版+右答题卡；移动端上下堆叠） ========== */
.faq {
	padding: 90px 0;
	/* Sticky Hero 配套：补 var(--bg) 实底盖住钉住的 Hero（原透 body 底，视觉不变），
	   白色 0.05 透明层改为同值渐变垫在最上层 */
	background-color: var(--bg);
	background-image:
		linear-gradient(180deg, #110FDF 0%, rgba(17, 15, 223, 0.00) 100%),
		linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05));
}
/* 左右结构：左列文字排版 + 右列白色答题卡 */
.faq-grid {
	width: min(1200px, 92%); margin: 0 auto;
	display: flex; align-items: center; gap: 60px;
}
.faq-head { display: block; flex: 1; max-width: 520px; }
.faq-head-label { display: block; font-size: 15px; color: rgba(255, 255, 255, 0.85); margin-bottom: 18px; }
.faq-head h2 {
	font-size: 40px; margin-bottom: 32px;
	padding-bottom: 36px; border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}
.faq-head > p { font-size: 16px; line-height: 1.8; color: rgba(255, 255, 255, 0.75); margin-bottom: 40px; }
.faq-feats { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.faq-feat-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.faq-feat-head img { width: 20px; height: 20px; }
.faq-feat-head h3 { font-size: 16px; }
.faq-feat > p { font-size: 14px; line-height: 1.75; color: rgba(255, 255, 255, 0.65); }
.faq-card {
	width: min(560px, 100%); flex-shrink: 0;
	background: #fff; border-radius: 18px; padding: 30px 32px;
	box-shadow: 0 24px 60px rgba(4, 8, 20, 0.45);
}
/* 绿色标签 */
.faq-tag {
	display: inline-block; font-size: 12px; color: #00a85a;
	background: rgba(0, 210, 106, 0.12); border: 1px solid rgba(0, 210, 106, 0.35);
	border-radius: 999px; padding: 5px 14px; margin-bottom: 14px;
}
/* 手风琴列表 */
.faq-item + .faq-item { border-top: 1px solid #eef0f6; }
.faq-q {
	width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px;
	background: none; border: 0; text-align: left; cursor: pointer;
	font-size: 15px; font-weight: 600; color: #131a33; padding: 16px 0;
}
.faq-q span { transition: color 0.25s; }
.faq-q:hover span { color: #2f7bff; }
/* 折叠箭头：收起时向右，展开时旋转向下并变绿 */
.faq-arrow {
	width: 9px; height: 9px; flex-shrink: 0;
	border-right: 2px solid #9aa3bd; border-bottom: 2px solid #9aa3bd;
	transform: rotate(-45deg);
	transition: transform 0.3s ease, border-color 0.3s ease;
}
.faq-item.active .faq-arrow { transform: rotate(45deg); border-color: #00a85a; }
/* 答案：默认收起，展开时撑开 */
.faq-a { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.faq-a p { font-size: 13px; line-height: 1.7; color: #5a637d; padding-bottom: 16px; }
.faq-item.active .faq-a { max-height: 200px; }

/* ========== 新闻资讯 ========== */
.news { padding: 20px 0 90px; }
/* 左上头部：蓝点标签 + 标题 + 描述 */
.news-head { margin-bottom: 40px; }
.news-tag {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 13px; color: #7cb3ff;
	background: rgba(47, 123, 255, 0.12); border: 1px solid rgba(47, 123, 255, 0.35);
	border-radius: 999px; padding: 5px 14px; margin-bottom: 18px;
}
.news-tag i { width: 7px; height: 7px; border-radius: 50%; background: var(--blue); }
.news-head h2 { font-size: 36px; margin-bottom: 12px; }
.news-head p { color: var(--sub); font-size: 14px; line-height: 1.7; max-width: 640px; }
/* 图文卡片 */
.news-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.news-card {
	background: var(--bg-2); border: 1px solid var(--line); border-radius: 16px;
	overflow: hidden; transition: transform 0.35s ease, border-color 0.35s ease;
}
.news-card:hover { transform: translateY(-6px); border-color: rgba(47, 123, 255, 0.5); }
.news-img { overflow: hidden; }
.news-img img { width: 100%; height: auto; transition: transform 0.5s ease; }
.news-card:hover .news-img img { transform: scale(1.04); }
.news-body { padding: 22px 24px 26px; }
.news-body p { font-size: 14px; color: var(--sub); line-height: 1.7; margin: 0 0 18px; }
/* 底部一行：时间居左 + 立即查看按钮居右 */
.news-foot { display: flex; align-items: center; justify-content: space-between; }
.news-foot time { font-size: 13px; color: rgba(255, 255, 255, 0.9); }
/* 立即查看：蓝色胶囊按钮 */
.news-btn {
	display: inline-block; padding: 10px 28px; border-radius: 999px;
	background: var(--blue); color: #fff; font-size: 14px;
	box-shadow: 0 6px 18px rgba(47, 123, 255, 0.35);
	transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.news-btn:hover { transform: translateY(-2px); background: #3f8bff; box-shadow: 0 10px 24px rgba(47, 123, 255, 0.5); }

/* ========== 客户表单 ========== */
/* form-bk 整图完整展示：板块比例锁定为底图 1440×698，背景不裁切（右上角文字完整可见） */
.contact {
	background: url(../img/form-bk.png) center center / cover no-repeat;
	aspect-ratio: 1440 / 698;
}
/* 移动端顶部标题描述（桌面端信息在背景图内，隐藏） */
.contact-head { display: none; }
.contact-grid {
	width: min(1200px, 92%); height: 100%; margin: 0 auto;
	display: flex; align-items: center; justify-content: flex-end;
}
/* 右侧深色表单卡（还原设计稿） */
.contact-form {
	width: min(560px, 100%);
	max-height: calc(100% - 48px);
	overflow-y: auto;
	background: rgba(15, 23, 42, 0.94);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 18px;
	padding: 28px 30px;
}
.contact-form form { display: flex; flex-direction: column; gap: 16px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
/* 手机号码 + 验证码：60/40 分栏 */
.form-row-phone { grid-template-columns: 3fr 2fr; }
/* 手机输入框内置「获取验证码」文字按钮 */
.phone-wrap { position: relative; }
.phone-wrap input { padding-right: 92px; }
.contact-form .sms-btn {
	position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
	background: none; border: 0; box-shadow: none; border-radius: 0;
	padding: 0; margin: 0; font-size: 13px; color: #4f8bff;
	white-space: nowrap; cursor: pointer;
	transition: color 0.25s;
}
.contact-form .sms-btn:hover { color: #7cb3ff; transform: translateY(-50%); }
.form-field { display: flex; flex-direction: column; gap: 8px; }
.form-field label { font-size: 13px; color: #9ca3af; }
.contact-form input, .contact-form select, .contact-form textarea {
	width: 100%; background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 10px;
	color: #fff; font-size: 14px; padding: 11px 14px;
	font-family: inherit; outline: none; resize: vertical;
	transition: border-color 0.25s;
}
/* 下拉框：去原生样式 + 自绘箭头 */
.contact-form select {
	appearance: none; -webkit-appearance: none; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239aa3bd' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center;
}
.contact-form select option { background: #0f172a; color: #fff; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: rgba(255, 255, 255, 0.35); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--blue); }
/* 提交按钮：左对齐 + #172DB6 胶囊 + ↗ */
.contact-form button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	align-self: flex-start;
	background: #172DB6; color: #fff; border: 0; border-radius: 999px;
	font-size: 15px; padding: 12px 36px; margin-top: 4px;
	box-shadow: 0 6px 20px rgba(23, 45, 182, 0.4);
	transition: transform 0.25s, box-shadow 0.25s;
}
.contact-form button img { width: 14px; height: 14px; }
.contact-form button:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(47, 123, 255, 0.55); }

/* ========== 软件定制页 ========== */
/* Hero：Banner2 背景图 + 文字水平垂直居中叠放 */
.cust-hero { position: relative; }
.cust-hero img { width: 100%; height: auto; display: block; }
/* 文字整体水平垂直居中 */
.cust-hero-copy {
	position: absolute; inset: 0;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; padding: 0 4%;
}
/* 顶部胶囊标签：白色 4% 底 + 0.3 白细边框 + 渐变文字（#4B33FF → #fff） */
.cust-hero-tag {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 24px; border-radius: 1000px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.3);
	font-size: 14px;
}
.cust-hero-tag i { width: 4px; height: 4px; border-radius: 50%; background: #D84212; }
.cust-hero-tag em {
	font-style: normal; letter-spacing: 1px;
	background: linear-gradient(90deg, #4B33FF, #fff);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent;
}
.cust-hero-copy h1 { font-size: clamp(40px, 4.5vw, 76px); font-weight: 700; letter-spacing: 4px; margin: 20px 0 14px; }
.cust-hero-copy p { font-size: 15px; color: rgba(255, 255, 255, 0.65); letter-spacing: 1px; }
/* 咨询按钮：与标签同底同边框（白色 0.3），右侧多一圈 #D84212 橙边 */
.cust-hero-cta {
	margin-top: 30px; padding: 11px 32px; border-radius: 1000px;
	background: rgba(255, 255, 255, 0.10);
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-right: 1px solid #D84212;
	color: #fff; font-size: 13px; font-weight: 600;
	transition: transform 0.25s ease, background 0.25s ease;
}
.cust-hero-cta:hover { transform: translateY(-2px); background: rgba(255, 255, 255, 0.18); }

/* 痛点板块：左整图 + 右标题/小字/对勾列表/按钮 */
.pain { padding: 40px 0; }
.pain-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.pain-left img { width: 100%; height: auto; border-radius: 16px; }
.pain-right h2 { font-size: 32px; margin-bottom: 120px; }
.pain-desc { color: var(--sub); font-size: 15px; line-height: 1.8; margin-bottom: 26px; }
/* 对勾列表：2 列 3 行，距下方按钮 120px */
.pain-list { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; margin-bottom: 120px; }
.pain-item {
	display: flex; align-items: center; gap: 10px;
	font-size: 14px; color: rgba(255, 255, 255, 0.85); line-height: 1.5;
}
.pain-item img { width: 22px; height: 22px; flex-shrink: 0; }
.pain-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 13px 30px; border-radius: 999px;
	background: #172DB6; color: #fff; font-size: 14px;
	box-shadow: 0 6px 20px rgba(23, 45, 182, 0.35);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pain-btn img { width: 14px; height: 14px; }
.pain-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(23, 45, 182, 0.5); }

/* 为什么要定制软件：Cust-bk 居中底图 + 左大标题右副标题 + 4 张上图下文卡片 */
.why-cust {
	background: url(../img/Customized/Cust-bk.png) center center / cover no-repeat;
	padding: 40px 0;
}
.why-cust-head {
	display: flex; justify-content: space-between; align-items: flex-end; gap: 32px;
	margin-bottom: 48px;
}
/* 标题左侧三个圆点装饰（#110FDF，20px） */
.why-cust-title { display: flex; align-items: center; gap: 14px; }
.cust-dots { display: flex; gap: 8px; }
.cust-dots i { width: 20px; height: 20px; border-radius: 50%; background: #110FDF; }
.why-cust-head h2 { font-size: 36px; }
.why-cust-head p { color: var(--sub); font-size: 15px; }
.cust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
/* 设计稿：卡片无背景无边框，左对齐版式，直接浮在模糊底图上 */
.cust-card { text-align: left; transition: transform 0.35s ease; }
.cust-card:hover { transform: translateY(-6px); }
/* 图片放大铺满列宽，文案/按钮宽度与图片一致 */
.cust-img { margin-bottom: 16px; }
.cust-img img { width: 100%; height: auto; }
.cust-card > p { font-size: 14px; color: rgba(255, 255, 255, 0.85); line-height: 1.7; margin-bottom: 12px; }
/* 一键咨询：无框纯文字链接，左对齐 */
.cust-link {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; color: #7cb3ff;
	transition: color 0.25s;
}
.cust-link:hover { color: #fff; }

/* ========== 网站开发页 ========== */
/* Hero 整图 */
.web-hero img { width: 100%; height: auto; display: block; }

/* 模版 VS 定制 对比板块 */
.vs { padding: 90px 0 40px; }
.vs-title { text-align: center; margin-bottom: 44px; }
.vs-title img { width: min(880px, 100%); height: auto; margin: 0 auto; }
.vs-body { display: grid; grid-template-columns: 1fr 72px 1fr; align-items: start; }
/* 列容器：无整体底色，逐条成卡；标题与 VS 徽章同排 */
.vs-col { display: flex; flex-direction: column; gap: 10px; }
.vs-col h3 { text-align: center; font-size: 22px; margin-bottom: 16px; }
.vs-col-left h3 { color: #aab2c5; }
.vs-col-right h3 { color: #fff; }
/* 每条对比项：单独背景 + 边框，图标与文字垂直居中，高度 58px */
.vs-item {
	display: flex; gap: 10px; align-items: center;
	padding: 0 16px; min-height: 58px;
	border-radius: 8px;
	font-size: 15px; line-height: 1.6;
}
.vs-item img { width: 20px; height: 20px; flex-shrink: 0; }
/* 左列：无底色，#A7ADBE 40% 斜纹 + #A7ADBE 40% 边框 */
.vs-col-left .vs-item {
	color: #8f98ad;
	background-image: repeating-linear-gradient(135deg, rgba(167, 173, 190, 0.4) 0 2px, transparent 2px 14px);
	border: 1px solid rgba(167, 173, 190, 0.4);
}
/* 右列：#3363ff 20% 底 + 仅左侧 #3363ff 边框 */
.vs-col-right .vs-item {
	color: #7fa8ff;
	background: rgba(51, 99, 255, 0.2);
	border-left: 1px solid #3363ff;
}
/* 中间 VS 徽章：顶部与两侧标题对齐（显示 40×40） */
.vs-mid { display: flex; align-items: flex-start; justify-content: center; }
.vs-mid img { width: 70px; height: 70px; }

/* APP 类型 + 3D 圆柱轮播 */
.fusion { padding: 50px 0 0; }
/* 居中胶囊标签：fusion-top 做背景，文案居中略偏右（缩小版） */
.fusion-tag {
	width: 170px; height: 48px; margin: 0 auto 18px;
	background: url(../img/Develop/fusion-top.png) center / contain no-repeat;
	display: flex; align-items: center; justify-content: center;
}
.fusion-tag span { transform: translateX(6px); font-size: 13px; color: #fff; letter-spacing: 2px; }
/* 大标题：#FFFFFF → #070322 纵向渐变文字 */
.fusion-title {
	text-align: center; font-size: 46px; font-weight: 700; letter-spacing: 3px;
	margin-bottom: 92px;
	background: linear-gradient(180deg, #FFFFFF 30%, #070322);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent;
}
/* 轮播行：箭头在舞台两侧外缘 */
.fusion-body { display: flex; align-items: center; gap: 24px; }
.fusion-arrow { flex-shrink: 0; background: none; border: 0; padding: 0; cursor: pointer; }
.fusion-arrow img { width: 52px; height: 52px; }
.fusion-wrap { flex: 1; position: relative; height: 430px; perspective: 1500px; }
.fusion-stage {
	position: absolute; inset: 0;
	transform-style: preserve-3d;
	transition: transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.fusion-card {
	position: absolute; left: 50%; top: 50%;
	width: 334px; height: 379px; margin: -189.5px 0 0 -167px;
	border-radius: 18px; padding: 36px 28px 28px;
	background-size: cover; background-position: center;
	display: flex; flex-direction: column;
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
}
.fusion-card h3 { font-size: 20px; margin-bottom: 14px; }
.fusion-card p { font-size: 13px; line-height: 1.75; color: rgba(255, 255, 255, 0.9); flex: 1; }
/* 内容显隐过渡（点亮/熄灭） */
.fusion-card > * { transition: opacity 0.4s ease; }
.fusion-btn {
	align-self: flex-start;
	padding: 9px 24px; border-radius: 999px;
	background: transparent; border: 1px solid #fff; color: #fff;
	font-size: 13px; font-weight: 600;
	transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.4s ease;
}
.fusion-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(255, 255, 255, 0.25); }
/* 未点亮（后排位置）：空壳——隐藏背景图与内容，仅 1px 边框 + 10% 白底 */
.fusion-card:not(.is-lit) {
	background-image: none !important;   /* 覆盖内联背景图 */
	background-color: rgba(255, 255, 255, 0.10);
	border: 1px solid rgba(255, 255, 255, 0.20);
	box-shadow: none;
}
.fusion-card:not(.is-lit) > * { opacity: 0; }

/* fusion-bottom 背景容器：轮播板块直接包在里面，背景按原图比例（2886×1578）自适应完整展示；
   宽屏时内容排在上部、背景下部露出形成托底；窄屏内容超出时容器被撑高 */
.fusion-lift {
	aspect-ratio: 2886 / 1578;
	background: url(../img/Develop/fusion-bottom.png) center top / 100% auto no-repeat;
}

/* ========== 解决方案页 ========== */
/* Hero：Banner-bk 纯背景图（2880×950），文字 HTML 居中叠放 */
.sol-hero {
	position: relative;
	aspect-ratio: 2880 / 950;
	background: url(../img/company/Banner-bk.png) center / cover no-repeat;
	display: flex; align-items: center; justify-content: center;
	text-align: center;
}
.sol-hero-copy { padding-top: 30px; }
/* 「+ 立即咨询」胶囊按钮：白色半透明 + 毛玻璃 */
.sol-hero-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 9px 24px; border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.35);
	backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
	color: #fff; font-size: 14px;
	margin-bottom: 28px;
	transition: background 0.3s ease, transform 0.3s ease;
}
.sol-hero-btn:hover { background: rgba(255, 255, 255, 0.24); transform: translateY(-2px); }
.sol-plus { font-size: 16px; font-weight: 300; }
.sol-hero h1 { font-size: 64px; font-weight: 700; letter-spacing: 8px; }
.sol-hero p { margin-top: 16px; font-size: 16px; color: rgba(255, 255, 255, 0.78); letter-spacing: 2px; }
/* 面包屑：主内容顶部，与左栏搜索框/筛选对齐 */
.sol-crumbs {
	display: flex; gap: 10px;
	font-size: 13px; color: rgba(255, 255, 255, 0.5);
	margin-bottom: 36px;
}
.sol-crumbs em { font-style: normal; color: #fff; }

/* 主体：左栏（搜索/筛选/最新文章）+ 右侧方案列表（居中容器） */
.sol-main { padding: 48px 0 90px; }
.sol-layout { display: grid; grid-template-columns: 300px 1fr; gap: 36px; align-items: start; }

/* 搜索框 */
.sol-search {
	display: flex; align-items: center; gap: 10px;
	height: 48px; padding: 0 16px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--line); border-radius: 12px;
	transition: border-color 0.3s ease;
}
.sol-search:focus-within { border-color: rgba(47, 123, 255, 0.55); }
.sol-search img { width: 18px; height: 18px; opacity: 0.6; flex-shrink: 0; }
.sol-search input { flex: 1; min-width: 0; background: none; border: 0; outline: none; color: #fff; font-size: 14px; font-family: inherit; }
.sol-search input::placeholder { color: rgba(255, 255, 255, 0.4); }

/* 筛选项 */
.sol-filter { margin-top: 30px; }
.sol-filter h3, .sol-latest h3 { font-size: 17px; margin-bottom: 4px; }
.sol-filter a {
	display: flex; align-items: center;
	padding: 14px 2px; font-size: 14px; color: var(--sub);
	border-bottom: 1px solid var(--line);
	transition: color 0.25s, padding-left 0.25s;
}
.sol-filter a::before {
	content: ""; width: 6px; height: 6px; border-radius: 2px;
	background: transparent; margin-right: 10px;
	transition: background 0.25s;
}
.sol-filter a:hover { color: #fff; }
.sol-filter a.active { color: #fff; padding-left: 10px; }
.sol-filter a.active::before { background: var(--blue); }

/* 最新文章 */
.sol-latest { margin-top: 34px; }
.sol-news {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 0; border-bottom: 1px solid var(--line);
	transition: transform 0.25s ease;
}
.sol-news:hover { transform: translateX(4px); }
.sol-news img { width: 84px; height: 56px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.sol-news h4 {
	font-size: 13px; font-weight: 400; line-height: 1.55; color: rgba(255, 255, 255, 0.9);
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.sol-news time { display: block; margin-top: 4px; font-size: 12px; color: var(--sub); }

/* 右侧方案卡：左图右文，无背景无边框 */
.sol-list { display: flex; flex-direction: column; gap: 20px; }
.sol-card {
	display: flex; align-items: center; gap: 28px;
}
.sol-card:hover h3 { color: #7cb3ff; }
.sol-card > img { width: 300px; height: auto; border-radius: 12px; object-fit: cover; flex-shrink: 0; }
.sol-card-body { flex: 1; display: flex; flex-direction: column; }
.sol-card-body h3 { font-size: 18px; margin-bottom: 10px; transition: color 0.25s; }
.sol-card-body p { font-size: 14px; color: var(--sub); line-height: 1.7; flex: 1; }
/* 「立即查看」按钮：#172DB6 底 + right.png 箭头 */
.sol-btn {
	align-self: flex-start; margin-top: 16px;
	display: inline-flex; align-items: center; gap: 6px;
	padding: 9px 22px; border-radius: 999px;
	background: #172DB6; color: #fff; font-size: 13px;
	box-shadow: 0 4px 16px rgba(23, 45, 182, 0.4);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.sol-btn img { width: 14px; height: 14px; }
.sol-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(23, 45, 182, 0.55); }

/* ========== 公司产品页 ========== */
/* 产品网格：一排两个 */
.pd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 28px; }
/* 容器定比例 + 图片铺满裁剪：比直接在 img 上设 aspect-ratio 更稳定，
   保证所有产品图显示尺寸严格一致 */
.pd-img { border-radius: 12px; overflow: hidden; aspect-ratio: 756 / 458; }
.pd-img img { width: 100%; height: 100%; object-fit: cover; }
.pd-body { display: flex; align-items: center; gap: 16px; padding-top: 16px; }
.pd-text { flex: 1; min-width: 0; }
.pd-text h3 { font-size: 17px; margin-bottom: 8px; }
.pd-text p { font-size: 13px; color: var(--sub); line-height: 1.6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* hover 过渡按钮：默认 48px 图标按钮；hover 时绝对定位的 #172DB6 胶囊层
   从图标位置向左展开为「立即查看」——胶囊脱离文档流，布局零变化不抖动 */
.pd-btn {
	position: relative; flex-shrink: 0;
	display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px;
	border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 999px;
}
.pd-btn img { width: 20px; height: 20px; transition: opacity 0.25s ease; }
.pd-btn .pill {
	position: absolute; right: -1px; top: -1px;
	height: 48px; width: 48px;
	border-radius: 999px; background: #172DB6;
	display: flex; align-items: center; justify-content: center;
	overflow: hidden; white-space: nowrap;
	font-size: 13px; color: #fff;
	box-shadow: 0 6px 18px rgba(23, 45, 182, 0.45);
	opacity: 0;
	transition: width 0.35s ease, opacity 0.25s ease;
}
.pd-btn:hover img { opacity: 0; }
.pd-btn:hover .pill { opacity: 1; width: 132px; }

/* 分页器（写死占位） */
.pager { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 52px; }
.pager a {
	min-width: 38px; height: 38px; padding: 0 14px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--line); border-radius: 10px;
	font-size: 13px; color: var(--sub);
	transition: color 0.25s, border-color 0.25s, background 0.25s;
}
.pager a:hover { color: #fff; border-color: rgba(255, 255, 255, 0.35); }
.pager a.active { background: #172DB6; border-color: #172DB6; color: #fff; }

/* ========== 新闻动态页 ========== */
/* 新闻网格：一排两个，细边框卡片 */
.news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.news-item {
	position: relative;
	padding: 0 20px;
	border: 1px solid var(--line); border-radius: 14px; overflow: hidden;
	transition: border-color 0.3s ease, transform 0.3s ease;
}
.news-item:hover { border-color: rgba(47, 123, 255, 0.45); transform: translateY(-4px); }
/* 蓝色数字角标：标准文档流，图片上方左侧，距卡片边缘 20px，直角方块 */
.news-num {
	display: flex; align-items: center; justify-content: center;
	width: 44px; height: 44px;
	margin: 20px 0 20px 20px;
	background: #172DB6; color: #fff;
	font-size: 15px; font-weight: 600; font-style: italic;
}
.news-item img { width: 100%; aspect-ratio: 16 / 10; }
.news-body { padding: 18px 22px 24px; }
.news-body h3 { font-size: 18px; margin-bottom: 10px; }
.news-body p { font-size: 13px; color: var(--sub); line-height: 1.75; }

/* ========== 新闻详情页 ========== */
/* Hero 主标题：长标题，字号小于列表页 Hero */
.nd-hero h1 { font-size: 42px; letter-spacing: 3px; }
/* 文章主体：860px 阅读宽度居中 */
.nd-article { max-width: 860px; margin: 0 auto; }
.nd-cover { width: 100%; border-radius: 14px; margin-bottom: 28px; }
.nd-meta { font-size: 13px; color: var(--sub); margin-bottom: 16px; }
/* 点击量：浮动到行最右侧，颜色稍亮 */
.nd-meta .nd-views { float: right; color: rgba(255, 255, 255, 0.8); }
.nd-article h2 { font-size: 24px; margin-bottom: 22px; }
.nd-article p { font-size: 14px; color: rgba(255, 255, 255, 0.8); line-height: 1.95; margin-bottom: 20px; }
/* 蓝色高亮引用块 */
.nd-article blockquote {
	background: #172DB6; border-radius: 12px; padding: 22px 28px;
	font-size: 15px; line-height: 1.85; color: #fff;
	margin: 28px 0;
}

/* ========== 关于我们页 ========== */
/* Hero 内容较多，取消固定比例，用上下留白撑开 */
.ab-hero { aspect-ratio: auto; padding: 150px 0 110px; }
/* 文字在居中容器内左对齐（非整体居中） */
.ab-hero .sol-hero-copy {
	width: min(1200px, 92%); margin: 0 auto; padding-top: 0;
	text-align: left;
}
.ab-hero h1 { margin-bottom: 24px; }
.ab-lead { max-width: 760px; margin: 0 0 14px; font-size: 15px; line-height: 1.9; color: rgba(255, 255, 255, 0.78); }
/* 愿景 / 使命 卡片 */
.ab-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 44px; text-align: left; }
.ab-card { display: flex; align-items: flex-start; gap: 16px; }
.ab-card img { width: 40px; height: 40px; flex-shrink: 0; }
.ab-card h3 { font-size: 17px; margin-bottom: 8px; }
.ab-card p { font-size: 13px; color: rgba(255, 255, 255, 0.65); line-height: 1.75; }
/* 中间大图：container 内与面包屑对齐 */
.ab-banner { width: 100%; height: auto; display: block; margin: 36px 0 56px; border-radius: 14px; }
/* 文案主体：860px 阅读宽度居中 */
.ab-content { max-width: 860px; margin: 0 auto; }
.ab-content > p { font-size: 14px; color: rgba(255, 255, 255, 0.8); line-height: 1.95; margin-bottom: 20px; }
.ab-section { margin-top: 56px; }
.ab-section h2 { font-size: 24px; margin-bottom: 18px; }
.ab-section p { font-size: 14px; color: rgba(255, 255, 255, 0.75); line-height: 1.95; }
/* CMS 小节：左侧青色竖线 */
.ab-section-bar { border-left: 3px solid var(--cyan); padding-left: 20px; }

/* ========== 隐私政策页 ========== */
/* 引言：白色加粗强调 */
.pp-lead { font-weight: 600; color: #fff; }

/* ========== 联系我们页 ========== */
/* 三栏：两侧图文窄、中间白色表单宽 */
.ct-layout { display: grid; grid-template-columns: 1fr 1.5fr 1fr; gap: 24px; align-items: stretch; }
/* 左右栏目：无整体背景，仅文字容器带背景 */
.ct-side { display: flex; flex-direction: column; }
/* 文字容器：rgba(255,255,255,0.10) 半透明底 */
.ct-copy {
	background: rgba(255, 255, 255, 0.10);
	border-radius: 6.4px;
	padding: 24px 20px;
	flex: 1;
}
.ct-label { font-size: 12px; letter-spacing: 2px; color: var(--cyan); margin-bottom: 14px; display: block; }
.ct-copy h3 { font-size: 19px; line-height: 1.6; margin-bottom: 20px; }
.ct-mail { font-size: 13px; color: #7cb3ff; text-decoration: underline; margin-bottom: 10px; word-break: break-all; display: block; }
.ct-tel { font-size: 16px; color: #fff; }
/* 图片：与文字容器同宽，之间留边距 */
.ct-side > img { width: 100%; height: auto; border-radius: 6.4px; margin-top: 16px; }
/* 右卡：图片在上文字在下 */
.ct-side-r > img { margin: 0 0 16px; }
/* 中间白色表单卡 */
.ct-form-card {
	background: #fff; border-radius: 18px; padding: 30px 28px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}
/* 绿色隐私承诺条 */
.ct-privacy {
	display: flex; align-items: flex-start; gap: 8px;
	background: #e9f7ef; color: #17803d; border-radius: 10px;
	padding: 12px 14px; font-size: 12px; line-height: 1.65;
	margin-bottom: 22px;
}
.ct-privacy::before { content: "✓"; flex-shrink: 0; font-weight: 700; }
/* 表单字段：白卡内深色文字 */
.ct-field { margin-bottom: 16px; }
.ct-field label { display: block; font-size: 13px; color: #4b5563; margin-bottom: 8px; }
.ct-field input, .ct-field select, .ct-field textarea {
	width: 100%; border: 1px solid #d9dbe4; border-radius: 10px;
	background: #f7f8fa; color: #1a1a1a; font-size: 14px;
	padding: 0 14px; height: 46px;
	transition: border-color 0.25s, background 0.25s;
}
.ct-field textarea { height: auto; padding: 12px 14px; resize: vertical; }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus {
	outline: none; border-color: #2f7bff; background: #fff;
}
/* 验证码行：输入 + 获取验证码按钮 */
.ct-code { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.ct-sms {
	height: 46px; padding: 0 16px; border: 0; border-radius: 10px;
	background: #172DB6; color: #fff; font-size: 13px; white-space: nowrap;
}
/* 提交按钮：蓝色渐变 + 箭头 */
.ct-submit {
	width: 100%; height: 48px; border: 0; border-radius: 12px;
	background: linear-gradient(135deg, #2f7bff, #7b5cff); color: #fff;
	font-size: 15px; letter-spacing: 4px;
	display: flex; align-items: center; justify-content: center; gap: 8px;
	box-shadow: 0 8px 24px rgba(47, 123, 255, 0.35);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.ct-submit img { width: 16px; height: 16px; }
.ct-submit:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(47, 123, 255, 0.5); }

/* ========== 页脚 ========== */
/* Sticky Hero 配套：footer 提到钉住的 Hero 之上，滚动到底部时正常盖住 Hero */
.footer { position: relative; z-index: 2; background: #060910; border-top: 1px solid var(--line); padding: 60px 0 0; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 44px; }
/* 品牌区：logo2 自带白底圆角底色 */
.footer-about img { height: 48px; width: auto; margin-bottom: 14px; }
.footer-name { font-size: 15px; color: var(--sub); margin-bottom: 4px; }
.footer-slogan { font-size: 15px; color: var(--sub); }
/* 抖/微/领 浅色标识：10px 圆角方块，文字垂直居中 */
.footer-col h4 { font-size: 16px; margin-bottom: 16px; }
.footer-col a { display: block; font-size: 13px; color: var(--sub); margin-bottom: 10px; transition: color 0.25s; }
.footer-col a:hover { color: #fff; }
/* 联系我们按钮 + 社交账号标签：仅移动端展示 */
.footer-cta, .footer-social-label { display: none; }
/* 社交标识：需放在 .footer-col a 之后，避免 display:block 覆盖居中布局 */
.footer-social { display: flex; gap: 10px; margin-top: 18px; }
.footer-social a {
	min-width: 36px; height: 36px; padding: 0 14px; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	text-align: center;
	background: rgba(255, 255, 255, 0.06);
	color: rgba(255, 255, 255, 0.72); font-size: 13px; line-height: 1;
	transition: background 0.25s, color 0.25s;
}
.footer-social a:hover { background: rgba(255, 255, 255, 0.14); color: #fff; }
.footer-bar {
	border-top: 1px solid var(--line); padding: 18px 0;
	display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.footer-bar p { font-size: 12px; color: rgba(255, 255, 255, 0.35); }

/* ========== 响应式 ========== */
@media (max-width: 1024px) {
	.why-grid { grid-template-columns: repeat(2, 1fr); }
	.com-grid { grid-template-columns: repeat(3, 1fr); }
	/* 对开门：3 列时 1、2 从左进，3 从右进 */
	.com-grid > .reveal.in:nth-child(3n+1), .com-grid > .reveal.in:nth-child(3n+2) { animation-name: doorL; }
	.com-grid > .reveal.in:nth-child(3n) { animation-name: doorR; }
	/* Hero 圆球缩小并贴边，避免压到左侧文字 */
	.hero-sphere { width: 30vw; right: 0; }
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
	/* 软件定制页：4 卡改 2 列，痛点板块间距收紧 */
	.cust-grid { grid-template-columns: repeat(2, 1fr); }
	.pain-grid { gap: 36px; }
	/* 网站开发页：VS 中缝收窄 */
	.vs-body { grid-template-columns: 1fr 48px 1fr; }
}

@media (max-width: 768px) {
	/* 导航：整条（logo+汉堡）包进玻璃胶囊，上边距 20px、左右 8px，logo 放大 */
	.nav { top: 20px; }
	.nav-inner {
		width: auto; margin: 0 8px;
		padding: 9px 14px 9px 18px;
		background: rgba(255, 255, 255, 0.10);
		border-radius: 100px;
		backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
		justify-content: space-between;
	}
	.nav-logo img { height: 40px; }
	.nav-menu {
		position: fixed; top: 96px; left: 3%; right: 3%;
		flex-direction: column; gap: 2px;
		background: rgba(13, 18, 32, 0.96);
		backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
		border: 0;   /* 收起时不渲染边框，避免悬空细线 */
		border-radius: 18px;
		max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.35s ease;
		padding: 0 10px;
	}
	/* 下拉菜单背景固定深色，不跟随滚动变色（覆盖桌面 .nav.scrolled .nav-menu 加深规则） */
	.nav.scrolled .nav-menu { background: rgba(13, 18, 32, 0.96); }
	.nav.open .nav-menu { max-height: 480px; padding: 10px; border: 1px solid rgba(255, 255, 255, 0.08); }
	.nav-menu a { padding: 12px 16px; border-radius: 12px; }
	/* 在线留言：常驻导航栏，三横杠左侧（不再藏进下拉框） */
	.nav-btn { display: inline-flex; margin-left: auto; padding: 8px 16px; font-size: 13px; }
	.nav-toggle { display: flex; margin-left: 0; }

	.news-grid { grid-template-columns: 1fr; }
	/* 开发服务范围：一排两个 */
  	.svc-grid { grid-template-columns: 1fr; }
	.why-grid { grid-template-columns: 1fr; }
	/* 移动端合作卡片压扁：高度 110px，hover 遮罩内边距缩小 */
	.com-card { height: 110px; }
	.com-logo { max-height: 40px; }
	.com-mask { padding: 10px; }
	.partners { margin-top: -24px; padding-bottom: 20px; }
	/* 开发服务范围：去顶部留白、卡片内边距缩小、整图头部下边距缩小 */
	.services { padding: 0 0 40px; }
	.svc-card { padding: 10px; }
	.section-head-img { margin-bottom: 20px; }
	/* 查看项目按钮：铺满整行，置于描述下方，径向渐变底 */
	.svc-card { display: flex; flex-direction: column; }
	.svc-link {
		width: 100%; justify-content: center; margin-top: 14px;
		padding: 12px; border: 1px solid #161C44; border-radius: 100px;
		background: radial-gradient(100% 100% at 50% 100%, #101636 14.38%, #0C1027 100%);
	}
	/* 卡片图：固定高 + 14px 圆角；标题 16px；描述 14px 两行省略 */
	.svc-img { border-radius: 14px; }
	.svc-img img { height: 256px; object-fit: cover; }
	.svc-card h3 { font-size: 16px; margin-top: 14px; }
	.svc-card > p {
		font-size: 14px; color: #6D7792;
		display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
		overflow: hidden;
	}
	/* 流程板块：左右结构改上下堆叠，左侧文字整体居中 */
	.process-wrap { grid-template-columns: 1fr; gap: 36px; }
	.process-left { text-align: center; }
	.process-left h2 { font-size: 28px; }
	.com-grid { grid-template-columns: repeat(2, 1fr); }
	/* 对开门：2 列时奇数从左、偶数从右，向中间合拢 */
	.com-grid > .reveal.in:nth-child(odd) { animation-name: doorL; }
	.com-grid > .reveal.in:nth-child(even) { animation-name: doorR; }
	/* FAQ：渐变过渡色 + 高斯模糊，上下结构（左文字排版堆叠到答题卡上方）；
	   Sticky Hero 配套：同 PC 端补 var(--bg) 实底，盖住钉住的 Hero（视觉不变） */
	.faq {
		padding: 50px 0;
		background-color: var(--bg);
		background-image:
			linear-gradient(180deg, #110FDF 0%, rgba(17, 15, 223, 0.00) 100%),
			linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05));
		backdrop-filter: blur(15.651084899902344px);
		-webkit-backdrop-filter: blur(15.651084899902344px);
	}
	.faq-grid { flex-direction: column; align-items: stretch; gap: 0; }
	.faq-head { max-width: none; margin: 0 0 24px; }
	.faq-head-label { font-size: 13px; color: rgba(255, 255, 255, 0.78); margin-bottom: 8px; }
	.faq-head h2 { font-size: 26px; padding-bottom: 0; border-bottom: 0; margin-bottom: 12px; }
	.faq-head > p { font-size: 13px; line-height: 1.75; color: rgba(255, 255, 255, 0.68); margin-bottom: 22px; }
	.faq-feats { gap: 20px; }
	.faq-feat-head { gap: 8px; margin-bottom: 8px; }
	.faq-feat-head img { width: 18px; height: 18px; }
	.faq-feat-head h3 { font-size: 15px; }
	.faq-feat > p { font-size: 12px; line-height: 1.7; color: rgba(255, 255, 255, 0.6); }
	.faq-card { width: 100%; }
	/* 客户表单：移动端取消背景图，改 #172DB6 纯色背景，标题描述堆叠在表单上方 */
	.contact {
		aspect-ratio: auto; height: auto;
		padding: 50px 0;
		background: #172DB6;
	}
	.contact-grid {
		flex-direction: column; align-items: stretch;
		justify-content: flex-start; height: auto;
	}
	.contact-head { display: block; margin-bottom: 20px; }
	.contact-head h3 { font-size: 22px; margin-bottom: 10px; }
	.contact-head p { font-size: 13px; line-height: 1.75; color: rgba(255, 255, 255, 0.8); }
	.contact-form { width: 100%; max-height: none; }
	/* 提交按钮平铺整行（仅命中提交按钮，不影响「获取验证码」） */
	.contact-form button[type="submit"] { align-self: stretch; width: 100%; }
	.form-row { grid-template-columns: 1fr; }
	/* 页脚：品牌区居中 + 产品服务/公司两列 + 法律独占一行 + 底栏居中 */
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
	.footer-about {
		grid-column: 1 / -1;
		display: flex; flex-direction: column; align-items: center; text-align: center;
	}
	.footer-about img { height: 44px; margin-bottom: 12px; }
	.footer-cta {
		display: flex; align-items: center; justify-content: center; gap: 8px;
		width: 100%; margin: 20px 0 4px; padding: 13px;
		border-radius: 999px; color: #fff;
		background: linear-gradient(180deg, #4C75FF 0%, #1A4FFF 100%);
		font-size: 14px;
	}
	.footer-social-label { display: block; font-size: 13px; color: var(--sub); margin-top: 16px; }
	.footer-social { justify-content: center; gap: 12px; margin-top: 12px; }
	.footer-social a { width: auto; height: auto; padding: 9px 24px; border-radius: 96.154px; font-size: 13px; background: #161C44; }
	/* 法律列独占一行 */
	.footer-col:last-child { grid-column: 1 / -1; }
	.footer-bar { flex-direction: column; align-items: center; gap: 8px; text-align: center; }
	.footer-bar p:first-child { font-size: 14px; color: #fff; }

	/* 案例长图区：移动端 300px 高循环横滚，阴影恢复 100px */
	.case-head h2 { font-size: 26px; }
	.case-head p { font-size: 13px; }
	.case-inner { height: 300px; }
	.case-inner::before, .case-inner::after { height: 100px; }
	/* 胶囊横幅：换 case-conet2、宽 320px、居中 */
	.case-banner .banner-pc { display: none; }
	.case-banner .banner-m { display: block; width: 320px; max-width: 88vw; margin: 0 auto; }

	.section-title h2 { font-size: 26px; }
	.news-head { text-align: center; }
	.news-head h2 { font-size: 28px; }
	/* 流程/为什么板块：移动端去顶部留白 */
	.process { padding-top: 0; }
	.why { padding-top: 0; padding-bottom: 50px; }

	/* 软件定制页：痛点板块上下堆叠、对勾单列、4 卡单列 */
	.pain { padding: 56px 0; }
	.pain-grid { grid-template-columns: 1fr; }
	.pain-right h2 { font-size: 26px; margin-bottom: 48px; }
	.pain-list { grid-template-columns: 1fr; margin-bottom: 48px; }
	.why-cust { padding: 56px 0; }
	.why-cust-head { flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 32px; }
	.why-cust-head h2 { font-size: 28px; }
	.cust-grid { grid-template-columns: 1fr; }
	/* 软件定制 Hero：窄屏文字改常规流，Banner2 转 cover 防溢出 */
	.cust-hero img { display: none; }
	.cust-hero { background: url(../img/Banner2.jpg) center / cover no-repeat; }
	.cust-hero-copy { position: static; padding: 90px 6% 70px; }
	.cust-hero-copy h1 { font-size: 34px; }

	/* 首页 Hero：窄屏文字改为常规流，Banner.png 与 PC 同源，cover 防溢出 */
	.hero > img { display: none; }   /* 只隐藏背景大图，不影响圆球内层 img */
	.hero { background: url(../img/Banner.png) center / cover no-repeat; isolation: isolate; overflow: hidden; }   /* isolate：圆球垫文字下；overflow：裁掉球超出屏幕的右侧，防止横向滚动 */
	/* 移动端圆球：按设计稿靠右上（球心约 71% 水平 / 45% 垂直，右缘出屏），
	   直接进入旋转（内层 img 的 sphereSpin 由基础规则继承）；
	   z-index:-1 在 .hero 的 isolation 层内垫底——盖住背景图、垫在描述文字下方 */
	.hero-sphere {
		display: block;
		top: 25%; bottom: auto; right: -11vw;
		width: 80vw; max-width: 340px;
		transform: scale(var(--hero-pop, 1));
		opacity: var(--hero-fade, 1);
		animation: none;
		z-index: -1;
	}
	.hero-copy { position: static; transform: scale(var(--hero-pop, 1)); opacity: var(--hero-fade, 1); max-width: 100%; padding: 96px 6% 72px; }
	.hero-copy h1 { font-size: 34px; }
	.hero-tag { font-size: 11px; padding: 3px 8px; margin-bottom: 16px; }

	/* 网站开发页：VS 上下堆叠、圆柱轮播缩小 */
	.vs { padding: 56px 0 32px; }
	.vs-body { grid-template-columns: 1fr; }
	.vs-mid { margin: 14px 0; }
	.vs-item { min-height: 58px; padding: 0 14px; }
	.fusion-tag { width: 140px; height: 40px; margin-bottom: 12px; }
	.fusion-title { font-size: 30px; margin-bottom: 68px; }
	.fusion-body { gap: 10px; }
	.fusion-arrow img { width: 40px; height: 40px; }
	/* 移动端轮播整体缩小：卡 160×200 + 半径 200（JS fusionRadius 同步）+ 更远视距 1100px，
	   前卡完整显示、两侧卡基本收进视口，投影不再大幅超出手机屏 */
	.fusion-wrap { height: 300px; perspective: 1100px; }
	.fusion-card { width: 160px; height: 200px; margin: -100px 0 0 -80px; padding: 20px 16px 16px; }
	.fusion-card h3 { font-size: 14px; margin-bottom: 8px; }
	/* 描述超 4 行截断显示省略号；保留 flex:1（基础规则）占位，把按钮压在卡片底部 */
	.fusion-card p {
		font-size: 11px; line-height: 1.65;
		display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4;
		overflow: hidden;
	}
	.fusion-btn { padding: 5px 14px; font-size: 11px; }
	/* 窄屏背景等比高度小于内容高度：解除 aspect-ratio 定高改随内容撑高（否则 overflow 会把轮播整体裁掉），
	   背景改 cover 铺满自然高度；
	   overflow：只裁 3D 卡超出容器的横向投影（根治轮播把页面宽度撑开）；
	   提 z-index 与其他板块同级：fusion 嵌在 .fusion-lift 里吃不到 main>section 的层级规则，
	   此前卡片被下方板块内容盖住 */
	.fusion-lift { aspect-ratio: auto; background-size: cover; overflow: hidden; position: relative; z-index: 2; }

	/* 解决方案页：单列堆叠、卡片图上文下 */
	.sol-hero h1 { font-size: 36px; letter-spacing: 4px; }
	.sol-hero p { font-size: 14px; }
	.sol-hero-copy { padding-top: 10px; }
	.sol-crumbs { margin-bottom: 24px; }
	.sol-main { padding: 40px 0 60px; }
	.sol-layout { grid-template-columns: 1fr; gap: 28px; }
	.sol-card { flex-direction: column; gap: 0; }
	.sol-card > img { width: 100%; height: 190px; }
	.sol-card-body { padding-top: 16px; }
	/* 公司产品页：产品单列、分页器间距缩小 */
	.pd-grid { grid-template-columns: 1fr; }
	.pager { margin-top: 36px; }
	/* 新闻页：单列 */
	.news-grid { grid-template-columns: 1fr; }
	/* 新闻详情页 */
	.nd-hero h1 { font-size: 26px; letter-spacing: 2px; }
	.nd-article h2 { font-size: 20px; }
	/* 关于我们页 */
	.ab-hero { padding: 120px 0 80px; }
	.ab-hero h1 { font-size: 32px; }
	.ab-cards { grid-template-columns: 1fr; gap: 18px; }
	.ab-section { margin-top: 40px; }
	.ab-section h2 { font-size: 20px; }
	/* 联系我们页：三栏上下堆叠 */
	.ct-layout { grid-template-columns: 1fr; }
	.ct-side-r { flex-direction: column-reverse; }
}

/* ========== 无障碍：系统开启「减少动态效果」时关闭装饰动画 ========== */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-delay: 0ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0ms !important;
	}
	/* 案例长图停止横滚，静态展示 */
	.case-track { animation: none !important; }
}

/* ========== CMS 模板扩展 ========== */
/* 新闻列表编号：CSS counter 自动生成 01/02/…（.news-grid 的 counter-reset 起始值由模板内联设置以接续分页） */
.news-grid { counter-reset: newsnum; }
.news-num::before {
	counter-increment: newsnum;
	content: counter(newsnum, decimal-leading-zero);
}

/* ---------- 滑块验证码弹窗（anji blockPuzzle） ---------- */
.dmn-captcha-mask {
	position: fixed; inset: 0; z-index: 9998;
	display: flex; align-items: center; justify-content: center;
	background: rgba(0, 0, 0, 0.6);
	opacity: 0; transition: opacity 0.25s ease;
}
.dmn-captcha-mask.show { opacity: 1; }
.dmn-captcha-box {
	width: 350px; max-width: calc(100vw - 24px);
	background: #101636; border: 1px solid var(--line); border-radius: 16px;
	padding: 20px;
	transform: translateY(12px); transition: transform 0.25s ease;
}
.dmn-captcha-mask.show .dmn-captcha-box { transform: translateY(0); }
.dmn-captcha-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.dmn-captcha-head h4 { font-size: 15px; font-weight: 600; }
.dmn-captcha-close {
	width: 28px; height: 28px; border: 0; border-radius: 8px;
	background: none; color: var(--sub); font-size: 18px; line-height: 1;
	cursor: pointer; font-family: inherit;
}
.dmn-captcha-close:hover { color: #fff; background: rgba(255, 255, 255, 0.08); }
/* 底图容器固定 310px，与后端抠图坐标 1:1 对应 */
.dmn-captcha-img {
	position: relative; width: 310px; max-width: 100%;
	height: 155px; margin: 0 auto; border-radius: 8px; overflow: hidden;
	background: #070322;
}
.dmn-captcha-img img.bg { width: 310px; max-width: 100%; height: 155px; display: block; user-select: none; -webkit-user-drag: none; }
.dmn-captcha-piece {
	position: absolute; top: 5px; left: 0;
	height: 155px; user-select: none; -webkit-user-drag: none; pointer-events: none;
}
/* 拖动条 */
.dmn-captcha-track {
	position: relative; width: 310px; max-width: 100%;
	height: 44px; margin: 14px auto 0;
	background: rgba(255, 255, 255, 0.06); border: 1px solid var(--line); border-radius: 10px;
	overflow: hidden;
}
.dmn-captcha-track .tip {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-size: 13px; color: var(--sub); user-select: none;
}
.dmn-captcha-track.ok .tip { color: #4cd98a; }
.dmn-captcha-track.err .tip { color: #ff7b7b; }
.dmn-captcha-fill {
	position: absolute; left: 0; top: 0; bottom: 0; width: 44px;
	background: rgba(47, 123, 255, 0.25);
}
.dmn-captcha-handle {
	position: absolute; left: 0; top: 0;
	width: 44px; height: 44px;
	display: flex; align-items: center; justify-content: center;
	background: #172DB6; border: 0; border-radius: 10px;
	color: #fff; font-size: 16px; cursor: grab;
	touch-action: none;
}
.dmn-captcha-handle:active { cursor: grabbing; }
.dmn-captcha-track.ok .dmn-captcha-handle { background: #2ea86e; }
.dmn-captcha-track.err .dmn-captcha-handle { background: #c75450; }
/* 底部刷新 */
.dmn-captcha-foot { display: flex; justify-content: flex-end; margin-top: 10px; }
.dmn-captcha-refresh {
	border: 0; background: none; color: var(--sub); font-size: 12px;
	cursor: pointer; font-family: inherit; padding: 4px 6px; border-radius: 6px;
}
.dmn-captcha-refresh:hover { color: #fff; background: rgba(255, 255, 255, 0.08); }
@media (max-width: 400px) {
	.dmn-captcha-box { padding: 14px; }
}

/* ---------- 全局轻提示 ---------- */
.dmn-toast {
	position: fixed; left: 50%; bottom: 48px; z-index: 9999;
	transform: translate(-50%, 20px);
	max-width: calc(100vw - 48px);
	padding: 12px 22px; border-radius: 10px;
	background: #172DB6; color: #fff; font-size: 14px; line-height: 1.5;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
	opacity: 0; pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease;
}
.dmn-toast.show { opacity: 1; transform: translate(-50%, 0); }
.dmn-toast.err { background: #b03a3a; }

/* ========== 悬浮联系方式（PC 右侧竖排：电话/微信/留言；移动端底部胶囊 dock，见文末断点） ========== */
.float-contact {
	position: fixed; right: 24px; top: 50%; transform: translateY(-50%);
	z-index: 90;
	display: flex; flex-direction: column; gap: 14px;
}
.fc-item { position: relative; }
.fc-btn {
	width: 64px; height: 64px; border-radius: 16px;
	background: none; border: 0; padding: 0;
	display: flex; align-items: center; justify-content: center;
	cursor: pointer;
	transition: transform 0.25s ease;
}
.fc-btn:hover { transform: translateY(-3px); }
.fc-btn img { width: 64px; height: 64px; object-fit: contain; display: block; }
/* 弹窗：默认收起，.open 由 JS 控制（PC 悬停 / 触屏点按）；visibility 延迟切换保证淡出完成 */
.fc-pop {
	position: absolute; right: calc(100% + 16px); top: 50%;
	transform: translateY(-50%) translateX(12px);
	width: 228px; padding: 20px 18px 18px;
	background: #fff; border-radius: 18px; text-align: center;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
}
.fc-item.open .fc-pop {
	opacity: 1; visibility: visible; pointer-events: auto;
	transform: translateY(-50%) translateX(0);
	transition: opacity 0.25s ease, transform 0.25s ease;
}
/* 电话弹窗 */
.fc-pop-phone h4 { font-size: 17px; font-weight: 600; color: #111; margin: 0 0 12px; }
.fc-tel { font-size: 24px; font-weight: 700; color: #111; letter-spacing: 0.5px; margin: 0 0 4px; }
.fc-mail { font-size: 13px; color: #8a90a0; margin: 0 0 18px; }
.fc-call {
	display: block; padding: 12px 0; border-radius: 24px;
	border: 1px solid rgba(255, 255, 255, 0.10);
	background: var(--Button-Primary, #4B33FF);
	box-shadow:
		inset 0 2.398px 23.982px 0 rgba(0, 0, 0, 0.25),
		inset 0 -3.198px 16.308px 0 rgba(255, 255, 255, 0.25),
		0 3.198px 19.186px 0 rgba(75, 51, 255, 0.40);
	color: #fff; font-size: 15px;
	transition: opacity 0.25s;
}
.fc-call:hover { opacity: 0.88; }
/* 微信弹窗（头像/昵称/二维码均在 cont-code.png 内） */
.fc-pop-title { font-size: 16px; font-weight: 600; color: #111; margin: 0 0 10px; }
.fc-pop-wechat img { width: 100%; height: auto; border-radius: 12px; display: block; }
.fc-pop-sub { font-size: 14px; font-weight: 600; color: #333; margin: 10px 0 0; }

@media (max-width: 768px) {
	/* 移动端：底部居中胶囊 dock（玻璃拟态），按钮去独立底色直接躺在胶囊上；
	   注意不使用 transform 居中，避免其成为 fixed 弹窗的包含块 */
	.float-contact {
		top: auto; bottom: 16px; left: 0; right: 0; margin: 0 auto;
		transform: none; width: max-content;
		flex-direction: row; gap: 36px; padding: 12px 32px;
		border-radius: 100px;
		background: rgba(255, 255, 255, 0.10);
		backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
	}
	.fc-btn { width: 52px; height: 52px; background: none; border: 0; border-radius: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }
	.fc-btn:hover { transform: none; background: none; }
	.fc-btn img { width: 38px; height: 38px; }
	/* 弹窗改为视口固定定位：dock 上方居中，移动端弹窗再放大一号 */
	.fc-pop { position: fixed; left: 50%; right: auto; top: auto; bottom: 104px; width: 244px; padding: 20px 18px 18px; transform: translateX(-50%) translateY(12px); }
	.fc-item.open .fc-pop { transform: translateX(-50%) translateY(0); }
	.fc-pop-phone h4 { font-size: 18px; }
	.fc-tel { font-size: 25px; }
	.fc-mail { font-size: 13px; }
	.fc-call { padding: 11px 0; font-size: 16px; border-radius: 24px; }
	.fc-pop-title { font-size: 17px; }
	.fc-pop-sub { font-size: 15px; }
	/* 有悬浮 dock 的页面（仅首页）：页脚底部留出 dock 高度，防止底栏被压住（dock 放大后高约 84px） */
	body.has-float-contact .footer { padding-bottom: 112px; }
}
