/**
 * Pro-U single product page.
 *
 * Selectors start with .prou-product-page so they outrank Kadence's
 * `.woocommerce div.product …` rules without !important.
 *
 * 1. Page + layout
 * 2. Gallery stage
 * 3. Summary
 * 4. Add to cart, variations, stock
 * 5. Tabs, description, additional info
 * 6. Reviews
 * 7. Upsells + related
 * 8. Sticky buy bar
 */

/* ==========================================================================
   1. Page + layout
   ========================================================================== */

.prou-product-page {
	padding-block: var(--prou-space-6) var(--prou-space-section);
	background: var(--prou-paper);
}

.prou-crumbs--light {
	margin-bottom: var(--prou-space-6);
	color: var(--prou-ink-muted);
}

.prou-crumbs--light a {
	color: var(--prou-ink-muted);
}

.prou-crumbs--light a:hover {
	color: var(--prou-moss);
}

/* Gallery + summary row (its own wrapper, so the sticky gallery stops here). */
.prou-product__top {
	display: grid;
	gap: var(--prou-space-8);
	align-items: start;
}

@media (min-width: 1025px) {
	.prou-product__top {
		grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
		gap: clamp(2.5rem, 1rem + 4vw, 5rem);
	}
}

/* Tabs, upsells and related products follow, full width. */
.prou-product-page div.product > .woocommerce-tabs,
.prou-product-page div.product > .up-sells,
.prou-product-page div.product > .related {
	margin-top: var(--prou-space-section);
}

/* ==========================================================================
   2. Gallery stage — WooCommerce's own gallery (zoom, lightbox, variation
   image swap) inside a dark, glowing stage.
   ========================================================================== */

.prou-product-page div.product div.images.woocommerce-product-gallery {
	position: relative;
	float: none;
	width: auto;
	margin: 0;
	padding: clamp(1rem, 0.5rem + 2.5vw, 2.5rem);
	/* WooCommerce's gallery script writes an inline pixel height (it once measured 1760px on phones,
	   leaving a huge empty stage). The stage always sizes to its content. */
	height: auto !important;
	overflow: hidden;
	border-radius: var(--prou-radius-xl);
	background:
		radial-gradient(70% 60% at 50% 40%, rgba(200, 226, 122, 0.22), transparent 70%),
		radial-gradient(120% 90% at 100% 100%, rgba(31, 77, 58, 0.8), transparent 60%),
		var(--prou-night);
	isolation: isolate;
}

@media (min-width: 1025px) {
	.prou-product-page div.product div.images.woocommerce-product-gallery {
		position: sticky;
		top: calc(var(--prou-header-h) + var(--prou-header-gap) * 2 + var(--prou-admin-bar));
	}
}

/* Slow rotating ring behind the product, like the homepage orbit. */
.prou-product-page div.product div.images.woocommerce-product-gallery::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: -1;
	width: 92%;
	aspect-ratio: 1;
	border: 1px dashed rgba(200, 226, 122, 0.25);
	border-radius: 50%;
	transform: translate(-50%, -50%) rotateX(70deg);
	animation: prou-ring-spin 50s linear infinite;
}

@keyframes prou-ring-spin {
	to { transform: translate(-50%, -50%) rotateX(70deg) rotateZ(360deg); }
}

.prou-product-page .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.prou-product-page .woocommerce-product-gallery__image {
	overflow: hidden;
	border-radius: var(--prou-radius-lg);
	background: var(--prou-cream);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(243, 237, 224, 0.06);
}

.prou-product-page .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
}

.prou-product-page .woocommerce-product-gallery .flex-viewport {
	border-radius: var(--prou-radius-lg);
}

/* Zoom / lightbox trigger */
.prou-product-page .woocommerce-product-gallery__trigger {
	position: absolute;
	top: calc(clamp(1rem, 0.5rem + 2.5vw, 2.5rem) + 12px);
	right: calc(clamp(1rem, 0.5rem + 2.5vw, 2.5rem) + 12px);
	z-index: 9;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 253, 248, 0.9);
	color: var(--prou-ink);
	font-size: 0;
	box-shadow: var(--prou-shadow);
}

