/* MOD Product Variation Swatches — native WooCommerce select remains the source of truth. */
.mod-has-variation-swatches .mod-swatch-native-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: -1px !important;
	border: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

.mod-variation-swatches {
	--mod-swatch-gap: 10px;
	--mod-swatch-row-gap: 10px;
	--mod-swatch-min-height: 42px;
	--mod-swatch-padding-y: 9px;
	--mod-swatch-padding-x: 15px;
	--mod-swatch-radius: 8px;
	--mod-swatch-border-width: 1px;
	--mod-swatch-border: #d1d5db;
	--mod-swatch-bg: #fff;
	--mod-swatch-text: #111827;
	--mod-swatch-hover-border: #6b7280;
	--mod-swatch-hover-bg: #f8fafc;
	--mod-swatch-hover-text: #111827;
	--mod-swatch-selected-border: #111827;
	--mod-swatch-selected-bg: #111827;
	--mod-swatch-selected-text: #fff;
	--mod-swatch-focus: rgba(37, 99, 235, .25);
	--mod-swatch-disabled-opacity: .42;
	--mod-swatch-color-size: 24px;
	--mod-swatch-image-size: 48px;
	display: flex;
	flex-wrap: wrap;
	gap: var(--mod-swatch-row-gap) var(--mod-swatch-gap);
	width: 100%;
	max-width: 100%;
	align-items: stretch;
	box-sizing: border-box;
}

.mod-variation-swatches *,
.mod-variation-swatches *::before,
.mod-variation-swatches *::after { box-sizing: border-box; }

.mod-variation-swatches .mod-swatch {
	appearance: none !important;
	-webkit-appearance: none !important;
	display: inline-flex !important;
	position: relative !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: auto;
	max-width: 100%;
	min-width: 0 !important;
	min-height: var(--mod-swatch-min-height) !important;
	padding: var(--mod-swatch-padding-y) var(--mod-swatch-padding-x) !important;
	margin: 0 !important;
	border: var(--mod-swatch-border-width) solid var(--mod-swatch-border) !important;
	border-radius: var(--mod-swatch-radius) !important;
	background: var(--mod-swatch-bg) !important;
	color: var(--mod-swatch-text) !important;
	font: inherit;
	font-size: inherit;
	font-weight: 600;
	line-height: 1.25 !important;
	text-align: center;
	text-decoration: none !important;
	box-shadow: none;
	transform: none;
	cursor: pointer;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease, opacity .2s ease, transform .2s ease;
}

.mod-variation-swatches .mod-swatch:hover:not(:disabled):not([aria-disabled="true"]) {
	border-color: var(--mod-swatch-hover-border) !important;
	background: var(--mod-swatch-hover-bg) !important;
	color: var(--mod-swatch-hover-text) !important;
}

.mod-variation-swatches .mod-swatch:focus-visible {
	outline: 2px solid transparent !important;
	box-shadow: 0 0 0 3px var(--mod-swatch-focus) !important;
}

.mod-variation-swatches .mod-swatch.is-selected,
.mod-variation-swatches .mod-swatch[aria-checked="true"] {
	border-color: var(--mod-swatch-selected-border) !important;
	background: var(--mod-swatch-selected-bg) !important;
	color: var(--mod-swatch-selected-text) !important;
}

.mod-variation-swatches .mod-swatch.is-disabled,
.mod-variation-swatches .mod-swatch:disabled {
	opacity: var(--mod-swatch-disabled-opacity) !important;
	cursor: not-allowed !important;
}

.mod-variation-swatches[data-disabled-mode="cross"] .mod-swatch.is-disabled::after {
	content: "";
	position: absolute;
	left: 8%;
	right: 8%;
	top: 50%;
	height: 1px;
	background: currentColor;
	transform: rotate(-16deg);
	transform-origin: center;
	pointer-events: none;
}

.mod-swatch--pills { border-radius: 999px !important; }
.mod-swatch--buttons,
.mod-swatch--pills { white-space: normal; }

