/* ==========================================================================
   NKT Variations Table
   ========================================================================== */

.nkt-vt {
	clear: both;
	margin-bottom: 2rem;
	width: 100%;
}

/* Table
   ========================================================================== */

.nkt-vt-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9em;
	line-height: 1.4;
}

.nkt-vt-table th,
.nkt-vt-table td {
	padding: 0.65rem 0.5rem;
	border-bottom: 1px solid #e0e0e0;
	vertical-align: middle;
	text-align: left;
}

.nkt-vt-table thead th {
	font-weight: 600;
	white-space: nowrap;
	user-select: none;
	border-bottom-width: 2px;
}

.nkt-vt-table tbody tr:last-child td {
	border-bottom: none;
}

/* Columns
   ========================================================================== */

.nkt-vt-col-image {
	width: 280px;
}

.nkt-vt-img-cell img {
	width: 280px;
	height: auto;
	display: block;
	border-radius: 3px;
	object-fit: contain;
}

.nkt-vt-col-qty {
	width: 80px;
}

.nkt-vt-col-cart {
	width: 130px;
}

/* Sorting
   ========================================================================== */

.nkt-vt-sortable {
	cursor: pointer;
	transition: background-color 0.15s;
}

.nkt-vt-sortable:hover {
	background-color: #f5f5f5;
}

.nkt-vt-sort-arrow {
	display: inline-block;
	margin-left: 4px;
	font-size: 0.65em;
	opacity: 0.25;
	vertical-align: middle;
}

.nkt-vt-sort-active .nkt-vt-sort-arrow {
	opacity: 0.8;
}

/* Quantity input
   ========================================================================== */

.nkt-vt-qty {
	width: 60px;
	text-align: center;
	padding: 0.35rem 0.25rem;
	border: 1px solid #ddd;
	border-radius: 3px;
	font-size: 0.95em;
}

.nkt-vt-qty:focus {
	outline: none;
	border-color: #888;
}

/* Add to cart button
   ========================================================================== */

.nkt-vt-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.nkt-vt-loading {
	opacity: 0.6;
}

.nkt-vt-added {
	background-color: #4caf50 !important;
	color: #fff !important;
}

/* Out of stock
   ========================================================================== */

.nkt-vt-out-of-stock {
	opacity: 0.5;
}

.nkt-vt-oos-label {
	font-size: 0.85em;
	color: #999;
	font-style: italic;
}

/* Responsive — card layout below 768px
   ========================================================================== */

@media screen and (max-width: 768px) {
	.nkt-vt-table thead {
		display: none;
	}

	.nkt-vt-table,
	.nkt-vt-table tbody,
	.nkt-vt-table tr,
	.nkt-vt-table td {
		display: block;
	}

	.nkt-vt-table tr {
		margin-bottom: 1rem;
		padding: 0.75rem;
		border: 1px solid #e0e0e0;
		border-radius: 4px;
	}

	.nkt-vt-table td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0.35rem 0;
		border-bottom: none;
	}

	.nkt-vt-table td::before {
		content: attr(data-title);
		font-weight: 600;
		margin-right: 1rem;
		flex-shrink: 0;
	}

	/* Image cell: centered, no label */
	.nkt-vt-img-cell {
		justify-content: center !important;
	}

	.nkt-vt-img-cell::before {
		display: none !important;
	}

	.nkt-vt-img-cell img {
		width: 80px;
	}

	/* Cart cell: no label */
	.nkt-vt-cart-cell::before {
		display: none !important;
	}

	.nkt-vt-cart-cell {
		justify-content: center !important;
		padding-top: 0.5rem !important;
	}


	/* Column widths reset */
	.nkt-vt-col-image,
	.nkt-vt-col-qty,
	.nkt-vt-col-cart {
		width: auto;
	}
}