/* Thumbnails (when a product has gallery images) */
.prou-product-page .woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	gap: var(--prou-space-3);
	margin: var(--prou-space-4) 0 0;
	padding: 0;
	overflow-x: auto;
	list-style: none;
}

.prou-product-page .woocommerce-product-gallery .flex-control-thumbs li {
	flex: 0 0 72px;
	width: 72px;
	float: none;
	margin: 0;
}

.prou-product-page .woocommerce-product-gallery .flex-control-thumbs img {
	display: block;
	width: 72px;
	height: 72px;
	border: 2px solid transparent;
	border-radius: var(--prou-radius);
	object-fit: cover;
	opacity: 0.55;
	cursor: pointer;
	transition: opacity var(--prou-duration) ease, border-color var(--prou-duration) ease;
}

.prou-product-page .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.prou-product-page .woocommerce-product-gallery .flex-control-thumbs img:hover {
	border-color: var(--prou-lime);
	opacity: 1;
}

/* ==========================================================================
   3. Summary
   ========================================================================== */

.prou-product-page div.product .summary.entry-summary {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}

@media (min-width: 1025px) {
	.prou-product-page div.product .summary.entry-summary {
		padding-top: var(--prou-space-4);
	}
}

.prou-product__eyebrow {
	margin-bottom: var(--prou-space-4);
	text-decoration: none;
}

.prou-product__eyebrow:hover {
	color: var(--prou-moss);
}

.prou-product-page .product_title.entry-title {
	margin: 0 0 var(--prou-space-4);
	color: var(--prou-ink);
	font-size: clamp(2.25rem, 1.4rem + 3vw, 3.75rem);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: -0.045em;
}

.prou-product__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--prou-space-2);
	margin: 0 0 var(--prou-space-4);
	padding: 0;
	list-style: none;
}

.prou-product-page .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: var(--prou-space-2);
	margin: 0 0 var(--prou-space-4);
	font-size: var(--prou-text-sm);
}

.prou-product-page .woocommerce-product-rating .star-rating {
	margin: 0;
}

.prou-product-page .woocommerce-review-link {
	color: var(--prou-ink-muted);
}

.prou-product-page div.product .summary p.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--prou-space-3);
	margin: 0 0 var(--prou-space-6);
	color: var(--prou-ink);
	font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: 1;
}

.prou-product-page div.product .summary p.price del {
	font-size: 0.6em;
	font-weight: 500;
}

.prou-product-page .woocommerce-product-details__short-description {
	margin-bottom: var(--prou-space-6);
	color: var(--prou-ink-muted);
	font-size: var(--prou-text-lg);
	line-height: 1.6;
}

.prou-product-page .woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0;
}

/* Delivery note */
.prou-product__delivery {
	display: flex;
	align-items: center;
	gap: var(--prou-space-3);
	margin-bottom: var(--prou-space-6);
	padding: var(--prou-space-3) var(--prou-space-4);
	border: 1px solid var(--prou-line);
	border-radius: var(--prou-radius);
	background: var(--prou-surface);
}

.prou-product__delivery p {
	margin: 0;
	font-size: var(--prou-text-sm);
	font-weight: 500;
}

.prou-product__delivery-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--prou-cream);
	color: var(--prou-moss);
}

.prou-product__delivery.is-local {
	border-color: transparent;
	background: var(--prou-night);
	color: var(--prou-on-dark);
}

.prou-product__delivery.is-local .prou-product__delivery-icon {
	background: var(--prou-lime);
	color: var(--prou-night);
}

/* WhatsApp + trust + meta */
.prou-product__whatsapp {
	margin-top: var(--prou-space-3);
}

.prou-product__trust {
	display: flex;
	flex-wrap: wrap;
	gap: var(--prou-space-2) var(--prou-space-6);
	margin: var(--prou-space-6) 0 0;
	padding: var(--prou-space-6) 0 0;
	border-top: 1px solid var(--prou-line);
	color: var(--prou-ink-muted);
	font-size: var(--prou-text-sm);
	font-weight: 500;
	list-style: none;
}

