/* ==========================================================
   半导体（CMP 抛光垫）行业解决方案页样式 —— 与 product-mom / mes / lims / qms 新风格一致
   字体   : Noto Sans SC
   字号   : 标题36 / 卡片标题20 / 正文16 / 说明14（移动端 18 / 16 / 14）
   颜色   : 品牌蓝 #014099，标题 #191919，正文 #666，交替背景 #f9f9f9
   容器   : 与 .max-width 相同（1280px，<1700 为90%，<1500 为87%）
   所有选择器以 .sol-page 前缀隔离，不影响全局
   ========================================================== */
.sol-page {
	clear: both;
	margin-top: 86px;           /* 顶部菜单固定 86px（移动端 50px），不再使用旧 banner */
	--brand: #014099;
	--brand-hover: #004bb5;
	--brand-grad: linear-gradient(#004bb5, #01419a);
	--brand-soft: #dfecff;
	--accent: #e60012;
	--title: #191919;
	--sub: #333333;
	--body: #666666;
	--muted: #999999;
	--bg-alt: #f9f9f9;
	--shadow: 0 0 10px rgba(0,0,0,.1);
	--shadow-hover: 0 4px 18px rgba(1,64,153,.18);
	color: var(--body);
	background: #fff;
	font-family: 'Noto Sans SC', "Microsoft YaHei", "PingFang SC", sans-serif;
	font-size: 16px;
	line-height: 30px;
}

	.sol-page *,
	.sol-page *::before,
	.sol-page *::after {
		box-sizing: border-box;
		font-family: inherit;
	}

	.sol-page a {
		color: inherit;
		text-decoration: none;
	}

	.sol-page .container {
		width: 1280px;
		margin: 0 auto;
	}

	.sol-page section h1,
	.sol-page section h2,
	.sol-page section h3,
	.sol-page section p {
		margin-top: 0;
		font-weight: normal;
	}

	.sol-page section h1,
	.sol-page section h2 {
		color: var(--title);
		font-size: 36px;
		line-height: 46px;
		margin-bottom: 20px;
	}

	.sol-page section h3 {
		color: var(--sub);
		font-size: 20px;
		line-height: 28px;
		margin-bottom: 12px;
	}

	.sol-page section p {
		margin-bottom: 0;
	}

	.sol-page .lead {
		max-width: 860px;
	}

	/* 区块 */
	.sol-page .section {
		padding: 100px 0;
	}

		.sol-page .section.soft {
			background: var(--bg-alt);
		}

		.sol-page .section.dark {
			background-image: var(--brand-grad);
		}

	.sol-page .section-head {
		max-width: 860px;
		margin: 0 auto 46px;
		text-align: center;
	}

		.sol-page .section-head .lead {
			margin: 0 auto;
		}

	.sol-page .eyebrow {
		display: block;
		color: var(--brand);
		font-size: 14px;
		line-height: 20px;
		letter-spacing: .12em;
		text-transform: uppercase;
		margin-bottom: 10px;
	}

	.sol-page .section.dark h2,
	.sol-page .section.dark h3 {
		color: #fff;
	}

	.sol-page .section.dark .lead {
		color: rgba(255,255,255,.88);
	}

	.sol-page .section.dark .eyebrow {
		color: rgba(255,255,255,.85);
	}

	/* 按钮 */
	.sol-page .btn {
		min-width: 140px;
		height: 40px;
		padding: 0 32px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
		border-radius: 20px;
		font-size: 16px;
		line-height: 1;
		border: 1px solid transparent;
		transition: .2s ease;
	}

		.sol-page .btn.primary {
			color: #fff;
			background-image: var(--brand-grad);
		}

			.sol-page .btn.primary:hover {
				background: var(--brand-hover);
			}

		.sol-page .btn.ghost {
			color: var(--brand);
			background: #fff;
			border-color: var(--brand);
		}

			.sol-page .btn.ghost:hover {
				color: #fff;
				background: var(--brand);
			}

		.sol-page .btn.white {
			background: #fff;
			color: var(--brand);
		}

			.sol-page .btn.white:hover {
				background: var(--brand-soft);
			}

		.sol-page .btn.outline-white {
			color: #fff;
			border-color: rgba(255,255,255,.8);
		}

			.sol-page .btn.outline-white:hover {
				background: rgba(255,255,255,.16);
			}

	.sol-page .actions {
		display: flex;
		gap: 16px;
		flex-wrap: wrap;
	}

	/* 首屏：与 /solution/ 一致的蓝色整块背景 */
	.sol-page .hero {
		background-image: var(--brand-grad);
		background-color: var(--brand);
		padding: 96px 0 88px;
	}

	.sol-page .hero-inner {
		max-width: 900px;
		margin: 0 auto;
		text-align: center;
	}

		.sol-page .hero .kicker {
			display: block;
			margin: 0 0 16px;
			color: rgba(255,255,255,.82);
			font-size: 14px;
			line-height: 22px;
			letter-spacing: .12em;
			font-weight: bold;
			text-transform: uppercase;
		}

		.sol-page .hero h1 {
			margin: 0 0 18px;
			color: #fff;
			font-size: 46px;
			line-height: 58px;
			font-weight: bold;
		}

		.sol-page .hero .hero-lead {
			margin: 0 0 18px;
			color: #fff;
			font-size: 22px;
			line-height: 34px;
		}

		.sol-page .hero .hero-desc {
			max-width: 780px;
			margin: 0 auto;
			color: rgba(255,255,255,.86);
			font-size: 16px;
			line-height: 30px;
		}

	.sol-page .hero-tags {
		display: flex;
		gap: 10px;
		flex-wrap: wrap;
		justify-content: center;
		margin: 30px 0 0;
	}

	.sol-page .tag {
		border: 1px solid rgba(255,255,255,.55);
		background: rgba(255,255,255,.1);
		color: #fff;
		border-radius: 16px;
		padding: 3px 16px;
		font-size: 14px;
		line-height: 24px;
	}

	/* 首屏数据链看板 */
	.sol-page .dashboard {
		position: relative;
		background: #fff;
		padding: 22px;
		box-shadow: var(--shadow);
	}

	.sol-page .dash-top {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0 0 14px;
		border-bottom: 1px solid #e5e5e5;
	}

	.sol-page .dots {
		display: flex;
		gap: 6px;
	}

		.sol-page .dots i {
			display: block;
			width: 8px;
			height: 8px;
			border-radius: 50%;
			background: #dcdcdc;
		}

			.sol-page .dots i:first-child {
				background: var(--brand);
			}

	.sol-page .dash-title {
		font-size: 12px;
		color: var(--muted);
		letter-spacing: .06em;
	}

	.sol-page .panel {
		background: var(--bg-alt);
		padding: 16px;
		margin-top: 13px;
	}

		.sol-page .panel:first-of-type {
			margin-top: 14px;
		}

		.sol-page .panel h4 {
			font-size: 14px;
			line-height: 20px;
			font-weight: normal;
			margin: 0 0 12px;
			color: var(--body);
		}

	.sol-page .chain {
		display: flex;
		gap: 6px;
		flex-wrap: wrap;
	}

		.sol-page .chain span {
			flex: 1 1 0;
			min-width: 56px;
			text-align: center;
			font-size: 14px;
			line-height: 22px;
			padding: 6px 4px;
			background: #fff;
			border-top: 3px solid var(--brand);
			color: var(--sub);
		}

	.sol-page .kpis {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}

	.sol-page .mini {
		padding: 12px;
		background: #fff;
	}

		.sol-page .mini b {
			display: block;
			font-size: 20px;
			line-height: 26px;
			font-weight: normal;
			color: var(--brand);
		}

		.sol-page .mini span {
			font-size: 14px;
			line-height: 20px;
			color: var(--body);
		}

	.sol-page .float-card {
		position: absolute;
		background: #fff;
		box-shadow: var(--shadow);
		padding: 10px 14px;
		font-size: 14px;
		line-height: 22px;
		color: var(--body);
	}

		.sol-page .float-card b {
			font-weight: normal;
			color: var(--brand);
		}

	.sol-page .f1 {
		left: -28px;
		bottom: 62px;
	}

	.sol-page .f2 {
		right: -20px;
		top: 88px;
	}

	/* SPC 趋势示意（首屏与质量闭环共用） */
	.sol-page .trend svg {
		display: block;
		width: 100%;
		height: auto;
	}

	.sol-page .trend text {
		font-size: 11px;
		fill: var(--muted);
	}

	.sol-page .trend .warn {
		fill: var(--accent);
		font-size: 12px;
	}

	/* 通用栅格与卡片 */
	.sol-page .cols2 {
		display: grid;
		grid-template-columns: repeat(2,1fr);
		gap: 24px;
	}

	.sol-page .cols3 {
		display: grid;
		grid-template-columns: repeat(3,1fr);
		gap: 24px;
	}

	.sol-page .cols4 {
		display: grid;
		grid-template-columns: repeat(4,1fr);
		gap: 24px;
	}

	.sol-page .cols5 {
		display: grid;
		grid-template-columns: repeat(5,1fr);
		gap: 20px;
	}

	.sol-page .challenge,
	.sol-page .scene {
		background: #fff;
		box-shadow: var(--shadow);
		transition: .25s ease;
	}

		.sol-page .challenge:hover,
		.sol-page .scene:hover {
			box-shadow: var(--shadow-hover);
		}

			.sol-page .challenge:hover h3,
			.sol-page .scene:hover h3 {
				color: var(--brand);
			}

	.sol-page .challenge {
		padding: 32px 28px;
		min-height: 300px;
	}

	.sol-page .num {
		position: relative;
		display: block;
		padding-bottom: 14px;
		margin-bottom: 20px;
		color: var(--brand);
		font-size: 40px;
		line-height: 44px;
		font-weight: bold;
		letter-spacing: .02em;
	}

		.sol-page .num::after {
			content: "";
			position: absolute;
			left: 0;
			bottom: 0;
			width: 28px;
			height: 3px;
			background: var(--brand);
			transition: width .3s ease;
		}

	.sol-page .challenge:hover .num::after {
		width: 60px;
	}

	.sol-page .challenge p,
	.sol-page .scene p {
		font-size: 16px;
		line-height: 28px;
	}

	/* 制造流程：四阶段时间轴 */
	.sol-page .stages {
		display: grid;
		grid-template-columns: repeat(4,1fr);
		gap: 0;
		position: relative;
	}

	.sol-page .stage {
		position: relative;
		background: #fff;
		box-shadow: var(--shadow);
		margin-right: 18px;
		padding: 0 0 24px;
	}

		.sol-page .stage:last-child {
			margin-right: 0;
		}

		.sol-page .stage:not(:last-child)::after {
			content: "";
			position: absolute;
			top: 38px;
			right: -18px;
			width: 18px;
			height: 2px;
			background: var(--brand);
		}

	.sol-page .stage-head {
		background-image: var(--brand-grad);
		color: #fff;
		padding: 18px 22px;
	}

		.sol-page .stage-head small {
			display: block;
			font-size: 14px;
			line-height: 20px;
			letter-spacing: .08em;
			color: rgba(255,255,255,.85);
		}

		.sol-page .stage-head h3 {
			margin: 2px 0 0 !important;
			color: #fff !important;
		}

	.sol-page .stage-body {
		padding: 20px 22px 0;
	}

	.sol-page .stage-flow {
		color: var(--brand);
		font-size: 16px;
		line-height: 28px;
		margin-bottom: 12px !important;
	}

	.sol-page .stage-body p {
		font-size: 14px;
		line-height: 24px;
	}

	.sol-page .stage-data {
		margin-top: 16px;
		padding-top: 12px;
		border-top: 1px dashed #dcdcdc;
	}

		.sol-page .stage-data b {
			display: block;
			font-weight: normal;
			font-size: 14px;
			line-height: 20px;
			color: var(--muted);
			margin-bottom: 8px;
		}

		.sol-page .stage-data span {
			display: inline-block;
			margin: 0 6px 6px 0;
			padding: 0 10px;
			font-size: 14px;
			line-height: 24px;
			color: var(--brand);
			background: var(--brand-soft);
		}

	.sol-page .thread {
		margin-top: 30px;
		padding: 16px 22px;
		background: var(--bg-alt);
		border-left: 3px solid var(--brand);
		color: var(--sub);
	}

		.sol-page .thread b {
			color: var(--brand);
			font-weight: normal;
		}

	.sol-page .footnote {
		margin-top: 16px !important;
		font-size: 14px;
		line-height: 24px;
		color: var(--muted);
	}

	/* 六大场景 */
	.sol-page .scene {
		padding: 30px 26px;
		border-top: 3px solid var(--brand);
	}

		.sol-page .scene .sid {
			display: block;
			font-size: 14px;
			line-height: 20px;
			letter-spacing: .08em;
			color: var(--brand);
			margin-bottom: 10px;
		}

		.sol-page .scene .hl {
			color: var(--sub);
			margin-bottom: 12px !important;
		}

		.sol-page .scene p {
			font-size: 14px;
			line-height: 26px;
		}

			.sol-page .scene p + p {
				margin-top: 8px !important;
			}

	.sol-page .kw {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
		margin-top: 16px;
		padding-top: 14px;
		border-top: 1px dashed #dcdcdc;
	}

		.sol-page .kw span {
			font-size: 12px;
			line-height: 22px;
			padding: 0 10px;
			border: 1px solid var(--brand);
			border-radius: 12px;
			color: var(--brand);
		}

	/* 质量闭环 */
	.sol-page .quality-grid {
		display: grid;
		grid-template-columns: 46% 54%;
		gap: 50px;
		align-items: start;
	}

	.sol-page .quote {
		border-left: 3px solid var(--brand);
		background: #fff;
		padding: 18px 22px;
		color: var(--sub);
		margin: 24px 0 0;
	}

	.sol-page .table-wrap {
		overflow-x: auto;
	}

	.sol-page table.tbl {
		width: 100%;
		border-collapse: collapse;
		background: #fff;
		box-shadow: var(--shadow);
	}

		.sol-page table.tbl th,
		.sol-page table.tbl td {
			padding: 14px 18px;
			text-align: left;
			vertical-align: top;
			font-size: 14px;
			line-height: 24px;
			border-bottom: 1px solid #ececec;
		}

		.sol-page table.tbl th {
			background-image: var(--brand-grad);
			color: #fff;
			font-weight: normal;
			white-space: nowrap;
		}

		.sol-page table.tbl td:first-child {
			color: var(--brand);
			white-space: nowrap;
		}

		.sol-page table.tbl tr:last-child td {
			border-bottom: 0;
		}

	.sol-page .spc-box {
		background: #fff;
		box-shadow: var(--shadow);
		padding: 22px 24px;
	}

		.sol-page .spc-box .cap-id {
			font-size: 14px;
			line-height: 20px;
			color: var(--muted);
			letter-spacing: .06em;
			margin-bottom: 8px;
		}

		.sol-page .spc-box .legend {
			display: flex;
			gap: 18px;
			flex-wrap: wrap;
			margin-top: 8px;
			font-size: 12px;
			line-height: 20px;
			color: var(--muted);
		}

			.sol-page .spc-box .legend i {
				display: inline-block;
				width: 8px;
				height: 8px;
				margin-right: 6px;
				background: var(--brand);
				border-radius: 50%;
			}

			.sol-page .spc-box .legend i.r {
				background: var(--accent);
			}

	.sol-page .loop {
		display: flex;
		align-items: stretch;
		flex-wrap: nowrap;
		gap: 0;
		margin-top: 46px;
	}

	.sol-page .loop-step {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		flex: 1 1 0;
		min-width: 0;
		margin-right: 14px;
		background: #fff;
		box-shadow: var(--shadow);
		padding: 16px 10px;
		text-align: center;
		color: var(--sub);
		font-size: 15px;
		line-height: 22px;
		border-top: 3px solid var(--brand);
		white-space: nowrap;
	}

		.sol-page .loop-step:last-child {
			margin-right: 0;
		}

		.sol-page .loop-step:not(:last-child)::after {
			content: "";
			position: absolute;
			top: 50%;
			right: -14px;
			width: 14px;
			height: 2px;
			background: var(--brand);
		}

		.sol-page .loop-step b {
			display: inline;
			font-size: 16px;
			line-height: 22px;
			color: var(--brand);
			font-weight: normal;
		}

		.sol-page .loop-step.warn {
			border-top-color: var(--accent);
		}

			.sol-page .loop-step.warn b {
				color: var(--accent);
			}

	.sol-page .loop-desc {
		margin: 22px 0 46px !important;
		text-align: center;
	}

	.sol-page .sync {
		background: #fff;
		box-shadow: var(--shadow);
		padding: 26px;
		border-left: 3px solid var(--brand);
	}

		.sol-page .sync .cap-id {
			font-size: 14px;
			line-height: 20px;
			color: var(--brand);
			letter-spacing: .04em;
			margin-bottom: 8px;
		}

		.sol-page .sync p {
			font-size: 14px;
			line-height: 26px;
		}

	.sol-page .emph {
		margin-top: 34px !important;
		text-align: center;
		font-size: 20px;
		line-height: 30px;
		color: var(--brand);
	}

	/* 客户案例（蓝底） */
	.sol-page .case-name {
		max-width: 900px;
		margin: 0 auto 46px;
		text-align: center;
		color: rgba(255,255,255,.88);
	}

		.sol-page .case-name strong {
			display: block;
			color: #fff;
			font-weight: normal;
			font-size: 20px;
			margin-bottom: 8px;
		}

	.sol-page .connect {
		border: 1px solid rgba(255,255,255,.35);
		background: rgba(255,255,255,.08);
		padding: 30px 26px;
		transition: .25s ease;
	}

		.sol-page .connect:hover {
			background: rgba(255,255,255,.16);
		}

		.sol-page .connect .code {
			font-size: 14px;
			line-height: 20px;
			letter-spacing: .08em;
			color: rgba(255,255,255,.85);
			margin-bottom: 14px;
		}

		.sol-page .connect p {
			font-size: 14px;
			line-height: 26px;
			color: rgba(255,255,255,.88);
		}

		.sol-page .connect .ability {
			margin-top: 14px;
			padding-top: 12px;
			border-top: 1px dashed rgba(255,255,255,.4);
			color: #fff;
		}

	.sol-page .case-change {
		margin-top: 46px;
	}

		.sol-page .case-change h3 {
			text-align: center;
			margin-bottom: 20px !important;
		}

		.sol-page .case-change table.tbl td:first-child {
			font-weight: normal;
		}

	/* 方案价值 */
	.sol-page .value {
		background: #fff;
		box-shadow: var(--shadow);
		border-top: 3px solid var(--brand);
		padding: 28px 22px;
		transition: .25s ease;
	}

		.sol-page .value:hover {
			box-shadow: var(--shadow-hover);
		}

			.sol-page .value:hover h3 {
				color: var(--brand);
			}

		.sol-page .value p {
			font-size: 14px;
			line-height: 26px;
		}

	/* 常见问题：复用 style2.css 的 cp_section6（含 .max-width 全局宽度），此处只补充副标题 */
	.sol-page .cp_section6 .faq-lead {
		text-align: center;
		margin: -22px 0 46px;
		font-size: 16px;
		line-height: 30px;
		color: var(--body);
	}

	/* 滚动淡入 */
	.sol-page .reveal {
		opacity: 0;
		transform: translateY(20px);
		transition: opacity .65s ease, transform .65s ease;
	}

		.sol-page .reveal.show {
			opacity: 1;
			transform: none;
		}

@media (max-width: 1700px) {
	.sol-page .container {
		width: 90%;
	}
}

@media (max-width: 1500px) {
	.sol-page .container {
		width: 87%;
	}

	.sol-page .hero h1 {
		font-size: 42px;
		line-height: 52px;
	}

	.sol-page .cols5 {
		grid-template-columns: repeat(3,1fr);
	}
}

@media (max-width: 1300px) {
	.sol-page {
		margin-top: 70px;
	}
}

@media (max-width: 1280px) {
	.sol-page .cols4,
	.sol-page .stages {
		grid-template-columns: repeat(2,1fr);
		row-gap: 18px;
	}

	.sol-page .stage:nth-child(2n) {
		margin-right: 0;
	}

		.sol-page .stage:nth-child(2n)::after {
			display: none;
		}

	.sol-page .hero-grid {
		gap: 40px;
	}

	.sol-page .quality-grid {
		gap: 30px;
	}
}

@media (max-width: 1024px) {
	.sol-page {
		margin-top: 50px;
	}

		.sol-page .container {
			width: 100%;
			padding: 0 15px;
		}

		.sol-page .section {
			padding: 30px 0;
		}

		.sol-page .hero {
			padding: 34px 0 32px;
		}

			.sol-page .hero .kicker {
				font-size: 11px;
				line-height: 18px;
				margin-bottom: 10px;
			}

			.sol-page .hero h1 {
				font-size: 24px;
				line-height: 34px;
				margin-bottom: 12px;
			}

			.sol-page .hero .hero-lead {
				font-size: 15px;
				line-height: 25px;
				margin-bottom: 12px;
			}

			.sol-page .hero .hero-desc {
				font-size: 13px;
				line-height: 24px;
			}

			.sol-page .hero-tags {
				gap: 6px;
				margin-top: 18px;
			}

			.sol-page .tag {
				font-size: 12px;
				line-height: 22px;
				padding: 2px 11px;
			}

		.sol-page .num {
			font-size: 28px;
			line-height: 32px;
			padding-bottom: 10px;
			margin-bottom: 12px;
		}

		.sol-page section h1,
		.sol-page section h2 {
			font-size: 18px;
			line-height: 24px;
			margin-bottom: 12px;
		}

		.sol-page section h3 {
			font-size: 16px;
			line-height: 24px;
			margin-bottom: 8px;
		}

		.sol-page,
		.sol-page .challenge p,
		.sol-page .feature p {
			font-size: 14px;
			line-height: 24px;
		}

		.sol-page .hero-grid,
		.sol-page .quality-grid,
		.sol-page .cols2,
		.sol-page .cols3,
		.sol-page .cols4,
		.sol-page .cols5,
		.sol-page .stages {
			grid-template-columns: 1fr;
			gap: 14px;
		}

		.sol-page .stage {
			margin-right: 0;
		}

			.sol-page .stage::after {
				display: none;
			}

		.sol-page .section-head {
			margin-bottom: 20px;
		}

		.sol-page .btn {
			min-width: 100px;
			height: 34px;
			padding: 0 22px;
			font-size: 14px;
			border-radius: 17px;
		}

		.sol-page .challenge,
		.sol-page .scene,
		.sol-page .connect,
		.sol-page .value {
			min-height: 0;
			padding: 18px 14px;
		}

		.sol-page .loop {
			flex-wrap: wrap;
			gap: 8px;
			margin-top: 20px;
		}

		.sol-page .loop-step {
			flex: 1 1 calc(50% - 4px);
			margin-right: 0;
			padding: 12px 8px;
			font-size: 13px;
			line-height: 20px;
		}

			.sol-page .loop-step b {
				font-size: 14px;
				line-height: 20px;
			}

			.sol-page .loop-step::after {
				display: none;
			}

		.sol-page .cta .actions {
			margin-top: 18px;
		}

			.sol-page .cta .actions .btn {
				min-width: 0;
				width: 100%;
			}

		.sol-page .f1,
		.sol-page .f2 {
			display: none;
		}

		.sol-page .emph {
			font-size: 16px;
		}

		.sol-page .cp_section6 .faq-lead {
			margin: -2px 0 14px;
			font-size: 14px;
			line-height: 24px;
			text-align: left;
		}
}
