/* Native WooCommerce gallery and forms remain the source of product behaviour. */
.fs-site .woocommerce div.product .product_title { font-size:clamp(1.75rem,4vw,3rem); font-weight:400; }
.fs-site .woocommerce div.product p.price { color:var(--fs-color-text); font-size:1.5rem; }
.fs-site .woocommerce div.product .summary { border-block-start:1px solid var(--fs-color-line); padding-block-start:1.5rem; }
.fs-site .woocommerce div.product form.cart .button { border-radius:0; min-block-size:48px; background:var(--fs-color-button-bg); color:var(--fs-color-button-text); font-family:var(--fs-font-ui); }
.fs-site .woocommerce div.product form.cart .quantity input { min-block-size:48px; inline-size:5rem; }
.fs-site .woocommerce div.product .woocommerce-product-gallery img { background:var(--fs-card-gradient); }
.fs-site .woocommerce div.product .woocommerce-product-gallery { position:relative; }
.fs-site .woocommerce div.product .flex-control-thumbs { display:flex; gap:.5rem; overflow-x:auto; scroll-snap-type:x proximity; padding-block:.75rem; scrollbar-width:thin; }
.fs-site .woocommerce div.product .flex-control-thumbs li { flex:0 0 84px; inline-size:84px; float:none; scroll-snap-align:start; }
.fs-site .woocommerce div.product .flex-control-thumbs img { aspect-ratio:1; object-fit:cover; }
.fs-product-gallery-arrow { position:absolute; z-index:8; inset-block-start:42%; transform:translateY(-50%); inline-size:44px; block-size:44px; border:1px solid var(--fs-color-line); background:rgba(255,246,234,.9); color:var(--fs-color-text); }
.fs-product-gallery-arrow--prev { inset-inline-start:.75rem; }.fs-product-gallery-arrow--next { inset-inline-end:.75rem; }
.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs { padding:0; border-radius:0; }
.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs li { background:transparent; border-radius:0; }
.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs li::before,.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display:none; }
.fs-product-reference { font-size:.75rem; letter-spacing:.1em; }
.fs-spin { clear:both; max-inline-size:42rem; margin-inline:auto; padding-block:2rem; }
.fs-spin img { inline-size:100%; max-block-size:65vh; object-fit:contain; background:var(--fs-card-gradient); touch-action:pan-y; user-select:none; }
.fs-spin label,.fs-spin input { display:block; inline-size:100%; }
.fs-sticky-purchase { position:fixed; inset:auto 0 0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem var(--fs-gutter) calc(1rem + env(safe-area-inset-bottom)); background:var(--fs-color-bg); border-block-start:1px solid var(--fs-color-line); }
.fs-sticky-purchase[hidden] { display:none; }
.fs-sticky-purchase strong,.fs-sticky-purchase span { display:block; font-size:.875rem; }
.fs-sticky-purchase .fs-button { padding:.75rem; font-size:.65rem; }
@media(min-width:768px){ .fs-site .woocommerce div.product div.images { inline-size:55%; } .fs-site .woocommerce div.product div.summary { inline-size:40%; } }
@media(max-width:767px){ .fs-site .woocommerce div.product div.images,.fs-site .woocommerce div.product div.summary { inline-size:100%; float:none; } body:has(.fs-sticky-purchase:not([hidden])) { padding-block-end:7rem; } }

/* Editorial product page aligned with the approved model. */
.fs-site .fs-woo:has(.product) {
	inline-size: min(calc(100% - 2 * var(--fs-page-pad)), 1480px);
	max-inline-size: none;
	padding-block: 32px 64px;
}

.fs-site .woocommerce div.product {
	display: flow-root;
	margin: 0;
}

.fs-site .woocommerce div.product div.images,
.fs-site .woocommerce div.product div.summary {
	margin-block-end: 0;
}

.fs-site .woocommerce div.product div.images {
	border: 1px solid var(--fs-color-line);
	background: var(--fs-color-surface);
}

.fs-site .woocommerce div.product div.images .woocommerce-product-gallery__image {
	min-block-size: min(70vh, 720px);
	display: grid;
	place-items: center;
}

