/* Button Variation Swatches for WooCommerce */

:root {
	--bvs-accent: #3b73b9;
	--bvs-radius: 8px;
}

/* The original <select> stays in the DOM so WooCommerce keeps working. */
.bvs-select-hidden,
.bvs-wrap select,
.bvs-wrap .select-resize-ghost,
.bvs-has-swatches .select-resize-ghost {
	display: none !important;
}

.bvs-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 6px 0 4px;
	padding: 0;
}

/* Button (high specificity + a few !important to beat theme button styles) */
.variations_form .bvs-swatches .bvs-swatch {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	min-width: 150px;
	height: auto !important;
	min-height: 46px !important;
	margin: 0 0 3px !important;
	padding: 0 26px !important;
	font-family: inherit;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-shadow: none !important;
	color: #1c2430 !important;
	background: linear-gradient(180deg, #ffffff 0%, #eceff4 100%) !important;
	border: 2px solid #8793a6 !important;
	border-radius: var(--bvs-radius) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95), 0 3px 0 #aeb8c6, 0 7px 12px rgba(16, 24, 40, 0.14) !important;
	cursor: pointer;
	opacity: 1 !important;
	transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease,
		box-shadow 0.18s ease, transform 0.18s ease;
	-webkit-tap-highlight-color: transparent;
}

/* Hover */
.variations_form .bvs-swatches .bvs-swatch:hover:not(.is-selected):not(.is-disabled) {
	color: var(--bvs-accent) !important;
	border-color: var(--bvs-accent) !important;
	background: linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--bvs-accent) 12%, #fff) 100%) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95), 0 3px 0 color-mix(in srgb, var(--bvs-accent) 45%, #fff), 0 9px 16px color-mix(in srgb, var(--bvs-accent) 24%, transparent) !important;
	transform: translateY(-1px);
}

/* Pressed: the button sinks into its edge */
.variations_form .bvs-swatches .bvs-swatch:active:not(.is-disabled):not(.is-selected) {
	transform: translateY(2px);
	box-shadow: inset 0 2px 4px rgba(16, 24, 40, 0.12), 0 1px 0 #aeb8c6, 0 2px 4px rgba(16, 24, 40, 0.12) !important;
}
.variations_form .bvs-swatches .bvs-swatch.is-selected:active {
	transform: translateY(2px);
}

/* Selected */
.variations_form .bvs-swatches .bvs-swatch.is-selected {
	color: #fff !important;
	background: linear-gradient(180deg, color-mix(in srgb, var(--bvs-accent) 82%, #fff) 0%, var(--bvs-accent) 100%) !important;
	border-color: color-mix(in srgb, var(--bvs-accent) 85%, #000) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 3px 0 color-mix(in srgb, var(--bvs-accent) 62%, #000), 0 9px 16px color-mix(in srgb, var(--bvs-accent) 36%, transparent) !important;
}

/* Small check badge on the selected button */
.bvs-swatch.is-selected::before {
	content: "";
	position: absolute;
	top: -8px;
	right: -8px;
	width: 20px;
	height: 20px;
	box-sizing: border-box;
	border-radius: 50%;
	background: var(--bvs-accent);
	border: 2px solid #fff;
	box-shadow: 0 1px 3px rgba(16, 24, 40, 0.25);
}
.bvs-swatch.is-selected::after {
	content: "";
	position: absolute;
	top: -4px;
	right: -0.5px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* Keyboard focus */
.variations_form .bvs-swatches .bvs-swatch:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--bvs-accent) 40%, transparent);
	outline-offset: 2px;
}

/* Out of stock but still selectable (e.g. for Back In Stock Notifier) */
.variations_form .bvs-swatches .bvs-swatch.is-oos:not(.is-selected) {
	color: #6b7686 !important;
	background: linear-gradient(180deg, #fbfcfd 0%, #f1f3f6 100%) !important;
	border-color: #aab3c0 !important;
	border-style: dashed !important;
	box-shadow: 0 3px 0 #d3d9e2 !important;
}

/* Combination that does not exist for the current selection */
.variations_form .bvs-swatches .bvs-swatch.is-disabled {
	color: #9aa3b0 !important;
	background-color: #f5f6f8 !important;
	background-image: linear-gradient(to top right, transparent calc(50% - 1px), #c3c9d3 50%, transparent calc(50% + 1px)) !important;
	border-color: #e3e7ed !important;
	box-shadow: none !important;
	cursor: not-allowed;
}

@media (max-width: 480px) {
	.bvs-swatches { gap: 8px; }
	.variations_form .bvs-swatches .bvs-swatch {
		min-width: 104px;
		min-height: 44px !important;
		padding: 0 16px !important;
		font-size: 15px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.variations_form .bvs-swatches .bvs-swatch { transition: none; }
}
