/* =========================================================
   Hover Tilt — 通用轻交互
   .pm-tilt  鼠标移动时 3D 倾斜，离开平滑回弹
   .pm-bob   无限上下浮动
   .pm-stage 悬浮层定位基准（position: relative）
   ========================================================= */

.pm-tilt {
	transition: transform .5s cubic-bezier(.22, .61, .36, 1);
	will-change: transform;
}

/* 进入后立刻跟手，离开时用上面的慢回弹 */
.pm-tilt:hover {
	transition: transform .08s linear;
}

.pm-bob {
	animation: pm-bob var(--pm-bob-d, 5s) ease-in-out infinite;
	animation-delay: var(--pm-bob-delay, 0s);
	will-change: transform;
}

@keyframes pm-bob {
	50% { transform: translateY(var(--pm-bob-h, -14px)); }
}

@media (prefers-reduced-motion: reduce) {
	.pm-tilt, .pm-bob { animation: none; transition: none; }
}

/* ---------- 底部对齐的媒体框 ---------- */
.pm-bottom {
	position: relative;
	overflow: hidden;
}

.pm-bottom img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10.5;
	object-fit: cover;
	object-position: 50% 100%;
}

/* 底部压暗，和设计稿一致 */
.pm-bottom::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, transparent 40%, rgba(6, 3, 12, .55));
}

/* ---------- 商品图库舞台 ---------- */
/* 商品图是方形主视觉，不能用 .pm-bottom（16/10.5 的 object-fit:cover 会裁掉边） */
.pm-product-stage {
	position: relative;
	border-radius: 24px;
	border: 1px solid rgba(168, 85, 247, .18);
	background:
		radial-gradient(72% 72% at 50% 42%, rgba(139, 92, 246, .18), transparent 70%),
		rgba(255, 255, 255, .02);
	padding: 26px;
}

.pm-product-stage img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

@media (max-width: 767px) {
	.pm-product-stage { padding: 16px; border-radius: 18px; }
}

/* ---------- 悬浮标签 ---------- */
.pm-stage {
	position: relative;
}

.pm-float {
	position: absolute !important;
	z-index: 3;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 9px 14px;
	border: 1px solid rgba(168, 85, 247, .2);
	border-radius: 12px;
	background: rgba(11, 6, 22, .82);
	backdrop-filter: blur(8px);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #a99fc6;
	white-space: nowrap;
}

.pm-float p {
	margin: 0;
	font: inherit;
	color: inherit;
}

.pm-float--a {
	top: 8%;
	left: -26px;
	--pm-bob-d: 5s;
}

.pm-float--b {
	top: 44%;
	right: -30px;
	--pm-bob-d: 6.5s;
	--pm-bob-delay: .6s;
}

/* 右下角数字徽章 */
.pm-badge {
	position: absolute !important;
	z-index: 4;
	right: -14px;
	bottom: -18px;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 16px 22px;
	border: 1px solid rgba(168, 85, 247, .35);
	border-radius: 16px;
	background: rgba(11, 6, 22, .9);
	backdrop-filter: blur(12px);
	box-shadow: 0 0 40px rgba(168, 85, 247, .28);
	text-align: left;
}

.pm-badge p {
	margin: 0;
	line-height: 1.15;
}

