/*
 *	Created by Edward on 26/08/24
 *	Copyright (c) 2026 ishutime.com All rights reserved
*/

:root {
	/* 品牌橙 */
	/* --qh-orange: #112967; */
	--qh-orange: #005c9e;
	--qh-blur: #005c9e;
	--qh-bg-blue: #e8eefd;
	/* 主橙：CTA / 强调 / 进度条 */
	--qh-orange-deep: #B8430A;
	/* 深橙：hover / 按下 */
	--qh-orange-bright: #FF7A1C;
	/* 亮橙：深色底上的高亮文字与图标 */
	--qh-orange-tint: #FFF3EA;
	/* 浅橙底：标签 / 下拉hover底 */

	/* 深色区暖调（替换全部蓝黑 #121820/#101820/#0A0D12 与蓝灰文字） */
	--qh-ink: #333333;
	/* 暖黑：关于奇航深区底 */
	--qh-ink-deep: #333333;
	/* 更深暖黑：页脚底（与深区形成明度层级） */
	--qh-cream: #F4EFE8;
	/* 暖白：深区正文 / 标题 */
	--qh-cream-mid: #B8AFA4;
	/* 暖灰：深区次级文字 */
	--qh-cream-dim: #8A8075;
	/* 更弱暖灰：深区弱化文字 */

	/* 亮色中性（两级灰阶，替代 #3e3e3e/#666/#888/#999 混用） */
	--qh-bg: #FFFFFF;
	/* 页面主底 */
	--qh-bg-warm: #FAF7F3;
	/* 浅暖底：分区卡片底 */
	--qh-text: #333333;
	/* 正文近黑 */
	--qh-text-mid: #666;
	/* 次级文字 */
	--qh-text-dim: #9A9188;
	/* 弱化文字 */

	/* 分隔线 */
	--qh-line: rgba(30, 27, 24, 0.08);
	--qh-line-strong: rgba(30, 27, 24, 0.14);

	--scale: 1;
}

@font-face {
	font-family: 'iconfont';
	src: url('iconfont.woff2?t=1663740079843') format('woff2'),
		url('iconfont.woff?t=1663740079843') format('woff'),
		url('iconfont.ttf?t=1663740079843') format('truetype');
}

.iconfont {
	font-family: "iconfont" !important;
	font-style: normal;
	-webkit-font-smoothing: antialiased;
	-webkit-text-stroke-width: 0px;
	-moz-osx-font-smoothing: grayscale;
}


@font-face {
	font-family: Manrope;
	src: url(../fonts/Manrope.ttf);
}

@font-face {
	font-family: din;
	src: url(../fonts/din-bold-webfont.woff2);
}

@font-face {
	font-family: Quicksand;
	src: url(../fonts/Quicksand-VariableFont_wght.ttf);
}

@font-face {
	font-family: figtree;
	src: url(../fonts/dinregularwebfont.woff);
}

body,
html {
	/* font-family: Manrope, sans-serif, "Microsoft YaHei", '微软雅黑', "Arial"; */
	font-family: "HarmonyOS_Sans_SC",system-ui,-apple-system,sans-serif;
	font-size: 0.85vw;
}

b,
strong {
	font-weight: 600;
}

textarea,
input,
select {
	font-family: Manrope, sans-serif, "Microsoft YaHei", '微软雅黑', "Arial";
	outline: none;
	border: none;
}

button {
	border: none;
}

.header {
	width: 100%;
	height: 80px;
	z-index: 100;
	position: fixed;
	top: 0px;
	display: flex;
	justify-content: space-between;
	padding: 0px 5%;
	align-items: center;
}


.header::after {
	width: 100%;
	height: 1px;
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	background: rgba(0, 0, 0, 0.05);
	pointer-events: none;
	opacity: 0;
	transition: all 0.5s;
}

.header.active::after,
.header.show::after {
	opacity: 1;
}


.header.active,
.header.show {
	background: rgba(255, 255, 255, 1);
	backdrop-filter: blur(15px);
}

.header.active .nav ul a,
.header.show .nav ul a {
	color: #3e3e3e;
}

.header.active .lang-vision,
.header.show .lang-vision {
	color: #3e3e3e;
}

.header.active .lang-vision::before,
.header.show .lang-vision::before {
	background: #3e3e3e;
}

.header.active .nav ul li .first-lab a::after,
.header.show .nav ul li .first-lab a::after {
	background: var(--qh-blur);
}

.logo {
	width: 8vw;
	position: relative;
	-webkit-transition: all .5s;
}

.logo img {
	transition: all 0.5s;
}

.logo img:nth-child(2) {
	position: absolute;
	width: 100%;
	height: 100%;
	opacity: 0;
	left: 0;
	top: 0;
}

.header.active .logo img:nth-child(1),
.header.show .logo img:nth-child(1) {
	opacity: 0;
}

.header.active .logo img:nth-child(2),
.header.show .logo img:nth-child(2) {
	opacity: 1;
}

.header .nav ul a {
	color: #ffffff;
	border-right: none;
	text-transform: capitalize;
	font-family: sans-serif;
    font-weight: 500;
}

.header .nav ul li .first-lab a p{
	width: 100%;
	height: auto;
	display: flex;
	position: relative;
	width: 100%;
	justify-content: center;
}

.nav ul li .first-lab a .icon{
	display: none;
}

.header .nav ul li .first-lab a p:nth-child(2){
	position: absolute;
	left: 0;
}

.nav {
	width: auto;
	position: relative;
	margin-right: 4.5vw;
}

.nav ul {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.nav ul a {
	position: relative;
	padding: 0px 2.2vw;
	font-size: 20px;
	height: 80px;
	display: flex;
	align-items: center;
	-webkit-transition: all 400ms cubic-bezier(0.215, 0.61, 0.355, 1);
	word-break: keep-all;
}


.nav ul li {
	position: relative;
}

.nav ul li:hover a,
.nav ul li.active a {
	opacity: 1;
}


.nav ul a p {
	display: flex;
	height: auto;
	line-height: 1.2;
}


.nav ul li .first-lab a::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0%;
	width: 100%;
	height: 2px;
	background: #ffffff;
	transition: width 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), left 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	opacity: 0;
}

.nav ul li .first-lab a::before{
	width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    content: '';
    transition: all 0.5s;
	opacity: 0;
    transform-origin: left top;
    /* background-image: linear-gradient(180deg, #ecf1fa, transparent); */
	background: #ecf1fa;
}

.nav ul li:hover .first-lab a::before{
	opacity: 1;
}

.nav ul li:hover .first-lab a::after,
.nav ul li.child-open .first-lab a::after {
	opacity: 1;
}

.nav ul li.child-open .first-lab a::after,
.nav ul li:hover .first-lab a::after {
	opacity: 1;
}

.nav-child {
	min-width: 170px;
	position: absolute;
	left: 50%;
	top: 89px;
	padding: 14px 0;
	background: #ffffff;
	border-radius: 0 0 8px 8px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(-50%, -10px);
	clip-path: inset(0 0 100% 0);
	transition: opacity .35s ease, visibility .35s ease, transform .45s cubic-bezier(0.23, 1, 0.320, 1), clip-path .45s cubic-bezier(0.23, 1, 0.320, 1);
	border: 1px solid rgba(0, 0, 0, 0.05);
	border-top: none;
	z-index: 2;
}

.nav ul li.child-open .nav-child,
.nav ul li:hover .nav-child {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0);
	clip-path: inset(0 0 0 0);
}

.header .nav .nav-child a,
.header.active .nav .nav-child a,
.header.show .nav .nav-child a {
	width: 100%;
	height: 42px;
	padding: 0 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #3e3e3e;
	font-size: 1.6rem;
	font-weight: 400;
	white-space: nowrap;
	opacity: 1;
	transition: color .3s ease, background-color .3s ease;
}

.header .nav .nav-child a::after {
	width: 0%;
	height: 1px;
	position: absolute;
	left: 50%;
	bottom: 0;
	content: '';
	background: #DE5A11;
	transition: all 0.4s;
	opacity: 0;
}

.header .nav .nav-child a:hover::after {
	width: 100%;
	left: 0%;
	opacity: 1;
}

.nav-child a p {
	width: auto;
	height: auto;
	line-height: 1.4;
	overflow: visible;
}

.nav ul .list {
	visibility: hidden;
	opacity: 0;
	position: absolute;
	left: 0px;
	top: 70px;
	background: #fff;
	width: 100%;
	box-shadow: 0px 10px 15px rgb(0 0 0 / 10%);
	-webkit-transition: all .5s;
}

.nav ul .list a {
	color: #3e3e3e;
	font-weight: normal;
	line-height: 40px;
	font-size: 14px;
	height: auto;
	padding: 0px 5px;
	width: 100%;
	text-align: center;
	display: block;
}

.nav ul .list a::after {
	display: none;
}

.nav ul .list a:hover {
	color: #DE5A11;
}

.nav ul li:hover .list {
	visibility: visible;
	opacity: 1;
}

.anchor {
	width: 100%;
	height: 1px;
	position: absolute;
	left: 0;
	top: 0;
}

.anchor span {
	display: block;
	width: 100%;
	height: 1px;
	position: absolute;
	top: -90px;
}

.banner {
	width: 100%;
	height: 100vh;
	position: relative;
	overflow: hidden;
	background: #000;
}

/* 技术网格线（蓝色风暴视频版不再使用） */
.banner::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image:
		repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.04) 0px, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 48px),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0px, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 48px);
	pointer-events: none;
	display: none;
}

/* 左侧文字压暗罩（经典风暴视频版）
   改为挂在「每屏 slide」上：文案现在位于 slide 内部（随屏一起切换），
   压暗罩也按屏独立，才能保证文字仍盖在压暗罩之上、不被自己的遮罩压暗。 */
.banner .swiper-slide::after {
	width: 60%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	content: '';
	pointer-events: none;
	background-image: linear-gradient(90deg, rgba(0, 0, 0, .5), #0000);
	z-index: 1;
}

/* banner 视频：直接播放，不做任何缩放 / 位移揭示。
   （早期版本由 hero-motion.js 做 scale 1.12 → 1 的「缩放揭示」，已取消；
     这里不设 transform、不设 animation，保证视频铺满即原样播放。） */
.banner video {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	aspect-ratio: 100 / 56;
	transform: none;
}

/* ====== banner 视频轮播（Swiper，仅手动切换）======
   .banner 本身满屏（100vh），swiper 与每一屏都铺满它；
   一屏 = 1 段视频 + 1 份文案，切换时整屏（视频 + 压暗罩 + 文案）一起位移。 */
.banner-swiper {
	width: 100%;
	height: 100%;
	transform: translateY(50%);
}

.banner .swiper-slide {
	position: relative;
	overflow: hidden;
}

/* 底部指示器：两条短线，当前屏实心高亮（只切换，不自动播放）
   ★ 不居中：左边缘与 banner 文案的 left:5% 对齐（文案在哪，指示器就从哪开始）。
   用三段类选择器压过 Swiper 自带的「left:0; width:100%; text-align:center」。 */
.banner .banner-swiper .swiper-pagination {
	left: 5%;
	right: auto;
	width: auto;
	bottom: 5%;
	text-align: left;
}

/* ★ 必须三段类：Swiper 自带的是 .swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet
   （三段、带 4px 左右外边距），两段选择器压不住，第 1 条线会右移 4px、对不齐文案。 */
.banner .banner-swiper .swiper-pagination-bullet {
	width: 80px;
	height: 4px;
	/* 只留右边距，保证第 1 条线的左边缘正好压在 5% 上（与文案同一条竖线） */
	margin: 0 10px 0 0;
	border-radius: 0;
	background: rgba(255, 255, 255, .35);
	opacity: 1;
	transition: background-color .35s;
}

.banner .banner-swiper .swiper-pagination-bullet-active {
	background: #fff;
}

#hero-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}

.lang-vision {
	right: 5%;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	color: #ffffff;
	gap: 0.6vw;
	font-size: 0.85vw;
}

.lang-vision::before {
	width: 1px;
	height: 70%;
	position: absolute;
	left: -1.5vw;
	top: 15%;
	content: '';
	background: #fff;
	opacity: 0.5;
}

.lang-vision .txt {
	font-family: Quicksand;
	font-weight: 600;
}

.slogan {
	width: 40%;
	height: auto;
	position: absolute;
	left: 5%;
	top: 50%;
	transform: translateY(-50%);
	color: #ffffff;
	z-index: 10;
}

.slogan .en {
	width: 100%;
	margin-bottom: 1vw;
}

.slogan .cn {
	width: 100%;
	margin-bottom: 2vw;
}

.slogan .desc {
	width: 100%;
	height: auto;
	position: relative;
	line-height: 1.7;
	opacity: 0;
	font-size: 0.95vw;
}


/* 无 GSAP / 走 CSS 兜底：直接显示，避免文案永久隐藏 */
html.js .slogan.is-revealed .txt1,
html.js .slogan.is-revealed .txt2,
html.js .slogan.is-revealed .txt3 p,
html.js .slogan.is-revealed .cn,
html.js .slogan.is-revealed .desc {
	opacity: 1;
}


.sys-top {
	width: 100%;
	height: auto;
	position: relative;
	margin-bottom: 4vw;
}

.sys-top .name {
	width: 100%;
	max-width: 60%;
	font-size: 2.5vw;
	line-height: 1.2;
	font-weight: 600;
}

.sys-top .desc {
	width: 100%;
	max-width: 40%;
	margin-top: 1.2vw;
	line-height: 1.7;
	position: relative;
	font-size: 1vw;
	color: var(--qh-text-mid);
}

.sys-top .common-name .desc {
	margin-top: 0.5vw;
}



.sys-list {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2vw;
}

.sys-list .item {
	width: 100%;
	height: auto;
	position: relative;
	will-change: transform;
}




.sys-list .item .box {
	width: 100%;
	height: auto;
	background: #ffffff;
	padding: 2vw 1.5vw;
	position: relative;
	aspect-ratio: 1 / 1.2;
	transition: all 0.5s;
	border-radius: 0.5vw;
}

.sys-list .item:hover .box{
	background: var(--qh-orange);
}

.sys-list .item .box::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	height: 1px;
	width: 0;
	background: var(--qh-orange);
	transition: width .5s ease;
}

.sys-list .item:hover .box::after {
	width: 100%;
	background: rgba(255, 255, 255, 0.85);
}

.sys-list .item .box .info .name {
	transition: color .4s ease;
}

.sys-list .item:hover .box .info .name,
.sys-list .item:hover .box .info .desc,
.sys-list .item:hover .box .mark p {
	color: #ffffff;
}

.sys-list .item:hover .box .mark span {
	background: #ffffff;
}

.sys-wrap {
	background: var(--qh-bg-blue);
}

.sys-list .item .box .mark {
	width: 100%;
	height: auto;
	position: relative;
	font-size: 0.65vw;
	align-items: center;
	text-transform: capitalize;
	display: flex;
	gap: 0.3vw;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	padding-bottom: 0.5vw;
}

.sys-list .item .box .mark span {
	width: 0.5vw;
	height: 0.5vw;
	background: var(--qh-blur);
	position: relative;
	display: block;
}

.sys-list .item .box .mark p {
	color: var(--qh-text-mid);
	font-family: Manrope;
}

.sys-list .item .box .info {
	width: calc(100% - 3vw);
    height: auto;
    position: absolute;
    left: 1.5vw;
    bottom: 2vw;
	transition: all 0.5s cubic-bezier(0.215, 0.610, 0.355, 1);
	transform: translateY(0px);
}

.sys-list .item:hover .box .info {
	transform: translateY(-1vw);
}

.sys-list .item .box .info .name {
	width: 100%;
	height: auto;
	position: relative;
	font-size: 1.5vw;
	font-weight: 600;
	margin-bottom: 1vw;
}

.sys-list .item .box .info .desc {
	width: 100%;
	height: auto;
	line-height: 1.8;
	font-weight: 400;
	font-size: 0.8vw;
	opacity: 0.75;
	min-height: 8vw;
	color: #666;
}

.apps-wrap {
	padding: 0;
	height: auto;
	position: relative;
	/* 作为 .app-menu(absolute) 的定位上下文，便于吸顶切换不跳位 */
}

.apps {
	width: 100%;
	height: 100%;
	position: relative;
	left: 0;
	top: 0;
}

.apps .item .img,
.apps .item .img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.apps .item .field-products {
	position: absolute;
	right: 0%;
	height: 100%;
	width: 25%;
	top: 0;
	z-index: 3;
	display: flex;
	flex-direction: column;
	padding: 120px 2%;
	border: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(0, 0, 0, 0.25);
	backdrop-filter: blur(17.5px);
}


.apps .item .field-products .fp-label {
	display: flex;
	align-items: center;
	gap: 0.7vw;
	font-size: 1.2vw;
	color: #fff;
	font-weight: 600;
	margin-bottom: 1.5vw;

}


.apps .item .field-products .fp-label em {
	font-style: normal;
	font-size: 0.6vw;
	letter-spacing: 0.16em;
	color: rgba(255, 255, 255, 0.4);
	font-family: Manrope, sans-serif;
	margin-left: auto;
}

.apps .item .field-products .fp-list {
	display: flex;
	flex-direction: column;
	gap: 1vw;
}

.apps .item .field-products .fp-card {
	display: flex;
	flex-direction: row;
	gap: 0.5vw;
	padding: 1vw 1vw;
	align-items: center;
	justify-content: space-between;
	position: relative;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 0.35vw;
	overflow: hidden;
}

.apps .item .field-products .fp-card::before {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	background: rgba(255, 255, 255, 0.03);
	content: '';
	transition: all 0.4s;
}

.apps .item .field-products .fp-card:hover{
	border-color: rgba(255,255,255,0.65);
}

.apps .item .field-products .fp-card:hover::before {
	background: rgba(255, 255, 255, 0.2);
}


.apps .item .field-products .fp-card .fp-img {
	width: 40%;
	height: auto;
	display: flex;
}

.apps .item .field-products .fp-card .cont {
	width: 50%;
	position: relative;
	color: #fff;
}

.apps .item .field-products .fp-card .fp-name {
	font-size: 1vw;
    margin-bottom: 0.65vw;
}

.apps .item .field-products .fp-card .fp-more {
	font-size: 0.7vw;
	display: flex;
	align-items: center;
	gap: 0.1vw;
	font-weight: 300;
	color: rgba(255,255,255,.5);
	transition: all 0.35s;
}

.apps .item .field-products .fp-card:hover .fp-more {
	gap: 0.3vw;
}

.apps .item .field-products .fp-card .fp-more i {
	font-size: 0.7vw;
	transition: transform .3s ease;
}

.apps {
	background: #000;
}

.apps .item .img img {
	opacity: 1;
}

.apps .item .img::after {
	width: 100%;
    height: 70%;
    position: absolute;
    left: 0;
    bottom: 0;
    content: '';
    background-image: linear-gradient(0deg, rgba(0, 0, 0, .7), rgba(0, 0, 0, 0));
    opacity: 0.4;
}

.apps .item .info {
	width: 40%;
	height: auto;
	position: absolute;
	left: 5%;
	color: #fff;
	bottom: 20%;
}

