/**
 * ====================================================
 * Prices
 * ====================================================
 */
.vsw-prices-items {
	display: table;
}
.vsw-prices-items .vsw-prices-item {
	display: grid;
	grid-template-columns: auto 1fr;
}
.vsw-prices-items .vsw-prices-item .vsw-prices-item-text {
	grid-column: 1 / 2;
}
.vsw-prices-items .vsw-prices-item .vsw-prices-item-price {
	grid-column: 2 / 3;
	text-align: right;
}
.vsw-prices-items .vsw-prices-item span.woocommerce-Price-amount.amount {
	font-weight: bold;
	padding-left: 10px;
}


 /**
 * ====================================================
 * Swatches
 * ====================================================
 */
.vsw-swatches {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.vsw-swatches .swatch {
	border: 2px solid #e8e8e8;
	position: relative;
	display: flex;
	overflow: hidden;
	cursor: pointer;
	margin: 2px;
	transition: border-color 0.3s ease;
}
.vsw-swatches .swatch span.swatch-inner {
	width: 50px;
	height: 50px;
	padding: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* Hover/Selected */
.vsw-swatches .swatch.selected {
	border: 2px solid #222222;
}
.vsw-swatches-color .swatch.selected {
	border: none;
}
/* Label */
.vsw-swatches.vsw-swatches-label .swatch span.swatch-inner,
.vsw-swatches.vsw-swatches-select .swatch span.swatch-inner {
	width: auto;
	height: auto;
}
/* Color */
.vsw-swatches-color .swatch {
	border: none;
	padding: 2px;
	box-shadow: 0px 10px 10px -6px rgba(0,0,4,0.21);
}
.single-product div.product table.variations th label {
	text-transform: capitalize;
}
.vsw-hide {
	display: none;
}
/* Out of stock */
.vsw-swatches .out-of-stock {
	opacity: 0.5;
	pointer-events: none;
}
.vsw-swatches .swatch.out-of-stock .swatch-inner:before,
.vsw-swatches .swatch.out-of-stock .swatch-inner:after {
	content: "";
	position: absolute;
	height: 0;
	inset-inline-start: 0;
	border-top: 1px dashed #c90000;
	top: 50%;
	width: 100%;
}
.vsw-swatches .swatch.out-of-stock .swatch-inner:before {
	transform: rotate(45deg);
}
.vsw-swatches .swatch.out-of-stock .swatch-inner:after {
	transform: rotate(-45deg);
}
.vsw-swatches .swatch.swatch-shape-circle,
.vsw-swatches .swatch.swatch-shape-circle .swatch-inner {
	border-radius: 100%;
}
/* Checkmark */
.vsw-swatches-color .swatch.selected span.swatch-inner:before {
	content: '\2713';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	text-shadow: 0px 1px 4px rgba(0, 0, 0, 0.8);
}
/* Image */
.vsw-swatches-image .swatch .swatch-inner {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
}


/**
 * ====================================================
 * Grid
 * ====================================================
 */
.vsw-grid-used table.variations {
	display: none;
}
#vsw-variation-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 10px;
	width: 100%;
	padding-bottom: 60px;
}
#vsw-variation-grid .vsw-variation-item {
	padding: 10px;
	border: 1px solid #ddd;
	text-align: center;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	justify-content: center;
	transition: border-color 0.3s ease;
}
#vsw-variation-grid .vsw-variation-item .vsw-attribute,
#vsw-variation-grid .vsw-variation-item .vsw-price {
	margin-bottom: 5px;
}
#vsw-variation-grid .vsw-variation-item.selected {
	border: 1px solid #000;
}
#vsw-variation-grid .vsw-variation-item .vsw-attribute span {
	font-weight: bold;
}
#vsw-variation-grid .vsw-variation-item.vsw-variation-out-of-stock {
	opacity: 0.3;
	cursor: not-allowed;
}


/**
 * ====================================================
 * Table
 * ====================================================
 */
.vsw-table-used #vsw-variation-table {
	border-collapse: collapse;
}
.vsw-table-used #vsw-variation-table th,
.vsw-table-used #vsw-variation-table td {
	padding: 8px;
	text-align: center;
	border: 1px solid #ddd;
}
.vsw-table-used td[data-label="Image"] {
	width: 80px;
}
.vsw-table-used td[data-label="Image"] img {
	margin: auto;
}
.vsw-table-used .vsw-price {
	font-weight: bold;
}
.vsw-table-used td[data-label="Quantity"] {
	overflow: hidden;
}
.vsw-table-used input.vsw-td.vsw-qty {
	width: 3.706325903em;
}
/* Out of stock */
.vsw-table-used .vsw-td.vsw-qty p {
	margin: 0;
}
.vsw-table-used tr.vsw-variation-out-of-stock td {
	opacity: .6;
}
/* hide added button & view cart link from second occurrence onward */
.vsw-table-used a.added_to_cart.wc-forward,
.vsw-table-used .woocommerce-message:not(:first-of-type) .wc-forward {
	display: none;
}
.vsw-table-used.woocommerce button.button.added:after {
	opacity: 0;
}
/* Alternate row */
.vsw-table-used #vsw-variation-table tbody tr:nth-child(even) {
	background-color: #f9f9f9;
}
/* Footer */
.vsw-table-used .vsw-table-footer {
	display: flex;
	justify-content: space-between;
	padding: 20px 0;
	margin: 0;
}
.vsw-table-used .vsw-table-footer p {
	margin: 0;
}
.vsw-table-used .vsw-total-wrap p {
	margin-bottom: 0;
}
.vsw-table-used .vsw-btn {
	position: relative;
}
.vsw-table-used .single-product .vsw-btn.single_add_to_cart_button.added {
	margin-right: 0;
}
/* Loader */
@keyframes spinner {
	25% { content: '.'; }
	50% { content: '..'; }
	75% { content: '...'; }
}
.vsw-table-used .vsw-btn .vsw-loader:after {
	content: "...";
	display: inline-block;
	margin-left: 10px;
	animation: spinner 1s infinite steps(1);
}
/* Responsive */
@media screen and (max-width: 600px) {
	.vsw-table-used #vsw-variation-table thead {
		clip: rect(0 0 0 0);
		position: absolute;
	}
	.vsw-table-used #vsw-variation-table tr {
		display: block;
		margin-bottom: 20px;
	}
	.vsw-table-used #vsw-variation-table td {
		display: block;
	}
	.vsw-table-used #vsw-variation-table td:not([data-label="Image"]):before {
		content: attr(data-label);
		float: left;
		font-weight: bold;
		width: 180px;
	}
	.vsw-table-used td[data-label="Image"] {
		width: 100%;
	}
}