/**
 * 商品详情页专属样式。
 *
 * 覆盖图片画廊、商品摘要、动态指标、度数、套餐、赠品、保障信息和推荐商品。
 * 选择器统一以 .single-product 或 .brand-product-detail 为作用域，避免影响集合页与
 * Quick View。新增商品详情组件时应沿用现有 BEM 命名，并同步检查桌面与移动断点。
 */
.single-product .woo-page > .content-container {
	max-width: none;
	padding: 0;
}

.single-product .brand-product-detail {
	width: min(1236px, calc(100% - 80px));
	padding: 34px 0 104px;
	margin: 0 auto;
}

.single-product .brand-product-detail__breadcrumb {
	display: flex;
	align-items: center;
	gap: 9px;
	min-width: 0;
	margin-bottom: 25px;
	color: var(--muted);
	font-size: 12px;
}

.single-product .brand-product-detail__breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.single-product .brand-product-detail__breadcrumb a:hover {
	color: var(--brand-color);
}

.single-product .brand-product-detail__breadcrumb span:last-child {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.single-product .brand-product-detail__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(390px, 0.92fr);
	align-items: start;
	gap: clamp(42px, 6vw, 88px);
}

.single-product .brand-product-gallery {
	position: sticky;
	top: calc(var(--header-height, 80px) + 24px);
	min-width: 0;
}

.single-product .brand-product-gallery__main {
	position: relative;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 8px;
	background: color-mix(in srgb, var(--nav-background) 24%, white);
}

.single-product .brand-product-gallery__slide {
	width: 100%;
	height: 100%;
	margin: 0;
	animation: brand-product-gallery-in 300ms ease both;
}

.single-product .brand-product-gallery__slide[hidden] {
	display: none;
}

.single-product .brand-product-gallery__image,
.single-product .brand-product-gallery__main .woocommerce-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-product .brand-product-gallery__controls {
	display: none;
}

.single-product .brand-product-gallery__thumbnails {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(64px, 1fr));
	gap: 10px;
	margin-top: 12px;
}

.single-product .brand-product-gallery__thumbnail {
	display: block;
	aspect-ratio: 1;
	padding: 0;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: 5px;
	background: color-mix(in srgb, var(--nav-background) 22%, white);
	cursor: pointer;
	transition: border-color 180ms ease, transform 180ms ease;
}

.single-product .brand-product-gallery__thumbnail:hover,
.single-product .brand-product-gallery__thumbnail.is-active {
	border-color: var(--brand-color);
	transform: translateY(-1px);
}

.single-product .brand-product-gallery__thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-product .brand-product-detail__summary {
	min-width: 0;
	padding: 8px 0 4px;
}

.single-product .brand-product-detail__type {
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	padding: 4px 9px;
	margin: 0 0 11px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--nav-background) 66%, white);
	color: var(--brand-color);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.single-product .brand-product-detail .product_title {
	margin: 0;
	color: var(--ink);
	font-size: clamp(25px, 2.5vw, 38px);
	font-weight: 650;
	letter-spacing: -0.035em;
	line-height: 1.12;
}

.single-product .brand-product-detail__price {
	margin-top: 13px;
	color: var(--price-color);
	font-size: 21px;
	font-weight: 700;
}

.single-product .brand-product-detail__price del {
	margin-right: 8px;
	color: var(--muted);
	font-size: 15px;
	font-weight: 500;
}

.single-product .brand-product-detail__rating {
	margin-top: 12px;
}

.single-product .brand-product-detail__meta {
	display: grid;
	gap: 8px;
	padding: 20px 0;
	margin-top: 21px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.single-product .brand-product-detail__meta p {
	display: grid;
	grid-template-columns: 106px minmax(0, 1fr);
	gap: 12px;
	padding: 0;
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
}

.single-product .brand-product-detail__meta strong {
	font-weight: 650;
}

.single-product .brand-product-detail__tags {
	color: var(--muted);
}

.single-product .brand-product-detail__stock.is-in-stock span {
	color: #287a5c;
}

.single-product .brand-product-detail__stock.is-out-of-stock span {
	color: var(--muted);
}

.single-product .brand-product-detail__description {
	padding: 19px 0 4px;
	color: #525252;
	font-size: 13px;
	line-height: 1.65;
}

.single-product .brand-product-detail__description > :first-child {
	margin-top: 0;
}

.single-product .brand-product-detail__description > :last-child {
	margin-bottom: 0;
}

.single-product .brand-product-detail__metrics {
	display: grid;
	gap: 12px;
	padding: 20px 0;
}

.single-product .brand-product-detail__metric {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr);
	align-items: center;
	gap: 12px;
	font-size: 13px;
}