.apps .item .info .name {
	font-size: 2vw;
	margin-bottom: 0.5vw;
	font-weight: 600;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.apps .item .info .desc {
	font-size: 0.9vw;
	font-weight: 400;
	line-height: 1.7;
	margin-bottom: 3.5vw;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.qh-btn {
	display: inline-block;
	width: auto;
	height: auto;
	position: relative;
}

.contct-wrap{
	background: var(--qh-bg-blue);
}

.qh-btn a,
.qh-btn .a {
	position: relative;
    overflow: hidden;
    padding: 0.8vw 1.2vw;
    font-size: 0.75vw;
    display: inline-flex;
    background: rgba(255, 255, 255, .1);
    backdrop-filter: blur(10px);
    color: #fff;
    align-items: center;
    gap: 1vw;
    transition: all 0.5s;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 0.25vw;
}

.qh-btn a::after,
.qh-btn .a::after {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	content: '';
	transition: all 0.5s cubic-bezier(0.215, 0.610, 0.355, 1);
	pointer-events: none;
}

/* 文字与图标浮在橙色层之上，保证 hover 时文字仍为白色、清晰可见 */
.qh-btn a .txt,
.qh-btn a .icon,
.qh-btn a i.iconfont,
.qh-btn .a .txt,
.qh-btn .a .icon,
.qh-btn .a i.iconfont {
	position: relative;
	z-index: 1;
}

/* 图标 hover 时向右轻移 */
.qh-btn a .icon,
.qh-btn a i.iconfont,
.qh-btn .a .icon,
.qh-btn .a i.iconfont {
	transition: transform .5s ease;
	font-size: 0.8vw;
	line-height: 1;
	top: 0.05vw;
}



.qh-btn a:hover::after,
.qh-btn .a:hover::after {
	border-color: var(--qh-orange);
}

/* 橙色填充层：默认 scaleX(0) 收在左侧，hover 时由左向右铺满整颗按钮 */
.qh-btn a::before,
.qh-btn .a::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 0%;
	height: 100%;
	background: var(--qh-orange);
	transition: all .5s cubic-bezier(0.215, 0.610, 0.355, 1);
	z-index: 0;
}

.qh-btn a:hover::before,
.qh-btn .a:hover::before {
	width: 100%;
	right: auto;
	left: 0;
}

.qh-btn a .txt,
.qh-btn .a .txt {
	position: relative;
}




.qh-btn.b a,
.qh-btn.b .a {
	color: var(--qh-orange);
	background: rgba(0, 0, 0, 0);
	border-color: var(--qh-orange);
}

.qh-btn.b a::after,
.qh-btn.b .a::after {
	border-color: var(--qh-orange);
}

.qh-btn a:hover,
.qh-btn.b a:hover,
.qh-btn .a:hover {
	color: #fff;
}

.singe-page {
	font-size: 0.85vw;
}

.common-name {
	width: 100%;
	height: auto;
	position: relative;
}

.common-name h2,.common-name .h2 {
	font-weight: 600;
	font-size: 2.5vw;
	margin-bottom: 2vw;
}

.common-name .desc {
	font-size: 16px;
	margin-top: -1.5vw;
	line-height: 1.6;
}

.sheji-box{
	width: 100%;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	position: relative;
	align-items: center;
}

.sheji-box .thum{
	width: 55%;
}

.sheji-wrap{
	width: 35%;
}

.sj-top{
	width: 100%;
	height: auto;
	position: relative;
	display: flex;
	align-items: center;
	margin-bottom: 1vw;
	justify-content: space-between;
}

.six-wrap{
	background: #e8eefd;
}

.six-road .common-name{
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}

.six-road .common-name .h2{
	width: auto;
	margin-bottom: 0;
}

.six-road .common-name .desc{
	width: 40%;
	font-size: 14px;
}

.sj-top .name{
	width: auto;
	font-size: 1.2vw;
	font-weight: 600;
}

.sj-top .btn{
	width: auto;
	display: flex;
	align-items: center;
	gap: 2vw;
}

.sj-top .btn>div{
	cursor: pointer;
}

.sj-top .btn>div.swiper-button-disabled{
	opacity: 0.2;
}

.sjSwiper .swiper-slide{
	display: flex;
	justify-content: space-between;
	gap: 1vw;
	color: rgba(0, 0, 0, .5);
}

.sjSwiper .swiper-slide .num{
	width: auto;
	font-family: din;
}

.sjSwiper .swiper-slide .desc{
	width: auto;
	font-size: 14px;
	line-height: 1.7;
}

.sheji-gc{
	width: 100%;
	height: auto;
	position: relative;
	margin-top: 2vw;
	background: #ffffff;
	padding: 2.5vw 1.5vw;
}

.eyebrow {
	display: flex;
	align-items: center;
	gap: 0.55vw;
	margin-bottom: 0.25vw;
}

.common-name.c .eyebrow{
	justify-content: center;
}

.eyebrow::before {
	content: '';
	/* 宽度做成 CSS 变量：首页 .sys-top 的文字入场动画会把 --eyebrow-line 从 0vw 补间到 1.7vw（橙线从左长出）。
	   其它地方的 .eyebrow 不设这个变量，走的仍是默认 1.7vw，互不影响。 */
	width: var(--eyebrow-line, 1.7vw);
	height: 2px;
	background: var(--qh-orange);
	display: block;
	flex: 0 0 auto;
}

.common-name.c .eyebrow::before{
	display: none;
}

.eyebrow span {
	font-family: Manrope;
	font-size: 0.78vw;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	opacity: 0.72;
	color: var(--qh-orange);
}

.sys-top .eyebrow span {
	color: var(--qh-orange);
	opacity: 1;
}

.apps-wrap .common-name {
	position: absolute;
	left: 5%;
	z-index: 10;
	top: 15%;
	color: #ffffff;
	width: 40%;
}

.apps-wrap .common-name .desc {
	width: 70%;
	line-height: 1.7;
	font-size: 0.9vw;
}

.app-menu {
	width: auto;
	height: auto;
	position: absolute;
	left: 5%;
	top: 6vw;
	color: #ffffff;
	z-index: 10;
	gap: 0.5vw;
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
}

/* apps-wrap 顶部抵达视窗顶部时由 JS 加 is-fixed：absolute → fixed（吸顶），
   left:5% / top:6vw 沿用基础规则，切换瞬间位置不变、无跳位。 */
.app-menu.is-fixed {
	position: fixed;
}

.app-menu .item {
	width: 100%;
	height: auto;
	position: relative;
	cursor: pointer;
}

.app-menu .item .mark,
.about-list .item .box .mark {
	width: 100%;
	height: auto;
	display: flex;
	align-items: center;
	position: relative;
	gap: 0.35vw;
}

.app-menu .item .mark span,
.about-list .item .box .mark .span {
	width: 0.5vw;
	height: 0.5vw;
	background: var(--qh-blur);
	position: relative;
	display: block;
}

.about-list .item .box .mark .span{
	width: auto;
    height: auto;
    text-align: center;
    background-color: transparent;
    color: #3e3e3e;
    font-size: 4vw;
    font-family: 'din';
    position: absolute;
    right: 0;
}

.about-list .item:nth-child(1) .box .mark .span{
	font-size: 3vw;
    font-weight: bold;
}

.about-list .item:nth-child(3) .box .mark .span{
	font-size: 3vw;
    font-weight: bold;
}

.app-menu .item .mark p,
.about-list .item .box .mark p {
	display: inline-block;
	font-size: 0.7vw;
	font-family: Manrope;
	text-transform: capitalize;
	opacity: 0.5;
}

.app-menu::before {
	width: 1px;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	content: '';
	background: rgba(255, 255, 255, 0.25);
}

.app-menu .item .name {
	width: 100%;
	position: relative;
	font-size: 0.8vw;
	padding: 0.45vw 1.2vw;
	transition: all 0.5s;
	color: rgba(255, 255, 255, 0.5);
	font-weight: 600;
}

.app-menu .item .name::after {
	width: 3px;
	height: 100%;
	position: absolute;
	left: -1px;
	top: 0;
	content: '';
	background: #ffffff;
	transition: all 1s;
	transform-origin: center center;
	opacity: 0;
}

.app-menu .item.active .name {
	font-size: 1.1vw;
	color: rgba(255, 255, 255, 1);
}

.app-menu .item.active .name::after {
	/* transform: scaleY(1); */
	opacity: 1;
}


.app-menu .item .mark {
	transform: translateY(15px);
	opacity: 0;
	transition: all .5s;
}

.app-menu .item.active .mark {
	transform: translateY(0px);
	opacity: 1;
}

/* ====== apps 图片切换 + info 有序入场 ======
   多个 .apps .item 叠放，仅 .active 显示（切图）；active 时 info 内
   name→desc→qh-btn 依次淡入上浮，与 banner slogan 同款节奏。 */
.apps .item {
	position: sticky;
	width: 100%;
	height: 100vh;
	top: 0;
}


/* 背景图用 CSS mask 做横向(270deg, 右→左)柔边渐变擦除：默认 --reveal:120% 完全隐藏，
   active 时由 GSAP 把 --reveal 从 120% 推到 0% —— 新图带 0.22 残影柔光边、沿水平方向
   逐渐显示，旧图同时收起，实现柔和渐变切换（非硬边/非纯色遮罩）。
   无 GSAP / 减弱动态时退回硬切：.active 即全显、其余隐藏。 */
.apps .item .img {
	position: absolute;
	width: 100%;
	height: 100%;
}

.apps .item.active .img {
	--reveal: 0%;
}



.about-wrap {
	background: var(--qh-bg-blue);
	color: var(--qh-text);
	position: relative;
	overflow: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.about-wrap .common-name .desc{
	color: #333333;
	font-size: 1.3vw;
	font-family: Manrope;
	font-weight: 600;
}

.about-wrap::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		repeating-linear-gradient(0deg, rgba(30, 27, 24, 0.045) 0px, rgba(30, 27, 24, 0.045) 1px, transparent 1px, transparent 48px),
		repeating-linear-gradient(90deg, rgba(30, 27, 24, 0.045) 0px, rgba(30, 27, 24, 0.045) 1px, transparent 1px, transparent 48px),
		radial-gradient(circle at 82% 110%, rgba(222, 90, 17, 0.10), transparent 55%),
		radial-gradient(circle at 10% 0%, rgba(222, 90, 17, 0.05), transparent 42%);
	background-repeat: repeat, repeat, no-repeat, no-repeat;
	background-position: 0 0, 0 0, center, center;
	background-size: auto, auto, cover, cover;
	pointer-events: none;
	z-index: 0;
	display: none;
}

.about-wrap>* {
	position: relative;
	z-index: 1;
}


.common-name.w {
	color: #ffffff;
}

.common-name.c {
	text-align: center;
}

.hzhb {
	margin-top: 3vw;
	margin-bottom: 6vw;
	position: relative;
}

/* .hzhb::before,.hzhb::after{
	width: 30%;
	height: 100%;
	position: absolute;
	top: 0;
	content: '';
	z-index: 5;
    pointer-events: none;
}

.hzhb::before{
	left: 0;
	background: linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0));
}

.hzhb::after{
	right: 0;
	background: linear-gradient(0deg, rgba(255,255,255,1), rgba(255,255,255,0));
} */

/* 合作伙伴 logo 墙：参考 unitedcarriers.com home-partners-cms 的等宽网格 + 细线分隔布局 */
.hzhb-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	border-top: 1px solid var(--qh-line);
	border-left: 1px solid var(--qh-line);
}

.hzhb-item {
	border-right: 1px solid var(--qh-line);
	border-bottom: 1px solid var(--qh-line);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.2vw;
}

.txt1{
    font-size: 0.85vw;
    letter-spacing: 0.1vw;
    font-family: Quicksand;
    position: relative;
    padding-left: 1.5vw;
    opacity: 0;
}

.txt1:before{
    width: 1vw;
    height: 1px;
    position: absolute;
    left: 0;
    top: 50%;
    content: '';
    background: #fff;
}

.txt2{
    font-size: 1.2vw;
    letter-spacing: 0.1vw;
    font-family: Quicksand;
    margin-top: 1vw;
    font-weight: 600;
    opacity: 0;
}
.txt3{
    margin-top: 2vw;
    opacity: 0;
}
.txt4{
    margin-top: 0.5vw;
	margin-bottom: 2vw;
	opacity: 0;
}
.app-swiper .swiper-pagination-bullet-active{
	background: var(--qh-blur);
}

.app-swiper .swiper-pagination{
	bottom: 0;
}

.hzhb-item:nth-child(2n){
	transition-delay: 0.1s;
}

.hzhb-item:nth-child(3n){
	transition-delay: 0.2s;
}

.hzhb-item:nth-child(4n){
	transition-delay: 0.3s;
}

.hzhb-item:nth-child(5n){
	transition-delay: 0.4s;
}



/* 真实 logo 图片：默认灰度，hover 还原色彩并轻微放大 */
.hzhb-logo {
	width: 90%;
	object-fit: contain;
	transition: filter .45s ease, opacity .45s ease, transform .45s ease;
	aspect-ratio: 10 / 4.8;
}

.hzhb-item:hover .hzhb-logo {
	transform: scale(1.1);
}

/* 占位文字 wordmark（替换真实 logo 后可删除） */
.hzhb-name {
	font-family: Manrope, "PingFang SC", "Microsoft YaHei", sans-serif;
	font-weight: 700;
	font-size: 1.05vw;
	letter-spacing: .06em;
	color: var(--qh-text-dim);
	text-align: center;
	transition: color .4s ease;
}

.hzhb-item:hover .hzhb-name {
	color: var(--qh-orange);
}

/* ====== 合作伙伴 swiper 轮播（首页/关于页；公共方法 shutime.hzhbSwiper() 初始化）======
   每个 slide 内 2 排 × 5 个 logo：行容器沿用基础 .hzhb-grid 网格样式，
   两排贴边处 margin-top:-1px 避免双线；底部水平居中指示器、可点击切换。 */
.hzhb-swiper {
	overflow: hidden;
}

.hzhb-swiper .swiper-slide {
	height: auto;
}

.hzhb-swiper .hzhb-grid + .hzhb-grid {
	margin-top: -1px;
}

.hzhb-swiper .swiper-pagination {
	bottom: 0vw;
	z-index: 10;
	text-align: center;
}

.hzhb-swiper .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	margin: 0 5px;
	background: #c9c9c9;
	opacity: 1;
	transition: background .3s ease;
}

.hzhb-swiper .swiper-pagination-bullet-active {
	background: var(--qh-orange, #DE5A11);
}

@media (max-width: 768px) {
	.hzhb-swiper .swiper-pagination {
		bottom: 2.5vw;
	}
}


.intro-info {
	width: 100%;
	position: relative;
	margin-top: 0;
	z-index: 10;
	text-align: center;
	padding: 0 10%;
}

.intro-info .desc {
	font-size: 0.9vw;
	line-height: 2;
	margin-bottom: 3.5vw;
	margin-top: 1.75vw;
	color: #666;
}

.intro-info .desc p {
	position: relative;
}

.intro-info .desc p::after {
	width: 0.35vw;
	height: 0.35vw;
	position: absolute;
	left: 0;
	top: 0.45vw;
	content: '';
	background: #DE5A11;
	display: none;
}


.qy-word {
	width: 100%;
	height: auto;
	position: absolute;
	text-align: center;
	font-size: 20vw;
	font-family: din;
	display: flex;
	align-items: center;
	justify-content: center;
	color: transparent;
	-webkit-text-stroke: 1px rgba(30, 27, 24, 0.14);
	letter-spacing: 0.05em;
	user-select: none;
	top: 40%;
	left: 5%;
}

.about-list {
	width: 100%;
	height: auto;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 5vw;
}

.about-list .item {
	width: 50%;
	height: auto;
	position: relative;
	display: flex;
	margin-bottom: 10vw;
}


.about-list .item:nth-child(n+3) {
	margin-bottom: 0;
}

.about-list .item .box {
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(10.000000953674316px);
	padding: 2vw;
	width: 70%;
	color: var(--qh-text);
	border: 1px solid rgba(30, 27, 24, 0.06);
	border-radius: 0.35vw;
}

.about-list .item:nth-child(even) {
	justify-content: flex-end;
	top: 5vw;
}

.about-list.ip .item:nth-child(even){
	top: 0;
}

.about-list .item .box .mark {
	justify-content: space-between;
	margin-bottom: 1vw;
}

.about-list .item .box .number {
	font-size: 7vw;
	font-family: din;
	line-height: 1;
}

.about-list .item .box .yby{
	width: 100%;
	display: flex;
	align-items: flex-end;
}

.about-list .item .box .yby .number{
	width: auto;
}

.about-list .item .box .yby .bjs{
	font-family: din;
    font-size: 3vw;
    font-weight: bold;
    position: relative;
    bottom: 0.25vw;
    left: 0.5vw;
}

.about-list .item:nth-child(1) .box .yby .bjs{
	font-size: 2vw;
}

.about-list .item .box .dw{
	text-align: left;
}

.about-list .item .box .wz {
	width: 100%;
	margin-top: 1vw;
	font-size: 1vw;
}

.about-list .item .box .number .number-wrap {
	display: inline-flex;
	align-items: flex-end;
	line-height: 1;
	vertical-align: bottom;
	position: relative;
}

.about-list .item .box .number .number-wrap>span {
	position: absolute;
	right: 0;
	top: 0;
	line-height: 1;
	transform: translateX(100%);
}

.about-list .item .box .number .digit-mask {
	position: relative;
	overflow: hidden;
	height: 1em;
	display: inline-block;
}

.about-list .item .box .number .digit-track {
	display: flex;
	flex-direction: column;
	line-height: 1;
	transform: translateZ(0);
	will-change: transform;
}

.about-list .item .box .number .digit-track span {
	display: block;
	height: 1em;
	line-height: 1;
}

.about-list .item .box .tl-line {
	display: block;
	color: #666666;

}

.award-warp {
	width: 100%;
	margin-top: 10vw;
	position: relative;
	text-align: center;
}

.award-warp .name {
	width: 100%;
	height: auto;
	position: relative;
	margin-bottom: 3vw;
}

.award-warp .name b {
	font-size: 1.6vw;
	margin-bottom: 1vw;
	display: block;
}

.award-warp .name p {
	font-size: 0.8vw;
	opacity: 0.6;
}

.award-warp .list {
	width: 100%;
	height: auto;
	display: flex;
	align-items: center;
	position: relative;
	flex-wrap: wrap;
	gap: 2vw;
	justify-content: center;
}

.award-warp .list .item {
	width: auto;
	display: flex;
	align-items: center;
	position: relative;
	gap: 0.5vw;
	font-size: 0.9vw;
	color: #6C6C6C;
}

.award-warp .list .item span {
	width: 1vw;
	aspect-ratio: 100 / 164;
	object-fit: contain;
}

/* 首页 award-warp：标题 .name 与 4 张资质项有序从下往上淡入
   走项目通用 .ob-ele → .is-inview（进视窗 80% 线加类），与其它板块同一套 20px/1.5s/柔曲线。 */
.award-warp .name,
.award-warp .list .item {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1.5s cubic-bezier(.215, .610, .355, 1),
		transform 1.5s cubic-bezier(.215, .610, .355, 1);
	will-change: opacity, transform;
}

.award-warp .name.is-inview,
.award-warp .list .item.is-inview {
	opacity: 1;
	transform: translateY(0);
}

.award-warp .list .item:nth-child(1).is-inview {
	transition-delay: .1s;
}

.award-warp .list .item:nth-child(2).is-inview {
	transition-delay: .22s;
}

.award-warp .list .item:nth-child(3).is-inview {
	transition-delay: .34s;
}

.award-warp .list .item:nth-child(4).is-inview {
	transition-delay: .46s;
}

.name-flex {
	width: 100%;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: flex-end;
}

.name-flex .common-name {
	width: auto;
}

.name-flex .qh-btn {}

.teck-swiper {
	margin-top: 3vw;
	width: 100%;
	padding: 0% 7.5%;
	overflow: initial;
	min-height: 36.2vw;
}

.parter-wrap {
	overflow: hidden;
}

.footer {
	background-color: #003962;
	color: var(--qh-cream-mid);
	padding: 6vw 0 3vw;
	position: relative;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.footer>* {
	position: relative;
	z-index: 1;
}

.footer::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(222, 90, 17, 0.5), transparent);
	z-index: 0;
}

