/**
 * Single product page.
 */

.u3ds-product__breadcrumbs {
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: var(--wp--preset--spacing--l);
}

.u3ds-product__breadcrumbs a {
	color: var(--wp--preset--color--text-secondary);
}

.u3ds-product__breadcrumbs a:hover {
	color: var(--wp--preset--color--accent);
}

.u3ds-product__layout {
	gap: var(--wp--preset--spacing--2-xl);
}

.u3ds-product__gallery-col .wp-block-woocommerce-product-image-gallery {
	border-radius: var(--wp--custom--radius--surface);
	overflow: hidden;
	background-color: var(--wp--preset--color--bg-secondary);
	border: 1px solid var(--wp--preset--color--border);
}

.u3ds-product__title {
	margin: 0 0 var(--wp--preset--spacing--s) !important;
}

.u3ds-product__price {
	font-size: var(--wp--preset--font-size--large) !important;
	color: var(--wp--preset--color--text-primary);
	margin: 0 0 var(--wp--preset--spacing--m) !important;
}

.u3ds-product__stock {
	display: inline-block;
	margin-bottom: var(--wp--preset--spacing--l);
	color: var(--wp--preset--color--success);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.u3ds-product__stock.out-of-stock {
	color: var(--wp--preset--color--error);
}

.u3ds-product__excerpt {
	color: var(--wp--preset--color--text-secondary);
	line-height: 1.7;
	margin-bottom: var(--wp--preset--spacing--l);
}

.u3ds-product__info-col > .u3ds-rating-summary {
	display: flex;
	margin-bottom: var(--wp--preset--spacing--l);
}

/* Available Colors / Size — rendered by the u3ds/product-details-extra
   block only when the client has actually supplied the data; each row is
   simply absent otherwise, so no empty-state styling is needed here. */
.u3ds-product__colors,
.u3ds-product__size {
	display: flex;
	align-items: baseline;
	gap: var(--wp--preset--spacing--s);
	margin-bottom: var(--wp--preset--spacing--m);
	font-size: var(--wp--preset--font-size--small);
}

.u3ds-product__colors-label,
.u3ds-product__size-label {
	color: var(--wp--preset--color--text-secondary);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	flex-shrink: 0;
}

.u3ds-product__colors-list,
.u3ds-product__size-value {
	color: var(--wp--preset--color--text-primary);
}

.u3ds-product__size-alt {
	color: var(--wp--preset--color--text-secondary);
}

.u3ds-product__add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--m);
	margin-bottom: var(--wp--preset--spacing--xl);
}

.u3ds-product__add-to-cart form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--m);
}

.u3ds-buy-now-button {
	background-color: transparent !important;
	color: var(--wp--preset--color--text-primary) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
}

.u3ds-buy-now-button:hover {
	border-color: var(--wp--preset--color--accent) !important;
}

.u3ds-product__info-col > .u3ds-wishlist-heart--full {
	margin-bottom: var(--wp--preset--spacing--l);
}

/* "Need a custom version?" cross-link to the approved Custom 3D quote workflow. */
.u3ds-product__custom-cta {
	padding: var(--wp--preset--spacing--l);
	background-color: var(--wp--preset--color--surface-elevated);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--button);
	margin-bottom: var(--wp--preset--spacing--l);
}

.u3ds-product__custom-cta-label {
	margin: 0 0 var(--wp--preset--spacing--2-xs);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
}

.u3ds-product__custom-cta-link {
	color: var(--wp--preset--color--accent);
	font-weight: 700;
	text-decoration: none;
}

.u3ds-product__custom-cta-link:hover {
	color: var(--wp--preset--color--accent-highlight);
}

.u3ds-product__meta {
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: var(--wp--preset--spacing--m);
}

.u3ds-product__meta a {
	color: var(--wp--preset--color--text-secondary);
}

.u3ds-product__details {
	margin-top: var(--wp--preset--spacing--3-xl);
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: var(--wp--preset--spacing--2-xl);
}

.u3ds-product__details .wc-tabs,
.u3ds-product__details ul.tabs {
	border-bottom: 1px solid var(--wp--preset--color--border);
	list-style: none;
	display: flex;
	gap: var(--wp--preset--spacing--l);
	padding: 0;
	margin: 0 0 var(--wp--preset--spacing--l);
	background: none;
}