.single-product .brand-product-detail__metric-track {
	display: block;
	height: 9px;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--brand-color) 12%, white);
	border-radius: 999px;
	background: color-mix(in srgb, var(--brand-color) 16%, white);
}

.single-product .brand-product-detail__metric-track > span {
	display: block;
	width: var(--metric-value, 0%);
	height: 100%;
	border-radius: inherit;
	background: var(--brand-color);
	transition: width 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.single-product .brand-product-detail__purchase {
	padding-top: 1px;
}

/* 原生 simple/variable 模板也会输出库存；页面上方已提供同一状态，避免重复朗读与视觉重复。 */
.single-product .brand-product-detail__purchase > .stock {
	display: none;
}

.single-product .brand-product-detail__purchase form.cart {
	display: grid;
	gap: 14px;
	margin: 0;
}

.single-product .brand-product-detail__purchase .variations {
	width: 100%;
	border: 0;
	border-collapse: separate;
	border-spacing: 0 10px;
}

.single-product .brand-product-detail__purchase .variations th,
.single-product .brand-product-detail__purchase .variations td {
	display: block;
	padding: 0;
	text-align: left;
}

.single-product .brand-product-detail__purchase .variations label,
.single-product .brand-product-detail__purchase .brand-store-eye-power label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 600;
}

.single-product .brand-product-detail__purchase .variations select,
.single-product .brand-product-detail__purchase .brand-store-eye-power select {
	width: 100%;
	min-height: 48px;
	padding: 10px 36px 10px 13px;
	border: 1px solid var(--line);
	border-radius: 4px;
	background: var(--white);
	color: var(--ink);
}

.single-product .brand-product-detail__purchase .brand-store-eye-power {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	padding: 0;
	margin: 0;
	border: 0;
}

.single-product .brand-product-detail__purchase .brand-store-eye-power legend {
	grid-column: 1 / -1;
	padding: 0;
	margin-bottom: -2px;
	font-size: 0;
}

.single-product .brand-product-detail__purchase .brand-store-eye-power .form-row {
	width: 100%;
	padding: 0;
	margin: 0;
}

.single-product .brand-product-packages {
	margin: 10px 0 3px;
}

.single-product .brand-product-packages legend {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 0;
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 650;
}

.single-product .brand-product-packages legend::before,
.single-product .brand-product-packages legend::after {
	flex: 1;
	height: 1px;
	background: color-mix(in srgb, var(--brand-color) 48%, white);
	content: "";
}

.single-product .brand-product-packages .quick-view-packages__options {
	display: grid;
	gap: 9px;
}