.footer .foot-top {
	display: flex;
	justify-content: space-between;
	gap: 4vw;
	flex-wrap: wrap;
}

.footer .foot-brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 30%;
}

.footer .foot-brand .brand-logo img {
	height: 3.2vw;
	width: auto;
	display: block;
}

.sub-banner .txt{
	font-weight: 600;
}

.sub-banner .text-cols .desc{
	font-weight: 400;
	margin-top: 1vw;
}

.footer .foot-brand .slogan {
	position: static;
	left: auto;
	top: auto;
	transform: none;
	width: auto;
	height: auto;
	color: #ffffff;
	font-size: 1.7vw;
	margin-top: 1.1vw;
	letter-spacing: 0.02em;
	text-align: left;
	opacity: 1;
	z-index: auto;
	font-weight: 600;
}

.footer .foot-nav {
	display: flex;
    flex-wrap: wrap;
    width: 60%;
    justify-content: space-between;
}

.footer .foot-nav .col h4 {
	font-size: 1vw;
	font-weight: 600;
	margin-bottom: 0.75vw;
	color: #fff;
}

.footer .foot-nav .col a {
	display: block;
	color: rgba(255, 255, 255, .5);
	font-size: 0.8vw;
	line-height: 2.2;
	text-decoration: none;
	transition: color .3s;
}

.footer .foot-nav .col a:hover {
	color: #ffffff;
}

.footer .foot-bar {
	margin-top: 4.5vw;
	padding-top: 1.6vw;
	border-top: 1px solid rgba(255, 255, 255, .1);
	display: flex;
	font-size: 0.7vw;
	color: rgba(255, 255, 255, .4);
	gap: 0.5vw;
	align-items: center;
}


.footer .foot-bar a{
	color: rgba(255, 255, 255, .4);
}

/* 悬停某张卡片时，其余卡片变暗（对标 heynesh work-track 的 dim-siblings 效果） */
.teck-swiper .swiper-slide {
	transition: opacity .4s ease;
}

.teck-swiper .swiper-wrapper:has(.swiper-slide:hover) .swiper-slide {
	opacity: .35;
}

.teck-swiper .swiper-wrapper:has(.swiper-slide:hover) .swiper-slide:hover {
	opacity: 1;
}

.teck-swiper .thum img {
	width: 100%;
	aspect-ratio: 1 / 1.35;
	position: relative;
	transition: all 1s;
	border-radius: 2px;
}

/* hover 描边 + 移除调暗，改为点亮当前卡 */
.teck-swiper .swiper-slide a:hover .thum img {
	transform: translateY(-0.6vw);
	box-shadow: 0 1.5vw 3vw rgba(25, 21, 18, 0.24);
	border-color: rgba(222, 90, 17, 0.45);
}



.teck-swiper .swiper-slide {
	width: 28vw;
}

.teck-swiper .swiper-slide a {
	position: relative;
	display: block;
}

.teck-swiper .swiper-slide a:hover .thum img {
	transform: scale(1.05);
	opacity: 0.5;
	filter: blur(10px);
}

.teck-swiper .swiper-slide a .more-icon {
	width: 2.5vw;
	height: 2.5vw;
	position: absolute;
	right: 2vw;
	top: 2vw;
	background: #DE5A11;
	line-height: 2.5vw;
	text-align: center;
	color: #fff;
	font-size: 1.25vw;
	transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	border-radius: 50%;
	transform: scale(0);
}

.teck-swiper .swiper-slide a .more-icon i {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	line-height: 1;


}

.teck-swiper .swiper-slide a:hover .more-icon {
	transform: scale(1);
}

.teck-swiper .swiper-slide .info {
	width: 100%;
	height: auto;
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 2vw;
	color: #fff;
	opacity: 0;
	transform: translateY(25px);
	/* background: linear-gradient(to top, rgba(25,21,18,0.92) 0%, rgba(25,21,18,0.45) 55%, rgba(25,21,18,0.06) 100%); */
}

.teck-name {
	position: absolute;
	width: 100%;
	height: auto;
	left: 0;
	bottom: 0;
	padding: 2vw;
	color: #fff;
	font-weight: 600;
	
	font-size: 1.2vw;
    line-height: 1.5;
}

.teck-swiper .swiper-slide a:hover .teck-name {
	opacity: 0;
}

.teck-swiper .swiper-slide a:hover .info {
	opacity: 1;
	transform: translateY(0px);
}

.teck-swiper .swiper-slide .info .title {
	width: 100%;
	height: auto;
	position: relative;
	font-size: 1.4vw;
	margin-bottom: 1.5vw;
	font-weight: 600;
}

.teck-swiper .swiper-slide a .thum {
	background: #000;
}

.teck-swiper .swiper-slide a .thum::after {
	width: 100%;
	height: 50%;
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	background-image: linear-gradient(0deg, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
}

.teck-swiper .swiper-slide a .thum img {
	opacity: 0.85;
}


.tech-list .item .box .info .rows {
	width: 100%;
	height: auto;
	position: relative;
	border-bottom: 1px solid rgba(255, 255, 255, .25);
	margin-bottom: 0.5vw;
	padding-bottom: 0.5vw;
}

.tech-list .item .box .info .rows:first-child{
	padding-bottom: 0.5vw;
}

.tech-list .item .box .info .rows:last-child {
	border-bottom: none;
	margin-bottom: 0;
}

.tech-list .item .box .info .rows .name {
	width: 100%;
	display: flex;
	align-items: center;
	position: relative;
	gap: 0.35vw;
	margin-bottom: 0.25vw;
}

.tech-list .item .box .info .rows .name span {
	width: 0.5vw;
	height: 0.5vw;
	background: #DE5A11;
	position: relative;
	display: block;
	display: none;
}

.tech-list .item .box .info .rows .name p {
	font-size: 0.9vw;
	font-weight: 600;
}

.tech-list .item .box .info .rows .desc {
	font-size: 0.8vw;
	line-height: 1.5;
	font-weight: 400;
	opacity: 0.85;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	word-break: break-word;
}

.teck-swiper .swiper-button-next,
.teck-swiper .swiper-button-prev {
	width: 50px;
	height: 50px;
	border: 1px solid rgba(255, 255, 255, .35);
	backdrop-filter: blur(10px);
	border-radius: 50%;
}

.teck-swiper .swiper-button-next:after,
.teck-swiper .swiper-button-prev:after {
	color: #fff;
	font-size: 0.85vw;
}

.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
	pointer-events: auto;
}

.teck-swiper .swiper-button-prev {
	left: 10%;
}

.teck-swiper .swiper-button-next {
	right: 10%;
}

.news-wrap {
	padding-top: 0;
}

.news-hero {
	width: 100%;
	margin-top: 3vw;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2vw;
}

.news-hero .focus {
	width: 100%;
	height: auto;
	position: relative;
}

.news-hero .focus a {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
	border-radius: 0.35vw;
    overflow: hidden;
}

.news-hero .focus a {
	opacity: 1;            
	transform: none;
	transition: all 0.5s;
}

.news-hero .focus a:hover{
	box-shadow: 0px 0px 35px rgba(0, 0, 0, .1);
}

.news-hero .focus a.is-inview {
	clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}


.list-wrap {
	width: 100%;
	position: relative;
	padding: 0 1.5vw;
	padding-top: 1.5vw;
	background: #f9f9f9;
}

.list-wrap .list {
	width: 100%;
	height: auto;
	position: relative;
}

.list-wrap .list a {
	display: flex;
	width: 100%;
	height: auto;
	position: relative;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	padding: 1.6vw 0;
}

.news-hero .focus a::after {
	width: 0%;
	height: 1px;
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	background: var(--qh-blur);
	transition: all 1s;
}

.news-hero .focus a:hover::after {
	width: 100%;
}

.list-wrap .n-mark {
	background: rgba(0, 0, 0, 0.05);
}

.list-wrap .list a:last-child {
	border-bottom: none;

}

.list-wrap .list a .txt {
	font-size: 0.95vw;
	-webkit-line-clamp: 1;
	width: calc(100% - 5vw);
}

.list-wrap .list a:hover .txt{
	color: var(--qh-orange);
}

.list-wrap .list a .date {
	font-size: 0.75vw;
	font-family: Manrope;
	width: 4.5vw;
	text-align: right;
}

.news-hero .focus .thum .img{
	position: relative;
    width: 100%;
    will-change: transform;
    overflow: hidden;
    aspect-ratio: 16 / 9;
	
}

.news-hero .focus .thum .img::after{
	width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    content: '';
    background: #ffffff;
    transform-origin: center bottom;
    transition: all 0.75s cubic-bezier(0.86, 0, 0.07, 1) 0.5s;
    will-change: transform;
}



.news-hero .focus.is-inview .thum .img::after{
	transform: scaleY(0);
}



.news-hero .focus.is-inview:hover .thum .img img{
	transform: scale(1.1);
}

.news-hero .focus .thum img {
	width: 100%;
	aspect-ratio: 16 / 9;
	transform: scale(1);
    transition: all 0.5s;
}


.news-hero .focus a:hover .thum img {
	transform: scale(1.05);
}

.item .field-products .fp-card .fp-img .thum img{
	transition: all 0.5s;
}

.item .field-products .fp-card:hover .fp-img .thum img{
	transform: scale(1.05);
}

.news-hero .focus .info {
	width: 100%;
	height: auto;
	position: relative;
	padding: 1.5vw;
	border-bottom: 1px solid #f9f9f9;
}

.news-hero .focus .info .name {
	font-size: 1vw;
	position: relative;
	line-height: 1.6;
	margin-bottom: 2vw;
    min-height: 3.5vw;
}

.news-hero .focus .info .date {
	width: 100%;
	font-size: 0.75vw;
	font-family: Manrope;
}

.news-hero .focus .info .desc {
	width: 100%;
	height: auto;
	position: relative;
	font-size: 0.8vw;
	line-height: 1.7;
	opacity: 0.65;
}

.n-mark {
	width: auto;
	position: absolute;
	left: 0;
	top: 0;
	font-size: 0.7vw;
	background: rgba(255, 255, 255, 0.50);
	backdrop-filter: blur(10.000000953674316px);
	padding: 0.25vw 0.5vw;
	display: flex;
	gap: 0.25vw;
	align-items: center;
}

.n-mark span {
	width: 0.4vw;
	height: 0.4vw;
	background: var(--qh-orange);
	position: relative;
	display: block;
}

/* ============================================================
   品牌统一 · 覆写模板遗留色（common.css 中的金橙 #c7821a / 蓝）
   表单校验红、成功绿等语义色保持不变
   ============================================================ */
.common-btns .btn::before,
.pro_close,
.searchBtn:hover,
.search-btn,
.bread-crumb span,
.scroll-container::-webkit-scrollbar-thumb,
#page li.xl-active,
#page li:hover,
.drag-btn .box .circle-bg,
.searchContent .scResult.b {
	background: var(--qh-orange);
}

.related-news .list .item:hover .name,
.pn_news .item a:hover,
.ndc_npnews a:hover {
	color: var(--qh-orange);
}

.detail_name::after,
.same_news a:before {
	background: var(--qh-orange);
}