.pm-badge .n {
	display: block;
	font-family: 'Orbitron', sans-serif;
	font-size: 1.5rem;
	font-weight: 900;
	background: linear-gradient(100deg, #8b5cf6, #e879f9, #22d3ee);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.pm-badge .n em {
	font-style: normal;
	font-size: .62em;
	letter-spacing: .04em;
}

.pm-badge .l {
	display: block;
	margin-top: 2px;
	font-size: .58rem;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: #6f6489;
}

@media (max-width: 1024px) {
	.pm-float--a { left: 6px; }
	.pm-float--b { right: 6px; }
	.pm-badge { right: 6px; bottom: -14px; padding: 12px 16px; }
}

@media (max-width: 767px) {
	.pm-float {
		padding: 6px 10px;
		border-radius: 9px;
		font-size: .58rem;
		letter-spacing: .1em;
	}

	.pm-float--a { top: 6%; }
	.pm-float--b { top: 40%; }

	.pm-badge {
		right: 4px;
		bottom: -10px;
		padding: 8px 12px;
		border-radius: 11px;
	}

	.pm-badge .n { font-size: .92rem; }
	.pm-badge .l { font-size: .62rem; letter-spacing: .16em; color: #a99fc6; }
}
/* =========================================================
   IPI Scroll Reveal — 滚动叙事区块
   纯 CSS 滚动驱动动画（animation-timeline: view()），无 JS。
   动画曲线锁定，用户只填内容与背景图。
   ========================================================= */

.pm-reveal {
	--pm-reveal-bg: none;
	position: relative;
	height: 330vh;
	background: #04020a;
	isolation: isolate;
	/* 子元素通过这个时间线读取自身滚动进度 */
	view-timeline-name: --pm-reveal;
	view-timeline-axis: block;
	timeline-scope: --pm-reveal;
}

.pm-reveal-stage {
	position: sticky;
	top: 0;
	height: 100vh;
	overflow: hidden;
	background: #04020a;
}

/* ---------- 背景层：0.22 亮度 → 完全浮现 ---------- */
.pm-reveal-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: var(--pm-reveal-bg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: .22;
	transform: scale(1.16);
	filter: blur(8px) brightness(.45);
	animation: pm-reveal-bg linear both;
	animation-timeline: --pm-reveal;
	animation-range: contain 0% contain 100%;
	will-change: opacity, transform, filter;
}

.pm-reveal-vignette {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(120% 90% at 50% 46%, rgba(4, 2, 10, 0) 0%, rgba(4, 2, 10, .5) 64%, rgba(4, 2, 10, .92) 100%),
		linear-gradient(180deg, rgba(4, 2, 10, .9) 0%, rgba(4, 2, 10, 0) 20%, rgba(4, 2, 10, 0) 78%, rgba(4, 2, 10, .92) 100%);
}

/* 文案出现的同时把中景压暗：背景图再亮也不会吃掉文字 */
.pm-reveal-vignette::after {
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0;
	background:
		radial-gradient(62% 56% at 50% 50%, rgba(4, 2, 10, .84) 0%, rgba(4, 2, 10, .46) 60%, rgba(4, 2, 10, 0) 100%),
		rgba(4, 2, 10, .12);
	animation: pm-reveal-scrim linear both;
	animation-timeline: --pm-reveal;
	animation-range: contain 0% contain 100%;
}

/* ---------- 字标层：放大 → 爆开 → 淡出 ---------- */
.pm-reveal-wm {
	position: absolute;
	inset: 0;
	z-index: 6;
	display: grid;
	place-items: center;
	pointer-events: none;
	filter: drop-shadow(0 0 46px rgba(147, 51, 234, .5));
}

.pm-reveal-wm span {
	display: block;
	font-family: 'Orbitron', var(--global-primary-font-family, sans-serif);
	font-weight: 900;
	font-size: clamp(3rem, 14.5vw, 13rem);
	line-height: .9;
	letter-spacing: .04em;
	white-space: nowrap;
	background-image: linear-gradient(100deg, #7c3aed 0%, #c084fc 22%, #22d3ee 52%, #e879f9 78%, #7c3aed 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	opacity: 1;
	transform: scale(1);
	animation: pm-reveal-wm linear both;
	animation-timeline: --pm-reveal;
	animation-range: contain 0% contain 100%;
	will-change: transform, opacity, filter;
}

/* ---------- 文案层：字标退场后淡入 ---------- */
.pm-reveal-copy {
	position: absolute;
	left: 50%;
	top: 50%;
	translate: -50% -50%;
	z-index: 5;
	width: min(980px, 88vw);
	padding: 40px 20px;
	text-align: center;
	opacity: 0;
	animation: pm-reveal-copy linear both;
	animation-timeline: --pm-reveal;
	animation-range: contain 0% contain 100%;
	will-change: opacity, transform;
}

/* 文案背后的柔和暗底：背景图再亮也压得住字，随文案一起淡入 */
.pm-reveal-copy::before {
	content: "";
	position: absolute;
	inset: -22% -30%;
	z-index: -1;
	pointer-events: none;
	border-radius: 50%;
	background: radial-gradient(72% 66% at 50% 50%, rgba(4, 2, 10, .72) 0%, rgba(4, 2, 10, .45) 55%, rgba(4, 2, 10, 0) 100%);
}

.pm-reveal-eyebrow {
	display: inline-block;
	font-family: 'Orbitron', sans-serif;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .34em;
	text-transform: uppercase;
	color: #b48cff;
}

.pm-reveal-title {
	margin: 14px 0 0;
	font-family: 'Orbitron', var(--global-primary-font-family, sans-serif);
	font-size: clamp(1.7rem, 4.2vw, 3.4rem);
	font-weight: 900;
	line-height: 1.02;
	letter-spacing: .01em;
	color: #fff;
	text-shadow: 0 0 34px rgba(147, 51, 234, .5);
}

.pm-reveal-desc {
	margin: 20px auto 0;
	max-width: 62ch;
	font-size: clamp(.92rem, 1.15vw, 1.02rem);
	line-height: 1.75;
	color: rgba(232, 227, 245, .86);
	text-shadow: 0 1px 14px rgba(0, 0, 0, .6);
}

.pm-reveal-specs {
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 9px;
}

.pm-reveal-specs li {
	position: relative;
	padding-left: 24px;
	font-size: .9rem;
	letter-spacing: .02em;
	color: rgba(220, 213, 238, .94);
	text-shadow: 0 1px 14px rgba(0, 0, 0, .6);
}

.pm-reveal-specs li::before {
	content: "✓";
	position: absolute;
	left: 4px;
	top: -.05em;
	font-size: .92em;
	color: #22d3ee;
	text-shadow: 0 0 10px rgba(34, 211, 238, .8);
}

.pm-reveal-btn {
	display: inline-flex;
	align-items: center;
	gap: .6em;
	margin-top: 32px;
	padding: 14px 30px;
	border: 1px solid rgba(168, 132, 255, .55);
	border-radius: 60px;
	font-family: 'Orbitron', sans-serif;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #e9e2ff;
	text-decoration: none;
	background: rgba(124, 58, 237, .12);
	transition: background .25s ease, border-color .25s ease, color .25s ease;
}

.pm-reveal-btn:hover,
.pm-reveal-btn:focus-visible {
	background: rgba(124, 58, 237, .28);
	border-color: rgba(196, 156, 255, .9);
	color: #fff;
}

/* ---------- 关键帧：曲线对齐设计稿 ---------- */
@keyframes pm-reveal-wm {
	0%   { opacity: 1; transform: scale(1);   filter: blur(0); }
	20%  { transform: scale(2.1); }
	40%  { transform: scale(3.9); }
	58%  { opacity: 1; transform: scale(5.6); }
	60%  { transform: scale(5.9); }
	75%  { opacity: 0; transform: scale(7.6);  filter: blur(2px); }
	100% { opacity: 0; transform: scale(11);   filter: blur(6px); }
}

@keyframes pm-reveal-bg {
	0%, 38%   { opacity: .22; transform: scale(1.16); filter: blur(8px) brightness(.45); }
	57%       { opacity: .61; transform: scale(1.08); filter: blur(4px) brightness(.72); }
	76%, 100% { opacity: 1;   transform: scale(1);    filter: blur(0) brightness(1); }
}

@keyframes pm-reveal-scrim {
	0%, 68%   { opacity: 0; }
	92%, 100% { opacity: 1; }
}

@keyframes pm-reveal-copy {
	0%, 72%   { opacity: 0;   transform: translateY(32px); }
	84%       { opacity: .5;  transform: translateY(16px); }
	96%, 100% { opacity: 1;   transform: translateY(0); }
}

/* ---------- 不支持滚动时间线的浏览器：降级成普通过渡区 ---------- */
@supports not (animation-timeline: view()) {
	.pm-reveal {
		height: auto;
	}

	.pm-reveal-stage {
		position: relative;
		height: auto;
		min-height: 100vh;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 16vh 6vw;
	}

	.pm-reveal-bg {
		opacity: .8;
		transform: none;
		filter: none;
	}

	.pm-reveal-wm {
		position: relative;
		inset: auto;
		display: block;
		filter: none;
	}

	.pm-reveal-copy {
		position: relative;
		left: auto;
		top: auto;
		translate: none;
		width: auto;
		max-width: 980px;
		margin-top: 28px;
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pm-reveal { height: auto; }
	.pm-reveal-stage { position: relative; height: auto; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 16vh 6vw; }
	.pm-reveal-bg { opacity: .8; transform: none; filter: none; }
	.pm-reveal-wm { position: relative; inset: auto; display: block; filter: none; }
	.pm-reveal-copy { position: relative; left: auto; top: auto; translate: none; width: auto; max-width: 980px; margin-top: 28px; opacity: 1; }
	.pm-reveal-wm span, .pm-reveal-bg, .pm-reveal-copy { animation: none; }
}

/* ---------- 移动端 ---------- */
@media (max-width: 767px) {
	.pm-reveal {
		height: 240vh;
	}

	.pm-reveal-wm span {
		font-size: clamp(2.2rem, 17vw, 6rem);
	}

	.pm-reveal-copy {
		width: 90vw;
	}

	.pm-reveal-title {
		font-size: clamp(1.4rem, 6.4vw, 2.2rem);
	}

	.pm-reveal-specs {
		flex-direction: column;
		gap: 8px;
	}
}

/* =========================================================
   .pm-card-glow —— 卡片 hover：跟随鼠标的光晕 + 边框提亮
   光标位置由 JS 写进 --pm-x / --pm-y
   ========================================================= */

.pm-card-glow.pm-card-glow {
	position: relative;
	transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}

/* 用 ::after —— Elementor 容器的 ::before 已被背景遮罩占用 */
.pm-card-glow::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	border-radius: inherit;
	opacity: 0;
	transition: opacity .35s ease;
	background: radial-gradient(
		340px circle at var(--pm-x, 50%) var(--pm-y, 0%),
		rgba(232, 121, 249, .22),
		transparent 62%
	);
}

.pm-card-glow:hover::after,
.pm-card-glow:focus-within::after {
	opacity: 1;
}

.pm-card-glow:hover,
.pm-card-glow:focus-within {
	/* 用 outline 提亮边缘，不动 Elementor 自己设置的 border */
	outline: 1px solid rgba(168, 85, 247, .55);
	outline-offset: -1px;
	box-shadow: 0 26px 70px -28px rgba(168, 85, 247, .85);
}

/* 卡片内的图跟着轻轻放大 */
.pm-card-glow img {
	transition: transform .7s cubic-bezier(.22, .61, .36, 1), filter .5s ease;
}

.pm-card-glow:hover img {
	transform: scale(1.05);
}

/* =========================================================
   .pm-reel —— 横向滚动列（拖拽 / 滚轮 / 键盘都能滑）
   子项固定宽度，右侧露出下一张，形成「还有更多」的暗示
   ========================================================= */

/* 排列方式（flex-direction / flex-wrap / gap / 子项宽度）全部由 Elementor 面板控件决定，
   这里只负责「能横向滚」和「滚到哪停」 */
/* 双类名提高权重，压过 Elementor .e-con 的 overflow 默认值；不修改任何 elementor 规则 */
.pm-reel.pm-reel {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scroll-padding-inline: 2px;
	overscroll-behavior-x: contain;
	cursor: grab;
	/* 拖拽时别把卡片里的字刷成选中态 */
	-webkit-user-select: none;
	user-select: none;
	touch-action: pan-x pan-y;
	scrollbar-width: thin;
	scrollbar-color: #a855f7 rgba(255, 255, 255, .06);
	-webkit-overflow-scrolling: touch;
}

.pm-reel.pm-reel > * {
	scroll-snap-align: start;
}

.pm-reel::-webkit-scrollbar {
	height: 6px;
}

.pm-reel::-webkit-scrollbar-thumb {
	border-radius: 20px;
	background: linear-gradient(90deg, #7c3aed, #e879f9);
}

.pm-reel::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(90deg, #8b5cf6, #f0abfc);
}

.pm-reel::-webkit-scrollbar-track {
	background: rgba(255, 255, 255, .04);
	border-radius: 20px;
}

@media (max-width: 767px) {
	.pm-reel {
		/* 手机上让卡片几乎占满一屏，露一条边提示还有下一个 */
		scroll-padding-inline: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pm-reel {
		scroll-behavior: auto;
	}
}

/* =========================================================
   商品卡（Loop Item 模板里的 .pm-product-card）
   图铺满整卡、文字压底；这里只补 Elementor 控件表达不了的展示细节
   ========================================================= */

/* 分类前补一个 NEW · 前缀，不占商品数据 */
.pm-product-card .pm-card-cat::before {
	content: 'NEW · ';
	opacity: .75;
}

/* 卡片裁边：文字再多也不越界（双类名才压得过 .e-con 的默认 overflow） */
.pm-product-card.pm-product-card {
	overflow: hidden;
}

/* 描述最多两行（用 max-height，不跟 Elementor 抢 display） */
.pm-product-card.pm-product-card .pm-card-desc {
	max-height: 3.2em;
	overflow: hidden;
}

.pm-product-card.pm-product-card .pm-card-desc p {
	margin: 0;
}

/* 内容永远贴着卡片底边走 */
.pm-product-card.pm-product-card .pm-card-body {
	margin-top: auto;
}

/* 压在图片上，给字一层底 */
.pm-product-card .pm-card-title,
.pm-product-card .pm-card-desc,
.pm-product-card .pm-card-spec {
	text-shadow: 0 1px 12px rgba(4, 2, 10, .85);
}

/* 底部那行始终贴底、不换行 */
.pm-product-card .pm-card-btn .elementor-button {
	white-space: nowrap;
}

/* 轮播底部的进度条（pagination_type=progressbar） */
.pm-product-card-swiper .swiper-pagination-progressbar,
.elementor-widget-loop-carousel .swiper-pagination-progressbar {
	position: relative !important;
	left: 0 !important;
	top: auto !important;
	margin-top: 18px;
	height: 4px;
	background: rgba(255, 255, 255, .06);
	border-radius: 20px;
	overflow: hidden;
}

.elementor-widget-loop-carousel .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
	background: linear-gradient(90deg, #8b5cf6, #e879f9);
	border-radius: 20px;
}


/* =========================================================
   Loop Grid 横向滚动条（商品轮播）
   Elementor 的 Loop Grid 是网格；这里把它压成一行，滚动仍交给原生 overflow
   ========================================================= */

.pm-reel--row .elementor-widget-loop-grid .elementor-grid {
	display: flex;
	flex-wrap: nowrap;
	gap: 20px;
	/* 滚动条放在 grid 自己身上，外层不裁高度 */
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	padding-bottom: 14px;
	-webkit-user-select: none;
	user-select: none;
	cursor: grab;
}

.pm-reel--row .elementor-widget-loop-grid .elementor-grid::-webkit-scrollbar {
	height: 4px;
}

.pm-reel--row .elementor-widget-loop-grid .elementor-grid::-webkit-scrollbar-thumb {
	background: linear-gradient(90deg, #8b5cf6, #e879f9);
	border-radius: 20px;
}

.pm-reel--row .elementor-widget-loop-grid .elementor-grid::-webkit-scrollbar-track {
	background: rgba(255, 255, 255, .06);
	border-radius: 20px;
}

.pm-reel--row .elementor-widget-loop-grid .e-loop-item {
	flex: 0 0 330px;
	max-width: 330px;
	scroll-snap-align: start;
}

@media (max-width: 1024px) {
	.pm-reel--row .elementor-widget-loop-grid .e-loop-item {
		flex-basis: 300px;
		max-width: 300px;
	}
}

@media (max-width: 767px) {
	.pm-reel--row .elementor-widget-loop-grid .e-loop-item {
		flex-basis: 82vw;
		max-width: 82vw;
	}
}


/* =========================================================================
   品牌故事（#brand）：布局全部交给 Elementor 原生 Grid 容器（container_type: grid）
   这里只剩两件原生控件表达不了的：图片方格裁切 + 渐变文字
   ========================================================================= */
.pm-brandimgs.pm-brandimgs {
	/* 换图比例只改这一行：1 / 1、4 / 3、16 / 9 都行
	   当前素材是方图，所以用 1 / 1；换成横图就改成 16 / 9 或 4 / 3 */
	--pm-tile-ratio: 1 / 1;
}

/* 每个格子按固定比例定高，图片只负责填满格子 */
.pm-brandimgs.pm-brandimgs > .elementor-widget-image {
	aspect-ratio: var(--pm-tile-ratio);
	min-height: 0;
}

/* 跨两行的首图：高度由那两行加起来，自己不再按比例 */
.pm-brandimgs.pm-brandimgs > .elementor-widget-image:first-child {
	aspect-ratio: auto;
}

.pm-brandimgs.pm-brandimgs > .elementor-widget-image .elementor-widget-container,
.pm-brandimgs.pm-brandimgs img {
	height: 100%;
}

.pm-brandimgs.pm-brandimgs img {
	display: block;
	width: 100%;
	object-fit: cover;
}



/* ==========================================================================
   ACF 内容块 .pm-acf-*（private-motion widgets/acf-block-widget.php）
   规格表 / 勾选列表 / FAQ / 数值条；全部用 Elementor 控件上色，这里只给骨架
   ========================================================================== */
.pm-acf-title {
	font-family: Orbitron, sans-serif;
	font-weight: 800;
	font-size: 0.74rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: #e879f9;
	margin: 0 0 18px;
}

/* --- 规格表 --- */
.pm-acf-specs {
	width: 100%;
	border-collapse: collapse;
	font-family: Rajdhani, sans-serif;
	font-size: 15px;
	line-height: 1.6;
}
.pm-acf-specs tr {
	border-bottom: 1px solid rgba(168, 85, 247, 0.18);
}
.pm-acf-specs tr:last-child {
	border-bottom: 0;
}
.pm-acf-specs th {
	text-align: left;
	font-weight: 600;
	color: #a99fc6;
	letter-spacing: 0.04em;
	padding: 13px 18px 13px 0;
	width: 42%;
	white-space: nowrap;
}
.pm-acf-specs td {
	color: #ece9fb;
	padding: 13px 0;
}

/* --- 勾选列表 --- */
.pm-acf-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
}
.pm-acf-list li {
	position: relative;
	padding-left: 30px;
	font-family: Rajdhani, sans-serif;
	font-size: 15.2px;
	line-height: 1.55;
	color: #a99fc6;
}
.pm-acf-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.44em;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 50%, #e879f9 0 34%, rgba(232, 121, 249, 0.16) 36% 100%);
	box-shadow: 0 0 12px rgba(232, 121, 249, 0.5);
}

/* --- FAQ 折叠 --- */
.pm-acf-faq {
	display: grid;
	gap: 10px;
}
.pm-acf-faq details {
	border: 1px solid rgba(168, 85, 247, 0.18);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.025);
	overflow: hidden;
	transition: border-color 0.25s;
}
.pm-acf-faq details[open] {
	border-color: rgba(232, 121, 249, 0.4);
}
.pm-acf-faq summary {
	cursor: pointer;
	padding: 16px 52px 16px 20px;
	position: relative;
	font-family: Rajdhani, sans-serif;
	font-weight: 600;
	font-size: 15.2px;
	letter-spacing: 0.02em;
	color: #ece9fb;
	list-style: none;
}
.pm-acf-faq summary::-webkit-details-marker {
	display: none;
}
.pm-acf-faq summary::after {
	content: "+";
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 20px;
	line-height: 1;
	color: #e879f9;
	transition: transform 0.25s;
}
.pm-acf-faq details[open] summary::after {
	content: "\2013";
}
.pm-acf-faq .pm-acf-a {
	padding: 0 20px 18px;
	font-family: Rajdhani, sans-serif;
	font-size: 14.4px;
	line-height: 1.7;
	color: #a99fc6;
}

/* --- 数值条 --- */
.pm-acf-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}
.pm-acf-stat {
	display: grid;
	gap: 4px;
	padding: 20px 18px;
	border: 1px solid rgba(168, 85, 247, 0.18);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.025);
}
.pm-acf-num {
	font-family: Orbitron, sans-serif;
	font-weight: 800;
	font-size: 26px;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: #ece9fb;
}
.pm-acf-cap {
	font-family: Rajdhani, sans-serif;
	font-size: 12.8px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #6f6489;
}

/* --- 纯文本 --- */
.pm-acf-text {
	font-family: Rajdhani, sans-serif;
	font-size: 15.2px;
	line-height: 1.7;
	color: #a99fc6;
}

/* --- 编辑器空字段提示 --- */
.pm-acf-empty {
	padding: 18px 20px;
	border: 1px dashed rgba(168, 85, 247, 0.36);
	border-radius: 12px;
	font-family: Rajdhani, sans-serif;
	font-size: 13px;
	color: #6f6489;
}
.pm-acf-empty code {
	color: #e879f9;
}

@media (max-width: 767px) {
	.pm-acf-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.pm-acf-specs th {
		width: 46%;
		padding-right: 12px;
		white-space: normal;
	}
}


.pm-acf-eyebrow {
	font-family: Orbitron, sans-serif;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #a99fc6;
	margin: 0 0 14px;
}
.pm-acf-title {
	font-family: Orbitron, sans-serif;
	font-weight: 800;
	font-size: 40px;
	line-height: 1.05;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: #ece9fb;
	margin: 0 0 22px;
}


/* 归档 hero 分类图：没有 term 的归档（/shop/）动态标签返回空，图片为空时整列不占位 */
.pm-cat-hero-img:has(img[src=""]) {
	display: none;
}
.pm-cat-hero-img img:not([src]),
.pm-cat-hero-img img[src=""] {
	display: none;
}
.pm-cat-hero-img img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	border-radius: 24px;
	filter: drop-shadow(0 30px 70px rgba(139, 92, 246, 0.28));
}
.pm-cat-hero-img {
	position: relative;
}
.pm-cat-hero-img::before {
	content: "";
	position: absolute;
	inset: 12% 8%;
	background: radial-gradient(circle at 50% 50%, rgba(168, 85, 247, 0.28), transparent 68%);
	filter: blur(40px);
	z-index: 0;
	pointer-events: none;
}
.pm-cat-hero-img img {
	position: relative;
	z-index: 1;
}


