/**
 * Frontend Styles
 *
 * @package ND_Variation_Button
 */

/* Native dropdowns stay in the form for WooCommerce, but must not paint. */
.ndvb-variation-buttons-set {
	display: none;
}

.ndvb-js .ndvb-variation-buttons-set {
	display: block;
}

.ndvb-js form.variations_form table.variations {
	display: block !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
}

.ndvb-js form.variations_form table.variations tr,
.ndvb-js form.variations_form table.variations th,
.ndvb-js form.variations_form table.variations td,
.ndvb-js form.variations_form table.variations select,
.ndvb-js form.variations_form table.variations .reset_variations {
	display: none !important;
}

/* Variation Buttons */
.ndvb-variation-buttons {
	margin: 10px 0 20px;
}

.ndvb-variation-top-row {
	margin-bottom: 15px;
}

.ndvb-variation-heading {
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 600;
	color: #000;
}

.ndvb-variation-reset {
	color: #555;
	text-decoration: none;
	font-size: 0.8rem;
	transition: opacity 0.2s;
}

.ndvb-variation-reset:hover {
	opacity: 0.7;
	text-decoration: underline;
}

.ndvb-variation-buttons-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 10px;
}

.ndvb-variation-button {
	background: transparent;
	border: 1px solid #777;
	border-radius: 2px;
	padding: 6px 15px;
	font-size: 1rem !important;
	cursor: pointer;
	transition: all 0.2s;
	color: #000;
	font-family: inherit;
	line-height: 1.5;
}

.ndvb-variation-button:hover {
	background: transparent;
	border-color:#000;
	color: #000;
}

.ndvb-variation-button-selected {
	border-color: #000;
	border-width: 1px;
	background-color: #000;
	color: #fff;
	font-weight: 400;
}

.ndvb-variation-button-selected:hover {
	border-color: #000;
	background-color: #000;
	color: #fff;
}

.ndvb-style-radios .ndvb-variation-buttons-wrapper {
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

form.cart .ndvb-style-radios button.ndvb-variation-button,
form.cart .ndvb-style-radios button.ndvb-variation-button:hover,
form.cart .ndvb-style-radios button.ndvb-variation-button-selected,
form.cart .ndvb-style-radios button.ndvb-variation-button-selected:hover {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	width: auto;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	color: #000;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	box-shadow: none;
}

.ndvb-style-radios .ndvb-variation-button::before {
	content: "";
	width: 16px;
	height: 16px;
	box-sizing: border-box;
	border: 1px solid var(--ndvb-radio, #000);
	border-radius: 50%;
	background: transparent;
	flex: 0 0 auto;
}

.ndvb-style-radios .ndvb-variation-button-selected::before,
.ndvb-style-radios .ndvb-variation-button-selected:hover::before {
	border-color: var(--ndvb-radio, #000);
	background: var(--ndvb-radio, #000);
}

/* Hide original select when buttons are shown */
.variations select[data-ndvb-buttons-created],
.woocommerce-variation-add-to-cart-wrapper select[data-ndvb-buttons-created] {
	display: none !important;
}

/* Hide original label, reset link, and value cell when buttons are shown */
.variations tr:has(select[data-ndvb-buttons-created]) th.label,
.variations tr:has(select[data-ndvb-buttons-created]) .reset_variations,
.variations tr td.value:has(select[data-ndvb-buttons-created]) {
	display: none !important;
}

.variations tr td.value:has(select[data-ndvb-buttons-created]) {
	padding: 0 !important;
	margin: 0 !important;
}

/* Fallback for browsers that don't support :has() */
.variations select[data-ndvb-buttons-created] ~ .reset_variations {
	display: none !important;
}

.single-product .woocommerce-variation-price {
	margin-bottom: 10px;
}

/* Product options */
.ndvb-product-options {
	width: 100%;
	margin: 0 0 1.25rem;
}

.ndvb-product-option {
	width: 100%;
	margin: 0 0 1rem;
}

form.cart .ndvb-product-option label,
.ndvb-product-option label {
	display: block;
	font-weight: 400;
	font-size: 1rem;
	margin: 0 0 0.35rem;
}

.ndvb-product-option .ndvb-required {
	color: #b32d2e;
}

form.cart .ndvb-product-option-check label,
.ndvb-product-option-check label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 0;
}

.ndvb-product-option-check input[type="checkbox"] {
	width: 1.05rem;
	height: 1.05rem;
	margin: 0.2rem 0 0;
	flex: 0 0 auto;
}

form.cart .ndvb-product-option input[type="url"],
form.cart .ndvb-product-option textarea,
.ndvb-product-option input[type="url"],
.ndvb-product-option textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}