.jpage a.jp-current,
.data-list .item .top .number .num {
	/* count-up 模式下取消旧滚轮用的蓝底方块，改为数字自带红→粉渐变（与父级 .number 同色），
	   由 JS 直接改写 textContent 实现从 0 增长 */
	background-image: linear-gradient(90deg, var(--qh-blur) 0%, var(--qh-blur) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

/* ===== 关于我们 · 数字滚轮结构（与首页 about-list 同款） =====
   父级 .number 原本用整体渐变裁切（红→粉）给数字上色；拆成滚轮后若保留该裁切，
   会与每个数字 span 的自带上色叠加导致颜色异常。故 .num 带上 .has-reel 时关掉
   父级裁切，改由每个数字 span 自己带上同样的红→粉渐变。 */
.data-list .item .top .number:has(.num.has-reel) {
	background: none;
	-webkit-background-clip: border-box;
	background-clip: border-box;
	-webkit-text-fill-color: currentColor;
	color: currentColor;
}

.data-list .item .top .number .num.has-reel {
	background-image: none;
}

.data-list .item .top .number .num .number-wrap {
	display: inline-flex;
	align-items: flex-end;
	line-height: 1;
	vertical-align: bottom;
	position: relative;
}

.data-list .item .top .number .num .number-wrap>span {
	position: absolute;
	right: 0;
	top: 0;
	line-height: 1;
	transform: translateX(100%);
	background: linear-gradient(90deg, #cb0211 0%, #ff6975 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.data-list .item .top .number .num .digit-mask {
	position: relative;
	overflow: hidden;
	height: 1em;
	display: inline-block;
}

.data-list .item .top .number .num .digit-track {
	display: flex;
	flex-direction: column;
	line-height: 1;
	transform: translateZ(0);
	will-change: transform;
}

.data-list .item .top .number .num .digit-track span {
	display: block;
	height: 1em;
	line-height: 1;
	background: linear-gradient(90deg, var(--qh-blur) 0%, var(--qh-blur) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

/* 新闻区文字统一暖色中性（覆盖 common.css 全局链接灰 #333333） */
.list-wrap .list a .txt,
.news-hero .focus .info .name {
	color: var(--qh-text);
}

.list-wrap .list a .date,
.news-hero .focus .info .date {
	color: var(--qh-text-dim);
}



.hzhb-item {
	position: relative;
}

.hzhb-item::after,
.hzhb-item::before,
.hzhb-item span::after,
.hzhb-item span::before {
	width: 3px;
	height: 3px;
	position: absolute;
	left: 0.5vw;
	top: 0.5vw;
	content: '';
	background: #111111;
	border-radius: 50%;
}

.hzhb-item::before {
	left: auto;
	right: 0.5vw;
}

.hzhb-item span::after {
	top: auto;
	bottom: 0.5vw;
}

.hzhb-item span::before {
	top: auto;
	bottom: 0.5vw;
	left: auto;
	right: 0.5vw;
}

.hzhb-item span {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	display: block;
}

.sub-banner .img img {
	width: 100%;
	aspect-ratio: 100 / 40;
	position: relative;
}

.sub-banner .en {
	font-size: 0.7vw;
	font-family: Manrope;
	text-transform: uppercase;
}

.sub-banner .desc {
	width: 100%;
	font-size: 1vw;
	line-height: 1.7;
}

.sub-banner .text-cols {
	width: 55%;
	transform: translateY(-50%);
}

.sub-banner .text-cols .desc{
	width: 60%;
}

.application {
	position: relative;
	background: #ffffff;
}

.app-section {
	width: 100%;
	height: auto;
	position: relative;
}

.app-section .card {
	width: 100%;
	display: flex;
	justify-content: space-between;
	height: 100vh;
	position: sticky;
	top: 0;
	background: #e8eefd;
}


.app-section .card:nth-child(odd) {
	flex-direction: row-reverse;
}


.app-section .card .cols {
	width: 50%;
	overflow: hidden;
	position: relative;
}

.app-section .card .cols img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nav ul li.has-mega {
	position: relative;
}

.hzhb-swiper{
	padding-bottom: 30px;
}

.mega-menu {
	position: absolute;
	left: 50%;
	top: 100%;
	width: 32vw;
	background: #ffffff;
	border-radius:0 0 12px 12px;
	box-shadow: 0 18px 50px rgba(29, 34, 22, .12);
	display: flex;
	overflow: hidden;
	z-index: 99;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateX(-50%) translateY(-10px);
	transition: opacity .35s ease, visibility .35s ease, transform .45s cubic-bezier(0.23, 1, 0.32, 1);
	padding: 1.5vw;
	justify-content: space-between;
	align-items: flex-start;
}

.card-content .singe-page{
	font-size: 16px;
    margin-top: 15px;
    line-height: 2;
    color: #666;
    border-top: 1px solid rgba(0, 0, 0, .1);
    padding-top: 15px;
}

.card-content .singe-page strong{
	font-family: sans-serif;
	font-weight: 500;
	color: #3e3e3e;
}

.card-content .singe-page p{
	margin-bottom: 0;
}

.nav ul li.has-mega:hover .mega-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.mega-links {
	padding: 0;
    display: flex;
    flex-direction: column;
    width: 45%;
}

.mega-links a {
	display: flex;
	align-items: center;
	padding: 0.4vw 1vw;
    font-size: 0.9vw;
	color: #3e3e3e;
	font-weight: 400;
	transition: color .3s ease;
	white-space: nowrap;
	border-radius: 0.35vw;
	justify-content: space-between;
	transition: all 0.5s;
}

.header .nav ul .mega-links a{
	font-weight: 400;
	padding: 0.35vw 0.75vw;
	line-height: 1.1;
    height: auto;
	color: #3e3e3e;
	font-size: 15px;
}

.mega-links a:hover{
	background: #f3f3f3;
}

.mega-links a p{
	width: calc(100% - 2vw);
}
.mega-links a i{
	width: auto;
	height: 1.5vw;
	text-align: center;
	line-height: 1.5vw;
	font-size: 0.75vw;
}

.mega-links a:hover {
	color: #4e5d32;
}

.mega-links a:hover::before {
	opacity: 1;
}

.mega-thumb {
	width: 45%;
	border-radius: 0.35vw;
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 10.8;
}


.author {
	width: 100%;
	height: auto;
	position: absolute;
	left: 0;
	top: 0;
}

.author span {
	display: block;
	width: 100%;
	height: 1px;
	display: block;
	position: absolute;
	left: 0;
	top: -120px;
}

.mega-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nav ul li:hover .mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}


.app-section .card .cont {
	width: 50%;
	padding: 4.5vw 9vw;
	display: flex;
	flex-wrap: wrap;
	align-content: center;
}

.app-section .card .cont .title {
	font-size: 2vw;
	position: relative;
	font-weight: 600;
	padding-bottom: 1.5vw;
	margin-bottom: 1.5vw;
	width: 100%;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.app-section .card .cont .singe-page {
	margin-bottom: 2vw;
	color: #666;
}

.app-swiper {
	width: 100%;
	position: relative;
	padding-bottom: 30px;
}

.app-swiper .swiper-slide {
	width: 50%;
}

.p-scroll{
	width: 100%;
	height: auto;
	position: absolute;
	left: 0;
	opacity: 0;
	transition: all 0.5s;
	top: 45%;
	transform: translateY(-50%);
}

.p-scroll .s{
	width: 300%;
	opacity: 0.25;
}

.p-scroll .s .i{
	animation: loopAnimate 10s linear infinite;
}

@-webkit-keyframes loopAnimate{
	0%{
		transform: translateX(0%);
	}
	100%{
		transform: translateX(-50%);
	}
}

.app-swiper .swiper-slide a:hover .p-scroll{
	opacity: 1;
}

.app-swiper .swiper-slide a {
	border: 1px solid rgba(0, 0, 0, 0.05);
	padding: 1.5vw;
	display: block;
	border-radius: 0.35vw;
	transition: all 0.5s;
	overflow: hidden;
	position: relative;
}

.app-swiper .swiper-slide a .thum img{
	transition: all 0.5s;
}

.app-swiper .swiper-slide a:hover .thum img{
	transform: scale(1.05);
}

.app-swiper .swiper-slide a:hover{
	background: rgba(255,255,255,.35);
}

.app-swiper .swiper-slide .thum img,
.apps .item .field-products .fp-card .fp-img .thum img,
.product-hero .card .item a .thum img,
.show-img .thum img,
.filter-list .item a .thum img {
	aspect-ratio: 100 / 85;
	object-fit: contain;
}

.app-swiper .swiper-slide a .info {
	width: 100%;
	text-align: center;
	margin-top: 1vw;
}

.app-swiper .swiper-slide a .name {
	width: 100%;
	text-align: center;
	font-size: 0.95vw;
	margin-bottom: 0.5vw;
}

.app-swiper .swiper-slide a .more {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	font-size: 0.65vw;
	gap: 0.1vw;
	font-weight: 400;
	color: rgba(0,0,0,.45);
	transition: all 0.35s;
}

.contact-bar {
	padding: 4vw 0;
	width: 100%;
	background: #e8eefd;
}

.contact-bar .w1400 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
}

.contact-bar .name {
	width: auto;
	font-size: 1.5vw;
	line-height: 1.5;
	font-weight: 600;
}

.contact-bar .qh-btn a {
	color: #3e3e3e;
	font-size: 0.8vw;
}

.contact-bar .qh-btn a {
	color: #ffffff;
}

.contact-bar .qh-btn a::after {
	border: 1px solid rgba(0, 0, 0, .15);
}

.contact-bar .qh-btn a::after {
	border-color: var(--qh-orange);
}

.contact-bar .qh-btn a::before{
	width: 100%;
    right: auto;
    left: 0;
}

.product-banner {
	width: 100%;
	aspect-ratio: 100 / 40;
	position: relative;
	background: #e8eefd;
	overflow: hidden;
}

.product-banner .w1400 {
	height: 100%;
	display: flex;
	align-items: center;
}

.product-banner .cont {
	width: 40%;
	height: auto;
	position: relative;
}

.product-banner .cont .en {
	font-size: 0.8vw;
	font-family: Manrope;
	text-transform: uppercase;
	color: #666666;
	margin-bottom: 1vw;
}

.product-banner .cont .cn {
	font-size: 2.5vw;
	margin-bottom: 1vw;
	font-weight: 600;
	line-height: 1.2;
	transition-delay: 0.2s;
}

.product-banner .cont .ms{
	transition-delay: 0.4s;
}

.product-banner .cont .xms{
	transition-delay: 0.6s;
}

.product-banner .cont .ms {
	margin-bottom: 2vw;
	line-height: 2;
	font-size: 16px;
	color: #666;
}

.road-list{
	width: 100%;
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 2vw;
	margin-top: 0vw;
}

.road-list .item{
	width: 100%;
	height: auto;
	position: relative;
	border: 1px solid rgba(0, 0, 0, .05);
	border-left-width: 5px;
	border-left-color: var(--qh-blur);
	background: #f4faff;
}

.road-list .item .box{
	padding: 3vw;
	position: relative;
	display: flex;
    justify-content: space-between;
	align-items: flex-start;
}

.road-list .item .box .num{
	width: 5vw;
	font-size: 4vw;
	font-family: din;
	color: var(--qh-blur);
    opacity: 0.2;
	line-height: 0.7;
}

.road-list .item .box .title{
	margin-bottom: 0;
	width: calc(100% - 7vw);
}

.road-list .item .box .title .singe-page{
	font-size: 15px;
    color: #666;
    line-height: 2;
}

.road-list .item .box .title .singe-page p{
	margin-bottom: 0;
}

.road-list .item .title{
	width: 100%;
	height: auto;
	position: relative;
	margin-bottom: 1vw;
}

.road-list .item .title .n{
	width: 100%;
	height: auto;
	position: relative;
	font-size: 20px;
    margin-bottom: 0.5vw;
	font-weight: 600;
	color: var(--qh-blur);
}
.road-list .item .title .d{
	font-size: 14px;
    line-height: 1.6;
    color: #666;
    padding: 0.75vw;
    background: rgba(0, 0, 0, .05);
    border-radius: 0.25vw;
}

.road-list .item .list{
	width: 100%;
	height: auto;
	position: relative;
}

.road-list .item .list .row{
	width: 100%;
	height: auto;
	position: relative;
	border-bottom: 1px solid rgba(0, 0, 0, .05);
	margin-bottom: 1vw;
	padding-bottom: 1vw;
}

.road-list .item .list .row:last-child{
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.road-list .item .list .row .lab{
	font-weight: 600;
	margin-bottom: 0.5vw;
	font-size: 18px;
}

.road-list .item .list .row .desc{
	font-size: 14px;
	line-height: 1.8;
	color: #666;
}

.product-banner .cont .xms{
	padding-left: 10px;
    border-left: 2px solid var(--qh-orange);
    font-size: 14px;
    line-height: 1.8;
    color: #666;
}

.pro-data {
	width: 100%;
	display: flex;
	position: relative;
	gap: 3vw;
}

.pro-data .item {
	width: auto;
	height: auto;
	position: relative;
}

.pro-data .item .top {
	font-size: 2vw;
	font-family: Manrope;
	font-weight: 600;
}

.pro-data .item .top span {
	font-size: 4vw;
	font-family: din;

}

.pro-data .item .name {
	width: 100%;
	font-size: 14px;
	color: #6C6C6C;
}

.product-hero {
	width: 100%;
	height: auto;
	position: relative;
	left: auto;
	top: auto;
	display: flex;
	justify-content: space-between;
	gap: 2%;
	margin-top: 4vw;
}

.product-hero .card {
	width: 23.5%;
	height: auto;
	position: relative;
	left: auto;
	top: auto;
}


.product-hero .card .item {
	width: 100%;
	position: relative;
}

.product-hero .card .item a {
	display: block;
    background: #ffffff;
    padding: 2vw;
    position: relative;
    border: 1px solid rgba(0, 0, 0, 0.025);
	box-shadow: 15px 15px 30px rgba(0, 0, 0, .05);
	border-radius: 0.35vw;
    overflow: hidden;
}

.product-hero .card .item a .mark {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
	text-transform: uppercase;
	font-size: 0.7vw;
	font-family: Manrope;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
	padding-bottom: 1vw;
	margin-bottom: 1vw;
}

.product-hero .card .item a .mark span {
	width: 0.5vw;
	height: 0.5vw;
	background: #DE5A11;
	position: relative;
	display: block;
}

.hzhb-wrap{
	display: none;
}

.product-hero .card .item a .mark .txt {
	opacity: 0.5;
}

.product-hero .card .item a .thum {
	width: 100%;
	aspect-ratio: 100 / 85;
	margin-bottom: 1vw;
}

.product-hero .card .item a .thum img {
	height: 100%;
	object-fit: contain;
}

.product-hero .card .item a .info {
	width: 100%;
	height: auto;
	position: relative;
}

.product-hero .card .item a .info .name {
	width: 100%;
	height: auto;
	position: relative;
	font-size: 24px;
	font-weight: 500;
    font-family: sans-serif;
	margin-bottom: 0.5vw;
}

.product-hero .card .item a .info .desc {
	min-height: 3.8vw;
	color: #999;
    min-height: 4vw;
    line-height: 1.6;
	font-size: 15px;
	-webkit-line-clamp: 3;
}

.step-section {
	background: #e8eefd;
}

.common-name.mb3 {
	margin-bottom: 3vw;
}

.common-name.mb3 h2 {
	margin-bottom: 0;
}

.step-list {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	position: relative;
	border-radius: 0.5vw;
    overflow: hidden;
}

.step-list .item {
	width: 100%;
	height: auto;
	position: relative;
}

.step-list .item::after {
	width: 1px;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	content: '';
	background: rgba(0, 0, 0, .05);
}

.step-list .item:last-child:after {
	display: none;
}

.step-list .item{
	background: #fff;
	padding: 3vw 2vw;
}

.step-list .item .box {
	height: 100%;
	position: relative;
}

.step-list .item .box .mark-tips{
	position: absolute;
	bottom: 0;
	left: 0;
}

.step-list .item .box .icon {
	width: 6%;
	margin-bottom: 1.5vw;
}

.step-list .item .box .icon svg {
	display: block;
	width: 100%;
	height: auto;
}

.step-list .item .box .name {
	font-size: 0.9vw;
	opacity: 0.5;
	margin-bottom: 2vw;
}

.step-list .item .box .desc {
	font-size: 1.3vw;
	line-height: 1.4;
	font-weight: 600;
	margin-bottom: 5vw;
}

.mark-tips {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
	text-transform: uppercase;
	font-size: 0.7vw;
	font-family: Manrope;
}

.mark-tips .txt {
	opacity: 0.5;
}

.mark-tips span {
	width: 0.5vw;
	height: 0.5vw;
	background: var(--qh-blur);
	position: relative;
	display: block;
}

.honor-swiper .swiper-slide .box .mark-tips span{
	display: none;
}

.dz-section {
	height: 100vh;
	position: relative;
	overflow: hidden;
	/* background: url(../images/dz-bg.jpg) center center no-repeat;
	background-size: cover;
	background-attachment: fixed; */
}

.dz-bgs {
	width: 100%;
	height: 140%;
	position: absolute;
	left: 0;
	top: -20%;
	will-change: transform;
}

.dz-bgs img {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	object-fit: cover;
}

.dz-section::before {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	content: '';
	background: rgba(0, 0, 0, .2);
}

.dz-cont {
	width: 40%;
	height: auto;
	position: absolute;
	left: 7.5%;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255, 255, 255, 0.85);
	backdrop-filter: blur(25px);
	padding: 3vw;
	border-radius: 0.5vw;
}

.dz-cont .common-name {
	margin-bottom: 2vw;
}

.dz-cont .common-name h2 {
	margin-bottom: 2.5vw;
}

.dz-cont .singe-page {
	margin-bottom: 3vw;
	color: #666;
}

.show-img {
	width: 35%;
	height: auto;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

.product-menu {
	width: 100%;
	height: auto;
	position: relative;
	border-bottom: 1px solid rgba(0, 0, 0, .05);
	position: sticky;
    top: 80px;
    z-index: 5;
    background: #fff;
}

.product-menu .w1400 {
	justify-content: flex-start;
	gap: 3vw;
}

.product-menu .item {
	width: auto;
	position: relative;
}

.product-menu .item a {
	display: block;
	padding: 1vw 0;
	position: relative;
	font-weight: 600;
	font-size: 1vw;
	color: #999999;
	transition: all 0.5s;
}

.history-line{
	width: 100%;
	height: 100px;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	border: 1px solid rgba(0, 0, 0, .2);
	border-left: none;
    border-right: none;
}

.history-line .span{
	width: 100%;
	height: 1px;
	display: block;
	position: absolute;
	top: 50%;
	height: 1px;
}

.history-line .ts{
	width: 10px;
    height: calc(100% + 2px);
    position: absolute;
    top: -1px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-content: space-between;
}

.history-line .ts span{
	width: 100%;
	height: 1px;
	display: block;
	background: rgba(0,0,0,.2);
}

.history-line .ts:first-child{
	left: -10px;
}

.history-line .ts:last-child{
	right: -10px;
}

.history-line .span::after{
	width: calc(100% - 30px);
	height: 1px;
	position: absolute;
	left: 15px;
	top: 0;
	--dash: 10px;   /* 实线长度 */
	--gap: 6px;     /* 间距 */
	background-image: repeating-linear-gradient(
		to right,
		rgba(0,0,0,.2) 0,
		rgba(0,0,0,.2) var(--dash),
		transparent var(--dash),
		transparent calc(var(--dash) + var(--gap))
	);
	content: '';
}

/* 
.history-line span:nth-child(1),.history-line span:nth-child(3){
	border-bottom: 1px dashed rgba(0, 0, 0, .1);
}

.history-line span:nth-child(2){
	border-bottom: 1px dashed rgba(0, 0, 0, .25);
} */

.product-menu .item.active a {
	color: var(--qh-orange);
}

.product-menu .item:hover a {
	color: var(--qh-orange);
}

.product-menu .item.active a::before {
	opacity: 1;
}

.product-menu .item a::after {
	width: 100%;
	height: 3px;
	position: absolute;
	left: 0;
	bottom: -1px;
	content: '';
	background: var(--qh-orange);
	transition: all 0.5s;
	transform: scale(0);
}

.product-menu .item.active a::after,
.product-menu .item:hover a::after {
	transform: scale(1);
}

.filter-section {
	background: var(--qh-bg-blue);
	padding: 3vw 0;
}

.filter-card {
	width: 25%;
	height: auto;
	position: sticky;
	top: 140px;
}

.filter-box,
.yao-box {
	width: 100%;
	height: auto;
	position: relative;
	border: 1px solid #D5DDE9;
	background: #FFF;
	padding: 2vw;
}

.filter-box {
	margin-bottom: 2vw;
}

.play-video-btn{
	display: none;
}

.filter-name {
	width: 100%;
	height: auto;
	display: flex;
	align-items: center;
	position: relative;
	justify-content: space-between;
	margin-bottom: 1.5vw;
}

.filter-name .icon {
	width: 1vw;
}

.filter-name .txt {
	font-size: 1vw;
	font-weight: 600;
}

.filter-wrap {
	position: relative;
}

.filter-wrap .label {
	width: 100%;
	height: auto;
	position: relative;
	margin-bottom: 1.5vw;
}

.filter-wrap .label:last-child {
	margin-bottom: 0;
}

.filter-wrap .label .title {
	font-size: 0.75vw;
	font-weight: 600;
	color: #566276;
	margin-bottom: 0.5vw;
	position: relative;
}

.filter-wrap .label .title span {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.6vw;
	color: #265ED5;
	font-family: Manrope;
}

.filter-wrap .list {
	width: 100%;
	display: flex;
	gap: 0.35vw;
	flex-wrap: wrap;
}

.filter-wrap .list .btn {
	width: auto;
	height: auto;
	position: relative;
	cursor: pointer;
	border: 1px solid #DCE1E9;
	border-radius: 50px;
	padding: 0.15vw 0.5vw;
	font-size: 0.7vw;
	color: #566276;
	font-family: Manrope;
}

.filter-wrap .list .btn.active{
	background: #1e5bd5;
	border-color: #1e5bd5;
	color: #fff;
}

/* 双滑块容器 */
.range-slider {
	position: relative;
	height: 20px;
	margin: 0vw 0 0.5vw;
}

.overlay{
	width: 100%;
	height: 100vh;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 100;
	background: #fff;
	perspective: 1000px;

}

.load-logo{
	width: 150px;
	height: auto;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	transform-style: preserve-3d;
}

.load-logo img{
	transform-style: preserve-3d;
    transform: translateY(20px) rotateX(40deg);
	opacity: 0;
    backface-visibility: hidden;
}

/* 轨道背景：灰色段 + 蓝色段 + 灰色段 */
.range-track {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	height: 8px;
	transform: translateY(-50%);
	border-radius: 999px;
	background: linear-gradient(to right,
			#e5e7eb 0%,
			#e5e7eb var(--min-percent, 0%),
			#2563eb var(--min-percent, 0%),
			#2563eb var(--max-percent, 100%),
			#e5e7eb var(--max-percent, 100%),
			#e5e7eb 100%);
	pointer-events: none;
}

/* 两个原生 range 输入重叠 */
.range-slider input[type="range"] {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	pointer-events: none;
	/* 事件交给 thumb */
}

/* 让 thumb 可交互 */
.range-slider input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #2563eb;
	cursor: grab;
	pointer-events: auto;
	box-shadow: 0 2px 6px rgba(37, 99, 235, 0.35);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	border: 2px solid #fff;
}

.range-slider input[type="range"]::-moz-range-thumb {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #2563eb;
	cursor: grab;
	pointer-events: auto;
	box-shadow: 0 2px 6px rgba(37, 99, 235, 0.35);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	border: 2px solid #fff;
}

.range-slider input[type="range"]:active::-webkit-slider-thumb {
	cursor: grabbing;
	transform: scale(1.1);
	box-shadow: 0 4px 10px rgba(37, 99, 235, 0.45);
}

.range-slider input[type="range"]:active::-moz-range-thumb {
	cursor: grabbing;
	transform: scale(1.1);
	box-shadow: 0 4px 10px rgba(37, 99, 235, 0.45);
}

/* 让当前拖动的 thumb 在最上层 */
.range-slider input[type="range"].dragging {
	z-index: 3;
}

/* 只有最大值：单滑块（0 ~ max），thumb 需常驻顶层保证可拖 */
.range-slider--single input[type="range"] {
	z-index: 2;
}

.values {
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: #4b5563;
	font-size: 0.6vw;
}

.values strong {
	color: #2563eb;
	font-family: Manrope;
}

.filter-reset {
	width: 100%;
	display: flex;
	justify-content: center;
	padding-top: 1vw;
}

.filter-reset .box {
	width: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	font-size: 0.65vw;
	gap: 0.35vw;
	cursor: pointer;
	color: #666;
}

.filter-content {
	width: calc(75% - 50px);
}

.apps-wrap .common-name{
	display: none;
}

.filter-section .w1400 {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.filter-result {
	width: 100%;
	height: auto;
	margin-bottom: 1vw;
	display: flex;
	gap: 0.5vw;
	color: #666666;
	align-items: center;
}

.filter-result p {
	color: #333;
}

.filter-result span {
	font-size: 0.7vw;
}

.filter-result strong {
	font-family: Manrope;
}

.yao-box .singe-page p:last-child {
	margin-bottom: 0;
}

.yao-box .singe-page {
	font-size: 0.75vw;
	color: #666666;
	line-height: 1.6;
}

.app-mark{
	display: none;
}

.filter-list {
	width: 100%;
	height: auto;
	position: relative;
	margin-bottom: 2vw;
}

.filter-list .item {
	width: 100%;
	height: auto;
	position: relative;
	margin-bottom: 1vw;
}

.filter-list .item a {
	position: relative;
	padding: 1vw;
	display: flex;
	justify-content: space-between;
	border: 1px solid #D5DDE9;
	background: #FFF;
	align-items: center;
}

.filter-list .item a:hover{
	box-shadow: 15px 15px 30px rgba(0, 0, 0, .1);
}


.filter-list .item a .thum {
	width: 12%;
}

.filter-list .item a .cont {
	width: 86%;
	display: flex;
	flex-wrap: wrap;
	position: relative;
	flex-direction: column;
	gap: 0.5vw;
	font-family: Manrope;
}

.filter-list .item a .cont .name {
	font-size: 1vw;
	font-weight: 600;

}

.filter-list .item a .cont .mark {
	display: flex;
	gap: 0.35vw;
	flex-wrap: wrap;
	position: relative;
	width: 100%;
	align-items: center;
}

.filter-list .item a .cont .mark span {
	font-size: 0.65vw;
	padding: 0.1vw 0.5vw;
	border-radius: 2vw;
	background: #F0F3F8;
	color: #5C5C5C;
}

.filter-list .item a .cont .tips {
	color: #728099;
	font-size: 0.75vw;
	line-height: 1.6;
}

.app-wrap {
	position: relative;
}

.app-cards {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2vw;
}

.app-cards .item {
	width: 100%;
	height: auto;
	position: relative;
	transition-delay: 0.5s;
}

.app-cards .item:nth-child(even){
	transition-delay: 0.6s;
}



.app-cards .item a {
	display: block;
	position: relative;
	border-radius: 0.35vw;
    overflow: hidden;
}

.app-cards .item .thum img {
	aspect-ratio: 16 / 9;
	transition: all 0.5s;
}

.app-cards .item:hover .thum img{
	transform: scale(1.05);
}

.app-cards .item .name {
	width: 100%;
	display: flex;
	align-items: center;
	position: relative;
	padding: 1.25vw 1vw;
	background: #F7F7F7;
	font-size: 0.8vw;
	justify-content: space-between;
	transition: all 0.45s;
}

.news-recommond .cont .date.date2{
	display: none;
}

.app-cards .item a:hover .name{
	color: var(--qh-orange);
}

.honor-hero{
	background: var(--qh-bg-blue);
}

.app-cards .item .name .txt {
	width: 90%;
	font-size: 0.9vw;
}

.app-cards .item .name .icon {
	width: auto;
	opacity: 0.5;
	font-size: 0.9vw;
}

.detail-wrap {
	width: 45%;
	position: relative;
	display: flex;
}

.detail-show {
	width: 50%;
	position: relative;
}

.detail-show .name {
	width: 100%;
	font-size: 2.5vw;
	font-weight: 600;
	font-family: Manrope;
	margin-bottom: 1vw;
}

.detail-show .desc {
	width: 100%;
	height: auto;
	position: relative;
	line-height: 1.7;
	font-size: 0.75vw;
	margin-bottom: 1.5vw;
}

.show-data {
	width: 100%;
	height: auto;
	position: relative;
	border-top: 1px solid rgba(0, 0, 0, .1);
	border-bottom: 1px solid rgba(0, 0, 0, .1);
	padding: 1.5vw 0;
	display: flex;
	justify-content: space-between;
	margin-bottom: 2vw;
}

.show-data .item {
	width: auto;
	display: flex;
	position: relative;
	align-items: flex-end;
	gap: 0.35vw;
}

.show-data .item .txt {
	font-size: 0.9vw;
	color: #666;
}

.show-data .item .num {
	font-family: Manrope;
	font-size: 1.6vw;
	font-weight: 600;
	line-height: 1;
}

.show-btn {
	width: 100%;
	display: flex;
	gap: 1vw;
	position: relative;
}

.show-btn a {
	font-size: 14px;
    padding: 12px 12px;
    display: flex;
    position: relative;
    align-items: center;
    border: 1px solid rgba(0, 0, 0, .3);
    gap: 10px;
}

.show-btn a:hover{
	background: var(--qh-blur);
	color: #ffffff;
	border-color: var(--qh-blur);
}

.product-menu.c .w1400 {
	justify-content: center;
}

.cs-wrap {
	background: #F9F9F9;
}

.common-name .tp {
	position: absolute;
	right: 0;
	bottom: 1vw;
	font-size: 0.7vw;
	color: #ababab;
}

.parameter {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 1px solid #e5e5e5;
	background: #ffffff;
	margin-bottom: 3vw;
}

.parameter .item {
	padding: 24px 28px;
	border-right: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* 每行最后一个去掉右边框 */
.parameter .item:nth-child(4n) {
	border-right: none;
}

/* 最后一行所有 item 去掉下边框 */
.parameter .item:nth-last-child(-n+4) {
	border-bottom: none;
}

.parameter .item .desc {
	font-size: 0.7vw;
	color: #999;
	line-height: 1.4;
}

.parameter .item .name {
	font-size: 0.95vw;
	color: #333;
	font-weight: 600;
	line-height: 1.5;
	font-family: Manrope;
}

.singe-page table {
	background: #fff;
	font-family: Manrope;
}

.cc-cols {
	width: 35%;
}

.cc-thum {
	width: 50%;
	border: 1px solid rgba(0, 0, 0, .1);
}

.cc-thum img {
	aspect-ratio: 100 / 53;
	position: relative;
	object-fit: contain;
}

.cc-cols .desc {
	position: relative;
	line-height: 1.7;
	margin-bottom: 2vw;
}

.cc-cols .summary {
	color: #666666;
	position: relative;
	padding-left: 1vw;
	line-height: 1.7;
	border-left: 2px solid var(--qh-orange);
}

.ssx-wrap {
	background: #F9F9F9;
}

.ssx-cols {
	width: 30%;
}

.ssx-wrap .parameter {
	margin-bottom: 0;
	width: 50%;
	grid-template-columns: repeat(2, 1fr);
}

.ssx-wrap .parameter .item:nth-last-child(-n+4) {
	border-bottom: 1px solid #e5e5e5;
}

.ssx-wrap .parameter .item:nth-last-child(-n+2) {
	border-bottom: none;
}

.qd-list {
	width: 100%;
	height: auto;
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2.5vw;
}

.qd-list .item {
	width: 100%;
	height: auto;
	position: relative;
	border: 1px solid rgba(0, 0, 0, .1);
	padding: 1vw;
}

.qd-list .item .thum img {
	aspect-ratio: 100 / 64;
	object-fit: contain;
}

.big-swiper {
	width: 12%;
	height: 70%;
    overflow: hidden;
    position: absolute;
    z-index: 2;
    top: 15%;
}

.small-swiper {
	width: 88%;
	height: auto;
	position: relative;
	margin-left: 12%;
	overflow: inherit;
}

.small-swiper .swiper-slide {
	padding: 6vw;
	background: transparent;
	box-sizing: border-box;
}

.small-swiper .swiper-slide .thum {
	overflow: visible;
}

.small-swiper .swiper-slide .thum img{
	aspect-ratio: 1;
    object-fit: contain;
}

.small-swiper .swiper-slide .thum img {
	filter: drop-shadow(2.2vw 0.6vw 2.5vw rgba(153, 153, 153, 0.28)) drop-shadow(0.9vw 0.25vw 1vw rgba(153, 153, 153, 0.38)) drop-shadow(0.3vw 0.08vw 0.35vw rgba(153, 153, 153, 0.55));

}

.big-swiper .swiper-slide {
	height: auto;
	background: #fff;
	border: 1px solid #e5e5e5;
	padding: 0.35vw;
	cursor: pointer;
}

.big-swiper .swiper-slide .thum img {
	aspect-ratio: 100 / 85;
	object-fit: contain;
}

.big-swiper .swiper-slide.swiper-slide-thumb-active {
	border-color: var(--qh-blur);
}

.core-product {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	position: relative;
	background: #fff;
	gap: 1vw;
}

.core-product .item {
	width: 100%;
	height: auto;
	position: relative;
}

.core-product .item .box {
	padding: 1.5vw;
	position: relative;
	border: 1px solid rgba(0, 0, 0, .05);
	border-radius: 0.5vw;
}

.core-product .item .box .thum img {
	aspect-ratio: 1;
	object-fit: contain;
}

.core-product .item .box .info {
	width: 100%;
	height: auto;
	position: relative;
}

.core-product .item .box .info .name {
	font-size: 1vw;
	font-weight: 600;
	margin-bottom: 0.5vw;
}

.core-product .item .box .info .desc {
	width: 100%;
	line-height: 1.6;
	font-weight: 300;
	font-size: 0.8vw;
	opacity: 0.6;
}

.bih-wrap {
	background: var(--qh-bg-blue);
}

.bh-flex {
	width: 100%;
	display: flex;
	justify-content: space-between;
}

.bh-flex .bh-cols {
	width: 40%;
}

.bh-flex .singe-page {
	width: 50%;
	color: #333333;
}

.bh-list {
	width: 50%;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.5vw;
}

.bh-list .item {
	width: 100%;
	height: auto;
	position: relative;
	display: flex;
	gap: 0.5vw;
	padding: 0.75vw;
	border: 1px solid #D5DDE9;
	align-items: center;
	border-radius: 0.25vw;
}

.bh-list .item .icon {
	width: 1.2vw;
	aspect-ratio: 1;
	background: var(--qh-blur);
	border-radius: 50%;
	text-align: center;
	font-size: 0.5vw;
	line-height: 1.2vw;
	color: #fff;
}

.bh-list .item .txt {
	width: calc(100% - 1.8vw);
}

.bih-wrap .bh-flex:first-child {
	margin-bottom: 6vw;
}

.js-menu {
	width: 100%;
    height: auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    position: relative;
    margin-bottom: 3vw;
    gap: 1vw;
}

.js-menu .item {
	width: 100%;
	height: auto;
	position: relative;
	text-align: center;
	cursor: pointer;
	transition: all 0.35s;
	/* border: 1px solid var(--qh-orange); */
	border: 1px solid rgba(0, 0, 0, .05);
	border-radius: 0.35vw;
}

.js-menu .item:hover{
	border: 1px solid rgba(0, 0, 0, .5);
}

.js-menu .item p {
	padding: 1vw;
	font-size: 1vw;
	font-weight: 600;
	color: #3e3e3e;
}

.js-menu .item.active p {
	color: #ffffff;
}

.js-menu .item.active{
	background: var(--qh-blur);
}

.js-menu .item.active::after {
	opacity: 1;
}

.js-cards {
	width: 100%;
	height: auto;
	position: relative;
}

.js-cards .card {
	width: 100%;
	display: flex;
	flex-direction: row-reverse;
	position: relative;
	margin-bottom: 5vw;
	align-items: center;
	background: #f6f8fe;
	border-radius: 0.5vw;
	overflow: hidden;
}

.js-cards .card:last-child {
	margin-bottom: 0;
}

.js-cards .card .thum {
	width: 50%;
	overflow: hidden;
	/* clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%); */
	will-change: clip-path;
}

.js-cards .card .thum img {
	transform: scale(1.2);
	will-change: transform;
}

.js-cards .card .cont {
	width: 50%;
	padding: 0 5vw;
}

.js-cards .card .cont .name {
	font-size: 2vw;
	line-height: 1.3;
	margin-bottom: 1vw;
	font-weight: 600;
	color: var(--qh-blur);
}

.js-cards .card .cont .desc {
	width: 100%;
}

.js-cards .card .cont .desc p {
	width: 100%;
	height: auto;
	position: relative;
	padding-left: 0.6vw;
	line-height: 1.5;
	margin-bottom: 0.5vw;
	color: #777;
	font-size: 0.8vw;
}

.js-cards .card .cont .desc p::before {
	width: 2px;
    height: 70%;
    position: absolute;
    top: 15%;
    left: 0;
    content: '';
    background: var(--qh-blur);
}

.js-cards .card .thum img {
	aspect-ratio: 4 / 3;
}

.js-cards .card .cont .tips {
	line-height: 2;
    font-size: 0.9vw;
    color: #666666;
	margin-bottom: 2vw;
}

.mobile-links{
	display: none;
}

.about-list.ip {
	margin-top: 6vw;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2vw;
}

.about-list.ip .item .box {
	width: 100%;
	padding: 2vw;
}

.about-list.ip .item .box .number {
	font-size: 5vw;
}

.about-list.ip .item {
	margin-bottom: 0;
	width: 100%;
}

.about-list.ip .item:nth-child(odd) {
	top: 0;
}

.about-list.ip .item .box .mark p {
	font-size: 0.6vw;
}

.about-list.ip .item .box .wz {
	font-size: 1vw;
	margin-top: 2vw;
}

.about-list.ip .item .box .mark {
	margin-bottom: 2vw;
}

.history-wrap {
	background: var(--qh-bg-blue);
	padding: 0;
	height: 100vh;
	overflow: hidden;
}

.history-hero {
	width: max-content;
	display: flex;
	align-items: flex-start;
	position: absolute;
	left: 50%;
	top: 55%;
	transform: translateY(-50%);
	height: 70vh;
	align-content: space-between;
	flex-wrap: wrap;
	gap: 5vw;
}

/* 发展历程标题：跟着时间轴一起走（第一版布局） */
.history-hero .common-name {
	width: 20vw;

}

/* 飞机从画面左缘起飞、往右飞（第一版） */
.plane {
	width: 30vw;
	height: auto;
	position: absolute;
	left: 0;
	top: 55%;
	transform: translateY(-50%);
	z-index: 2;
}

.history-list {
	width: max-content;
	display: flex;
	position: relative;
	gap: 4vw;
	height: 100%;
}

.history-list .item {
	width: 25vw;
}

.history-list .item:nth-child(odd) {
	align-self: flex-end;
}

/* 偶数（2、4、6...）：顶部对齐 */
.history-list .item:nth-child(even) {
	align-self: flex-start;
}

.history-list .item .year {
	font-size: 5vw;
	font-weight: 600;
	/* background: linear-gradient(150deg, #FF7A1C 45%, #fff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent; */
	color: var(--qh-blur);
	font-family: din;
}

.history-list .item .desc{
	color: #666;
	line-height: 1.6;
	font-size: 0.9vw;
	width: 150%;
}

.history-list .item:last-child .desc{
	width: 100%;
}

/* ============================================================
   企业文化（about）：整块背景图 + 左上标题 / 左下导航 + 右侧 swiper
   ============================================================ */
/* 背景块整块铺满，去掉 .boxes 默认的上下 6vw 留白 */
.cultrue-wrap.boxes {
	padding: 0;
    height: calc(100vh - 100px);
    width: calc(100% - 100px);
    margin: 50px;
}

.cultrue-inner {
	position: relative;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    padding: 0px;
    overflow: hidden;
    color: #ffffff;
    height: 100%;
	padding: 5vw;
	border-radius: 1vw;
}



/* 背景图：绝对定位铺满整块 */
.cultrue-inner .cultrue-bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}

.cultrue-inner .cultrue-bg img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 深色渐变遮罩：左侧更暗保证白字可读，右侧稍亮给浅色卡片留出层次 */
.cultrue-inner::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	background: rgba(0,0,0,.1);
}

/* 左栏：上=标题（左上角），下=导航（左下角），两端对齐撑满整块高度 */
.cultrue-inner .cultrue-left {
	position: relative;
	z-index: 2;
	width: 38%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.cultrue-left .common-name .desc{
	font-size: 0.8vw;
    line-height: 1.6;

}

.cultrue-wrap .common-name {
	width: 100%;
	color: #ffffff;
}

.cultrue-wrap .common-name h2 {
	color: #ffffff;
}

.cultrue-wrap .common-name .desc {
	color: rgba(255, 255, 255, 0.75);
}

/* 左下角导航：沿用首页 .app-menu 外观，这里改为随文档流排布 */
.app-menu.cultrue-menu {
	position: relative;
	width: 100%;
	top: 0;
    left: 0;
}

/* 右侧：swiper 卡片。
   ★ 内边距必须给到 .swiper-slide 而不是容器本身：Swiper 用容器的 clientWidth 计算
     slide 宽度（clientWidth 是包含 padding 的），容器带 padding 会让每张 slide 比
     可视区更宽，下一张就会从卡片右侧漏出来。 */
.cultrue-inner .cultrue-swiper {
	position: relative;
	z-index: 2;
	width: 44%;
	background: rgba(255,255,255,.75);
	color: #1a1a1a;
	margin: 0;
	border-radius: 0.5vw;
}

/* 每张 slide 自带内边距：下边留出序号 / 箭头的空间 */
.cultrue-swiper .swiper-slide {
	padding: 3.4vw 3vw 6.4vw;
}

.cultrue-swiper .swiper-slide .top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5vw;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
	padding-top: 1.5vw;
	margin-bottom: 1.5vw;
	align-items: center;
	padding-bottom: 0.75vw;
}

.cultrue-swiper .swiper-slide .top .txt {
	font-size: 1.5vw;
	font-weight: 600;
	color: #1a1a1a;
}

.cultrue-swiper .swiper-slide .top .icon {
	width: 3.2vw;
	height: 3.2vw;
	flex: 0 0 auto;
	color: var(--qh-blur);
}

.cultrue-swiper .swiper-slide .top .icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.cultrue-swiper .swiper-slide .info {
	font-size: 0.95vw;
	line-height: 2;
	color: #666666;
}

/* 卡片底部：左=当前序号，右=左右切换箭头 */
.cultrue-foot {
	position: absolute;
	left: 3vw;
	right: 3vw;
	bottom: 3vw;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.cultrue-num {
	font-family: Manrope;
	font-size: 1vw;
	letter-spacing: 0.05em;
	color: #aaaaaa;
}

.cultrue-num .current {
	margin-right: 0.25vw;
	font-size: 1.5vw;
	font-weight: 600;
	color: var(--qh-blur);
}

.cultrue-num em {
	margin: 0 0.15vw;
	font-style: normal;
}

.cultrue-nav {
	display: flex;
	align-items: center;
	gap: 0.7vw;
}

/* 覆盖 swiper 默认的绝对定位箭头：改成卡片内的两个圆形按钮 */
.cultrue-nav .swiper-button-prev,
.cultrue-nav .swiper-button-next {
	position: static;
	width: 2.6vw;
	height: 2.6vw;
	margin: 0;
	background: rgba(255,255,255,.75);
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 50%;
	color: #1a1a1a;
	transition: background .35s, color .35s, border-color .35s, opacity .35s;
}

.cultrue-nav .swiper-button-prev::after,
.cultrue-nav .swiper-button-next::after {
	font-size: 0.85vw;
	font-weight: 700;
}

.cultrue-nav .swiper-button-prev:hover,
.cultrue-nav .swiper-button-next:hover {
	background: var(--qh-blur);
	border-color: var(--qh-blur);
	color: #ffffff;
}

.cultrue-nav .swiper-button-disabled {
	opacity: .28;
	cursor: default;
}

/* 切换淡入：is-ready 由 JS 在 Swiper 初始化成功后补上，
   Swiper 没加载时这组规则不生效，内容照常静态显示，不会白屏 */
.cultrue-swiper.is-ready .swiper-slide .top,
.cultrue-swiper.is-ready .swiper-slide .info {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .8s cubic-bezier(.215, .61, .355, 1),
		transform .8s cubic-bezier(.215, .61, .355, 1);
}

.cultrue-swiper.is-ready .swiper-slide-active .top {
	opacity: 1;
	transform: translateY(0);
}

.cultrue-swiper.is-ready .swiper-slide-active .info {
	opacity: 1;
	transform: translateY(0);
	transition-delay: .12s;
}


.honor-swiper {
	margin-top: 3vw;
	padding-bottom: 30px;
}

.honor-swiper .swiper-pagination{
	top: auto;
	bottom: 0;
}

.honor-swiper .swiper-pagination-bullet-active{
	background: var(--qh-blur);
	width: 20px;
}

.swiper-pagination-bullet{
	width: 8px;
	height: 8px;
	border-radius: 10px;
	transition: all 0.5s;
}

.hzhb.ip {
	margin-bottom: 0;
}

.honor-swiper .swiper-slide {
	width: 20vw;

}

.honor-swiper .swiper-slide .box {
	display: block;
	position: relative;
	padding: 1.5vw;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .05);
	border-radius: 0.35vw;
}

.honor-swiper .swiper-slide .box .thum {
	margin: 1vw 0px;
}

.honor-swiper .swiper-slide .box .name {
	text-align: center;
	font-size: 0.8vw;
}

.honor-swiper .swiper-slide .box .thum img {
	aspect-ratio: 100 / 136;
	object-fit: contain;
	transition: all 0.5s;
	transition: all 0.5s;
}

.honor-swiper .swiper-slide:hover .box .thum img{
	transform: scale(1.1);
}

#page {
	margin-top: 3vw;
}

.news-recommond {
	width: 100%;
	border-radius: 0.5vw;
    overflow: hidden;
}

.news-recommond .box {
	display: flex;
	width: 100%;
	position: relative;
}

.news-recommond .box .thum img{
	transition: all 0.5s;
}

.news-recommond .box:hover .thum img{
	transform: scale(1.05);
}

.news-recommond .thum {
	width: 55%;
}

.news-recommond .box .thum img {
	width: 100%;
	aspect-ratio: 16 / 9;
}

.news-recommond .cont {
	width: 45%;
	position: relative;
	background: #f9f9f9;
	padding: 3vw;
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
}

.news-recommond .cont .date {
	font-family: Manrope;
    font-size: 0.75vw;
	opacity: 0.5;
	margin-bottom: 2vw;
}

.news-recommond .cont .name {
	font-size: 1.6vw;
	line-height: 1.5;
    margin-bottom: 1vw;
	transition: all 0.5s;
}

.news-recommond .box:hover .cont .name{
	color: var(--qh-blur);
}

.news-recommond .cont .desc{
	color: #777;
	line-height: 2;
}

.news-recommond .cont .more{
	width: auto;
	display: flex;
	align-items: center;
	position: absolute;
	font-size: 0.7vw;
	gap: 0.35vw;
	left: 3vw;
    bottom: 3vw;
	color: #999999;
}

.news-menu {
	width: 100%;
	display: flex;
	justify-content: center;
	position: relative;
	margin-bottom: 3vw;
	gap: 2vw;
}

.news-menu a {
	display: block;
	position: relative;
	width: auto;
	opacity: .4;
	font-size: 1.5vw;
	font-weight: 600;
}

.news-menu a.active {
	opacity: 1;
}

.step-list.four {
	grid-template-columns: repeat(4, 1fr);
	margin-top: 3vw;
	gap: 2vw;
}

.step-list.four .item::after{
	display: none;
}

.form-submit{
	padding: 17px;
}

.form-submit::before{
	background: var(--qh-blur);
}

.yg-hero{
	background: var(--qh-bg-blue);
}

.join-wrap{
	background: #ffffff;
}

.join-wrap .step-list .item .box .desc{
	font-family: sans-serif;
	font-weight: 500;
}

.join-wrap .step-list{
	margin-top: 3vw;
	grid-template-columns: repeat(2, 1fr);
	gap: 2vw;
}

.join-wrap .step-list .item{
	background: var(--qh-bg-blue);
	padding: 4vw 2vw;
	border-radius: 0.5vw;
}

.join-wrap .step-list .item::after{
	display: none;
}

.join-wrap .step-list .item .name{
	width: 70%;
	margin-bottom: 1vw;
}

.join-wrap .step-list .item .desc{
	width: 70%;
	margin-bottom: 0;
	font-size: 1.4vw;
}

.data-list {
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin-top: 5vw;
	position: relative;
}

.data-list .item {
	width: 100%;
	height: auto;
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.5vw;
}

.data-list .item:nth-child(2) {
	transition-delay: 0.25s;
}

.data-list .item:nth-child(3) {
	transition-delay: 0.5s;
}

.data-list .item .icon {
	width: 3vw;
	margin: 0px auto;
	position: relative;
	display: block;
}


.intro-hero::before{
	width: 40vw;
	height: auto;
	aspect-ratio: 1;
	position: absolute;
	left: -15vw;
	top: 15%;
	content: '';
	background: url(../images/fs-pic.png) no-repeat;
	background-size: cover;
	animation: fsanimate 30s linear infinite;
}

@-webkit-keyframes fsanimate{
	0%{
		transform: rotate(0deg);
	}
	100%{
		transform: rotate(360deg);
	}
}


.data-list .item .r {
	width: calc(100% - 75px);
}

.data-list .item .top {
	width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0.5vw 0;
    gap: 0.5vw;
}

.data-list .item .top .number {
	font-size: 5vw;
	font-family: din;
	background: linear-gradient(90deg, #cb0211 0%, #ff6975 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
	line-height: 1;
}

.data-list .item .txt {
	width: 100%;
	text-align: center;
}

.data-list .item .dw {
	font-size: 3vw;
    color: #3e3e3e;
    font-family: din;
	font-weight: bold;
}

.data-list .item:nth-child(1) .dw,.data-list .item:nth-child(3) .dw{
	font-size: 2vw;
}

.step-list .item .box .img{
	width: 10%;
	height: auto;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 2vw;
}

.growth {
	width: 100%;
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.growth .thums {
	width: 50%;
	position: relative;
}

.growth .thums .list{
	width: 100%;
	height: 100%;
	position: relative;
	left: 0;
	top: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
    align-content: center;
    align-items: flex-end;
	gap: 2vw;
}

.growth .thums .list .item{
	width: 45%;
	border-radius: 0.5vw;
	overflow: hidden;
}

.growth .thums .list .item:nth-child(1) img{
	aspect-ratio: 5 / 4;
}

.growth .thums .list .item:nth-child(2) img{
	aspect-ratio: 5 / 4;
}

.growth .thums .list .item:nth-child(3) img{
	aspect-ratio: 5 / 3;
}

.growth .thums .list .item:nth-child(3){
	width: 60%;
}

.sbwr-icon{
	width: 10%;
	height: auto;
	position: absolute;
	left: 50%;
	top: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0px 0px 30px rgba(0, 0, 0, .1);
    border-radius: 50%;
}

.growth .cont {
	width: 40%;
}

.growth .cont .title {
	width: 100%;
	font-size: 2vw;
	font-weight: 600;
	margin-bottom: 1vw;
}

.growth .cont .singe-page {
	margin-bottom: 3vw;
	color: #666;
}

.growth .develops {
	width: 100%;
}

.growth .develops .name {
	font-weight: 600;
	font-size: 1.2vw;
	margin-bottom: 1.5vw;
}

/* ====== 员工成长 · 发展方向（join.html）======
   2×2 网格，每项「图标在左 + 标题/描述在右」横排；图标为内联 SVG
   （stroke=currentColor），颜色统一走 --qh-orange，风格克制简洁。 */
.growth .develops .list {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2vw;
}

.growth .develops .list .item {
	width: 100%;
	display: flex;
	align-items: flex-start;
	gap: 0.9vw;
	padding-left: 10px;
	border-left: 2px solid var(--qh-orange);
}

.growth .develops .list .item .icon {
	flex: 0 0 auto;
	width: 2.4vw;
	color: var(--qh-orange, #DE5A11);
	display: none;
}


.growth .develops .list .item .icon svg {
	width: 100%;
	height: auto;
	display: block;
}

.growth .develops .list .item .txt {
	width: 100%;
}

.growth .develops .list .item .title {
	font-weight: 600;
	font-size: 0.95vw;
	color: #111;
	margin-bottom: 0.35vw;
}

.growth .develops .list .item .desc {
	font-size: 0.75vw;
	line-height: 1.6;
	color: #9c9c9c;
}

@media (max-width: 768px) {
	.growth .develops .list {
		grid-template-columns: 1fr;
		gap: 3.5vw;
	}

	.growth .develops .list .item .icon {
		width: 6vw;
	}

	.growth .develops .list .item .title {
		font-size: 3.2vw;
	}

	.growth .develops .list .item .desc {
		font-size: 2.8vw;
	}
}

/* ============================================================
   招聘列表 · join.html
   ============================================================ */
.recruit-wrap {
	width: 100%;
	margin-top: 2vw;
}

.recruit-filter {
	display: flex;
	gap: 1.2vw;
	margin-bottom: 2vw;
}

.filter-select {
	position: relative;
	width: 12vw;
	min-width: 140px;
}

.filter-select select {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	background: #fff;
	border: 1px solid rgba(30, 27, 24, 0.12);
	border-radius: 4px;
	padding: 0.65vw 2.2vw 0.65vw 0.9vw;
	font-size: 15px;
	color: var(--qh-text-mid);
	cursor: pointer;
	transition: border-color .3s ease;
}

.filter-select::after {
	content: '';
	position: absolute;
	right: 0.85vw;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid var(--qh-text-mid);
	pointer-events: none;
}

.filter-select select:focus {
	border-color: var(--qh-orange);
}

.recruit-body {
	display: flex;
	gap: 2vw;
	align-items: flex-start;
}

.recruit-list {
	flex: 1;
	min-width: 0;
}

.recruit-aside {
	width: 24vw;
	min-width: 260px;
	position: sticky;
	top: 100px;
}

.recruit-card {
	background: #fff;
	border: 1px solid rgba(30, 27, 24, 0.08);
	border-radius: 4px;
	padding: 2vw 2.2vw;
	margin-bottom: 1.2vw;
}

.recruit-card:last-child {
	margin-bottom: 0;
}


.card-header {
	cursor: pointer;
	user-select: none;
}

.title-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1vw;
}

.join-ms{
	font-size: 2vw;
    font-family: sans-serif;
    font-weight: 500;
    margin-top: 3vw;
	text-align: center;
	display: flex;
	justify-content: center;
	position: relative;
}

.join-ms p{
	position: relative;
}

.join-ms p::after,.join-ms p::before{
	width: 1vw;
	height: auto;
	aspect-ratio: 1;
	background: url(../images/yh1.png) no-repeat;
	background-size: cover;
	content: '';
	display: block;
	position: absolute;
}

.join-ms p::before{
	background-image: url(../images/yh2.png);
}

.join-ms p::before{
	transform: translate(100%);
	right: -1vw;
	bottom: -1vw;
}

.join-ms p::after{
	top: 0;
	left: -2vw;
	transform: translateY(-50%);
}

.card-title {
	font-family: sans-serif;
	font-size: 28px;
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
}

.card-meta {
	font-size: 14px;
	color: var(--qh-text-mid);
	margin-top: 0.5vw;
}

.card-toggle {
	width: 1.1vw;
	height: 1.1vw;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.card-toggle::before,
.card-toggle::after {
	content: '';
	position: absolute;
	background: var(--qh-text-dim);
	transition: transform .35s ease, opacity .35s ease;
}

.card-toggle::before {
	width: 100%;
	height: 2px;
}

.card-toggle::after {
	width: 2px;
	height: 100%;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
}

.recruit-card.active .card-toggle::after {
	transform: translateX(-50%) scaleY(0);
}

.card-content {
	display: none;
}

.recruit-card.active .card-content {
	display: block;
}

.flap{
	width: 100%;
	height: auto;
	display: flex;
	gap: 0.5vw;
}

.content-inner {
	overflow: hidden;
}

.duty-list {
	padding-top: 1.8vw;
	margin-bottom: 1.8vw;
}

.duty-list li {
	font-size: 0.85vw;
	line-height: 1.8;
	color: var(--qh-text-mid);
	margin-bottom: 0.5vw;
	padding-left: 0.9vw;
	position: relative;
}

.duty-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.75vw;
	width: 0.25vw;
	height: 0.25vw;
	min-width: 4px;
	min-height: 4px;
	border-radius: 50%;
	background: var(--qh-orange);
}

.duty-list li:last-child {
	margin-bottom: 0;
}

.duty-list li strong {
	color: var(--qh-text);
	font-weight: 600;
}

.view-job {
	display: inline-flex;
	align-items: center;
	gap: 0.35vw;
	font-size: 0.8vw;
	color: var(--qh-orange);
	font-weight: 600;
	transition: gap .3s ease;
}

.view-job:hover {
	gap: 0.6vw;
}

.view-job i {
	font-style: normal;
}

.consult-card {
	background: #fff;
	border: 1px solid rgba(30, 27, 24, 0.08);
	border-radius: 4px;
	padding: 1.6vw 1.8vw;
}

.consult-title {
	font-size: 1.4vw;
	font-weight: 600;
	color: var(--qh-text);
	padding-bottom: 1vw;
	margin-bottom: 1vw;
	border-bottom: 1px solid rgba(30, 27, 24, 0.08);
}

.consult-subtitle {
	font-size: 0.85vw;
	color: var(--qh-text);
	font-weight: 600;
	margin-bottom: 0.8vw;
}

.consult-info {
	margin-bottom: 1.4vw;
}

.consult-info p {
	font-size: 0.78vw;
	color: var(--qh-text-mid);
	line-height: 1.8;
}

.consult-more {
	border-top: 1px solid rgba(30, 27, 24, 0.06);
	padding-top: 1vw;
}

.consult-more>p {
	font-size: 0.8vw;
	color: var(--qh-text);
	font-weight: 600;
	margin-bottom: 0.6vw;
}

.tech-list {
	width: 100%;
	display: flex;
	gap: 1vw;
	margin-top: 3vw;
}

.tech-list .item {
	flex: 1;
	height: 30vw;
	position: relative;
	overflow: hidden;
	transition: all 0.5s;
	border-radius: 0.35vw;
}

.tech-list .item .box {
	width: 100%;
	height: 100%;
	display: block;
}

.tech-list .item .thum {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	overflow: hidden;
	box-shadow: 0 35px 50px 0 rgba(14, 92, 169, 0.15);
}

.tech-list .item .thum::after {
	width: 100%;
	height: 70%;
	position: absolute;
	left: 0;
	bottom: 0;
	content: '';
	background-image: linear-gradient(0deg, rgba(0, 0, 0, .65), #0000);
}

.tech-list .item .thum img {
	position: absolute;
    width: 40vw;
    height: 30vw;
    left: 50%;
    top: 0%;
    background: #000;
    transform: translateX(-50%);
	max-width: none;
    transition: all 0.5s;
}

.tech-list .item.active {
	flex: 3;
}

.tech-list .item .box .info {
	width: 100%;
	height: auto;
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 2vw;
	color: #fff;
	line-height: 1.6;
	opacity: 0;
	transform: translateY(25px);
}

.tech-list .item .box .info .title{
	font-weight: 600;
	font-size: 1.6vw;
    margin-bottom: 1vw;
}

.video-img{
	display: none;
}


.tech-list .item.active .box .info {
	opacity: 1;
	transform: translateY(0px);
	transition: all .5s ease 0.5s;
}

.tech-list .item.active .teck-name{
	opacity: 0;
}

.boss-logo {
	width: 50px;
}

.boss-logo svg {
	width: 100%;
	height: auto;
	display: block;
}

.contct-wrap .common-name {
	width: 100%;
}


.contct-wrap .w1400{
	align-items: flex-start;
}

.contact-left{
	width: 40%;
}

.contact-cont {
	width: 55%;
}

.company-cont {
	width: 100%;
	margin-bottom: 6vw;
}

.company-cont .title {
	font-size: 1.4vw;
	font-weight: 600;
	margin-bottom: 1.5vw;
}

.company-cont .list {
	width: 100%;
	height: auto;
	position: relative;
}

.company-cont .list .item {
	width: 100%;
	margin-bottom: 1vw;
	/* border-bottom: 1px solid rgba(0, 0, 0, .1); */
}

.company-cont .list .item:last-child {
	margin-bottom: 0;
}

.company-cont .list .item .box {
	width: 100%;
	height: auto;
	display: flex;
	position: relative;
	justify-content: space-between;
}

.company-cont .list .item .icon {
	width: 1.5vw;
	height: 1.5vw;
	line-height: 1.5vw;
	font-size: 1.1vw;
	display: none;
}

.company-cont .list .item .info {
	width: calc(100% - 1.5vw);
}

.company-cont .list .item .name {
	font-size: 0.75vw;
	font-weight: 400;
	line-height: 1.5vw;
	color: #666;
}

.product-seciont {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	padding: 6vw 0;
	/* 卡片首屏从视窗右侧外滑入，横向裁掉溢出、避免出现横向滚动条；
	   overflow-y 保持 visible，卡片才能向上越出本板块、盖在 banner 右侧做层叠 */
	overflow-x: clip;
	overflow-y: visible;
}

.company-cont .list .item .desc {
	font-size: 1.25vw;
	line-height: 1.5;
	font-family: Manrope;
}

.company-cont:last-child {
	margin-bottom: 0;
}

.form-tips {
	width: 100%;
	margin-top: 3vw;
	color: #ababab;
	font-size: 0.65vw;
}


/* ============================================================
   about.html 新增淡入（与首页 .ob-ele → .is-inview 同一套 20px/1.5s/柔曲线）
   触发由 shutime.observeEffect 的 IntersectionObserver 加 .is-inview 完成。
   ============================================================ */
.history-list .item {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1.5s cubic-bezier(.215, .610, .355, 1),
		transform 1.5s cubic-bezier(.215, .610, .355, 1);
	will-change: opacity, transform;
}

.history-list .item.is-inview {
	opacity: 1;
	transform: translateY(0);
}

.dz-cont .singe-page,
.dz-cont .mark-tips {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1.5s cubic-bezier(.215, .610, .355, 1),
		transform 1.5s cubic-bezier(.215, .610, .355, 1);
	will-change: opacity, transform;
}

.dz-cont .singe-page.is-inview,
.dz-cont .mark-tips.is-inview {
	opacity: 1;
	transform: translateY(0);
}



/* ===== common-name 纯 CSS 入场（配合 JS 拆字 + ob-ele/is-inview）=====
   字符初始态：从右滑入 + 渐显；进视窗（.is-inview）归位，按 --i 错峰。
   desc：从下往上淡入。开启系统「减弱动态」时直接显示，不做动画。 */
.common-name .name .char,
.common-name h2 .char,
.common-name .eyebrow .char {
	display: inline-block;
	transform: translateX(100%);
	opacity: 0;
	transition: transform 1.2s cubic-bezier(.215, .61, .355, 1),
	            opacity 1.2s cubic-bezier(.215, .61, .355, 1);
	transition-delay: calc(var(--i, 0) * .06s);
}

.common-name.is-inview .name .char,
.common-name.is-inview h2 .char,
.common-name.is-inview .eyebrow .char {
	transform: translateX(0);
	opacity: 1;
}

.common-name .desc {
	transform: translateY(20px);
	opacity: 0;
	transition: transform 1.5s cubic-bezier(.215, .61, .355, 1),
	            opacity 1.5s cubic-bezier(.215, .61, .355, 1);
	transition-delay: .25s;
}

.common-name.is-inview .desc {
	transform: translateY(0);
	opacity: 1;
}



/* ===== common-name 纯 CSS 入场（配合 JS 拆字 + ob-ele/is-inview）=====
   字符初始态：从右滑入 + 渐显；进视窗（.is-inview）归位，按 --i 错峰。
   desc：从下往上淡入。开启系统「减弱动态」时直接显示，不做动画。 */
.common-name .name .char,
.common-name h2 .char,
.common-name .eyebrow .char {
	display: inline-block;
	transform: translateX(100%);
	opacity: 0;
	transition: transform 1.2s cubic-bezier(.215, .61, .355, 1),
	            opacity 1.2s cubic-bezier(.215, .61, .355, 1);
	transition-delay: calc(var(--i, 0) * .06s);
}

.common-name.is-inview .name .char,
.common-name.is-inview h2 .char,
.common-name.is-inview .eyebrow .char {
	transform: translateX(0);
	opacity: 1;
}

.common-name .desc {
	transform: translateY(20px);
	opacity: 0;
	transition: transform 1.5s cubic-bezier(.215, .61, .355, 1),
	            opacity 1.5s cubic-bezier(.215, .61, .355, 1);
	transition-delay: .25s;
	color: #666;
}

.common-name.is-inview .desc {
	transform: translateY(0);
}
@media screen and (max-width: 1600px) {
	.nav ul a{
		padding: 0px 2vw;
	}
}

@media screen and (max-width: 1500px) {
	.nav ul a{
		padding: 0 1.8vw;
		font-size: 1.1vw;
	}
	.apps .item .info .desc,.award-warp .list .item,.footer .foot-nav .col h4{
		font-size: 1.1vw;
	}

	.js-cards .card .cont .tips,.js-cards .card .cont .desc,.intro-info .desc,.award-warp .name p,.list-wrap .list a .txt,.sub-banner .desc,.singe-page,.app-swiper .swiper-slide a .name,.product-banner .cont .ms,.consult-subtitle{
		font-size: 1vw;
	}
	.app-section .card .cont .singe-page{
		font-size: 0.85vw;
	}
	.apps .item .field-products .fp-label,.news-hero .focus .info .name{
		font-size: 1.1vw;
	}

	.sys-list .item .box .info .desc,.app-menu .item .name,.news-hero .focus .info .desc,.footer .foot-nav .col a,.consult-info p,.consult-more>p{
		font-size: 0.95vw;
	}
	.growth .develops .name{
		font-size: 1.4vw;
	}
	.growth .develops .list .item .title{
		font-size: 1.1vw;
	}
	.growth .develops .list .item .desc{
		font-size: 0.9vw;
	}

	.product-menu .item a{
		font-size: 1.1vw;
	}

	.show-btn a{
		font-size: 0.9vw;
    	padding: 0.6vw 0.75vw;
	}
	.cultrue-swiper .swiper-slide .info{
		font-size: 1.1vw;
	}
	.cultrue-swiper .swiper-slide .top .txt{
		font-size: 1.7vw;
	}
	.app-menu{
		gap: 0.25vw;
		top: 8vw;
	}
	.cultrue-left .common-name .desc{
		font-size: 0.95vw;
	}
}

@media screen and (max-width: 1440px) {
	.step-list .item .box .icon{
		width: 10%;
	}
	.product-menu .item a{
		font-size: 1.1vw;
	}
	.slogan .hero-lede,
	.apps-wrap .common-name .desc,
	.award-warp .name p {
		font-size: 1vw;
	}

	.sys-top .desc,
	.about-list .item .box .wz {
		font-size: 1.2vw;
	}

	.sys-list .item .box .info .desc {
		font-size: 1vw;
	}

	.apps .item .info .desc,
	.common-name .desc,
	.intro-info .desc {
		font-size: 1.1vw;
	}
	.intro-info{
		padding: 0 5%;
	}

	.intro-info .desc p::after{
		top: 0.7vw;
	}

	.apps .item .info .name{
		font-size: 2vw;
	}

	.common-name h2 {
		font-size: 3vw;
	}

	.sys-list .item .box .info .name {
		font-size: 1.6vw;
	}

	.app-menu .item .name {
		font-size: 1.3vw;
	}

	.award-warp .name b {
		font-size: 2vw;
	}

	body, html,.form .row>input, .form .row select, .form .row textarea{
		font-size: 1vw;
	}
	
	.company-cont .title,.product-hero .card .item a .info .name{
		font-size: 1.6vw;
	}

	.form-tips,.footer .foot-bar{
		font-size: 0.85vw;
	}
	.nav ul a{
		font-size: 16px;
	}
	.header .nav ul .mega-links a {
        padding: 0.5vw 0.75vw;
    }
	.slogan .desc{
		font-size: 1.05vw;
	}

	.qh-btn a, .qh-btn .a,.contact-bar .qh-btn a{
		font-size: 0.9vw;
	}
	.tech-list .item .box .info .rows .desc,.product-hero .card .item a .info .desc,.yao-box .singe-page{
		font-size: 0.95vw;
	}

	.list-wrap .list a .txt,.singe-page{
		font-size: 1vw;
	}
	.history-list .item .desc{
		font-size: 1.1vw;
	}
	.filter-list .item a .cont .name{
		font-size: 1.2vw;
	}

	.filter-name .txt{
		font-size: 1.4vw;
	}
	.filter-wrap .label .title{
		font-size: 1vw;
	}
	.filter-wrap .list .btn{
		padding: 0.25vw 0.6vw;
		font-size: 0.85vw;
	}
	.filter-reset .box,.filter-result span{
		font-size: 0.85vw;
	}
	.filter-list .item a .cont .mark span {
		font-size: 0.85vw;
		padding: 0.2vw 0.75vw;
	}
	.show-btn a{
		font-size: 0.95vw;
		padding: 0.6vw 0.75vw;
	}
	.show-data .item .txt{
		font-size: 1vw;
	}
	.app-section .card .cont .singe-page {
        font-size: 0.95vw;
    }
	.js-cards .card .cont .desc p{
		font-size: 0.9vw;
	}
	
}

@media screen and (max-width: 1366px) {
	.bh-flex .singe-page{
		font-size: 1.1vw;
	}
	.news-hero .focus .info .name,.growth .develops .list .item .title{
		font-size: 1.2vw;
	}
	.growth .develops .name{
		font-size: 1.8vw;
	}
}


/* 响应式：中屏 3 列，小屏 2 列 */
@media (max-width: 1024px) {
	.lang-vision,.app-section .card .cont .singe-page{
		font-size: 1.1vw;
	}
	.nav ul a{
		padding: 0 1.2vw;
		font-size: 1.5vw;
	}
	.sys-list .item .box .info .name{
		font-size: 1.5vw;
	}
	.qh-btn a, .qh-btn .a, .contact-bar .qh-btn a{
		font-size: 1.2vw;
	}
}

@media (max-width: 900px) {
	body, html, .form .row>input, .form .row select, .form .row textarea{
		font-size: 3vw;
	}
	body{
		font-family: sans-serif;
	}
	.header {
        height: 60px;
        padding: 0;
        background: #ffffff;
    }
	.nav {
        height: calc(100vh - 60px);
        position: fixed;
        left: 0px;
        top: 60px;
        display: flex;
        align-items: center;
        width: 100%;
        -webkit-transition: all 1s cubic-bezier(0.215, 0.610, 0.355, 1);
        margin-right: 0%;
        z-index: 10;
        padding-top: 25px;
        display: block;
        background: #f9f9f9;
        clip-path: polygon(0% 0%, 100% 0%, 100% 0%, 0% 0%);
        overflow-y: auto;
        padding-bottom: 25px;
        border-radius: 0;
        overflow-x: hidden;
    }
	.bread-crumb {
        display: block;
        border-radius: 0;
    }
	.logo{
		margin-left: 5vw;
        width: 100px;
	}
	.logo img:nth-child(1){
		opacity: 0;
	}
	.logo img:nth-child(2){
		opacity: 1;
	}
	.lang-vision{
		right: 80px;
		color: #3e3e3e;
		font-size: 4vw;
		gap: 2vw;
	}
	.lang-vision::before{
		display: none;
	}
	.nav ul{
		flex-wrap: wrap;
        padding: 0 5%;
	}
	.nav ul li{
		width: 100%;
		text-align: left;
        padding: 4.5vw 0;
        border-bottom: 1px solid rgba(0, 0, 0, .1);
	}
	.nav ul li .first-lab {
        gap: 1vw;
        display: flex;
        flex-wrap: wrap;
		margin-bottom: 3vw;
    }
	.nav ul a{
		height: auto;
	}
	.nav ul li .first-lab a::after{
		display: none;
	}
	.nav ul li .first-lab a{
		padding: 0;
		font-family: sans-serif;
        font-weight: 500;
		font-size: 5vw;
		width: 100%;
        text-align: left;
        display: flex;
        justify-content: space-between;
	}
	.nav ul li .first-lab a::before{
		display: none;
	}
	.header .nav ul li .first-lab a p{
		width: auto;
	}
	.mega-menu{
		opacity: 1;
        transform: translateY(0px);
        box-shadow: none;
        pointer-events: auto;
        height: 0;
        overflow: hidden;
        position: relative;
        background: transparent;
        top: 0;
		height: auto;
		width: 100%;
        visibility: visible;
		left: 0;
		padding: 0;
	}
	.mega-thumb{
		display: none;
	}
	.mega-links{
		width: 100%;
		gap: 2vw 3vw;
		flex-direction: row;
		flex-wrap: wrap;
	}
	.header .nav ul .mega-links a{
		font-size: 4vw;
        text-align: left;
        font-weight: 400;
		padding: 0;
	}
	.mega-links a p{
		width: 100%;
	}
	.mega-links a i{
		display: none;
	}
	.nav ul li .first-lab a .icon{
		display: block;
		font-size: 4vw;
	}
	.banner{
		margin-top: 60px;
		height: auto;
	}
	.slogan .desc,.slogan .txt1,.eyebrow span,.eyebrow::before{
		display: none;
	}
	.banner .banner-swiper .swiper-pagination-bullet {
		width: 40px;
		height: 2px;
		margin: 0 5px 0 0;
	}
	.boxes{
		padding: 15vw 0;
	}
	.sys-top .name{
		max-width: 100%;
		font-size: 6vw;
	}
	.common-name .desc{
		font-size: 3.8vw;
		max-width: 100%;
	}
	.w1400{
		width: 90%;
	}
	.sys-top .common-name .desc{
		margin-top: 2vw;
	}
	.sys-top{
		margin-bottom: 7.5vw;
	}
	.sys-list{
		grid-template-columns: repeat(1, 1fr);
		gap: 4vw;
	}
	.sys-list .item .box{
		padding: 5vw;
		aspect-ratio: auto;
	}
	.sys-list .item .box .mark{
		font-size: 2.5vw;
		margin-bottom: 5vw;
		padding-bottom: 2.5vw;
	}
	.sys-list .item .box .info{
		width: 100%;
		position: relative;
		left: 0;
		bottom: 0;
	}
	.sys-list .item .box .info .name{
		font-size: 5vw;
        margin-bottom: 3.5vw;
	}
	.sys-list .item .box .info .desc{
		font-size: 3.8vw;
	}
	.apps-wrap{
		padding: 0;
	}
	.apps .item{
		padding: 0;
		height: auto;
		top: 0px;
		position: relative;
		margin-bottom: 10vw;
	}
	.apps .item .img{
		position: relative;
		height: 50vw;
		margin-bottom: 3.5vw;
	}
	.apps .item .info{
		width: 100%;
        position: relative;
        bottom: 0;
        left: 0;
        color: #3e3e3e;
	}
	.apps .item .img::after{
		display: none;
	}
	.app-menu{
		top: 60px;
		display: none;
	}
	.apps{
		background: var(--qh-bg-blue);
        padding: 0 0%;
		overflow: hidden;
	}

	.apps .item .field-products{
		padding: 5vw;
		display: none;
	}

	.apps .item .info .name{
		font-size: 5vw;
		font-family: sans-serif;
        font-weight: 500;
		margin-bottom: 2.5vw;
	}
	.apps .item .info .desc{
		font-size: 3.8vw;
		display: none;
	}
	.qh-btn a, .qh-btn .a, .contact-bar .qh-btn a {
        font-size: 3vw;
        padding: 0vw;
		border: none;
		color: #999;
    }

	.qh-btn a .icon, .qh-btn a i.iconfont, .qh-btn .a .icon, .qh-btn .a i.iconfont{
		font-size: 3vw;
		top: 0;
	}
	
	.common-name h2{
		font-size: 7vw;
	}
	.about-wrap .common-name .desc{
		font-size: 4.25vw;
	}
	.intro-info{
		padding: 0;
	}
	.intro-info .desc{
		margin-top: 5vw;
		margin-bottom: 10vw;
		font-size: 3.8vw;
		text-align: justify;
		line-height: 1.7;
	}
	.qy-word{
		display: none;
	}
	.intro-info .desc p{
		margin-bottom: 2vw;
	}
	.about-list{
		margin-top: 15vw;
	}
	.about-list .item{
		width: 48%;
		margin-bottom: 5vw;
	}
	.about-list .item .box{
		padding: 5vw 5vw;
		width: 100%;
	}
	.about-list .item:nth-child(even){
		top: 0;
	}
	.about-list .item .box .mark{
		margin-bottom: 10vw;
	}
	.app-menu .item .mark p, .about-list .item .box .mark p{
		font-size: 2vw;
		min-height: 7vw;
	}
	.about-list .item .box .number{
		font-size: 12vw;
	}
	.about-list .item .box .wz{
		font-size: 3vw;
		margin-top: 1.5vw;
	}
	.award-warp .name b{
		font-size: 6vw;
	}
	.award-warp .name p{
		font-size: 3.5vw;
        line-height: 1.5;
	}
	.award-warp .name{
		margin-bottom: 7.5vw;
	}
	.award-warp .list .item{
		font-size: 3.5vw;
	}
	.award-warp .list .item span{
		width: 3vw;
	}
	.award-warp .list{
		gap: 2vw 3vw;
	}
	.hzhb-swiper{
		display: none;
	}
	.hzhb-wrap{
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		border-top: 1px solid var(--qh-line);
        border-left: 1px solid var(--qh-line);
	}
	.hzhb {
		margin-top: 5vw;
		margin-bottom: 15vw;
	}
	.name-flex .common-name {
		width: 100%;
		margin-bottom: 5vw;
	}
	.tech-list{
		margin-top: 7.5vw;
	}
	.common-name h2{
		margin-bottom: 3.5vw;
	}
	.tech-list{
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap:5vw 2vw;
	}
	.tech-list .item{
		height: 60vw;
	}
	.tech-list .item .thum img {
		position: absolute;
		width: 100%;
		height: 100%;
		left: 0%;
		top: 0%;
		transform: translateX(0%);
	}
	.teck-name{
		display: none;
	}
	.tech-list .item .box .info{
		opacity: 1;
		transform: translateY(0px);
	}
	.tech-list .item .box .info{
		padding: 4vw;
		bottom: auto;
        top: 65%;
	}
	.tech-list .item .box .info .title,.product-banner .cont .cn{
		font-weight: 500;
		font-size: 5vw;
		margin-bottom: 2vw;
		font-family: sans-serif;
	}
	.product-banner .cont .ms{
		font-size: 3.8vw;
		line-height: 1.7;
	}
	.product-banner .cont{
		width: 60%;
	}
	.tech-list .item .box .info .rows{
		padding-bottom: 3vw;
		margin-bottom: 3vw;
		display: none;
	}
	.tech-list .item .box .info .rows .name p{
		font-size: 3.5vw;
	}
	.tech-list .item .box .info .rows .desc{
		font-size: 3vw;
	}
	.news-hero{
		margin-top: 7.5vw;
		grid-template-columns: repeat(1, 1fr);
		gap: 7.5vw;
	}
	.n-mark{
		font-size: 3vw;
		padding: 1vw 2vw;
	}
	.n-mark span{
		display: none;
	}
	.news-hero .focus .info{
		padding: 3vw;
	}
	.news-hero .focus .info .name{
		font-size: 4.5vw;
		font-family: sans-serif;
		font-weight: 500;		
		margin-bottom: 1vw;
	}
	.app-section .card .cont .singe-page{
		font-size: 3.5vw;
	}
	.app-section .card .cont .title{
		font-size: 5vw;
		font-family: sans-serif;
		font-weight: 500;		
	}
	.app-section .card .cont .title{
		border-bottom: none;
        padding-bottom: 0;
	}
	.news-hero .focus .info .date{
		font-size: 3vw;
	}
	.news-hero .focus .info{
		border-bottom: none;
	}
	.list-wrap{
		padding: 0vw 3vw;
        background: transparent;
	}
	.n-mark{
		display: none;
	}
	.list-wrap .list a{
		padding: 3vw 0;
	}
	.list-wrap .list a .txt{
		font-size: 4vw;
		width: calc(100% - 20vw);
	}
	.list-wrap .list a .date{
		font-size: 3vw;
		width: 20vw;
	}
	.backTop{
		display: none;
	}
	.footer .foot-nav,.footer .foot-top{
		display: none;
	}
	.footer .foot-bar{
		margin-top: 0;
		padding-top: 0;
		border-top: none;
	}
	.footer{
		padding: 5vw 0;
	}
	.footer .foot-bar{
		font-size: 3vw;
		gap: 2vw;
	}
	.nav ul li:hover .mega-menu {
		transform: translateX(0%) translateY(0);
	}
	.sub-banner{
		margin-top: 60px;
		height: auto !important;
	}
	.sub-banner video{
		aspect-ratio: 16 / 12;
		display: block;
	}
	.sub-banner .text-cols{
		width: 85%;
	}
	.sub-banner .en{
		font-size: 3vw;
	}
	.sub-banner .txt{
		font-size: 6vw;
        margin-bottom: 3.5vw;
        line-height: 1.2;
	}
	.sub-banner .text-cols .desc{
		width: 100%;
		font-size: 3.5vw;
	}
	.app-section{
		padding: 0%;
	}
	.app-section .card{
		position: relative;
		top: 0;
		padding: 15vw 5%;
		display: block;
		padding-bottom: 0;
		height: auto;
	}
	.app-section .card .cols{
		width: 100%;
	}
	.app-section .card .cols img{
		height: 50vw;
		position: relative;
	}
	.app-section .card .cont{
		width: 100%;
		padding: 0;
		margin-top: 4.5vw;
	}
	.app-section .card .cont .singe-page{
		margin-bottom: 3.5vw;
	}
	.app-swiper .swiper-slide a .name{
		font-size: 3.5vw;
		margin-bottom: 2vw;
	}
	.app-swiper .swiper-slide a .more{
		font-size: 2.6vw;
	}
	.app-swiper .swiper-slide a{
		padding: 4vw;
	}
	.app-swiper .swiper-slide a .info{
		margin-top: 2.5vw;
	}
	.swiper-pagination-bullet{
		width: 5px;
		height: 5px;
		margin: 0px 2px;
	}
	.app-swiper{
		padding-bottom: 25px;
	}
	.contact-bar{
		padding: 15vw 0;
	}
	.contact-bar .w1400{
		display: block;
	}
	.contact-bar .name{
		width: 100%;
		font-size: 6vw;
		margin-bottom: 7.5vw;
	}
	.contact-bar .name br,.contact-bar .qh-btn a::before,.contact-bar .qh-btn a::after{
		display: none;
	}
	.contact-bar .qh-btn a{
		font-size: 4vw;
        background: var(--qh-blur);
        color: #fff;
        padding: 2vw 5vw;
        gap: 2vw;
	}
	.contact-bar .qh-btn a i.iconfont{
		font-size: 4vw;
	}
	.product-banner{
		margin-top: 60px;
		aspect-ratio: auto;
		padding: 10vw 0 5vw;
	}
	.product-banner .cont .en{
		font-size: 3vw;
	}
	.show-img{
		width: 70%;
		position: relative;
		left: 15%;
		top: 0;
		transform: translateY(0%);
	}
	.product-banner .w1400{
		display: block;
	}
	.product-banner .cont{
		width: 100%;
		text-align: center;
		margin-top: 3.5vw;
	}
	.product-banner .cont .cn{
		font-size: 6vw;
	}
	.product-menu .item a{
		font-size: 3.8vw;
        padding: 3vw 0;
		font-family: sans-serif;
		font-weight: 500;
	}
	.product-menu .item a::after{
		height: 2px;
	}
	.filter-section{
		padding-top: 5vw;
	}
	.filter-card{
		width: 100%;
		position: relative;
        top: 0;
	}
	.filter-content{
		width: 100%;
	}
	.filter-name .txt{
		font-size: 4vw;
		font-family: sans-serif;
        font-weight: 500;
	}
	.filter-name .icon{
		width: 3vw;
	}
	.filter-wrap .label{
		margin-bottom: 3vw;
	}
	.filter-section .w1400{
		flex-wrap: wrap;
	}
	.yao-box{
		display: none;
	}
	.filter-box{
		padding: 4vw;
		margin-bottom: 5vw;
	}
	.filter-wrap .label .title{
		font-size: 3vw;
		font-weight: normal;
		margin-bottom: 2vw;
	}
	.filter-wrap .list{
		gap: 2vw;
	}
	.filter-wrap .list .btn {
		padding: 0.75vw 2vw;
        font-size: 3vw;
    }
	.filter-name{
		border-bottom: 1px solid rgba(0, 0, 0, .1);
		padding-bottom: 1vw;
        margin-bottom: 4vw;
	}
	.filter-reset{
		padding-top: 2vw;
	}
	.filter-reset .box, .filter-result span{
		font-size: 3vw;
	}
	.filter-result{
		margin-bottom: 2.5vw;
	}
	.filter-list .item a .thum{
		width: 30%;
	}
	.filter-list .item a{
		padding: 3vw;
	}
	.product-menu{
		top: 60px;
	}
	.filter-list .item a .cont .name{
		font-size: 4vw;
	}
	.filter-list .item a .cont .mark span {
        font-size: 3vw;
        padding: 0.5vw 2vw;
        border-radius: 5vw;
    }
	.filter-list .item a .cont{
		gap: 2vw;
		width: 70%;
	}
	.app-cards {
		grid-template-columns: repeat(2, 1fr);
		gap: 2vw;
	}
	.app-cards .item .name{
		padding: 3vw;
	}

	.app-cards .item .name .txt{
		font-size: 3.5vw;
		width: auto;
	}

	.app-cards .item .name .icon{
		font-size: 2.5vw;
	}
	.filter-list .item{
		margin-bottom: 3.5vw;
	}
	.sub-banner .img img{
		aspect-ratio: 100 / 70;
	}
	.js-menu{
		display: none;
	}
	.jishu-wrap{
		padding-top: 5vw;
	}
	.js-cards .card{
		display: block;
		background: transparent;
	}
	.js-cards .card .thum{
		width: 100%;
		margin-bottom: 0vw;
	}
	.js-cards .card .cont{
		width: 100%;
		height: auto;
		position: relative;
		padding: 0;
		background: rgba(0, 0, 0, .05);
        padding: 5vw;
	}
	.js-cards .card .cont .name{
		font-size: 5vw;
	}
	.js-cards .card .cont .tips{
		font-size: 3.8vw;
		line-height: 1.7;
	}
	.js-cards .card .cont .desc p{
		font-size: 3.8vw;
        padding-left: 2vw;
		margin-bottom: 1vw;
	}
	.js-cards .card{
		margin-bottom: 7.5vw;
	}
	.js-cards .card .thum img{
		transform: scale(1);
	}
	.js-cards .card .thum img {
		aspect-ratio: 16 / 9;
	}
	.product-banner .cont .xms{
		padding-left: 0px;
    	border-left: none;
		padding-top: 10px;
    	border-top: 2px solid var(--qh-orange);
		border: none;
        font-size: 3.5vw;
        background: rgba(255, 255, 255, .5);
        padding: 15px;
        text-align: left;
	}
	.road-list .item{
		border-left-width:1px;
		border-left-color:rgba(0, 0, 0, .05);
		border-top: 3px solid var(--qh-blur);
	}
	.road-list .item .box .num{
		position: absolute;
		right: 0;
		top: 0;
		display: none;
	}
	.road-list .item .box .title{
		width: 100%;
	}
	.road-list .item .box{
		padding: 8vw 5vw;
	}
	.road-list .item .title .n{
		font-size: 5vw;
		margin-bottom: 2vw;
	}
	.road-list .item .box .title .singe-page{
		font-size: 3.8vw;
	}
	.road-list{
		gap: 5vw;
	}
	.bh-flex{
		flex-wrap: wrap;
	}
	.bh-flex .bh-cols{
		width: 100%;
		margin-bottom: 7.5vw;
	}
	.bh-flex .singe-page{
		width: 100%;
		font-size: 3.8vw;
	}
	.data-list{
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.data-list .item{
		width: 48%;
		margin-bottom: 5vw;
	}
	.data-list .item:nth-child(n+3){
		margin-bottom: 0;
	}
	.data-list .item .icon{
		width: 10vw;
	}
	.data-list .item .top .number .num{
		font-size: 10vw;
	}
	.history-hero .common-name,.plane{
		width: 50vw;
	}
	.history-list .item{
		width: 50vw;
	}
	.history-list .item .year{
		font-size: 10vw;
	}
	.history-list .item .desc{
		font-size: 3.8vw;
	}
	.dz-section{
		height: auto;
	}
	.dz-cont{
		width: 100%;
		height: auto;
		position: relative;
		top: 0;
		transform: translateY(0);
		left: 0;
		padding: 5vw;
	}
	.dz-cont .singe-page{
		font-size: 3.8vw;
	}
	.dz-bgs{
		width: 100%;
		height: 70vw;
		position: relative;
		top: 0;
	}
	.dz-cont .singe-page p{
		margin-bottom: 0;
	}
	.dz-cont .mark-tips{
		display: none;
	}
	.cultrue-wrap.boxes{
		width: 100%;
		height: auto;
		margin: 0;
	}
	.cultrue-inner{
		border-radius: 0;
		display: block;
	}
	.cultrue-inner .cultrue-left{
		width: 100%;
	}
	.cultrue-left .common-name .desc{
		font-size: 3.8vw;
	}
	.cultrue-swiper .swiper-slide .info{
		font-size: 3.5vw;
	}
	.cultrue-inner .cultrue-swiper{
		width: 100%;
		margin-top: 7.5vw;
	}
	.cultrue-swiper .swiper-slide{
		padding: 5vw;
	}
	.cultrue-swiper .swiper-slide .top .txt{
		font-size: 5vw;
	}
	.cultrue-swiper .swiper-slide .top .icon {
		width: 10vw;
		height: 10vw;
	}
	.cultrue-num .current{
		font-size: 7.5vw;
	}
	.cultrue-num{
		font-size: 5vw;
	}
	.cultrue-nav .swiper-button-prev, .cultrue-nav .swiper-button-next{
		width: 8vw;
		height: 8vw;
	}
	.cultrue-inner{
		padding: 15vw 5vw;
	}
	.honor-swiper .swiper-slide .box .name{
		font-size: 3.25vw;
	}
	.honor-swiper .swiper-slide .box{
		padding: 3vw;
	}
	.honor-swiper .swiper-slide .box .thum{
		margin-bottom: 2.5vw;
	}
	.honor-swiper{
		margin-top: 5vw;
	}
	.news-menu a{
		font-size: 5vw;
	}
	.news-menu{
		gap: 3vw;
		margin-bottom: 5vw;
	}
	.news-recommond .box{
		flex-direction: column;
	}
	.news-recommond .thum,.news-recommond .cont{
		width: 100%;
	}
	.news-recommond .cont .desc,.news-recommond .cont .more{
		display: none;
	}
	.news-recommond .cont .date{
		font-size: 3vw;
		margin-bottom: 1vw;
	}
	.news-recommond .cont .name{
		margin-bottom: 0;
		font-size: 4.5vw;
		font-weight: 500;
		margin-bottom: 1vw;
	}
	.news-recommond .cont .date.date1{
		display: none;
	}
	.news-recommond .cont .date.date2{
		display: block;
	}
	.news-recommond .cont{
		background: transparent;
	}
	.news_detail{
		padding-top: 25vw;
	}
	.pd-mbx{
		font-size: 3vw;
		margin-bottom: 5vw;
	}
	.detail_top .name{
		font-weight: 500;
	}
	.detail_top{
		border-bottom: 2px solid rgba(0, 0, 0, .1);
	}
	.singe-page{
		font-size: 3.8vw;
	}
	.pn_news .item p{
		width: 60px;
	}
	.related-news .list .item .date{
		font-size: 3vw;
	}
	.related-news .list .item .name{
		margin-bottom: 5px;
	}
	.related-news .list .item {
        margin-bottom: 5vw;
        display: block;
        padding-bottom: 5vw;
    }
	.join-wrap .step-list {
		margin-top: 5vw;
		grid-template-columns: repeat(1, 1fr);
		gap: 5vw;
	}
	.join-wrap .step-list .item{
		padding: 7.5vw 5vw;
	}
	.step-list .item .box .name {
		font-size: 5vw;
		opacity: 1;
		font-weight: 500;
	}
	.join-wrap .step-list .item .box .desc{
		font-size: 3.8vw;
		font-weight: normal;
	}
	.step-list .item .box .img{
		width: 15%;
	}
	.growth{
		flex-wrap: wrap;
	}
	.growth .cont,.growth .thums{
		width: 100%;
	}
	.growth .cont{
		margin-bottom: 7.5vw;
	}
	.growth .develops .name{
		font-size: 5vw;
		margin-bottom: 3.5vw;
	}
	.growth .develops .list .item .desc{
		font-size: 3.5vw;
	}
	.growth .develops .list .item .title{
		font-size: 3.8vw;
	}
	.filter-select::after{
		display: none;
	}
	.filter-select select{
		font-size: 3.5vw;
		padding: 2vw;
	}
	.recruit-body{
		flex-direction: column;
	}
	.recruit-list{
		min-width: 100%;
	}
	.recruit-card{
		padding: 4vw;
	}
	.card-title{
		font-size: 5vw;
	}
	.card-meta{
		font-size: 3.5vw;
	}
	.card-toggle {
		width: 3vw;
		height: 3vw;
	}
	.recruit-aside{
		width: 100%;
	}
	.consult-title{
		font-size: 5vw;
		padding-bottom: 3vw;
        margin-bottom: 3vw;
	}
	.consult-card{
		padding: 5vw;
	}
	.consult-subtitle{
		font-size: 3.8vw;
	}
	.consult-info p,.consult-more>p{
		font-size: 3.5vw;
	}
	.boss-logo {
		
	}
	.consult-more>p{
		font-size: 3.5vw;
	}
	.contct-wrap .w1400{
		flex-wrap: wrap;
	}
	.contact-left,.contact-cont{
		width: 100%;
	}
	.company-cont .list .item .name{
		font-size: 3vw;
		line-height: 1.3;
	}
	.company-cont .list .item .desc{
		font-size: 5vw;
	}
	.company-cont .list{
		margin-bottom: 7.5vw;
	}
	.form .row>input, .form .row select, .form .row textarea{
		padding: 2.5vw;
		font-size: 3.5vw;
	}
	.form-tips{
		font-size: 3vw;
		margin-top: 7.5vw;
	}
	.form-submit{
		width: auto;
		display: inline-flex;
		padding: 2vw 7.5vw;
        font-size: 3.8vw;
	}
	.form{
		margin-bottom: 3.5vw;
	}
	.company-cont .list .item{
		margin-bottom: 3.5vw;
		padding-bottom: 3.5vw;
	}
	.form .row{
		margin-bottom: 2vw;
	}
	.tech-list .item .box .info .title{
		font-weight: 500;
        font-size: 4.6vw;
        line-height: 1.5;
        margin-bottom: 0vw;
        font-family: sans-serif;
	}
	.list-wrap .list a .txt{
		font-weight: 500;
	}
	.news-wrap{
		padding-top: 0;
	}
	.app-swiper .swiper-slide a .name{
		font-size: 3.8vw;
	}

	.detail-wrap{
		width: 45%;
	}
	.big-swiper{
		display: none;
	}

	.small-swiper{
		width: 100%;
		padding-left: 0;
		margin-left: 0;
	}

	.product-banner .w1400.flex2{
		display: flex;
		justify-content: space-between;
	}

	.small-swiper .swiper-slide{
		padding: 0;
	}

	.detail-show .name{
		font-size: 5vw;
		margin-bottom: 3vw;
	}
	.show-data{
		padding: 2.5vw 0;
		flex-wrap: wrap;
	}

	.show-data .item .num{
		font-size: 3vw;
		font-weight: normal;
	}
	.show-data .item .txt{
		font-size: 3vw;
	}
	.show-data{
		display: none;
	}
	.show-data .item{
		width: 100%;
	}
	.show-btn a {
        font-size: 3vw;
        padding: 2vw;
        gap: 1vw;
    }
	.singe-page table{
		font-size: 3vw;
	}
	.cc-cols{
		margin-bottom: 5vw;
	}
	.cc-cols,.cc-thum{
		width: 100%;
	}
	.cc-cols .summary{
		padding-left: 2vw;
	}

	.cc-wrap:nth-child(odd){
		background: #e8eefd;		
	}

	.cc-cols .desc{
		font-size: 3.8vw;
	}
	.data-list .item .txt{
		font-size: 3.5vw;
        font-weight: normal;
        opacity: .6;
	}
	.cultrue-foot{
		position: relative;
		left: 0;
		bottom: 0;
		right: 0;
		padding: 5vw;
		padding-top: 0;
	}
	.cultrue-nav .swiper-button-prev::after, .cultrue-nav .swiper-button-next::after{
		font-size: 2vw;
	}
	.slogan{
		width: 80%;
	}
	.apps-wrap{
		background: var(--qh-bg-blue);
	}
	.apps-wrap .common-name{
		display: block;
        position: relative;
        top: 0;
        left: 0;
        width: 100%;
        color: #333333;
		margin-bottom: 5vw;
	}
	.apps-wrap{
		padding: 0 5%;
	}
	.load-logo {
		width: 120px;
	}
	.apps-wrap .common-name .desc{
		width: 100%;
		font-size: 3.8vw;
	}
	.app-mark{
		display: block;
		position: absolute;
        left: 0;
        top: 0;
        background: rgba(0, 0, 0, .2);
        color: #fff;
        font-size: 12px;
        padding: 5px 10px;
	}
	.mobile-links{
		display: block;
		width: 100%;
		height: 100%;
		position: absolute;
		left: 0;
		top: 0;
	}
	.hzhb-item::after, .hzhb-item::before, .hzhb-item span::after, .hzhb-item span::before{
		opacity: 0.15;
	}
	.pro-data{
		justify-content: center;
	}
	.pro-data .item .top span{
		font-size: 10vw;
	}
	.pro-data .item .top{
		font-size: 4vw;
	}
	.pro-data .item .name{
		font-size: 12px;
	}
	.product-seciont{
		min-height: auto;
	}
	.product-hero{
		margin-top: 5vw;
		flex-wrap: wrap;
		gap: 0;
	}
	.product-hero .card{
		width: 48%;
		margin-bottom: 3vw;
	}
	.product-hero .card .item a{
		padding: 4vw;
	}
	.product-hero .card:nth-child(n+3){
		margin-bottom: 0;
	}
	.product-hero .card .item a .info .name{
		font-size: 4vw;
	}
	.product-hero .card .item a .info .desc{
		min-height: auto;
		font-size: 3.5vw;
	}
	.step-list{
		grid-template-columns: repeat(1, 1fr);
	}
	.step-list .item{
		padding: 4vw;
		margin-bottom: 1px;
	}
	.step-list .item .box .icon{
		width: 8%;
	}
	.step-list .item .box .desc{
		font-size: 3.8vw;
		font-weight: normal;
	}
	.mark-tips{
		font-size: 2vw;
	}
	.banner video{
		aspect-ratio: 100 / 70;
	}
	.play-video-btn{
		display: block;
	}
	.video-img{
		display: block;
		width: 100%;
		height: auto;
		position: relative;
	}
	.video-img img{
		aspect-ratio: 100 / 70;
	}
	.banner video{
		display: none;
	}
	.card-content .singe-page{
		
	}
	.consult-more{
		padding-top: 5vw;
	}
	.boss-logo {
        margin-top: 3.5vw;
        width: 40px;
    }
	.flap{
		gap: 2vw;
	}
	.recruit-filter{
		margin-bottom: 3.5vw;
	}
	.banner .swiper-slide.swiper-slide-active .txt2,.banner .swiper-slide.swiper-slide-active .txt3,.banner .swiper-slide.swiper-slide-active .txt4{
		opacity: 1;
	}

	.banner .banner-swiper .swiper-pagination{
		bottom: 8%;
	}
	.join-ms{
		font-size: 6vw;
		padding: 0 5%;
		margin-top: 10vw;
	}
	.join-ms p::after, .join-ms p::before{
		width: 2vw;
	}
	.card-content .singe-page{
		font-size: 14px;
	}
	.card-meta{
		margin-top: 1vw;
	}
	.recruit-card{
		margin-bottom: 3.5vw;
	}
	.hzhb-item{
		aspect-ratio: auto;
		padding: 3.5vw 2vw;
	}
	.hzhb-logo{
		width: 70%;
		aspect-ratio: 10 / 4;
	}
	.hzhb-wrap{
		grid-template-columns: repeat(2, 1fr);
	}
	.about-list .item .box .yby .bjs{
		font-size: 5vw;
	}
	.about-list .item:nth-child(1) .box .yby .bjs {
		font-size: 3.5vw;
	}
}