/* 空字段时整段收起：容器里只剩 .pm-acf-empty 标记节点（见 acf-block-widget.php render()） */
.pm-acf-section:has(.pm-acf-empty) {
	display: none;
}
.pm-cat-hero-img:has(.pm-acf-empty) {
	display: none;
}


/* 没有分类图的归档（/shop/ 是 post_type 归档，没有 term）：hero 单列铺满，不留半截空白 */
.pm-cat-hero .e-con-inner:not(:has(.pm-cat-hero-img img)) > .e-con:not(.pm-cat-hero-img) {
	width: 100%;
}
.pm-cat-hero .e-con-inner:not(:has(.pm-cat-hero-img img)) .woocommerce-product-details__short-description,
.pm-cat-hero .e-con-inner:not(:has(.pm-cat-hero-img img)) .pm-acf-title {
	max-width: 70ch;
}


/* ---------- ACF 内容块：新布局（对比表 / 型号卡 / 分组标签 / 图集 / 文章列表 / 模板嵌入） ---------- */

.pm-acf-compare-wrap {
	width: 100%;
	overflow-x: auto;
	border: 1px solid rgba(168, 85, 247, 0.18);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.02);
}
.pm-acf-compare {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
	font-family: Rajdhani, sans-serif;
}
.pm-acf-compare thead th {
	font-family: Orbitron, sans-serif;
	font-size: 11.2px;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #e879f9;
	padding: 16px 18px;
	text-align: left;
	border-bottom: 1px solid rgba(168, 85, 247, 0.28);
	background: rgba(168, 85, 247, 0.06);
}
.pm-acf-compare tbody th,
.pm-acf-compare tbody td {
	padding: 14px 18px;
	font-size: 14.4px;
	line-height: 1.6;
	border-bottom: 1px solid rgba(168, 85, 247, 0.12);
	color: #a99fc6;
	text-align: left;
	vertical-align: top;
}
.pm-acf-compare tbody th {
	color: #ece9fb;
	font-weight: 600;
	width: 22%;
}
.pm-acf-compare tbody tr:last-child th,
.pm-acf-compare tbody tr:last-child td {
	border-bottom: 0;
}

