/* ==========================================================================
   Single product (Flatsome product layout). Loaded only on is_product().
   ========================================================================== */

.single-product .product-main {
	padding-block: var(--ce-space-8) var(--ce-space-12);
}

/* Breadcrumb */
.single-product .product-info .breadcrumbs,
.single-product .product-info .woocommerce-breadcrumb {
	color: var(--ce-muted);
	font-size: var(--ce-fs-small);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

.single-product .product-info .breadcrumbs a { color: var(--ce-muted); }
.single-product .product-info .breadcrumbs a:hover { color: var(--ce-forest); }

/* Gallery ------------------------------------------------------------ */
.product-gallery .product-images {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-lg);
	overflow: hidden;
}

.product-gallery .woocommerce-product-gallery__image img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	padding: var(--ce-space-6);
}

.product-gallery .badge-container {
	margin: var(--ce-space-4);
}

.product-gallery .badge {
	height: auto;
	width: auto;
}

.product-gallery .badge-inner {
	border-radius: 999px;
	height: auto;
	min-height: 0;
	padding: 6px 14px;
}

/* Flatsome's prev/next arrows sit in their own 2/12 column and squeeze the
   summary; hide that column so the summary uses the space. */
.product-main .product-info + .col.large-2.hide-for-medium,
.product-info .next-prev-thumbs {
	display: none;
}

.product-thumbnails {
	margin-top: var(--ce-space-3);
}

.product-thumbnails .col a,
.product-thumbnails a {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-sm);
	display: block;
	overflow: hidden;
	transition: border-color var(--ce-dur-fast) var(--ce-ease);
}

.product-thumbnails img {
	opacity: .75;
	transition: opacity var(--ce-dur-fast) var(--ce-ease);
}

.product-thumbnails .is-nav-selected a,
.product-thumbnails a:hover {
	border-color: var(--ce-forest);
}

.product-thumbnails .is-nav-selected img,
.product-thumbnails a:hover img {
	opacity: 1;
}

.product-gallery .flickity-prev-next-button {
	background-color: rgba(255, 253, 249, .92);
	border-radius: 50%;
	color: var(--ce-forest);
	height: 44px;
	width: 44px;
}

.product-gallery .flickity-page-dots .dot {
	background-color: var(--ce-forest);
}

/* Summary ------------------------------------------------------------ */
.product-info {
	padding-top: 0;
}

.product-info .product-title {
	font-size: clamp(1.625rem, 1.2rem + 1.2vw, 2.25rem);
	font-weight: 500;
	letter-spacing: -.015em;
	line-height: 1.15;
	margin-bottom: var(--ce-space-4);
}

.product-info .is-divider {
	display: none;
}

.product-info .price-wrapper .price {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	font-size: 1.75rem;
	gap: 0 var(--ce-space-3);
	margin-bottom: var(--ce-space-4);
}

.product-info .price-wrapper .price del {
	font-size: 1.125rem;
	order: 2;
}

.product-info .price-wrapper .price ins { order: 1; }

.product-info .product-short-description {
	color: var(--ce-muted);
	font-size: 1.0625rem;
	margin-bottom: var(--ce-space-6);
	max-width: 60ch;
}

.product-info .stock {
	font-size: var(--ce-fs-small);
	font-weight: 600;
}

.product-info .stock.in-stock { color: var(--ce-success); }
.product-info .stock.out-of-stock { color: var(--ce-error); }

/* Quantity + Add to cart on one row */
.product-info form.cart:not(.variations_form),
.product-info .woocommerce-variation-add-to-cart {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: var(--ce-space-3);
	margin-bottom: var(--ce-space-4);
}

.product-info form.cart .quantity {
	margin: 0;
}

.product-info .quantity.buttons_added input.qty,
.product-info .quantity.buttons_added .minus,
.product-info .quantity.buttons_added .plus {
	min-height: 52px;
}

.product-info .single_add_to_cart_button {
	flex: 1 1 160px; /* qty (≈156px) + gap + button must fit the summary column */
	font-size: 1rem;
	margin: 0;
	min-height: 52px;
}

/* Wishlist + share */
.product-info .yith-wcwl-add-to-wishlist a,
.product-info .wishlist-button {
	align-items: center;
	color: var(--ce-forest);
	display: inline-flex;
	font-size: .9375rem;
	font-weight: 600;
	gap: var(--ce-space-2);
	min-height: 44px;
}

.product-info .social-icons.share-icons {
	margin-top: var(--ce-space-4);
}

.product-info .social-icons.share-icons .button.icon {
	border-color: var(--ce-border-strong);
	color: var(--ce-forest);
	min-height: 40px;
	min-width: 40px;
}

/* Meta: tags hold product titles (not useful navigation), hide them */
.product-info .product_meta {
	border-top: 1px solid var(--ce-border);
	color: var(--ce-muted);
	font-size: var(--ce-fs-small);
	margin-top: var(--ce-space-6);
	padding-top: var(--ce-space-4);
}