.mod-swatch--color {
	min-width: var(--mod-swatch-min-height) !important;
}
.mod-swatch__color {
	display: inline-block;
	flex: 0 0 var(--mod-swatch-color-size);
	width: var(--mod-swatch-color-size);
	height: var(--mod-swatch-color-size);
	border-radius: 50%;
	background: var(--mod-swatch-color-bg, var(--mod-swatch-color));
	border: 1px solid rgba(15, 23, 42, .16);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .42);
}

.mod-swatch--image {
	padding: 5px 10px 5px 5px !important;
	justify-content: flex-start !important;
}
.mod-swatch__image {
	display: inline-flex;
	flex: 0 0 var(--mod-swatch-image-size);
	width: var(--mod-swatch-image-size);
	height: var(--mod-swatch-image-size);
	align-items: center;
	justify-content: center;
	border-radius: max(2px, calc(var(--mod-swatch-radius) - 3px));
	background: #f8fafc;
	overflow: hidden;
}
.mod-swatch__image img { display: block; width: 100%; height: 100%; object-fit: cover; }

.mod-swatch--radio_card {
	justify-content: flex-start !important;
	text-align: left;
	padding-inline: 14px 18px !important;
}
.mod-swatch__radio {
	position: relative;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	border: 2px solid currentColor;
	border-radius: 50%;
}
.mod-swatch[aria-checked="true"] .mod-swatch__radio::after {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: inherit;
	background: currentColor;
}

.mod-swatch__label { min-width: 0; overflow-wrap: anywhere; }
.mod-swatch-selected-value { margin-inline-start: .35em; font-weight: 600; color: inherit; }

.mod-has-variation-swatches .variations td.value {
	position: relative;
	min-width: 0;
}
.mod-has-variation-swatches .variations .reset_variations { display: inline-flex; margin-top: 10px; }

@media (max-width: 767px) {
	.mod-variation-swatches {
		--mod-swatch-gap: 8px;
		--mod-swatch-row-gap: 8px;
		--mod-swatch-min-height: 40px;
		--mod-swatch-padding-y: 8px;
		--mod-swatch-padding-x: 12px;
	}
	.mod-swatch__label--color { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.mod-variation-swatches .mod-swatch { transition: none !important; }
}

/* v0.5.6: selectable color-swatch label presentation. */
.mod-swatch-label-hidden .mod-swatch--color .mod-swatch__label--color,
.mod-swatch-label-tooltip .mod-swatch--color .mod-swatch__label--color {
	position:absolute!important;
	width:1px!important;
	height:1px!important;
	padding:0!important;
	margin:-1px!important;
	overflow:hidden!important;
	clip:rect(0 0 0 0)!important;
	clip-path:inset(50%)!important;
	white-space:nowrap!important;
	border:0!important;
}
.mod-swatch-label-tooltip .mod-swatch--color {
	overflow:visible!important;
}
.mod-swatch-label-tooltip .mod-swatch--color::before {
	content:attr(data-label);
	position:absolute;
	left:50%;
	bottom:calc(100% + var(--mod-swatch-tooltip-gap,8px));
	z-index:50;
	max-width:min(240px,80vw);
	padding:var(--mod-swatch-tooltip-padding-y,6px) var(--mod-swatch-tooltip-padding-x,9px);
	border-radius:var(--mod-swatch-tooltip-radius,6px);
	background:var(--mod-swatch-tooltip-bg,#111827);
	color:var(--mod-swatch-tooltip-text,#fff);
	font-size:var(--mod-swatch-tooltip-font-size,12px);
	font-weight:600;
	line-height:1.25;
	white-space:nowrap;
	box-shadow:0 8px 24px rgba(15,23,42,.18);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transform:translate(-50%,4px);
	transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.mod-swatch-label-tooltip .mod-swatch--color:hover::before,
.mod-swatch-label-tooltip .mod-swatch--color:focus-visible::before {
	opacity:1;
	visibility:visible;
	transform:translate(-50%,0);
}
@media (max-width:767px) {
	.mod-swatch-label-inline .mod-swatch__label--color { display:inline!important; }
}
@media (prefers-reduced-motion:reduce) {
	.mod-swatch-label-tooltip .mod-swatch--color::before { transition:none!important; }
}