/* 型号卡 */
.pm-acf-models {
	/* auto-fill + 上限：只有一条型号时不会拉成一整屏宽的巨卡 */
	grid-template-columns: repeat(auto-fill, minmax(300px, 400px)) !important;
	justify-content: start;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}
.pm-acf-model {
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(168, 85, 247, 0.18);
	border-radius: 20px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.025);
	text-decoration: none;
	transition: border-color 0.25s, transform 0.25s;
}
.pm-acf-model:hover {
	border-color: rgba(232, 121, 249, 0.55);
	transform: translateY(-4px);
}
.pm-acf-model-media {
	display: block;
	aspect-ratio: 4 / 3;
	background: #0a0514;
}
.pm-acf-model-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.pm-acf-model-body {
	display: grid;
	gap: 6px;
	padding: 18px 20px 22px;
}
.pm-acf-model-name {
	font-family: Orbitron, sans-serif;
	font-size: 15.2px;
	font-weight: 800;
	letter-spacing: 0.02em;
	color: #ece9fb;
}
.pm-acf-model-note {
	font-family: Rajdhani, sans-serif;
	font-size: 13.6px;
	line-height: 1.6;
	color: #a99fc6;
}
.pm-acf-model-price {
	font-family: Orbitron, sans-serif;
	font-size: 13.6px;
	color: #e879f9;
}