.single-product .brand-product-packages .quick-view-packages__option {
	position: relative;
	display: grid;
	grid-template-columns: 20px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	min-height: 62px;
	padding: 10px 13px;
	border: 1px solid color-mix(in srgb, var(--brand-color) 32%, white);
	border-radius: 8px;
	background: color-mix(in srgb, var(--nav-background) 22%, white);
	cursor: pointer;
	transition: border-color 180ms ease, background 180ms ease, min-height 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.single-product .brand-product-packages .quick-view-packages__option:has(input:checked),
.single-product .brand-product-packages .quick-view-packages__option.is-selected {
	border-color: var(--brand-color);
	background: var(--white);
}

.single-product .brand-product-packages input[type="radio"] {
	width: 18px;
	height: 18px;
	padding: 0;
	margin: 0;
	accent-color: var(--brand-color);
}

.single-product .brand-product-packages .quick-view-packages__copy {
	display: flex;
	min-width: 0;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

.single-product .brand-product-packages .quick-view-packages__label {
	font-size: 13px;
	font-weight: 600;
}

.single-product .brand-product-packages .quick-view-packages__copy small,
.single-product .brand-product-packages .quick-view-packages__badge {
	padding: 3px 7px;
	border-radius: 999px;
	background: var(--nav-background);
	color: var(--ink);
	font-size: 9px;
	font-weight: 650;
}

.single-product .brand-product-packages .quick-view-packages__price {
	font-size: 12px;
	font-weight: 650;
	white-space: nowrap;
}

.single-product .brand-product-packages .quick-view-packages__price del {
	display: block;
	color: var(--muted);
	font-size: 10px;
	font-weight: 400;
}

.single-product .brand-product-packages__detail {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: 12px;
	padding: 13px 0 0 30px;
	border-top: 1px solid color-mix(in srgb, var(--brand-color) 28%, white);
	animation: brand-product-package-expand 320ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.single-product .brand-product-packages__detail img {
	width: 64px;
	height: 64px;
	border-radius: 5px;
	object-fit: cover;
}

.single-product .brand-product-packages__detail-copy {
	display: grid;
	gap: 8px;
	min-width: 0;
	font-size: 12px;
}

.single-product .brand-product-packages__detail-copy strong {
	font-size: 12px;
	line-height: 1.35;
}

.single-product .brand-product-packages__gifts {
	display: grid;
	gap: 0;
	grid-column: 1 / -1;
}

.single-product .brand-product-packages__gift {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	min-height: 56px;
	padding: 8px 0;
	border-top: 1px solid var(--line);
}

.single-product .brand-product-packages__gift-media {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border: 1px solid color-mix(in srgb, var(--brand-color) 18%, white);
	border-radius: 5px;
	background: var(--white);
}

.single-product .brand-product-packages__gift-media img {
	width: 34px;
	height: 34px;
	object-fit: contain;
}

.single-product .brand-product-packages__gift-label {
	font-size: 12px;
	font-weight: 600;
}

.single-product .brand-product-packages__gift-choice {
	min-width: 78px;
	min-height: 34px;
	padding: 6px 12px;
	border: 1px solid var(--brand-color);
	border-radius: 3px;
	background: var(--brand-color);
	color: var(--white);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

.single-product .brand-product-packages__gift.is-chosen .brand-product-packages__gift-choice {
	background: color-mix(in srgb, var(--brand-color) 18%, white);
	color: var(--brand-color);
}

.single-product .brand-product-detail__purchase .quantity.brand-quantity {
	display: grid;
	float: none;
	width: 148px;
	height: 46px;
	grid-template-columns: 44px 60px 44px;
	align-items: stretch;
	margin: 4px 0 0;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--brand-color) 45%, white);
	border-radius: 2px;
	background: var(--white);
}

.single-product .brand-product-detail__purchase .quantity.brand-quantity .brand-quantity__button {
	width: 44px;
	min-width: 0;
	height: 44px;
	min-height: 0;
	border-radius: 0;
}

.single-product .brand-product-detail__purchase .quantity.brand-quantity input.brand-quantity__input[type="number"] {
	float: none;
	width: 60px;
	min-width: 0;
	height: 44px;
	min-height: 44px;
	padding: 0 4px;
	border: 0;
	border-right: 1px solid var(--line);
	border-left: 1px solid var(--line);
	border-radius: 0;
	background: var(--white);
	text-align: center;
}

.single-product .brand-product-detail__purchase .single_add_to_cart_button,
.single-product .brand-product-detail__purchase button.brand-product-detail__buy-now {
	width: 100%;
	min-height: 53px;
	padding: 13px 18px;
	border: 1px solid var(--brand-color);
	border-radius: 2px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.09em;
	cursor: pointer;
	text-transform: uppercase;
}

.single-product .brand-product-detail__purchase .single_add_to_cart_button {
	background: var(--nav-background);
	color: var(--ink);
}

.single-product .brand-product-detail__purchase button.brand-product-detail__buy-now {
	margin-top: 0;
	background: var(--brand-color);
	color: var(--white);
}

.single-product .brand-product-detail__purchase .single_add_to_cart_button.has-liquid-effect {
	--liquid-fill: var(--brand-color);
	border-color: var(--brand-color) !important;
	background: var(--nav-background) !important;
	color: var(--ink) !important;
}

.single-product .brand-product-detail__purchase .single_add_to_cart_button.has-liquid-effect:hover,
.single-product .brand-product-detail__purchase .single_add_to_cart_button.has-liquid-effect.is-pressing {
	color: var(--white) !important;
}

.single-product .brand-product-detail__purchase button.brand-product-detail__buy-now.has-liquid-effect {
	--liquid-fill: var(--nav-background);
	border-color: var(--brand-color) !important;
	background: var(--brand-color) !important;
	color: var(--white) !important;
}

.single-product .brand-product-detail__purchase button.brand-product-detail__buy-now.has-liquid-effect:hover,
.single-product .brand-product-detail__purchase button.brand-product-detail__buy-now.has-liquid-effect.is-pressing {
	color: var(--ink) !important;
}

.single-product .brand-product-detail__purchase .single_add_to_cart_button:disabled,
.single-product .brand-product-detail__purchase button.brand-product-detail__buy-now:disabled {
	cursor: not-allowed;
	opacity: 0.56;
}

.single-product .brand-product-detail__features {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 13px 16px;
	padding: 22px 0 0;
	margin: 0;
	border-top: 1px solid var(--line);
	list-style: none;
}

.single-product .brand-product-detail__features li {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #4d4d4d;
	font-size: 11px;
	line-height: 1.35;
}

.single-product .brand-product-detail__features .brand-icon {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	color: var(--brand-color);
}

.single-product .brand-product-detail__recommendations {
	padding-top: 98px;
}

.single-product .brand-product-detail__recommendations > h2 {
	margin: 0 0 24px;
	font-size: clamp(22px, 2.2vw, 31px);
	font-weight: 650;
	letter-spacing: -0.03em;
}

.brand-product-gift-modal {
	position: fixed;
	z-index: 10001;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 20px;
	background: rgb(0 0 0 / 50%);
}

.brand-product-gift-modal[hidden] {
	display: none;
}

.brand-product-gift-modal__dialog {
	position: relative;
	width: min(700px, 100%);
	padding: 28px 64px 28px 28px;
	border-radius: 4px;
	background: var(--white);
	box-shadow: 0 18px 60px rgb(0 0 0 / 22%);
}

.brand-product-gift-modal__dialog h2 {
	margin: 0 0 7px;
	font-size: 18px;
}

.brand-product-gift-modal__dialog p {
	margin: 0;
	color: var(--muted);
	font-size: 13px;
}

.brand-product-gift-modal__close {
	position: absolute;
	top: 17px;
	right: 17px;
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

@keyframes brand-product-gallery-in {
	from { opacity: 0; transform: scale(1.012); }
	to { opacity: 1; transform: scale(1); }
}

@keyframes brand-product-package-expand {
	from { opacity: 0; transform: translateY(-7px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 980px) {
	.single-product .brand-product-detail {
		width: min(100% - 48px, 900px);
	}

	.single-product .brand-product-detail__layout {
		grid-template-columns: minmax(0, 1fr) minmax(340px, 0.82fr);
		gap: 38px;
	}
}

@media (max-width: 767px) {
	.single-product .brand-product-detail {
		width: calc(100% - 32px);
		padding: 20px 0 64px;
	}

	.single-product .brand-product-detail__breadcrumb {
		display: none;
	}

	.single-product .brand-product-detail__layout {
		display: block;
	}

	.single-product .brand-product-gallery {
		position: relative;
		top: auto;
		margin: 0 calc((100vw - 100%) / -2) 28px;
	}

	.single-product .brand-product-gallery__main {
		border-radius: 0;
	}

	.single-product .brand-product-gallery__thumbnails {
		display: none;
	}

	.single-product .brand-product-gallery__controls {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 14px;
		padding-top: 11px;
	}

	.single-product .brand-product-gallery__arrow {
		width: 32px;
		height: 32px;
		border: 1px solid var(--line);
		border-radius: 50%;
		background: var(--white);
		color: var(--ink);
		cursor: pointer;
	}

	.single-product .brand-product-gallery__arrow .brand-icon {
		width: 17px;
		height: 17px;
	}

	.single-product .brand-product-gallery__arrow--next .brand-icon {
		transform: rotate(180deg);
	}

	.single-product .brand-product-gallery__counter {
		min-width: 42px;
		font-size: 12px;
		text-align: center;
	}

	.single-product .brand-product-detail__summary {
		padding: 0;
	}

	.single-product .brand-product-detail .product_title {
		font-size: 28px;
	}

	.single-product .brand-product-detail__meta p {
		grid-template-columns: 86px minmax(0, 1fr);
	}

	.single-product .brand-product-detail__purchase .brand-store-eye-power {
		grid-template-columns: 1fr;
	}

	.single-product .brand-product-packages__detail {
		padding-left: 0;
	}

	.single-product .brand-product-detail__features {
		grid-template-columns: 1fr;
	}

	.single-product .brand-product-detail__recommendations {
		padding-top: 64px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.single-product .brand-product-gallery__slide,
	.single-product .brand-product-gallery__thumbnail,
	.single-product .brand-product-detail__metric-track > span,
	.single-product .brand-product-packages__option,
	.single-product .brand-product-packages__detail {
		animation-duration: 1ms !important;
		transition-duration: 1ms !important;
	}
}