.prou-product__trust li {
	display: inline-flex;
	align-items: center;
	gap: var(--prou-space-2);
}

.prou-product__trust .prou-icon {
	color: var(--prou-moss);
}

.prou-product-page .product_meta {
	display: grid;
	gap: var(--prou-space-1);
	margin-top: var(--prou-space-6);
	color: var(--prou-ink-muted);
	font-size: var(--prou-text-sm);
}

.prou-product-page .product_meta > span {
	display: block;
}

.prou-product-page .product_meta a {
	color: var(--prou-ink);
	font-weight: 600;
}

/* ==========================================================================
   4. Add to cart, variations, stock
   ========================================================================== */

.prou-product-page div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: var(--prou-space-3);
	margin: 0;
}

.prou-product-page div.product form.cart .quantity {
	margin: 0;
}

.prou-product-page div.product form.cart .single_add_to_cart_button {
	flex: 1 1 200px;
	min-height: 52px;
	margin: 0;
	border-radius: var(--prou-radius-pill);
	background: var(--prou-night);
	font-size: var(--prou-text-lg);
}

.prou-product-page div.product form.cart .single_add_to_cart_button:hover {
	background: var(--prou-moss);
}

.prou-product-page div.product form.cart .single_add_to_cart_button.disabled,
.prou-product-page div.product form.cart .single_add_to_cart_button:disabled {
	opacity: 0.45;
}

/* Variable products */
.prou-product-page div.product form.variations_form {
	display: block;
}

.prou-product-page table.variations {
	width: 100%;
	margin: 0 0 var(--prou-space-4);
	border: 0;
	border-collapse: collapse;
}

.prou-product-page table.variations tr {
	display: block;
	margin-bottom: var(--prou-space-4);
}

.prou-product-page table.variations th,
.prou-product-page table.variations td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
}

.prou-product-page table.variations th.label label {
	margin-bottom: var(--prou-space-2);
	font-size: var(--prou-text-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--prou-ink-muted);
}

.prou-product-page table.variations select {
	min-width: 0;
	width: 100%;
	border-radius: var(--prou-radius);
}

.prou-product-page .reset_variations {
	display: inline-block;
	margin-top: var(--prou-space-2);
	color: var(--prou-ink-muted);
	font-size: var(--prou-text-sm);
}

.prou-product-page .single_variation_wrap .woocommerce-variation {
	margin-bottom: var(--prou-space-4);
}

.prou-product-page .single_variation_wrap .woocommerce-variation-price .price {
	font-size: var(--prou-text-2xl);
	font-weight: 700;
	letter-spacing: -0.03em;
}

.prou-product-page .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--prou-space-3);
}

/* Stock status as a pill */
.prou-product-page div.product p.stock {
	display: inline-flex;
	align-items: center;
	gap: var(--prou-space-2);
	margin: 0 0 var(--prou-space-4);
	padding: 0.35rem 0.9rem;
	border-radius: var(--prou-radius-pill);
	background: rgba(47, 107, 69, 0.1);
	font-size: var(--prou-text-sm);
	font-weight: 600;
}

.prou-product-page div.product p.stock::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}

.prou-product-page div.product p.stock.out-of-stock {
	background: rgba(180, 68, 46, 0.1);
}

.prou-product-page div.product p.stock.available-on-backorder {
	background: rgba(154, 91, 14, 0.12);
	color: var(--prou-gold-ink);
}

/* Wishlist button (the .prou-wish styles are in main.css) */
.prou-product-page .prou-product__wishlist {
	margin-top: var(--prou-space-3);
}

/* ==========================================================================
   5. Tabs, description, additional info
   ========================================================================== */

.prou-product-page div.product .woocommerce-tabs {
	padding: clamp(1.5rem, 1rem + 3vw, 3.5rem);
	border-radius: var(--prou-radius-xl);
	background: var(--prou-surface);
	border: 1px solid var(--prou-line);
}

