/* ==========================================================================
   MediMix — product.css (single product)
   Markup is WooCommerce's own (content-single-product.php); the theme only
   lays it out.
   ========================================================================== */

.mx-pdp-page { padding-top: var(--mx-s4); }
.mx-pdp-page > .mx-breadcrumbs { margin-bottom: var(--mx-s4); }

.mx-pdp-page div.product { display: grid; gap: var(--mx-s6); position: relative; }
@media (min-width: 900px) {
	.mx-pdp-page div.product { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: var(--mx-s6) var(--mx-s10); align-items: start; }
	.mx-pdp-page div.product > .woocommerce-product-gallery { grid-column: 1; position: sticky; top: 150px; }
	.mx-pdp-page div.product > .summary { grid-column: 2; }
	.mx-pdp-page div.product > :not(.woocommerce-product-gallery):not(.summary) { grid-column: 1 / -1; }
}

/* Gallery (WooCommerce flexslider + zoom + photoswipe) */
.woocommerce-product-gallery { position: relative; margin: 0; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery .flex-viewport, .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
	border: 1px solid var(--mx-line-2); border-radius: var(--mx-r-lg); background: #fff;
}
.woocommerce-product-gallery__image a { display: block; }
.woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; padding: var(--mx-s4); }
.woocommerce-product-gallery__trigger {
	position: absolute; top: var(--mx-s3); inset-inline-end: var(--mx-s3); z-index: 5;
	width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%;
	background: #fff; border: 1px solid var(--mx-line); font-size: 0; text-decoration: none;
}
.woocommerce-product-gallery__trigger::before {
	content: ""; width: 20px; height: 20px; background: var(--mx-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-product-gallery__trigger img { display: none; }
.flex-control-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--mx-s2); margin: var(--mx-s3) 0 0; padding: 0; list-style: none; }
.flex-control-thumbs li { cursor: pointer; }
.flex-control-thumbs img {
	width: 100%; aspect-ratio: 1 / 1; object-fit: contain; padding: 4px;
	border: 1px solid var(--mx-line-2); border-radius: var(--mx-r-md); background: #fff; opacity: .7; transition: opacity .15s, border-color .15s;
}
.flex-control-thumbs img.flex-active, .flex-control-thumbs img:hover { opacity: 1; border-color: var(--mx-ink); }
.flex-direction-nav { display: none; }

/* Summary */
.summary .mx-pdp__brand { display: inline-block; margin-bottom: var(--mx-s2); font-size: var(--mx-fs-sm); font-weight: 700; color: var(--mx-gold-ink); text-decoration: none; }
.summary .mx-pdp__brand:hover { text-decoration: underline; }
.summary .product_title { font-size: var(--mx-fs-h1); margin-bottom: var(--mx-s3); }
.woocommerce-product-rating { display: flex; align-items: center; gap: var(--mx-s2); margin-bottom: var(--mx-s3); font-size: var(--mx-fs-sm); }
.woocommerce-product-rating .star-rating { width: 90px; height: 18px; -webkit-mask-size: 18px 18px; mask-size: 18px 18px; }
.woocommerce-review-link { color: var(--mx-ink-2); }

.mx-pdp__price { margin: var(--mx-s4) 0; padding: var(--mx-s4) 0; border-block: 1px solid var(--mx-line-2); }
.mx-pdp__price .price { margin: 0; font-size: 1.6rem; line-height: 1.3; }
.mx-pdp__price .price del { font-size: 1rem; }
.mx-pdp__save { display: flex; align-items: center; gap: var(--mx-s2); margin: var(--mx-s2) 0 0; font-size: var(--mx-fs-sm); color: var(--mx-accent); font-weight: 700; }

.woocommerce-product-details__short-description { color: var(--mx-ink-2); }
.woocommerce-product-details__short-description > :last-child { margin-bottom: 0; }

.summary .stock { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 var(--mx-s3); font-weight: 700; font-size: var(--mx-fs-sm); }
.summary .stock.in-stock { color: var(--mx-success); }
.summary .stock.out-of-stock { color: var(--mx-error); }
.summary .stock.available-on-backorder { color: var(--mx-warning); }

/* Add to cart */
form.cart { margin: var(--mx-s5) 0 0; }
form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: var(--mx-s2); align-items: stretch; }
form.cart .single_add_to_cart_button, form.cart .mx-buy-now { flex: 1 1 160px; min-height: 50px; font-size: var(--mx-fs-lg); }
form.cart .quantity { flex: none; }
form.cart .mx-qty .qty, form.cart .mx-qty__btn { min-height: 48px; }
.single_add_to_cart_button.disabled, .mx-buy-now.disabled { opacity: .5; cursor: not-allowed; }

table.variations { margin-bottom: var(--mx-s4); border: 0; }
table.variations tr { display: flex; flex-direction: column; gap: 6px; margin-bottom: var(--mx-s3); }
table.variations th, table.variations td { padding: 0; text-align: start; border: 0; }
table.variations th label { font-size: var(--mx-fs-sm); font-weight: 700; }
table.variations select { max-width: 360px; }
.reset_variations { display: inline-block; margin-top: 6px; font-size: var(--mx-fs-sm); color: var(--mx-ink-2); }
.woocommerce-variation { margin-bottom: var(--mx-s3); }
.woocommerce-variation-price .price { font-size: 1.35rem; }
.woocommerce-variation-availability p { margin: 4px 0 0; }

/* Grouped products */
.woocommerce-grouped-product-list { margin-bottom: var(--mx-s4); }
.woocommerce-grouped-product-list td { padding: var(--mx-s2) 0; border-bottom: 1px solid var(--mx-line-2); vertical-align: middle; }

