:root {
	--lwgc-accent: #c22a8f;
	--lwgc-secondary: #76bc42;
	--lwgc-brand: #76bc42;
	--lwgc-brand-strong: #568f2f;
	--lwgc-brand-tint: #f1f8ec;
	--lwgc-brand-ring: rgba(118, 188, 66, .2);
	--lwgc-border: #dfe8dc;
	--lwgc-surface: #fff;
	--lwgc-soft: #f7faf6;
	--lwgc-text: #201820;
}

.lwgc-purchase-fields {
	clear: both;
	width: 100%;
	margin: 1.5rem 0;
	padding: clamp(1rem, 3vw, 1.5rem);
	box-sizing: border-box;
	border: 1px solid var(--lwgc-border);
	border-radius: 14px;
	background: var(--lwgc-surface);
}

/* Product themes often lay form.cart out as a horizontal flex row. Gift-card
   choices and online options need the full row, with the purchase button
   directly underneath. The JS class scopes this correction to our form. */
.lwgc-cart-form {
	display: block !important;
}

.lwgc-cart-form .lwgc-purchase-fields--managed {
	margin-top: 0;
}

/* The connected variable product is represented by the accessible card controls
   below. Hide WooCommerce's duplicate dropdown table from first paint instead of
   waiting for JavaScript to decorate its rows. The :has() branch also covers the
   shortcode form when it is embedded outside the product detail route. */
.lwgc-managed-product form.variations_form table.variations {
	display: none !important;
}

@supports selector(form:has(.lwgc-purchase-fields--managed)) {
	form.variations_form:has(.lwgc-purchase-fields--managed) table.variations {
		display: none !important;
	}
}

.venix-single .lwgc-cart-form {
	width: 100%;
	margin: 1.25rem 0;
}

.venix-single .lwgc-cart-form table.variations {
	width: 100%;
	margin: 0;
}

.lwgc-cart-form .single_add_to_cart_button {
	float: none;
	margin-top: .25rem;
}

.lwgc-cart-form .single_add_to_cart_button.lwgc-is-loading,
.lwgc-cart-form .single_add_to_cart_button.disabled {
	cursor: wait;
	opacity: .55;
	pointer-events: none;
}

.lwgc-cart-form .single_add_to_cart_button.disabled:not(.lwgc-is-loading) {
	cursor: not-allowed;
}

.venix-single .lwgc-cart-form .woocommerce-variation-add-to-cart {
	display: block;
}

.venix-single .lwgc-cart-form .single_add_to_cart_button {
	width: 100%;
	margin-top: .75rem;
}

.lwgc-purchase-fields h3 {
	margin: 1.5rem 0 1rem;
	font-size: 1.1em;
}

.lwgc-product-note {
	margin: 0 0 1.25rem;
	padding: .85rem 1rem;
	border: 1px solid var(--lwgc-border);
	border-radius: 8px;
	background: #fff;
	color: #44504c;
	line-height: 1.55;
}

.lwgc-product-note__rule {
	display: block;
	margin-top: .6rem;
	font-weight: 650;
}

.lwgc-store-delivery-note {
	margin: 1rem 0 0;
	padding: .85rem 1rem;
	border: 1px solid var(--lwgc-border);
	border-radius: 8px;
	background: #fff;
	color: #44504c;
	line-height: 1.55;
}

.lwgc-mode-picker {
	min-width: 0;
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
}

.lwgc-mode-picker legend {
	margin: 0 0 .75rem;
	padding: 0;
	color: var(--lwgc-text);
	font-size: 1.05em;
	font-weight: 700;
}

.lwgc-mode-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .75rem;
}

.lwgc-mode-option {
	position: relative;
	margin: 0;
	cursor: pointer;
}

.lwgc-mode-option input {
	position: absolute;
	width: 1px;
	height: 1px;
	min-height: 0;
	padding: 0;
	border: 0;
	opacity: 0;
	pointer-events: none;
}

