/* Exact Woodmart markup: label and selected value are siblings inside th.label. */
	.souve-add-to-cart form.variations_form table.variations th.label.souve-label-cell-normalized {
		display: flex !important;
		align-items: baseline !important;
		justify-content: flex-start !important;
		flex-wrap: nowrap !important;
		column-gap: 4px !important;
		line-height: 1.4 !important;
		white-space: nowrap !important;
	}

	.souve-add-to-cart form.variations_form table.variations th.label.souve-label-cell-normalized > label.souve-label-normalized {
		display: inline !important;
		margin: 0 !important;
		padding: 0 !important;
		font: inherit !important;
		line-height: inherit !important;
		vertical-align: baseline !important;
	}

	/* Override Woodmart's native punctuation and render exactly one colon. */
	.souve-add-to-cart form.variations_form table.variations th.label.souve-label-cell-normalized > label.souve-label-normalized::after {
		content: ":" !important;
		display: inline !important;
		margin: 0 !important;
		padding: 0 !important;
		font: inherit !important;
		line-height: inherit !important;
		vertical-align: baseline !important;
	}

	.souve-add-to-cart form.variations_form table.variations th.label.souve-label-cell-normalized > .wd-attr-selected {
		display: inline !important;
		margin: 0 !important;
		padding: 0 !important;
		font: inherit !important;
		line-height: inherit !important;
		vertical-align: baseline !important;
		white-space: nowrap !important;
	}

	.souve-add-to-cart form.variations_form table.variations th.label.souve-label-cell-normalized > .wd-attr-selected::before,
	.souve-add-to-cart form.variations_form table.variations th.label.souve-label-cell-normalized > .wd-attr-selected::after {
		content: none !important;
		display: none !important;
	}

	/* Toggle-off on the active swatch replaces Woodmart's reset link. */
	.souve-add-to-cart form.variations_form .reset_variations,
	.souve-add-to-cart form.variations_form .wd-reset-var,
	.souve-add-to-cart form.variations_form a.reset_variations {
		display: none !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}

	.souve-add-to-cart {
		--souve-label-color: inherit;
		--souve-value-color: inherit;
		--souve-color-w: 80px;
		--souve-color-h: 100px;
		--souve-color-gap: 8px;
		--souve-color-border-w: 1px;
		--souve-color-border: var(--e-global-color-402fd8e, #ddd);
		--souve-color-border-hover: #000;
		--souve-color-border-selected: #000;
		--souve-color-radius: 12px;
		--souve-color-image-size: 90%;
		--souve-size-h: 44px;
		--souve-size-min-w: 56px;
		--souve-size-gap: 8px;
		--souve-size-color: inherit;
		--souve-size-border: var(--e-global-color-402fd8e, #ddd);
		--souve-size-border-selected: #000;
		--souve-size-radius: 4px;
	}

	.souve-add-to-cart table.variations th.label > label { color: var(--souve-label-color) !important; }
	.souve-add-to-cart table.variations th.label > .wd-attr-selected,
	.souve-add-to-cart table.variations th.label > .souve-display-selected { color: var(--souve-value-color) !important; }

	.souve-add-to-cart.souve-hide-color-value table.variations tr:has(select[name="attribute_pa_color"]) th.label > .wd-attr-selected,
	.souve-add-to-cart.souve-hide-color-value table.variations tr:has(select[name="attribute_pa_color"]) th.label > .souve-display-selected,
	.souve-add-to-cart.souve-hide-size-value table.variations tr:has(select[name="attribute_pa_size"]) th.label > .wd-attr-selected,
	.souve-add-to-cart.souve-hide-size-value table.variations tr:has(select[name="attribute_pa_size"]) th.label > .souve-display-selected {
		display: none !important;
	}

	.souve-add-to-cart.souve-hide-color-value table.variations tr:has(select[name="attribute_pa_color"]) th.label > label::after,
	.souve-add-to-cart.souve-hide-size-value table.variations tr:has(select[name="attribute_pa_size"]) th.label > label::after {
		content: none !important;
		display: none !important;
	}

	.souve-add-to-cart .souve-size-guide-movable {
		display: inline-flex;
		align-items: baseline;
		min-width: 0;
		max-width: 100%;
		margin: 0;
	}
	.souve-add-to-cart .souve-size-guide-movable .wd-action-icon { display: none !important; }
	.souve-add-to-cart .souve-size-guide-movable a,
	.souve-add-to-cart .souve-size-guide-movable .wd-action-text { white-space: nowrap; }

	.souve-add-to-cart table.variations th.label.souve-has-inline-size-guide {
		display: grid !important;
		grid-template-columns: auto auto minmax(0, 1fr) !important;
		align-items: baseline !important;
		justify-content: start !important;
		column-gap: 4px !important;
		width: 100% !important;
		white-space: normal !important;
	}
	.souve-add-to-cart table.variations th.label.souve-has-inline-size-guide > .souve-size-guide-movable {
		justify-self: end;
		margin-inline-start: 12px;
		text-align: end;
	}
	.souve-add-to-cart .souve-size-guide-row > td {
		display: block !important;
		width: 100% !important;
		padding: 0 !important;
		border: 0 !important;
	}
	.souve-add-to-cart .souve-size-guide-row.souve-size-guide-row-empty { display: none !important; }

	.souve-add-to-cart .wd-swatches-product[data-id="pa_color"],
	.souve-add-to-cart .wd-swatches-single[data-id="pa_color"] { gap: var(--souve-color-gap) !important; }

	.souve-add-to-cart .wd-swatches-product[data-id="pa_color"] > .wd-swatch.wd-bg,
	.souve-add-to-cart .wd-swatches-single[data-id="pa_color"] > .wd-swatch.wd-bg {
		flex: 0 0 var(--souve-color-w) !important;
		width: var(--souve-color-w) !important;
		height: var(--souve-color-h) !important;
		min-width: var(--souve-color-w) !important;
		min-height: var(--souve-color-h) !important;
		max-width: var(--souve-color-w) !important;
		max-height: var(--souve-color-h) !important;
		border: var(--souve-color-border-w) solid var(--souve-color-border) !important;
	}
	.souve-add-to-cart .wd-swatches-product[data-id="pa_color"] > .wd-swatch.wd-bg.wd-active,
	.souve-add-to-cart .wd-swatches-single[data-id="pa_color"] > .wd-swatch.wd-bg.wd-active {
		border-color: var(--souve-color-border-selected) !important;
	}
	@media (hover:hover) {
		.souve-add-to-cart .wd-swatches-product[data-id="pa_color"] > .wd-swatch.wd-bg:hover:not(.wd-disabled),
		.souve-add-to-cart .wd-swatches-single[data-id="pa_color"] > .wd-swatch.wd-bg:hover:not(.wd-disabled) {
		border-color: var(--souve-color-border-hover) !important;
		}
	}
	.souve-add-to-cart .wd-swatches-product[data-id="pa_color"] > .wd-swatch.wd-bg:first-child,
	.souve-add-to-cart .wd-swatches-single[data-id="pa_color"] > .wd-swatch.wd-bg:first-child {
		border-radius: var(--souve-color-radius) 0 0 var(--souve-color-radius) !important;
	}
	.souve-add-to-cart .wd-swatches-product[data-id="pa_color"] > .wd-swatch.wd-bg:last-child,
	.souve-add-to-cart .wd-swatches-single[data-id="pa_color"] > .wd-swatch.wd-bg:last-child {
		border-radius: 0 var(--souve-color-radius) var(--souve-color-radius) 0 !important;
	}
	.souve-add-to-cart .wd-swatches-product[data-id="pa_color"] > .wd-swatch.wd-bg:only-child,
	.souve-add-to-cart .wd-swatches-single[data-id="pa_color"] > .wd-swatch.wd-bg:only-child {
		border-radius: var(--souve-color-radius) !important;
	}

	.souve-add-to-cart.souve-color-source-variation_image .wd-swatches-product[data-id="pa_color"] .wd-swatch-bg,
	.souve-add-to-cart.souve-color-source-variation_image .wd-swatches-single[data-id="pa_color"] .wd-swatch-bg {
		background-size: var(--souve-color-image-size) auto !important;
		mix-blend-mode: multiply !important;
	}
	.souve-add-to-cart.souve-color-source-attribute_color .wd-swatches-product[data-id="pa_color"] .wd-swatch-bg,
	.souve-add-to-cart.souve-color-source-attribute_color .wd-swatches-single[data-id="pa_color"] .wd-swatch-bg {
		background-image: none !important;
		background-size: auto !important;
		mix-blend-mode: normal !important;
	}

	.souve-add-to-cart .souve-attr-pa_size .wd-swatches-product,
	.souve-add-to-cart .souve-attr-pa_size .wd-swatches-single { gap: var(--souve-size-gap) !important; }

	.souve-add-to-cart.souve-size-style-buttons .souve-size-dropdown,
	.souve-add-to-cart.souve-size-style-buttons .souve-display-select { display: none !important; }

	.souve-add-to-cart.souve-size-style-buttons .souve-attr-pa_size .wd-swatch.wd-text {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		min-width: var(--souve-size-min-w) !important;
		height: var(--souve-size-h) !important;
		padding: 0 12px !important;
		color: var(--souve-size-color) !important;
		border: 1px solid var(--souve-size-border) !important;
		border-radius: var(--souve-size-radius) !important;
		box-sizing: border-box !important;
	}
	.souve-add-to-cart.souve-size-style-buttons .souve-attr-pa_size .wd-swatch.wd-text.wd-active {
		border-color: var(--souve-size-border-selected) !important;
	}

	.souve-add-to-cart.souve-size-style-dropdown .wd-swatches-product[data-id="pa_size"],
	.souve-add-to-cart.souve-size-style-dropdown .wd-swatches-single[data-id="pa_size"] { display: none !important; }

	.souve-add-to-cart.souve-size-style-dropdown .souve-size-dropdown {
		display: block !important;
		width: 100% !important;
		height: var(--souve-size-h) !important;
		min-height: var(--souve-size-h) !important;
		padding-inline: 12px !important;
		color: var(--souve-size-color) !important;
		border: 1px solid var(--souve-size-border) !important;
		border-radius: var(--souve-size-radius) !important;
		background: #fff !important;
	}

	.souve-variation-surface .souve-display-select:not(.souve-size-dropdown) { display: none !important; }

	.souve-add-to-cart .souve-swatches-viewport {
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-behavior: smooth !important;
		-webkit-overflow-scrolling: touch !important;
		overscroll-behavior-inline: contain !important;
		touch-action: auto !important;
		scrollbar-width: none !important;
		cursor: grab;
	}
	.souve-add-to-cart .souve-swatches-viewport::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }
	.souve-add-to-cart .souve-swatches-track {
		display: block !important;
		width: max-content !important;
		min-width: max-content !important;
		max-width: none !important;
		transform: none !important;
		will-change: auto !important;
	}

	.souve-add-to-cart.souve-needs-selection table.variations { scroll-margin-top: 90px; }
	.souve-add-to-cart.souve-needs-selection .souve-missing-attr > th.label {
		animation: souveAtcMissingPulse .55s ease 2;
	}
	@keyframes souveAtcMissingPulse { 50% { opacity: .42; } }

	/* Main single form: one option stays selected, but its value cell is hidden. */
	body.single-product .wd-single-add-cart form.variations_form table.variations tr.souve-single-attr-hidden > td.value,
	body.single-product .wd-single-add-cart form.variations_form table.variations tr.souve-single-attr-hidden > td.value.cell,
	body.single-product .wd-single-add-cart form.variations_form table.variations tr.souve-single-attr-hidden > td.with-swatches,
	body.single-product .souve-swatches form.variations_form table.variations tr.souve-single-attr-hidden > td.value,
	body.single-product .souve-swatches form.variations_form table.variations tr.souve-single-attr-hidden > td.value.cell,
	body.single-product .souve-swatches form.variations_form table.variations tr.souve-single-attr-hidden > td.with-swatches {
		display: none !important;
		visibility: hidden !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.single-product .wd-single-add-cart form.variations_form table.variations tr.souve-single-attr-hidden > th.label,
	body.single-product .wd-single-add-cart form.variations_form table.variations tr.souve-single-attr-hidden > th.label.cell,
	body.single-product .souve-swatches form.variations_form table.variations tr.souve-single-attr-hidden > th.label,
	body.single-product .souve-swatches form.variations_form table.variations tr.souve-single-attr-hidden > th.label.cell {
		visibility: visible !important;
		height: auto !important;
	}

	/* Main single form: variation image on color swatch. */
	body.single-product .wd-single-add-cart .wd-swatches-product.souve-varimg-ready > .wd-swatch .wd-swatch-bg,
	body.single-product .wd-single-add-cart .wd-swatches-single.souve-varimg-ready > .wd-swatch .wd-swatch-bg,
	body.single-product .souve-swatches .wd-swatches-product.souve-varimg-ready > .wd-swatch .wd-swatch-bg,
	body.single-product .souve-swatches .wd-swatches-single.souve-varimg-ready > .wd-swatch .wd-swatch-bg {
		background-size: cover !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
		mix-blend-mode: multiply !important;
	}

	body.single-product .wd-single-add-cart .wd-swatches-product.souve-varimg-ready > .wd-swatch.souve-varimg-swatch .wd-swatch-bg img,
	body.single-product .wd-single-add-cart .wd-swatches-single.souve-varimg-ready > .wd-swatch.souve-varimg-swatch .wd-swatch-bg img,
	body.single-product .souve-swatches .wd-swatches-product.souve-varimg-ready > .wd-swatch.souve-varimg-swatch .wd-swatch-bg img,
	body.single-product .souve-swatches .wd-swatches-single.souve-varimg-ready > .wd-swatch.souve-varimg-swatch .wd-swatch-bg img {
		display: none !important;
	}

	body.single-product .wd-single-add-cart .wd-swatches-product > .wd-swatch.wd-disabled,
	body.single-product .wd-single-add-cart .wd-swatches-single > .wd-swatch.wd-disabled,
	body.single-product .souve-swatches .wd-swatches-product > .wd-swatch.wd-disabled,
	body.single-product .souve-swatches .wd-swatches-single > .wd-swatch.wd-disabled {
		pointer-events: none !important;
	}

	body.single-product .wd-single-add-cart .souve-swatches-viewport,
	body.single-product .souve-swatches .souve-swatches-viewport {
		position: relative;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow: hidden;
		touch-action: pan-y;
		user-select: none;
		cursor: grab;
	}

	body.single-product .wd-single-add-cart .souve-swatches-viewport.is-dragging,
	body.single-product .souve-swatches .souve-swatches-viewport.is-dragging {
		cursor: grabbing;
	}

	body.single-product .wd-single-add-cart .souve-swatches-track,
	body.single-product .souve-swatches .souve-swatches-track {
		display: block;
		width: max-content;
		min-width: max-content;
		max-width: none;
		will-change: transform;
		transform: translate3d(0,0,0);
	}
