/* ==========================================================================
   Single product
   ========================================================================== */
.page-banner--product { padding-top: calc(var(--evo-header-height) + 20px); padding-bottom: 20px; }
.single-product-wrap { padding-bottom: 80px; }

.woocommerce div.product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: flex-start;
}
.woocommerce div.product .woocommerce-product-gallery { position: sticky; top: calc(var(--evo-header-height) + 24px); }
.woocommerce div.product .woocommerce-product-gallery__wrapper { border-radius: var(--evo-radius-md); overflow: hidden; border: 1px solid var(--evo-border); }
.woocommerce div.product .flex-control-thumbs { display: flex; gap: 10px; margin-top: 12px; padding: 0; list-style: none; }
.woocommerce div.product .flex-control-thumbs li { width: 72px; }
.woocommerce div.product .flex-control-thumbs img { border-radius: var(--evo-radius-sm); border: 1px solid var(--evo-border); cursor: pointer; }
.woocommerce div.product .flex-control-thumbs img.flex-active { border-color: var(--evo-accent); }

.woocommerce div.product .product_title { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.3rem); margin-bottom: 8px; }
.woocommerce div.product p.price { font-size: 1.4rem; font-weight: 800; color: var(--evo-text); margin-bottom: 20px; }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--evo-accent); }
.woocommerce div.product p.price del { opacity: 0.5; margin-right: 8px; }

.woocommerce div.product .woocommerce-product-rating { margin-bottom: 20px; }

/* Variation swatches — WooCommerce renders <select> by default; this
   styles it consistently and leaves room to progressively enhance into
   button/swatch pickers with a variation-swatches plugin later without
   fighting the base markup. */
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 20px; }
.woocommerce div.product form.cart .variations td.label { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.03em; padding-bottom: 8px; }
.woocommerce div.product form.cart .variations select {
	width: 100%; padding: 13px 16px; border: 1px solid var(--evo-border); border-radius: var(--evo-radius-sm);
	background: #fff;
}
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.woocommerce div.product form.cart .button {
	padding: 16px 32px; background: var(--evo-accent); color: #fff; border: none; border-radius: var(--evo-radius-sm);
	font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.85rem; cursor: pointer;
	transition: background var(--evo-speed-fast) var(--evo-ease);
}
.woocommerce div.product form.cart .button:hover { background: var(--evo-accent-light); }
.woocommerce div.product form.cart .button.disabled { opacity: 0.5; cursor: not-allowed; }

.woocommerce-product-details__short-description { color: var(--evo-text-muted); margin-top: 20px; }

/* Tabs (Description / Specs / Reviews) */
.woocommerce-tabs { grid-column: 1 / -1; margin-top: 56px; border-top: 1px solid var(--evo-border); padding-top: 32px; }
.woocommerce-tabs ul.tabs { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0 0 28px; border-bottom: 1px solid var(--evo-border); }
.woocommerce-tabs ul.tabs li a {
	display: block; padding: 12px 20px; font-weight: 700; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.03em;
	color: var(--evo-text-muted); border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--evo-text); border-color: var(--evo-accent); }
.woocommerce-tabs .panel { max-width: 760px; }

/* Related products */
.related.products { grid-column: 1 / -1; margin-top: 64px; border-top: 1px solid var(--evo-border); padding-top: 40px; }
.related.products > h2 { font-size: 1.4rem; margin-bottom: 24px; }

@media (max-width: 900px) {
	.woocommerce div.product { grid-template-columns: 1fr; gap: 32px; }
	.woocommerce div.product .woocommerce-product-gallery { position: static; }
}