.lwgc-mode-option > span {
	display: flex;
	min-height: 74px;
	padding: .8rem .9rem;
	box-sizing: border-box;
	flex-direction: column;
	justify-content: center;
	border: 1px solid #bac8c3;
	border-radius: 9px;
	background: #fff;
	color: var(--lwgc-text);
	transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.lwgc-mode-option strong {
	display: block;
	font-size: 1em;
	line-height: 1.3;
}

.lwgc-mode-option small {
	margin-top: .25rem;
	color: #596762;
	font-size: .86em;
	font-weight: 400;
	line-height: 1.4;
}

.lwgc-mode-option input:checked + span {
	border-color: var(--lwgc-brand);
	background: var(--lwgc-brand-tint);
	box-shadow: 0 0 0 2px var(--lwgc-brand-ring);
}

.lwgc-mode-option input:focus-visible + span {
	outline: 2px solid var(--lwgc-brand-strong);
	outline-offset: 2px;
}

.lwgc-managed-attribute-row,
.lwgc-managed-amount-row {
	display: none !important;
}

.lwgc-amount-picker {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.lwgc-managed-amount-picker {
	margin: 0 0 1.25rem;
}

.lwgc-amount-picker legend {
	margin: 0 0 .75rem;
	padding: 0;
	color: var(--lwgc-text);
	font-size: 1.05em;
	font-weight: 700;
}

.lwgc-amount-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
	gap: .65rem;
}

.lwgc-amount-option {
	position: relative;
	margin: 0;
	cursor: pointer;
}

.lwgc-amount-option input {
	position: absolute;
	width: 1px;
	height: 1px;
	min-height: 0;
	padding: 0;
	border: 0;
	opacity: 0;
	pointer-events: none;
}

.lwgc-amount-option > span {
	display: grid;
	min-height: 48px;
	padding: .55rem .65rem;
	place-items: center;
	box-sizing: border-box;
	border: 1px solid #bac8c3;
	border-radius: 9px;
	background: #fff;
	color: var(--lwgc-text);
	font-weight: 700;
	text-align: center;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.lwgc-amount-option--custom {
	grid-column: span 2;
}

.lwgc-amount-option input:checked + span {
	border-color: var(--lwgc-brand);
	background: var(--lwgc-brand-tint);
	box-shadow: 0 0 0 2px var(--lwgc-brand-ring);
}

.lwgc-amount-option input:focus-visible + span {
	outline: 2px solid var(--lwgc-brand-strong);
	outline-offset: 2px;
}

.lwgc-amount-option.is-disabled {
	cursor: not-allowed;
}

.lwgc-amount-option.is-disabled > span {
	border-color: #d8dddb;
	background: #f4f5f5;
	color: #8a9390;
	box-shadow: none;
}

.lwgc-custom-amount {
	display: none;
	margin-top: 1rem;
	padding: 1rem;
	border: 1px solid var(--lwgc-border);
	border-radius: 10px;
	background: #fff;
}

.lwgc-custom-amount.is-active {
	display: block;
}

.lwgc-custom-amount > label {
	display: block;
	margin-bottom: .45rem;
	font-weight: 700;
}

.lwgc-custom-amount-control {
	position: relative;
}

.lwgc-custom-amount-control input {
	padding-right: 3.2rem;
}

.lwgc-custom-amount-control > span {
	position: absolute;
	top: 50%;
	right: 1rem;
	color: #66736f;
	font-weight: 700;
	transform: translateY(-50%);
}

.lwgc-purchase-fields .form-row {
	box-sizing: border-box;
	margin-bottom: 1rem;
}

.lwgc-purchase-fields input,
.lwgc-purchase-fields textarea,
.lwgc-apply-controls input,
.lwgc-block-controls input {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	border: 1px solid #bac8c3;
	border-radius: 8px;
	background: #fff;
}

.lwgc-purchase-fields small {
	display: block;
	margin-top: .35rem;
	color: #66736f;
}

.lwgc-apply-form,
.lwgc-balance-form,
.lwgc-block-panel {
	box-sizing: border-box;
	margin: 1rem 0 1.5rem;
	padding: 1rem;
	border: 1px solid var(--lwgc-border);
	border-radius: 12px;
	background: var(--lwgc-soft);
	color: var(--lwgc-text);
}

.lwgc-apply-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.lwgc-applied-summary {
	flex: 0 0 100%;
	margin-top: .85rem;
	border-top: 1px solid var(--lwgc-border);
}

.lwgc-applied-summary__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: .85rem;
}

.lwgc-applied-summary__item small {
	display: block;
	margin-top: .2rem;
	color: #66736f;
}

.lwgc-applied-summary__value {
	display: flex;
	align-items: center;
	white-space: nowrap;
}

.lwgc-apply-form--compact {
	display: block;
	margin: .75rem 0 1rem;
	padding: .85rem;
}

.lwgc-funnelkit-row > td {
	padding: 0 !important;
	border: 0 !important;
}

.lwgc-apply-form--compact .lwgc-apply-controls {
	margin-top: .65rem;
	flex-direction: column;
}

.lwgc-apply-form--compact .lwgc-apply-controls input {
	min-width: 0;
}

.lwgc-apply-form--compact .button {
	width: 100%;
}

.lwgc-apply-form > div:first-child span {
	display: block;
	margin-top: .2rem;
	color: #5c6965;
	font-size: .9em;
}

.lwgc-apply-controls,
.lwgc-block-controls {
	display: flex;
	align-items: stretch;
	gap: .5rem;
}

.lwgc-apply-controls input,
.lwgc-block-controls input {
	min-width: min(310px, 52vw);
	padding: .65rem .8rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: .03em;
}

.lwgc-apply-controls .button,
.lwgc-block-controls button {
	min-height: 44px;
	white-space: nowrap;
}

.lwgc-remove,
.lwgc-block-remove {
	display: inline-grid;
	place-items: center;
	width: 24px;
	height: 24px;
	margin-left: .4rem;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #8b2933;
	font-size: 20px;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.lwgc-remove:hover,
.lwgc-block-remove:hover {
	background: #f8e7e9;
}

.lwgc-balance-form > label,
.lwgc-block-form > label {
	display: block;
	margin-bottom: .6rem;
	font-weight: 700;
}

.lwgc-balance-result,
.lwgc-block-notice {
	margin: .75rem 0 0;
	padding: .65rem .75rem;
	border-left: 3px solid var(--lwgc-accent);
	background: #fff;
}

.lwgc-block-applied {
	margin-bottom: 1rem;
}

.lwgc-block-applied ul {
	margin: .6rem 0 0;
	padding: 0;
	list-style: none;
}

.lwgc-block-applied li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: .65rem 0;
	border-top: 1px solid var(--lwgc-border);
}

.lwgc-block-code {
	display: block;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-weight: 700;
}

.lwgc-block-applied small {
	color: #66736f;
}

.lwgc-block-value {
	display: flex;
	align-items: center;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.lwgc-mode-options {
		grid-template-columns: 1fr;
	}

	.lwgc-amount-options {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lwgc-amount-option--custom {
		grid-column: 1 / -1;
	}

	.lwgc-purchase-fields .form-row-first,
	.lwgc-purchase-fields .form-row-last {
		float: none;
		width: 100%;
	}

	.lwgc-apply-form,
	.lwgc-apply-controls,
	.lwgc-block-controls {
		align-items: stretch;
		flex-direction: column;
	}

	.lwgc-apply-controls input,
	.lwgc-block-controls input {
		min-width: 0;
	}

	.lwgc-applied-summary__item {
		align-items: flex-start;
		flex-direction: column;
		gap: .5rem;
	}

	.lwgc-applied-summary__value {
		justify-content: space-between;
		width: 100%;
	}
}