/* 分组标签 */
.pm-acf-flavors {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 28px 40px;
}
.pm-acf-flavor-title {
	font-family: Orbitron, sans-serif;
	font-size: 12.8px;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #e879f9;
	margin: 0 0 14px;
}
.pm-acf-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.pm-acf-chip {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid rgba(168, 85, 247, 0.22);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.035);
	font-family: Rajdhani, sans-serif;
	font-size: 12.8px;
	letter-spacing: 0.04em;
	color: #a99fc6;
}

/* 图集 */
.pm-acf-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 14px;
}
.pm-acf-gal-item {
	display: block;
	aspect-ratio: 1 / 1;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid rgba(168, 85, 247, 0.18);
	background: #0a0514;
}
.pm-acf-gal-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s;
}
.pm-acf-gal-item:hover img {
	transform: scale(1.05);
}

/* 文章列表 */
.pm-acf-guides {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
}
.pm-acf-guides a {
	display: grid;
	gap: 4px;
	padding: 16px 20px;
	border: 1px solid rgba(168, 85, 247, 0.18);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.025);
	text-decoration: none;
	transition: border-color 0.25s, background 0.25s;
}
.pm-acf-guides a:hover {
	border-color: rgba(232, 121, 249, 0.5);
	background: rgba(168, 85, 247, 0.07);
}
.pm-acf-guide-title {
	font-family: Rajdhani, sans-serif;
	font-size: 15.2px;
	font-weight: 600;
	color: #ece9fb;
}
.pm-acf-guide-ex {
	font-family: Rajdhani, sans-serif;
	font-size: 13.6px;
	line-height: 1.6;
	color: #6f6489;
}


