@charset "utf-8";
/* CSS Document */
/*手风琴行业案例模块*/
.case-main{
	background: #000;
}
.case-wrapper {
	min-height: 100vh;
	width: 100%;
	background: #000;

	/* ---- 入场动画初始状态（隐藏） ---- */
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 2s cubic-bezier(0.22, 1, 0.36, 1),
		transform 2s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---- 可见状态（触发动画） ---- */
.case-wrapper.visible {
	opacity: 1;
	transform: translateY(0);
}

.right-industry-wrap {
	width: 100%;
	height: 100vh;
	display: flex;
	flex-direction: column;
	position: relative;
}

/* ===== 顶部认证证书栏 ===== */
.cert-wrap {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px 8px;
	padding: 20px 5%;
	margin: 15px 0 55px;
	background: #000000;
	flex-shrink: 0;
}
.cert-item {
	text-align: center;
	flex: 1 1 8%;
	min-width: 60px;
	color: #ffffff;
	filter: brightness(0) invert(1);

	/* ---- 证书项入场动画初始状态 ---- */
	opacity: 0;
	transform: translateY(20px);
}
.cert-item:hover {
	color: #ff0000;
	filter: none;
}
.cert-icon {
	margin-bottom: 6px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.cert-icon img {
	max-width: 55px;
	width: 100%;
	height: auto;
	display: block;
}
.cert-text {
	font-size: 12px;
	font-weight: 600;
}

/* ---- 证书项入场动画（由 .visible 触发） ---- */
.case-wrapper.visible .cert-item {
	animation: fadeInUpSmall 0.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* ===== 卡片滚动容器 ===== */
.scroll-box {
	flex: 1;
	width: 97.6%;
	overflow: hidden;
	position: relative;
}
.group-wrap {
	width: 100%;
	height: 100%;
	display: flex;
	transition: transform 0.5s ease;
}
.industry-group {
	min-width: 100%;
	height: 100%;
	display: flex;
	flex-direction: row;
}

/* ===== 卡片基础 ===== */
.industry-card {
	flex: 1;
	position: relative;
	overflow: hidden;
	cursor: pointer;
	transition: flex 1s cubic-bezier(0.25, 0.8, 0.25, 1),
		border 0.3s, box-shadow 0.3s,
		opacity 0.2s ease;
	height: 100%;
	border-radius: 0;

	/* ---- 卡片入场动画初始状态 ---- */
	opacity: 0;
	transform: translateY(30px);
}
.industry-card.selected {
	flex: 2.2;
	opacity: 1;
	z-index: 2;
}
.industry-group .industry-card:not(.selected) {
	flex: 0.5;
	opacity: 0.6;
}

/* ---- 卡片入场动画（由 .visible 触发） ---- */
.case-wrapper.visible .industry-card {
	animation: slideUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.industry-more {
	text-decoration: none;
	color: #ffffff;
}

.card-bg-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 0;
}

/* ===== 蒙版 ===== */
.card-mask {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	background: linear-gradient(to top, rgb(0 0 0), #0000004a,#00000099);
	transition: opacity 0.3s;
	z-index: 1;
}
.industry-card.selected .card-mask {
	display: none;
}

.card-bottom-mask {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 30%;
	background: linear-gradient(to top, rgba(0, 0, 0), transparent);
	z-index: 1;
	display: none;
}
.industry-card.selected .card-bottom-mask {
	display: block;
}

/* ===== 卡片文字 ===== */
.card-text-info {
	position: absolute;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	z-index: 2;
	text-align: center;
	padding: 20px;
	bottom: 50px;
}
.card-default-info {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.card-default-info .card-icon-circle {
	font-size: 44px;
	margin-bottom: 12px;
}
.card-icon-img {
	width: 40%;
	margin-top: 10px;
}
.card-default-info .card-cn-name {
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 4px;
}
.card-default-info .card-en-name {
	font-size: 13px;
	letter-spacing: 2px;
	color: #ffffff;
	margin-top: 4px;
}

.card-hover-info {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.card-hover-info .card-cn-name {
	font-size: 26px;
	font-weight: 600;
	letter-spacing: 4px;
}
.card-hover-info .card-en-name {
	font-size: 13px;
	letter-spacing: 3px;
	color: #ffffff;
	margin-top: 4px;
}
.card-more {
	margin: 10px auto 20px;
	font-size: 13px;
	border: 1px solid #ffffff;
	padding: 5px 80px;
	cursor: pointer;
	transition: 0.3s;
	border-radius: 2px;
}
.card-more:hover {
	background: rgba(255, 255, 255, 0.1);
}

.industry-card.selected .card-default-info {
	display: none;
}
.industry-card.selected .card-hover-info {
	display: flex;
}

/* ===== 圆点切换 ===== */
.page-dots {
	position: absolute;
	bottom: 30px;
	left: 30px;
	display: flex;
	gap: 14px;
	z-index: 20;
	height: 20px;
}
.dot {
	width: 60px;
	height: 20px;
	position: relative;
	cursor: pointer;
	transition: 0.3s;
	background: transparent;
}
.dot::after {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 100%;
	height: 4px;
	background: rgba(255, 255, 255, 0.25);
	border-radius: 2px;
	transition: inherit;
}
.dot.active::after {
	background: #ff2828;
}
.dot:hover::after {
	background: #ff2828;
}

/* ===== 右侧侧边栏 ===== */
.side-switch-bar {
	position: absolute;
	right: 0;
	top: 0;
	width: 44px;
	height: 100%;
	/*background: linear-gradient(90deg, #00000000, #00000000, #00000000);*/
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 20px;
	cursor: pointer;
	user-select: none;
	transition: background 0.3s;
	z-index: 15;
	background-image: linear-gradient(90deg, #00000000, #cc000000, #cc0000);
	background-size: 0% 100%;
	background-position: right center;
	background-repeat: no-repeat;
	transition: background-size 2s cubic-bezier(0.22, 1, 0.36, 1);
}
.side-switch-bar:hover {
	/*background: linear-gradient(90deg, #00000000, #cc000000, #cc0000);*/
	background-size: 100% 100%;
}
.side-vertical-text {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-size: 13px;
	letter-spacing: 6px;
	opacity: 0.9;
	line-height: 2.2;
	color: #fff;
}

/* ===== 移动端底部 "更多行业案例" ===== */
.mobile-more-bar {
	display: none;
	width: 100%;
	padding: 18px 0;
	text-align: center;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.8));
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 14px;
	letter-spacing: 6px;
	color: rgba(255, 255, 255, 0.7);
	flex-shrink: 0;
	z-index: 10;
}
.mobile-more-bar span {
	display: inline-block;
	padding: 0 20px;
}

/* ============================================================ */
/* ===== 动画 @keyframes ===== */
/* ============================================================ */

/* ---- 整体模块：淡入 + 上滑 ---- */
@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translateY(40px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ---- 证书项：淡入 + 小幅度上滑 ---- */
@keyframes fadeInUpSmall {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ---- 卡片：上滑（透明度由手风琴控制，动画期间从0→1） ---- */
@keyframes slideUp {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ============================================================ */
/* ===== 移动端自适应 (≤ 768px) ===== */
/* ============================================================ */
@media screen and (min-width: 768px) and (max-width: 992px) {
	.cert-item {
		flex: 1 1 12%;
	}
}

@media (max-width: 768px) {
	/* 移动端 case-wrapper 高度自适应，入场动画保留 */
	.case-wrapper {
		min-height: auto;
		transform: translateY(30px);
	}
	.case-wrapper.visible {
		transform: translateY(0);
	}

	.right-industry-wrap {
		height: auto;
		min-height: auto;
		display: flex;
		flex-direction: column;
	}

	.scroll-box {
		flex: none;
		width: 100%;
		height: auto;
		overflow: visible;
		min-height: auto;
	}
	.cert-wrap {
		padding: 20px 1%;
		margin: 15px 0;
	}
	.cert-item {
		flex: 1 1 18%;
		min-width: 50px;
	}
	.cert-icon img {
		max-width: 30px;
	}
	.cert-text {
		font-size: 10px;
	}

	.group-wrap {
		flex-direction: column;
		transform: none !important;
		transition: none;
		height: auto;
	}

	.industry-group {
		min-width: 100%;
		flex-direction: column;
		height: auto;
		padding: 0;
	}

	.industry-card {
		flex: 0 0 auto !important;
		width: 100%;
		height: 200px;
		opacity: 1 !important;
		border-radius: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.06);

		/* 移动端卡片入场动画重置，使用更轻量的位移 */
		transform: translateY(20px);
	}
	.case-wrapper.visible .industry-card {
		animation: slideUpMobile 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	}

	.industry-card.selected {
		flex: 0 0 auto !important;
		opacity: 1;
		z-index: 2;
	}
	.industry-group .industry-card:not(.selected) {
		flex: 0 0 auto !important;
		opacity: 0.6;
	}

	.card-text-info {
		bottom: 30px;
		padding: 16px;
	}
	.card-default-info .card-cn-name {
		font-size: 18px;
		letter-spacing: 3px;
	}
	.card-default-info .card-en-name {
		font-size: 11px;
		letter-spacing: 1px;
	}
	.card-hover-info .card-cn-name {
		font-size: 20px;
		letter-spacing: 3px;
	}
	.card-hover-info .card-en-name {
		font-size: 11px;
		letter-spacing: 2px;
	}
	.card-icon-img {
		width: 30%;
		margin-top: 6px;
	}
	.card-more {
		padding: 4px 40px;
		font-size: 12px;
		margin: 8px auto 12px;
	}

	.page-dots {
		display: none !important;
	}
	.side-switch-bar {
		display: none !important;
	}
	.mobile-more-bar {
		display: block;
	}
	.right-industry-wrap::after {
		content: '';
		display: block;
		height: 10px;
	}

	/* 移动端证书项入场动画延迟通过 JS 动态设置，此处保留基础样式 */
	.case-wrapper.visible .cert-item {
		animation: fadeInUpSmall 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	}
}

/* ---- 移动端卡片专用动画（位移更小） ---- */
@keyframes slideUpMobile {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ===== 小屏手机 (≤ 480px) ===== */
@media (max-width: 480px) {
	.industry-card {
		height: 250px;
	}
	.card-text-info {
		bottom: 20px;
		padding: 12px;
	}
	.card-default-info .card-cn-name {
		font-size: 16px;
		letter-spacing: 2px;
	}
	.card-default-info .card-en-name {
		font-size: 10px;
	}
	.card-hover-info .card-cn-name {
		font-size: 17px;
		letter-spacing: 2px;
	}
	.card-hover-info .card-en-name {
		font-size: 10px;
		letter-spacing: 1px;
	}
	.card-icon-img {
		width: 25%;
		margin-top: 4px;
	}
	.card-more {
		padding: 3px 30px;
		font-size: 11px;
		margin: 6px auto 10px;
	}
	.mobile-more-bar {
		font-size: 12px;
		letter-spacing: 4px;
		padding: 14px 0;
	}
}