.tgem-campaign-selector {
	box-sizing: border-box;
	clear: both;
	margin: 0 0 1.25rem;
	align-self: flex-start;
	max-width: 38rem;
	min-width: 0;
}

.single-product .tgem-campaign-selector:not(.tgem-campaign-selector--automatic) {
	margin-inline-end: 16px !important;
}

.single-product .tgem-campaign-selector .select_container,
.single-product .tgem-campaign-selector .tgem-campaign-selector__select {
	box-sizing: border-box !important;
	height: var(--tgem-campaign-control-height, 56px) !important;
	min-height: var(--tgem-campaign-control-height, 56px) !important;
}

@media (max-width: 600px) {
	.single-product .tgem-campaign-selector:not(.tgem-campaign-selector--automatic) {
		margin-inline-end: 12px !important;
		max-width: calc(100% - 12px);
	}
}

/* A sole active campaign is assigned automatically and needs no visible UI. */
.single-product .tgem-campaign-selector .tgem-campaign-selector__select {
	appearance: none !important;
	-webkit-appearance: none !important;
	padding-right: 48px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%23888880' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-position: right 18px center !important;
	background-size: 16px 16px !important;
	background-repeat: no-repeat !important;
}

.single-product .tgem-campaign-selector .select_container::after {
	display: none !important;
}

.tgem-campaign-selector.tgem-campaign-selector--automatic,
.tgem-campaign-selector.tgem-campaign-selector--automatic[hidden] {
	display: none !important;
}

.tgem-campaign-selector__label {
	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;
}

.single-product .tgem-campaign-selector,
.single-product .tgem-campaign-selector .select_container {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.tgem-campaign-selector__select,
.tgem-campaign-selector__single {
	background: #fff;
	border: 1px solid #c9c9cf;
	border-radius: 6px;
	box-sizing: border-box;
	color: #17171b;
	font: inherit;
	min-height: 48px;
	padding: 0.75rem 0.9rem;
	width: 100%;
}

.tgem-campaign-selector__select:focus {
	border-color: #111;
	box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.12);
	outline: none;
}

.tgem-campaign-selector__single {
	display: flex;
	align-items: center;
}

.tgem-campaign-selector__help {
	color: #666;
	font-size: 0.8rem;
	line-height: 1.45;
	margin: 0.45rem 0 0;
}

/*
 * Some WooCommerce themes inherit the page background colour into the
 * quantity value while drawing their own increment/decrement controls. Keep
 * the actual number legible without changing the theme's quantity layout.
 */
.single-product form.cart .quantity input.qty,
.single-product form.cart .quantity input.qty[type="number"] {
	color: #17171b !important;
	-webkit-text-fill-color: #17171b !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	opacity: 1 !important;
}

/*
 * Drop Top paints its custom arrow layer over the native number text on the
 * Elementor product template. Mirror the real input value in a dedicated,
 * pointer-transparent layer so the number remains visible and the original
 * WooCommerce field continues to control the submitted quantity.
 */
.single-product form.cart .quantity.tgem-quantity-number {
	position: relative;
}

.single-product form.cart .quantity.tgem-quantity-number input.qty {
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
}

.single-product form.cart .quantity .tgem-quantity-visible-value {
	align-items: center !important;
	bottom: 0 !important;
	color: #17171b !important;
	cursor: default !important;
	display: flex !important;
	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	height: auto !important;
	justify-content: center !important;
	left: 0 !important;
	line-height: 1 !important;
	padding: 0 !important;
	pointer-events: none !important;
	position: absolute !important;
	right: 40px !important;
	text-align: center !important;
	top: 0 !important;
	width: auto !important;
	z-index: 3 !important;
}

/*
 * Keep native wallet elements mounted so WooPayments can initialize them, but
 * make them unavailable until the required giveaway campaign is selected.
 */
.single-product .tgem-express-checkout-gate-message {
	display: none !important;
}

.single-product .tgem-express-checkout-gated.tgem-express-checkout-locked {
	filter: grayscale(1) !important;
	opacity: 0.38 !important;
	pointer-events: none !important;
	user-select: none !important;
}

/* Prevent payment SDK descendants from restoring pointer interaction. */
.single-product .tgem-express-checkout-gated.tgem-express-checkout-locked * {
	pointer-events: none !important;
}

/* Membership purchases grant dashboard credits, not immediate giveaway entries.
 * The Elementor IDs belong to the shared product template's entry promotions. */
body.tgem-membership-product-view .elementor-element-f8e6053,
body.tgem-membership-product-view .elementor-element-22db381,
body.tgem-membership-product-view form.cart .tinv-wraper,
body.tgem-membership-product-view .ppcp-messages {
  display: none !important;
}