.u3ds-product__details ul.tabs li {
	background: none !important;
	border: none !important;
	margin: 0;
	padding: 0 0 var(--wp--preset--spacing--s);
}

.u3ds-product__details ul.tabs li a {
	color: var(--wp--preset--color--text-secondary) !important;
	background: none !important;
	text-transform: uppercase;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
}

.u3ds-product__details ul.tabs li.active {
	border-bottom: 2px solid var(--wp--preset--color--accent) !important;
}

.u3ds-product__details ul.tabs li.active a {
	color: var(--wp--preset--color--text-primary) !important;
}

.u3ds-product__details .woocommerce-Tabs-panel {
	color: var(--wp--preset--color--text-secondary);
	line-height: 1.7;
}

/* Reviews tab (native WooCommerce comments-based reviews — #reviews). */
.u3ds-product__details #reviews .woocommerce-Reviews-title {
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--large);
	margin-bottom: var(--wp--preset--spacing--l);
}

.u3ds-product__details .commentlist {
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--xl);
	padding: 0;
}

.u3ds-product__details .commentlist .comment {
	background-color: var(--wp--preset--color--bg-secondary);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--button);
	padding: var(--wp--preset--spacing--l);
	margin-bottom: var(--wp--preset--spacing--m);
}

.u3ds-product__details .comment_container img.avatar {
	border-radius: 999px;
	float: left;
	margin-right: var(--wp--preset--spacing--m);
}

.u3ds-product__details .comment-text {
	overflow: hidden;
}

.u3ds-product__details .woocommerce-review__author {
	color: var(--wp--preset--color--text-primary);
	font-weight: 700;
}

.u3ds-product__details .woocommerce-review__dash,
.u3ds-product__details .woocommerce-review__published-date {
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
}

.u3ds-product__details .star-rating {
	color: var(--wp--preset--color--accent);
}

.u3ds-product__details .star-rating::before {
	color: var(--wp--preset--color--border);
}

.u3ds-product__details .woocommerce-noreviews {
	color: var(--wp--preset--color--text-secondary);
}

.u3ds-product__details #review_form_wrapper #respond {
	background-color: var(--wp--preset--color--bg-secondary);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--surface);
	padding: var(--wp--preset--spacing--l);
}

.u3ds-product__details #reply-title {
	color: var(--wp--preset--color--text-primary);
	margin: 0 0 var(--wp--preset--spacing--m);
}

.u3ds-product__details .comment-form-rating label,
.u3ds-product__details .comment-form-comment label,
.u3ds-product__details .comment-form-author label,
.u3ds-product__details .comment-form-email label {
	color: var(--wp--preset--color--text-secondary);
	display: block;
	margin-bottom: var(--wp--preset--spacing--2-xs);
}

.u3ds-product__details #respond textarea,
.u3ds-product__details #respond input[type="text"],
.u3ds-product__details #respond input[type="email"] {
	width: 100%;
	background-color: var(--wp--preset--color--bg-primary);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--button);
	color: var(--wp--preset--color--text-primary);
	padding: var(--wp--preset--spacing--s) var(--wp--preset--spacing--m);
}

/* Related products (woocommerce-blocks/related-products pattern renders a
   Product Collection block — .related.products is the classic, non-block
   markup and never appears here, so it's included only as a defensive
   fallback in case a future override reintroduces the classic template). */
.u3ds-product .wp-block-woocommerce-product-collection.alignwide,
.related.products {
	margin-top: var(--wp--preset--spacing--3-xl);
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: var(--wp--preset--spacing--2-xl);
}

.u3ds-product .wp-block-woocommerce-product-collection.alignwide > h2,
.related.products > h2 {
	margin-bottom: var(--wp--preset--spacing--l);
}

@media (max-width: 781px) {
	.u3ds-product__layout {
		flex-wrap: wrap;
	}

	.u3ds-product__gallery-col {
		flex-basis: 100% !important;
	}

	/* WooCommerce's own ul.tabs sets overflow-x: hidden, so on narrow
	   viewports the flex row must wrap instead of overflowing silently
	   (the "Reviews (0)" label was getting clipped mid-word). */
	.u3ds-product__details .wc-tabs,
	.u3ds-product__details ul.tabs {
		flex-wrap: wrap;
		gap: var(--wp--preset--spacing--m) var(--wp--preset--spacing--l);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wc-backward,
	.wc-block-components-button {
		transition: none;
	}
}