.prou-product-page div.product .woocommerce-tabs ul.tabs {
	position: relative;
	display: flex;
	gap: var(--prou-space-2);
	margin: 0 0 var(--prou-space-8);
	padding: 0;
	overflow-x: auto;
	border: 0;
	list-style: none;
	scrollbar-width: none;
}

.prou-product-page div.product .woocommerce-tabs ul.tabs::before,
.prou-product-page div.product .woocommerce-tabs ul.tabs::after {
	display: none;
}

.prou-product-page div.product .woocommerce-tabs ul.tabs li {
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

.prou-product-page div.product .woocommerce-tabs ul.tabs li::before,
.prou-product-page div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.prou-product-page div.product .woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.5rem 1.25rem;
	border: 1px solid var(--prou-line);
	border-radius: var(--prou-radius-pill);
	color: var(--prou-ink-muted);
	font-size: var(--prou-text-sm);
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--prou-duration) ease, color var(--prou-duration) ease, border-color var(--prou-duration) ease;
}

.prou-product-page div.product .woocommerce-tabs ul.tabs li a:hover {
	border-color: var(--prou-ink);
	color: var(--prou-ink);
}

.prou-product-page div.product .woocommerce-tabs ul.tabs li.active a {
	border-color: var(--prou-night);
	background: var(--prou-night);
	color: var(--prou-on-dark);
}

.prou-product-page div.product .woocommerce-Tabs-panel {
	margin: 0;
	padding: 0;
	border: 0;
	box-shadow: none;
}

/* Long-form description typography */
.prou-product-page div.product .woocommerce-Tabs-panel--description {
	max-width: 72ch;
	font-size: var(--prou-text-lg);
	line-height: 1.7;
}

.prou-product-page div.product .woocommerce-Tabs-panel--description h2,
.prou-product-page div.product .woocommerce-Tabs-panel--description h3 {
	margin: var(--prou-space-8) 0 var(--prou-space-3);
	font-size: var(--prou-text-xl);
	letter-spacing: -0.02em;
}

.prou-product-page div.product .woocommerce-Tabs-panel--description h2:first-child,
.prou-product-page div.product .woocommerce-Tabs-panel--description h3:first-child {
	margin-top: 0;
}

.prou-product-page div.product .woocommerce-Tabs-panel--description h2 strong,
.prou-product-page div.product .woocommerce-Tabs-panel--description h3 strong {
	font-weight: inherit;
}

.prou-product-page div.product .woocommerce-Tabs-panel--description ul {
	display: grid;
	gap: var(--prou-space-2);
	margin: 0 0 var(--prou-space-4);
	padding: 0;
	list-style: none;
}

.prou-product-page div.product .woocommerce-Tabs-panel--description ul li {
	position: relative;
	padding-left: 1.75rem;
}

.prou-product-page div.product .woocommerce-Tabs-panel--description ul li::before {
	content: "";
	position: absolute;
	top: 0.62em;
	left: 0.25rem;
	width: 10px;
	height: 10px;
	border-radius: 50% 0;
	background: var(--prou-moss);
	transform: rotate(-45deg);
}

/* Additional information table */
.prou-product-page .woocommerce-product-attributes {
	width: 100%;
	max-width: 720px;
	border: 0;
	border-collapse: collapse;
}

.prou-product-page .woocommerce-product-attributes th,
.prou-product-page .woocommerce-product-attributes td {
	padding: var(--prou-space-3) 0;
	border: 0;
	border-bottom: 1px solid var(--prou-line);
	background: none;
	text-align: left;
	font-style: normal;
}

.prou-product-page .woocommerce-product-attributes th {
	width: 40%;
	color: var(--prou-ink-muted);
	font-weight: 600;
}

.prou-product-page .woocommerce-product-attributes td p {
	margin: 0;
}

/* ==========================================================================
   6. Reviews
   ========================================================================== */

.prou-product-page #reviews .woocommerce-Reviews-title {
	margin: 0 0 var(--prou-space-6);
	font-size: var(--prou-text-2xl);
}

