/* Shirtvana PDP v1.0.0 */
.single-product { --sv-ink: #1B1A18; --sv-muted: #5F5A53; --sv-line: #D6D3CE; --sv-card: #FFFFFF; }

/* ---------- Gallery (native WooCommerce) ---------- */
.single-product .woocommerce-product-gallery { position: relative; margin: 0 !important; }
.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { background: var(--sv-card); border-radius: 8px; }
.single-product .woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; border-radius: 8px; }
.single-product .woocommerce-product-gallery .flex-control-thumbs {
	/* One scrollable row, 5 visible, however many images a product has. */
	display: grid !important; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: calc((100% - 32px) / 5);
	gap: 8px; margin: 10px 0 0 !important; padding: 0 0 6px; list-style: none; overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x proximity; scrollbar-width: thin; -webkit-overflow-scrolling: touch; position: relative;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; scroll-snap-align: start; }
.single-product .woocommerce-product-gallery .flex-control-thumbs img {
	width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; cursor: pointer; background: var(--sv-card);
	border: 2px solid #E6E3DE; opacity: .8; transition: opacity .15s, border-color .15s; box-sizing: border-box;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--sv-ink); }
.single-product .woocommerce-product-gallery__trigger {
	position: absolute; top: 12px; right: 12px; z-index: 9; width: 40px; height: 40px; border-radius: 50%;
	background: rgba(255,255,255,.92); box-shadow: 0 1px 4px rgba(0,0,0,.15); font-size: 0; text-indent: -9999px; overflow: hidden;
}
.single-product .woocommerce-product-gallery__trigger::before {
	content: ""; position: absolute; left: 12px; top: 11px; width: 12px; height: 12px; border: 2px solid var(--sv-ink); border-radius: 50%; box-sizing: content-box;
}
.single-product .woocommerce-product-gallery__trigger::after {
	content: ""; position: absolute; left: 25px; top: 25px; width: 7px; height: 2px; background: var(--sv-ink); transform: rotate(45deg);
}
.single-product .woocommerce-product-gallery__trigger img { display: none !important; }
@media (max-width: 767px) {
	.single-product .woocommerce-product-gallery .flex-control-thumbs { grid-auto-columns: calc((100% - 24px) / 4.5); gap: 6px; }
}

/* ---------- Buy box ---------- */
.single-product .sv-from { font-size: .6em; font-weight: 500; color: var(--sv-muted); margin-right: 2px; vertical-align: .15em; }
.single-product form.variations_form table.variations,
.single-product form.variations_form table.variations tbody,
.single-product form.variations_form table.variations tr,
.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td { display: block; width: 100%; padding: 0; margin: 0; background: none !important; border: 0; text-align: left; }
.single-product form.variations_form table.variations { margin: 0 0 8px; }
.single-product form.variations_form table.variations tr { margin-bottom: 18px; }
.single-product form.variations_form table.variations th.label { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; line-height: 1.3; }
.single-product form.variations_form table.variations th.label label { font-size: 14px; font-weight: 700; letter-spacing: .02em; color: var(--sv-ink); margin: 0; }
.single-product .sv-cur { font-weight: 400; color: var(--sv-muted); margin-left: 6px; }
.single-product .sv-cur::before { content: ": "; margin-left: -6px; }
.single-product a.sv-guide { font-size: 13px; font-weight: 500; color: var(--sv-ink); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }

.single-product form.sv-swatches select.sv-native { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; overflow: hidden; clip: rect(0 0 0 0); }
.single-product .sv-sw { display: flex; flex-wrap: wrap; gap: 8px; }
.single-product .sv-sw-btn { appearance: none; cursor: pointer; font: inherit; transition: border-color .12s, box-shadow .12s, background .12s; }
/* Elementor's justified add-to-cart alignment sets every button in the form to 100% width; opt swatches out. */
.single-product .sv-sw .sv-sw-btn { width: auto !important; flex: 0 0 auto !important; margin: 0 !important; box-shadow: none; }
.single-product .sv-sw .sv-sw-colour { width: 40px !important; height: 40px !important; min-width: 0; }
.single-product .sv-sw-colour {
	width: 40px; height: 40px; padding: 3px !important; border-radius: 50% !important; background: transparent !important; border: 2px solid transparent !important; display: inline-flex !important;
}
.single-product .sv-sw-colour .sv-dot { flex: 1; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.18); }
.single-product .sv-sw-colour:hover { border-color: var(--sv-line) !important; }
.single-product .sv-sw-colour.is-on { border-color: var(--sv-ink) !important; }
.single-product .sv-sw-size {
	min-width: 52px !important; height: 44px !important; padding: 0 12px !important; border-radius: 6px !important; border: 1px solid var(--sv-line) !important; display: inline-flex !important; align-items: center; justify-content: center;
	background: var(--sv-card) !important; color: var(--sv-ink) !important; font-size: 14px; font-weight: 600; line-height: 1;
}
.single-product .sv-sw-size:hover { border-color: var(--sv-ink) !important; }
.single-product .sv-sw-size.is-on { background: var(--sv-ink) !important; color: #fff !important; border-color: var(--sv-ink) !important; }
.single-product .sv-sw-btn.is-na { opacity: .35; text-decoration: line-through; }
.single-product .sv-sw-btn:focus-visible { outline: 2px solid var(--sv-ink); outline-offset: 2px; }
.single-product form.variations_form .reset_variations { display: none !important; }

.single-product .single_variation_wrap { text-align: left !important; }
.single-product .single_variation .woocommerce-variation-price { display: none; }
.single-product .single_variation .woocommerce-variation-availability p { margin: 0 0 8px; font-size: 13px; }
.single-product .woocommerce-variation-add-to-cart { display: flex !important; gap: 10px; align-items: stretch; margin-top: 6px; }
.single-product .woocommerce-variation-add-to-cart .quantity { flex: 0 0 72px; margin: 0 !important; }
.single-product .woocommerce-variation-add-to-cart .quantity input.qty {
	width: 100% !important; height: 52px; border: 1px solid var(--sv-line) !important; border-radius: 6px; text-align: center; background: #fff;
}
.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button {
	flex: 1 1 auto; width: auto !important; height: 52px; border-radius: 6px !important; font-size: 16px !important; margin: 0 !important;
}
.single-product .single_add_to_cart_button.disabled { opacity: .55 !important; }

/* Trust list */
.single-product ul.sv-trust { list-style: none; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid var(--sv-line); display: grid; gap: 10px; }
.single-product ul.sv-trust li { position: relative; padding-left: 28px; font-size: 14px; line-height: 1.45; color: var(--sv-ink); }
.single-product ul.sv-trust li span { display: block; color: var(--sv-muted); font-size: 13px; }
.single-product ul.sv-trust li::before {
	content: ""; position: absolute; left: 2px; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: #1f7a3f;
	-webkit-mask: none;
}
.single-product ul.sv-trust li::after {
	content: ""; position: absolute; left: 7px; top: 6px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}

/* ---------- Mobile sticky CTA ---------- */
.sv-sticky { display: none; }
@media (max-width: 1024px) {
	.sv-sticky {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; gap: 12px; align-items: center; justify-content: space-between;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -2px 12px rgba(0,0,0,.12);
		transform: translateY(110%); transition: transform .2s ease;
	}
	.sv-sticky.is-shown { transform: none; }
	.sv-sticky-price { font-weight: 700; font-size: 18px; color: #1B1A18; white-space: nowrap; }
	.sv-sticky-price .sv-from { font-size: 12px; font-weight: 500; color: #5F5A53; }
	.sv-sticky-btn {
		flex: 0 1 auto; height: 46px; padding: 0 20px; border: 0; border-radius: 6px; font-weight: 700; font-size: 15px;
		background: var(--e-global-color-primary, #C50000); color: #fff; cursor: pointer;
	}
}