/* 编辑器里指向自定义区块的直达条 */
.pm-acf-editbar {
	padding: 10px 14px;
	margin-bottom: 10px;
	border: 1px dashed rgba(232, 121, 249, 0.5);
	border-radius: 8px;
	font-family: Rajdhani, sans-serif;
	font-size: 13px;
	color: #a99fc6;
	background: rgba(232, 121, 249, 0.06);
}
.pm-acf-editbar a {
	color: #e879f9;
	text-decoration: underline;
}

/* PDP 配套商品（ipi_acf_block products 布局）：直接吐 Woo 的 content-product，
   但外层 <ul> 没有主题给的 grid 类，这里补栅格 —— 卡片本体样式沿用列表页那套 */
.pm-related .products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* 配套卡只在下半部压一层渐变：商品图多为营销图（画面正中就是产品），
   不压的话标题会和图上的大字叠在一起；上半部保持原图观感 */
.pm-related li.product::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 66%;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(6, 3, 12, 0) 0%, rgba(6, 3, 12, .58) 40%, rgba(6, 3, 12, .93) 78%, rgba(6, 3, 12, .97) 100%);
}

@media (max-width: 1024px) {
	.pm-related .products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.pm-related .products { grid-template-columns: minmax(0, 1fr); }
}

/* PDP 相关商品：Woo 会在 section 里塞一个裸 h2「Related products」，
   与上方 Elementor 的 PAIRS WELL WITH 标题重复，且继承主题的链接色 */
.pm-related .related > h2,
.pm-related section.related > h2 {
	display: none;
}

/* 分类/商店 hero 的副标题（ipi_tagline 走 ipi_acf_block，不再是 heading 部件） */
.pm-cat-tagline .pm-acf-text p {
	margin: 0;
	font-family: Rajdhani, sans-serif;
	font-size: 19px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: .01em;
	color: #a99fc6;
}

