/*
 * Product detail refinements — v2.15.1.
 * Loaded after product-layout.css only on individual Product pages.
 * This final layer keeps specification data compact and gives every product
 * visual a stable media frame regardless of the source image proportions.
 */

body.single-product .wp-site-blocks .fengyi-single-product {
	overflow-x: clip;
}

body.single-product .wp-site-blocks .fengyi-single-product > :is(
	.fengyi-product-specifications-section,
	.fengyi-product-gallery-section,
	.fengyi-related-products-section
) {
	width: min(1080px, calc(100% - 3rem)) !important;
}

/* Compact procurement specification panel. */
body.single-product .wp-site-blocks .fengyi-product-specs {
	display: grid !important;
	width: 100% !important;
	max-width: none !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 0 !important;
	margin: 0 auto !important;
	padding: .35rem clamp(1.1rem, 2vw, 1.6rem) !important;
	border: 1px solid var(--fy-border) !important;
	border-radius: var(--fy-radius-md) !important;
	background: var(--fy-surface) !important;
	box-shadow: 0 14px 34px rgba(18, 49, 61, .055);
}

body.single-product .wp-site-blocks .fengyi-product-specification,
body.single-product .wp-site-blocks .fengyi-product-specification:only-child {
	display: grid !important;
	min-width: 0;
	width: auto !important;
	min-height: 0 !important;
	grid-column: auto !important;
	grid-template-columns: minmax(7.25rem, .36fr) minmax(0, 1fr);
	align-items: start;
	align-content: start;
	justify-self: stretch !important;
	gap: .75rem;
	margin: 0 !important;
	padding: 1rem 0 !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(18, 49, 61, .11) !important;
	border-radius: 0 !important;
	background: transparent !important;
}

body.single-product .wp-site-blocks .fengyi-product-specification:nth-child(odd) {
	padding-right: clamp(1rem, 2.5vw, 2rem) !important;
	border-right: 1px solid rgba(18, 49, 61, .11) !important;
}

body.single-product .wp-site-blocks .fengyi-product-specification:nth-child(even) {
	padding-left: clamp(1rem, 2.5vw, 2rem) !important;
}

body.single-product .wp-site-blocks .fengyi-product-specification dt {
	margin: .08rem 0 0 !important;
	color: var(--fy-muted);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .075em;
	line-height: 1.35;
	text-transform: uppercase;
}

body.single-product .wp-site-blocks .fengyi-product-specification dd {
	min-width: 0;
	margin: 0 !important;
	color: var(--fy-text);
	font-size: .92rem;
	font-weight: 600;
	line-height: 1.5;
	overflow-wrap: break-word;
}

/* Gallery images: 2 images use two equal columns; 3–5 use a balanced grid. */
body.single-product .wp-site-blocks .fengyi-gallery-grid {
	display: grid !important;
	width: 100% !important;
	max-width: none !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(.85rem, 2vw, 1.25rem) !important;
	align-items: start;
	margin: 0 auto !important;
}

body.single-product .wp-site-blocks .fengyi-gallery-grid.has-2-images {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.single-product .wp-site-blocks .fengyi-gallery-item {
	box-sizing: border-box;
	display: block;
	min-width: 0;
	width: 100%;
	margin: 0 !important;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border: 1px solid var(--fy-border);
	border-radius: var(--fy-radius-md);
	background: var(--fy-bg-soft);
	box-shadow: 0 12px 30px rgba(18, 49, 61, .07);
}

body.single-product .wp-site-blocks .fengyi-gallery-item img {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	max-height: none !important;
	margin: 0 !important;
	aspect-ratio: auto !important;
	object-fit: cover !important;
	object-position: center !important;
}

/* Related products: equal media frames and stable card heights. */
body.single-product .wp-site-blocks .fengyi-related-products {
	display: grid !important;
	width: 100% !important;
	max-width: none !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1rem, 2.25vw, 1.5rem) !important;
	align-items: stretch;
	margin: 0 auto !important;
}

body.single-product .wp-site-blocks .fengyi-related-product-card {
	display: flex;
	min-width: 0;
	height: 100%;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--fy-border) !important;
	border-radius: var(--fy-radius-md) !important;
	background: var(--fy-surface);
	box-shadow: 0 12px 30px rgba(18, 49, 61, .055);
}

body.single-product .wp-site-blocks .fengyi-related-product-image {
	display: block;
	width: 100%;
	margin: 0;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--fy-bg-soft);
}

body.single-product .wp-site-blocks .fengyi-related-product-image img {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	max-height: none !important;
	margin: 0 !important;
	aspect-ratio: auto !important;
	border-radius: 0 !important;
	object-fit: cover !important;
	object-position: center !important;
	transition: transform .25s ease;
}

body.single-product .wp-site-blocks .fengyi-related-product-card:hover .fengyi-related-product-image img {
	transform: scale(1.025);
}

body.single-product .wp-site-blocks .fengyi-related-product-content {
	display: flex;
	min-width: 0;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: 1.15rem 1.2rem 1.25rem;
}

body.single-product .wp-site-blocks .fengyi-related-product-content > p {
	margin: 0 0 .55rem !important;
	color: var(--fy-orange) !important;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .075em;
	line-height: 1.3;
	text-align: left !important;
	text-transform: uppercase;
}

body.single-product .wp-site-blocks .fengyi-related-product-content h3 {
	width: 100%;
	margin: 0 0 1.15rem !important;
	padding: 0 !important;
	font-size: clamp(1.05rem, 1.6vw, 1.25rem) !important;
	line-height: 1.28;
	text-align: left;
	overflow-wrap: break-word;
	word-break: normal;
}

body.single-product .wp-site-blocks .fengyi-related-product-link {
	display: inline-flex;
	align-items: center;
	margin-top: auto;
	color: var(--fy-text);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .035em;
	line-height: 1.35;
	text-decoration-color: var(--fy-orange);
	text-underline-offset: .25em;
	text-transform: uppercase;
}

@media (max-width: 900px) {
	body.single-product .wp-site-blocks .fengyi-related-products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 720px) {
	body.single-product .wp-site-blocks .fengyi-product-specs {
		grid-template-columns: minmax(0, 1fr) !important;
		padding: .25rem 1.1rem !important;
	}

	body.single-product .wp-site-blocks .fengyi-product-specification,
	body.single-product .wp-site-blocks .fengyi-product-specification:nth-child(odd),
	body.single-product .wp-site-blocks .fengyi-product-specification:nth-child(even) {
		grid-template-columns: minmax(6.4rem, .34fr) minmax(0, 1fr);
		padding: .9rem 0 !important;
		border-right: 0 !important;
	}

	body.single-product .wp-site-blocks .fengyi-gallery-grid,
	body.single-product .wp-site-blocks .fengyi-gallery-grid.has-2-images,
	body.single-product .wp-site-blocks .fengyi-related-products {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (max-width: 430px) {
	body.single-product .wp-site-blocks .fengyi-single-product > :is(
		.fengyi-product-specifications-section,
		.fengyi-product-gallery-section,
		.fengyi-related-products-section
	) {
		width: calc(100% - 2rem) !important;
	}

	body.single-product .wp-site-blocks .fengyi-product-specification,
	body.single-product .wp-site-blocks .fengyi-product-specification:nth-child(odd),
	body.single-product .wp-site-blocks .fengyi-product-specification:nth-child(even) {
		grid-template-columns: minmax(0, 1fr);
		gap: .3rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.single-product .wp-site-blocks .fengyi-related-product-image img {
		transition: none;
	}
}