.fs-site .woocommerce div.product div.images .woocommerce-product-gallery__image img {
	inline-size: 100%;
	block-size: min(70vh, 720px);
	object-fit: contain;
}

.fs-site.single-product .woocommerce-breadcrumb {
	display: none;
}

.fs-site .woocommerce div.product .flex-control-thumbs {
	block-size: auto !important;
	min-block-size: 0;
	margin: 0;
	padding: 12px;
	gap: 10px;
	border-block-start: 1px solid var(--fs-color-line);
	background: var(--fs-color-bg);
	overflow-x: auto;
	overflow-y: hidden;
}

.fs-site .woocommerce div.product .flex-control-thumbs li {
	flex: 0 0 84px;
	inline-size: 84px !important;
	block-size: 84px !important;
	margin: 0 !important;
	border: 1px solid transparent;
}

.fs-site .woocommerce div.product .flex-control-thumbs li:has(img.flex-active) {
	border-color: var(--fs-color-line);
}

.fs-site .woocommerce div.product .flex-control-thumbs img {
	inline-size: 82px !important;
	block-size: 82px !important;
	min-block-size: 0 !important;
	aspect-ratio: 1;
	object-fit: cover;
	background: var(--fs-card-gradient);
}

.fs-site .woocommerce div.product div.summary {
	box-sizing: border-box;
	padding: clamp(30px, 3vw, 48px);
	border: 1px solid var(--fs-color-line);
	background: color-mix(in srgb, var(--fs-color-bg) 82%, white);
}

.fs-site .woocommerce div.product .fs-product-eyebrow {
	margin: 0 0 10px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.fs-site .woocommerce div.product .product_title {
	max-inline-size: 22ch;
	margin: 0 0 16px;
	font-size: clamp(26px, 2.25vw, 36px);
	line-height: 1.08;
	text-wrap: balance;
	hyphens: auto;
}

.fs-site .woocommerce div.product .fs-product-reference {
	margin: -6px 0 16px;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.fs-site .woocommerce div.product p.price {
	margin: 0 0 22px;
	font-size: 18px;
	font-weight: 600;
}

.fs-site .woocommerce div.product .woocommerce-product-details__short-description {
	max-inline-size: 38rem;
	margin-block-end: 22px;
	color: var(--fs-color-muted);
	font-size: 14px;
	line-height: 1.6;
}

.fs-product-specs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 0 22px;
	border-block-start: 1px solid var(--fs-color-line);
	border-inline-start: 1px solid var(--fs-color-line);
}

.fs-product-specs > div {
	min-inline-size: 0;
	padding: 12px;
	border-inline-end: 1px solid var(--fs-color-line);
	border-block-end: 1px solid var(--fs-color-line);
}

.fs-product-specs dt {
	margin: 0 0 6px;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fs-product-specs dd {
	margin: 0;
	font-size: 11px;
	line-height: 1.45;
}

.fs-site .woocommerce div.product form.cart,
.fs-site .woocommerce div.product form.variations_form {
	margin-block: 20px;
}

.fs-site .woocommerce div.product form.variations_form table.variations {
	margin: 0 0 18px;
	border-block-start: 1px solid var(--fs-color-line);
}

.fs-site .woocommerce div.product form.variations_form table.variations tr {
	display: grid;
	grid-template-columns: minmax(76px, .32fr) minmax(0, 1fr);
	align-items: start;
	border-block-end: 1px solid var(--fs-color-line);
}

.fs-site .woocommerce div.product form.variations_form table.variations th,
.fs-site .woocommerce div.product form.variations_form table.variations td {
	padding: 12px 0;
	border: 0;
	text-align: start;
}

.fs-site .woocommerce div.product form.variations_form table.variations th {
	padding-inline-end: 14px;
	font-size: 11px;
	letter-spacing: .06em;
}

.fs-site .woocommerce div.product form.variations_form table.variations select {
	inline-size: 100%;
	min-block-size: 44px;
	font-size: 13px;
}

.fs-site .woocommerce div.product form.variations_form .reset_variations {
	display: inline-flex;
	margin-block-start: 8px;
	font-size: 11px;
}

.fs-site .woocommerce div.product form.cart .button {
	min-block-size: 44px;
	min-inline-size: 142px;
	padding: 10px 18px;
	font-size: 10px;
	letter-spacing: .14em;
}

.fs-site .woocommerce div.product form.cart:not(.variations_form),
.fs-site .woocommerce div.product .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: stretch;
	gap: 8px;
}

.fs-site .woocommerce div.product form.cart .quantity {
	float: none;
	margin: 0;
}

.fs-site .woocommerce div.product form.cart .quantity input.qty {
	inline-size: 64px;
	min-block-size: 44px;
	padding: 8px;
	font-size: 14px;
}

.fs-site .woocommerce div.product .woocommerce-tabs {
	clear: both;
	padding-block-start: 52px;
}

.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	border-block: 1px solid var(--fs-color-line);
}