/* Meta */
.product_meta { display: grid; gap: 4px; margin-top: var(--mx-s5); padding-top: var(--mx-s4); border-top: 1px solid var(--mx-line-2); font-size: var(--mx-fs-sm); color: var(--mx-muted); }
.product_meta > span { display: block; }
.product_meta a { color: var(--mx-ink-2); }
.product_meta .sku { color: var(--mx-ink); font-weight: 500; direction: ltr; unicode-bidi: isolate; }

/* Tabs */
.woocommerce-tabs { margin-top: var(--mx-s10); }
.woocommerce-tabs ul.tabs {
	display: flex; gap: var(--mx-s1); margin: 0 0 var(--mx-s5); padding: 0; list-style: none;
	border-bottom: 1px solid var(--mx-line); overflow-x: auto; scrollbar-width: none;
}
.woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
.woocommerce-tabs ul.tabs li a {
	display: block; padding: 12px 16px; margin-bottom: -1px; white-space: nowrap;
	border-bottom: 2px solid transparent; font-weight: 700; text-decoration: none; color: var(--mx-muted);
}
.woocommerce-tabs ul.tabs li.active a { color: var(--mx-ink); border-bottom-color: var(--mx-ink); }
.woocommerce-tabs ul.tabs li a:hover { color: var(--mx-ink); }
.woocommerce-Tabs-panel { max-width: 900px; }
.woocommerce-Tabs-panel--description img { border-radius: var(--mx-r-md); margin-block: var(--mx-s3); }
.woocommerce-product-attributes { border: 1px solid var(--mx-line); border-radius: var(--mx-r-md); overflow: hidden; }
.woocommerce-product-attributes th, .woocommerce-product-attributes td { padding: 10px 14px; text-align: start; border-bottom: 1px solid var(--mx-line-2); }
.woocommerce-product-attributes th { width: 30%; background: var(--mx-surface); font-weight: 700; font-size: var(--mx-fs-sm); }
.woocommerce-product-attributes td p { margin: 0; }

/* Reviews */
#reviews .commentlist { margin: 0 0 var(--mx-s6); padding: 0; list-style: none; }
#reviews .commentlist li { padding: var(--mx-s4) 0; border-bottom: 1px solid var(--mx-line-2); }
#reviews .comment_container { display: flex; gap: var(--mx-s3); }
#reviews .comment_container img.avatar { width: 44px; height: 44px; border-radius: 50%; flex: none; }
#reviews .comment-text { flex: 1; }
#reviews .comment-text .star-rating { float: inline-end; }
#reviews .meta { font-size: var(--mx-fs-sm); color: var(--mx-muted); margin-bottom: 4px; }
#reviews .woocommerce-review__author { color: var(--mx-ink); font-weight: 700; }
#review_form_wrapper { padding: var(--mx-s5); border-radius: var(--mx-r-lg); background: var(--mx-surface); }
#reply-title { display: block; font-size: var(--mx-fs-h3); font-weight: 700; margin-bottom: var(--mx-s3); }
.comment-form-rating p.stars { margin: 4px 0 var(--mx-s3); }
.comment-form-rating p.stars span { display: inline-flex; gap: 4px; direction: ltr; }
.comment-form-rating p.stars a {
	width: 28px; height: 28px; font-size: 0; text-decoration: none; background: var(--mx-line);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3.5 2.6 5.4 5.9.8-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.8z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3.5 2.6 5.4 5.9.8-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.8z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.comment-form-rating p.stars:hover a, .comment-form-rating p.stars.selected a { background: var(--mx-star); }
.comment-form-rating p.stars a:hover ~ a, .comment-form-rating p.stars.selected a.active ~ a { background: var(--mx-line); }
.comment-form-rating p.stars a:focus-visible { outline: 2px solid var(--mx-focus); }
#review_form .form-submit input { width: auto; }
#review_form input[type="submit"] { display: inline-flex; min-height: 46px; padding: 10px 22px; border: 0; border-radius: var(--mx-r-md); background: var(--mx-ink); color: #fff; font-weight: 700; cursor: pointer; }

/* Up-sells / related / cross-sells */
.up-sells, .related { margin-top: var(--mx-s12); }
.up-sells > h2, .related > h2 { font-size: var(--mx-fs-h2); margin-bottom: var(--mx-s5); }
@media (max-width: 899px) {
	.up-sells ul.products, .related ul.products {
		display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 46%;
		overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px;
	}
	.up-sells ul.products::-webkit-scrollbar, .related ul.products::-webkit-scrollbar { display: none; }
	.up-sells ul.products > li, .related ul.products > li { scroll-snap-align: start; }
}

/* Sticky buy bar (product.js) — mobile only */
.mx-buybar {
	position: fixed; inset-inline: 0; bottom: calc(var(--mx-tabbar-h) + env(safe-area-inset-bottom)); z-index: 95;
	display: flex; align-items: center; gap: var(--mx-s3); padding: var(--mx-s2) var(--mx-gutter);
	background: #fff; border-top: 1px solid var(--mx-line); box-shadow: 0 -6px 18px rgb(20 20 24 / 8%);
	transform: translateY(calc(100% + var(--mx-tabbar-h) + 24px)); visibility: hidden;
	transition: transform .2s var(--mx-ease), visibility 0s .2s;
}
.mx-buybar.is-visible { transform: none; visibility: visible; transition-delay: 0s; }
.mx-buybar__info { flex: 1; min-width: 0; }
.mx-buybar__title { display: block; font-size: var(--mx-fs-sm); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mx-buybar__price { display: block; font-weight: 700; font-size: var(--mx-fs-sm); }
.mx-buybar__price del { display: none; }
.mx-buybar .mx-btn { min-height: 44px; padding: 8px 16px; font-size: var(--mx-fs-sm); }
@media (min-width: 900px) { .mx-buybar { display: none; } }