.prou-product-page #reviews .commentlist {
	display: grid;
	gap: var(--prou-space-4);
	margin: 0 0 var(--prou-space-8);
	padding: 0;
	list-style: none;
}

.prou-product-page #reviews .commentlist li .comment_container {
	display: flex;
	gap: var(--prou-space-4);
	padding: var(--prou-space-6);
	border: 1px solid var(--prou-line);
	border-radius: var(--prou-radius-lg);
	background: var(--prou-paper);
}

.prou-product-page #reviews .commentlist li img.avatar {
	position: static;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
}

.prou-product-page #reviews .commentlist li .comment-text {
	flex: 1;
	margin: 0;
	padding: 0;
	border: 0;
}

.prou-product-page #reviews .commentlist .meta {
	color: var(--prou-ink-muted);
	font-size: var(--prou-text-sm);
}

.prou-product-page #reviews .woocommerce-noreviews {
	margin-bottom: var(--prou-space-6);
}

.prou-product-page #review_form_wrapper {
	max-width: 640px;
}

.prou-product-page #reply-title {
	display: block;
	margin-bottom: var(--prou-space-4);
	font-size: var(--prou-text-xl);
	font-weight: 600;
}

.prou-product-page #respond p.stars a {
	font-size: 1.4rem;
}

.prou-product-page #respond .comment-form > p {
	margin: 0 0 var(--prou-space-4);
}

/* ==========================================================================
   7. Upsells + related
   ========================================================================== */

.prou-product-page .up-sells > h2,
.prou-product-page .related > h2 {
	margin: 0 0 var(--prou-space-8);
	font-size: var(--prou-text-3xl);
}

/* Product titles here sit under that h2. */
.prou-product-page .up-sells .woocommerce-loop-product__title,
.prou-product-page .related .woocommerce-loop-product__title {
	font-size: clamp(1.0625rem, 0.95rem + 0.45vw, 1.375rem);
}

/* ==========================================================================
   8. Sticky buy bar (phones/tablets)
   ========================================================================== */

.prou-buybar {
	position: fixed;
	right: 8px;
	bottom: max(8px, env(safe-area-inset-bottom));
	left: 8px;
	z-index: 95;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--prou-space-3);
	padding: 8px 8px 8px 10px;
	border: 1px solid rgba(243, 237, 224, 0.08);
	border-radius: var(--prou-radius-pill);
	background: rgba(11, 25, 19, 0.92);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.5);
	color: var(--prou-on-dark);
	transform: translateY(150%);
	transition: transform 550ms var(--prou-ease);
}

.prou-buybar.is-visible {
	transform: none;
}

.prou-buybar__info {
	display: flex;
	align-items: center;
	gap: var(--prou-space-3);
	min-width: 0;
}

.prou-buybar__info img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
}

.prou-buybar__name {
	margin: 0;
	overflow: hidden;
	font-size: var(--prou-text-sm);
	font-weight: 600;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.prou-buybar__price.price {
	margin: 0;
	color: var(--prou-lime);
	font-size: var(--prou-text-sm);
}

.prou-buybar .prou-btn {
	flex-shrink: 0;
	background: var(--prou-lime);
	color: var(--prou-night);
	--prou-btn-fill: #fff;
}

.prou-buybar .prou-btn:hover {
	color: var(--prou-night);
}

@media (min-width: 1025px) {
	.prou-buybar {
		display: none;
	}
}

/* Contrast: small meta text and inactive tabs (override Kadence's lighter greys). */
.prou-product-page div.product .product_meta span.posted_in,
.prou-product-page div.product .product_meta span.tagged_as,
.prou-product-page div.product .product_meta span.sku_wrapper {
	color: var(--prou-ink-muted);
	font-size: var(--prou-text-xs);
}

.prou-product-page div.product .product_meta span a {
	color: var(--prou-ink);
}

.prou-product-page div.product .woocommerce-tabs ul.tabs li:not(.active) a {
	color: var(--prou-ink-muted);
	opacity: 1;
}