.product-info .product_meta .tagged_as { display: none; }

.product-info .product_meta a { color: var(--ce-forest); }

/* Assurances (ce-commerce.php) */
.ce-assurances {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	display: grid;
	gap: var(--ce-space-3);
	list-style: none;
	margin: var(--ce-space-6) 0 0;
	padding: var(--ce-space-4) var(--ce-space-6);
}

.ce-assurances__item {
	font-size: .9375rem;
	margin: 0;
	padding-left: var(--ce-space-6);
	position: relative;
}

.ce-assurances__item::before {
	border-bottom: 2px solid var(--ce-success);
	border-right: 2px solid var(--ce-success);
	content: "";
	height: 11px;
	left: 4px;
	position: absolute;
	top: 5px;
	transform: rotate(45deg);
	width: 6px;
}

.ce-assurances__title {
	color: var(--ce-charcoal);
	font-weight: 700;
}

.ce-assurances__detail {
	color: var(--ce-muted);
}

.ce-assurances__detail a {
	font-weight: 600;
	white-space: nowrap;
}

/* Tabs + description ------------------------------------------------- */
.product-footer .woocommerce-tabs {
	border-top: 1px solid var(--ce-border);
	padding-top: var(--ce-space-8);
}

.woocommerce-tabs .nav.tabs,
.woocommerce-tabs .tabs {
	border-bottom: 1px solid var(--ce-border);
	gap: var(--ce-space-6);
}

.woocommerce-tabs .tabs > li > a {
	border: 0;
	color: var(--ce-muted);
	font-family: var(--ce-font-sans);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0;
	min-height: 48px;
	padding: 0;
	text-transform: none;
}

.woocommerce-tabs .tabs > li.active > a,
.woocommerce-tabs .tabs > li > a:hover {
	box-shadow: inset 0 -2px 0 var(--ce-terracotta);
	color: var(--ce-forest-dark);
}

.woocommerce-tabs .tabs > li.active > a::before,
.woocommerce-tabs .tabs > li > a::before {
	display: none;
}

.woocommerce-tabs .tab-panels {
	padding-top: var(--ce-space-6);
}

.woocommerce-Tabs-panel--description {
	font-size: 1.0625rem;
	max-width: 76ch;
}

.woocommerce-Tabs-panel--description h2,
.woocommerce-Tabs-panel--description h3 {
	font-size: 1.375rem;
	margin: var(--ce-space-8) 0 var(--ce-space-3);
}

.woocommerce-Tabs-panel--description ul {
	margin-left: var(--ce-space-6);
}

.woocommerce-Tabs-panel--description li {
	margin-bottom: var(--ce-space-1);
}

.woocommerce-Tabs-panel--description li > p {
	margin: 0;
}

/* Spec tables inside descriptions */
.woocommerce-Tabs-panel--description table {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-collapse: separate;
	border-radius: var(--ce-radius-md);
	border-spacing: 0;
	font-size: .9375rem;
	margin-block: var(--ce-space-4);
	overflow: hidden;
	width: 100%;
}

.woocommerce-Tabs-panel--description th,
.woocommerce-Tabs-panel--description td {
	border-bottom: 1px solid var(--ce-border);
	padding: var(--ce-space-3) var(--ce-space-4);
	text-align: left;
	vertical-align: top;
}

.woocommerce-Tabs-panel--description thead th {
	background-color: var(--ce-ivory);
	color: var(--ce-forest-dark);
	font-weight: 700;
}

.woocommerce-Tabs-panel--description tbody tr:last-child td { border-bottom: 0; }

.woocommerce-Tabs-panel--description tbody td:first-child {
	color: var(--ce-muted);
	font-weight: 600;
	width: 38%;
}

/* Reviews */
#reviews .woocommerce-noreviews { color: var(--ce-muted); }

#reviews #respond {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	padding: var(--ce-space-6);
}

/* Related products --------------------------------------------------- */
.related-products-wrapper,
.upsells.upsells-wrapper {
	padding-top: var(--ce-space-8);
}

.related-products-wrapper .product-section-title,
.upsells .product-section-title {
	font-family: var(--ce-font-serif);
	font-size: var(--ce-fs-h3);
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

/* Mobile ------------------------------------------------------------- */
@media (max-width: 849px) {
	.single-product .product-main { padding-top: var(--ce-space-4); }
	.product-gallery { margin-bottom: var(--ce-space-6); }
	.product-gallery .woocommerce-product-gallery__image img { padding: var(--ce-space-4); }
}

@media (max-width: 549px) {
	.product-info .price-wrapper .price { font-size: 1.5rem; }
	.ce-assurances { padding: var(--ce-space-4); }

	/* Spec table: stack label above value */
	.woocommerce-Tabs-panel--description tbody td {
		display: block;
		width: 100%;
	}

	.woocommerce-Tabs-panel--description tbody td:first-child {
		border-bottom: 0;
		padding-bottom: 0;
		width: 100%;
	}

	.woocommerce-Tabs-panel--description thead { display: none; }
}
