/**
 * shpigments 滚动入场动画 + 按钮波纹 + banner 分段入场
 * 基于 IntersectionObserver（无第三方依赖）
 * 尊重 prefers-reduced-motion 用户偏好
 */

/* ========== 减少动效偏好 ========== */
@media (prefers-reduced-motion: reduce) {
	.shp-reveal,
	.shp-reveal-left,
	.shp-reveal-right,
	.shp-reveal-zoom {
		opacity: 1 !important;
		transform: none !important;
	}
	.shp-banner-scene > * {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* 移动端：禁用 shp-reveal-left/right 的横向偏移，避免触发横向滚动溢出 */
@media (max-width: 768px) {
	.shp-reveal-left,
	.shp-reveal-right {
		transform: translateY(20px) !important;
	}
	.shp-reveal-left.revealed,
	.shp-reveal-right.revealed {
		transform: translateY(0) !important;
	}
}

/* ========== 滚动入场基础 ========== */
.shp-reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.shp-reveal.revealed {
	opacity: 1;
	transform: translateY(0);
}

.shp-reveal-left {
	opacity: 0;
	transform: translateX(-40px);
	transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.shp-reveal-left.revealed {
	opacity: 1;
	transform: translateX(0);
}

.shp-reveal-right {
	opacity: 0;
	transform: translateX(40px);
	transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.shp-reveal-right.revealed {
	opacity: 1;
	transform: translateX(0);
}

.shp-reveal-zoom {
	opacity: 0;
	transform: scale(0.92);
	transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.shp-reveal-zoom.revealed {
	opacity: 1;
	transform: scale(1);
}

/* ========== 延迟阶梯（用于多个元素依次入场） ========== */
.shp-d1 { transition-delay: 0.1s; }
.shp-d2 { transition-delay: 0.2s; }
.shp-d3 { transition-delay: 0.3s; }
.shp-d4 { transition-delay: 0.4s; }
.shp-d5 { transition-delay: 0.5s; }
.shp-d6 { transition-delay: 0.6s; }
.shp-d7 { transition-delay: 0.7s; }
.shp-d8 { transition-delay: 0.8s; }
.shp-d9 { transition-delay: 0.9s; }
.shp-d10 { transition-delay: 1.0s; }

/* ========== 按钮 hover 波纹 ========== */
.shp-btn {
	position: relative;
	overflow: hidden;
}
.shp-btn::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	transform: translate(-50%, -50%) scale(0);
	transition: width 0.5s ease, height 0.5s ease, opacity 0.5s ease;
	opacity: 0;
	pointer-events: none;
}
.shp-btn:hover::before {
	width: 300px;
	height: 300px;
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}

/* ========== Banner 分段入场 ========== */
.shp-banner-scene {
	/* 父容器，仅作定位上下文 */
}
.shp-banner-scene > .shp-banner-title,
.shp-banner-scene > .shp-banner-subtitle,
.shp-banner-scene > .shp-banner-en,
.shp-banner-scene > .shp-banner-desc,
.shp-banner-scene > .shp-banner-btn,
.shp-banner-scene > .shp-banner-xian {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}
.shp-banner-scene.revealed > .shp-banner-title {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.2s;
}
.shp-banner-scene.revealed > .shp-banner-en {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.35s;
}
.shp-banner-scene.revealed > .shp-banner-xian {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.45s;
}
.shp-banner-scene.revealed > .shp-banner-subtitle {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.55s;
}
.shp-banner-scene.revealed > .shp-banner-desc {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.65s;
}
.shp-banner-scene.revealed > .shp-banner-btn {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.75s;
}

/* ========== 首页产品卡片图片放大 ========== */
.shp-product-card .shp-product-img {
	overflow: hidden;
}
.shp-product-card .shp-product-img img {
	transition: transform 0.5s ease;
}
.shp-product-card:hover .shp-product-img img {
	transform: scale(1.1);
}

/* ========== 统计数字递增 ========== */
.shp-stat-number {
	display: inline-block;
}

/* ========== 画廊图片放大 ========== */
.shp-gallery-item .shp-gallery-img img {
	transition: transform 0.5s ease;
}
.shp-gallery-item:hover .shp-gallery-img img {
	transform: scale(1.05);
}

/* ========== 首页客户/优势卡片入场 ========== */
.shp-home-section .shp-card {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.shp-home-section.revealed .shp-card {
	opacity: 1;
	transform: translateY(0);
}
.shp-home-section.revealed .shp-card:nth-child(1) { transition-delay: 0.1s; }
.shp-home-section.revealed .shp-card:nth-child(2) { transition-delay: 0.2s; }
.shp-home-section.revealed .shp-card:nth-child(3) { transition-delay: 0.3s; }
.shp-home-section.revealed .shp-card:nth-child(4) { transition-delay: 0.4s; }
.shp-home-section.revealed .shp-card:nth-child(5) { transition-delay: 0.5s; }
.shp-home-section.revealed .shp-card:nth-child(6) { transition-delay: 0.6s; }
