/* Campaign product badge — WooCommerce + Elementor Loop */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.e-loop-item,
.elementor-widget-woocommerce-products .product,
.products .product,
li.type-product {
	position: relative;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product > a:first-of-type,
.e-loop-item .e-loop-item__thumbnail,
.e-loop-item .elementor-widget-container > a,
.e-loop-item figure,
.e-loop-item .attachment-woocommerce_thumbnail,
.elementor-widget-woocommerce-products .product a,
.gsf-campaign-badge-host {
	position: relative;
	display: block;
}

.gsf-campaign-badge {
	--gsf-campaign-badge-bg: #0b57d0;

	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 10;
	display: inline-block;
	max-width: calc(100% - 24px);
	padding: 4px 10px;
	border-radius: 20px;
	background: linear-gradient(135deg, var(--gsf-campaign-badge-bg) 0%, color-mix(in srgb, var(--gsf-campaign-badge-bg) 75%, #000) 100%);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	pointer-events: none;
}

.gsf-campaign-badge-wrap {
	position: relative;
	display: inline-block;
	width: 100%;
}

@supports not (background: color-mix(in srgb, #000 50%, #fff)) {
	.gsf-campaign-badge {
		background: var(--gsf-campaign-badge-bg);
	}
}

/* Contextual campaign banner shortcode */
.gsf-campaign-banner {
	--gsf-campaign-accent: #0b57d0;

	margin: 0 0 1.5rem;
	padding: 1.25rem 1.5rem;
	border-radius: 12px;
	background: linear-gradient(135deg, color-mix(in srgb, var(--gsf-campaign-accent) 12%, #fff) 0%, #fff 100%);
	border: 1px solid color-mix(in srgb, var(--gsf-campaign-accent) 25%, #e5e7eb);
	box-shadow: 0 2px 10px rgba(11, 87, 208, 0.08);
}

@supports not (background: color-mix(in srgb, #000 50%, #fff)) {
	.gsf-campaign-banner {
		background: #f0f6ff;
		border-color: #c7dafb;
	}
}

.gsf-campaign-banner__eyebrow {
	margin: 0 0 0.35rem;
	color: var(--gsf-campaign-accent);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.gsf-campaign-banner__title {
	margin: 0;
	color: #1d2327;
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	font-weight: 700;
	line-height: 1.2;
}