.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-inline-end: 1px solid var(--fs-color-line);
}

.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: flex;
	min-block-size: 48px;
	align-items: center;
	padding-inline: 20px;
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fs-site .woocommerce div.product .woocommerce-tabs .panel {
	max-inline-size: 900px;
	padding: 32px 0 44px;
	font-size: 15px;
	line-height: 1.65;
}

.fs-site .woocommerce div.product .woocommerce-tabs .panel h2,
.fs-site .woocommerce div.product .related > h2,
.fs-site .woocommerce div.product .upsells > h2 {
	margin-block: 0 24px;
	font-size: clamp(24px, 2.2vw, 32px);
	line-height: 1.15;
}

.fs-site .woocommerce div.product .related,
.fs-site .woocommerce div.product .upsells {
	clear: both;
	padding-block-start: 24px;
}

.fs-site .woocommerce div.product .product_meta {
	padding-block-start: 16px;
	border-block-start: 1px solid var(--fs-color-line-soft);
	color: var(--fs-color-muted);
	font-size: 12px;
	line-height: 1.6;
}

@media(min-width:768px) {
	.fs-site .woocommerce div.product div.images { inline-size: 56%; }
	.fs-site .woocommerce div.product div.summary { inline-size: 40%; }
}

@media(max-width:767px) {
	.fs-site .fs-woo:has(.product) { inline-size: 100%; padding-block-start: 0; }
	.fs-site .woocommerce div.product div.images,
	.fs-site .woocommerce div.product div.summary { inline-size: 100%; float: none; }
	.fs-site .woocommerce div.product div.images .woocommerce-product-gallery__image,
	.fs-site .woocommerce div.product div.images .woocommerce-product-gallery__image img { min-block-size: 0; block-size: auto; aspect-ratio: 4 / 5; }
	.fs-site .woocommerce div.product .flex-control-thumbs { padding: 10px 20px; }
	.fs-site .woocommerce div.product .flex-control-thumbs li { flex-basis: 68px; inline-size: 68px !important; block-size: 68px !important; }
	.fs-site .woocommerce div.product .flex-control-thumbs img { inline-size: 66px !important; block-size: 66px !important; }
	.fs-site .woocommerce div.product div.summary { padding: 28px 20px 34px; border-inline: 0; }
	.fs-site .woocommerce div.product .product_title { max-inline-size: 22ch; font-size: clamp(27px, 8vw, 34px); }
	.fs-site .woocommerce div.product form.cart .button { flex: 1 1 auto; min-inline-size: 0; }
	.fs-product-specs { grid-template-columns: 1fr; }
	.fs-site .woocommerce div.product form.variations_form table.variations tr { grid-template-columns: 1fr; }
	.fs-site .woocommerce div.product form.variations_form table.variations th { padding-block-end: 0; }
	.fs-site .woocommerce div.product .woocommerce-tabs { padding: 36px 20px 0; }
	.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs { display: block; }
	.fs-site .woocommerce div.product .woocommerce-tabs ul.tabs li { border-inline-end: 0; border-block-end: 1px solid var(--fs-color-line); }
}
