/* BROOLED Product Image Banners - frontend */
/* Keep theme image layout intact. JS adds this class to the nearest image host. */
.bpibb-banner-host {
	position: relative !important;
}

/* Direct image wrappers added by PHP filters. */
.bpibb-image-wrap {
	position: relative !important;
	display: block !important;
	width: 100%;
	max-width: 100%;
	line-height: 0;
}

.bpibb-image-wrap > img,
.bpibb-image-wrap > a img,
.bpibb-image-wrap .woocommerce-product-gallery__image img {
	display: block !important;
	height: auto !important;
	max-width: 100% !important;
	visibility: visible !important;
	opacity: 1 !important;
}

.bpibb-single-image-wrap {
	line-height: normal;
}

.bpibb-single-image-wrap > .woocommerce-product-gallery__image,
.bpibb-single-image-wrap > div {
	position: relative;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product .woocommerce-loop-product__link img,
.woocommerce-product-gallery img {
	display: block;
	height: auto;
	max-width: 100%;
	visibility: visible;
	opacity: 1;
}

.bpibb-badges {
	--bpibb-bg: rgba(255,255,255,0.92);
	--bpibb-new-color: #00843d;
	--bpibb-sale-color: #b42318;
	--bpibb-special-color: #7f56d9;
	position: absolute;
	z-index: 999;
	display: flex;
	flex-direction: column;
	gap: 8px;
	pointer-events: none;
	max-width: min(82%, 300px);
}

.bpibb-position-top-left { top: 14px; left: 14px; align-items: flex-start; }
.bpibb-position-top-right { top: 14px; right: 14px; align-items: flex-end; }
.bpibb-position-bottom-left { bottom: 14px; left: 14px; align-items: flex-start; }
.bpibb-position-bottom-right { bottom: 14px; right: 14px; align-items: flex-end; }

.bpibb-badge {
	background: var(--bpibb-bg);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18);
	border: 1px solid rgba(255,255,255,0.55);
	line-height: 1;
}

.bpibb-badge-text,
.bpibb-badge h1,
.bpibb-badge h2,
.bpibb-badge span {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
	letter-spacing: .01em;
	text-transform: none;
}

.bpibb-shape-ribbon .bpibb-badge {
	padding: 11px 18px;
	border-radius: 0 999px 999px 0;
}

.bpibb-position-top-right.bpibb-shape-ribbon .bpibb-badge,
.bpibb-position-bottom-right.bpibb-shape-ribbon .bpibb-badge {
	border-radius: 999px 0 0 999px;
}

.bpibb-shape-pill .bpibb-badge {
	padding: 10px 16px;
	border-radius: 999px;
}

.bpibb-shape-glass .bpibb-badge {
	padding: 12px 16px;
	border-radius: 18px;
}

.bpibb-badge-new .bpibb-badge-text {
	color: var(--bpibb-new-color) !important;
	font-weight: 800 !important;
}

.bpibb-badge-sale .bpibb-badge-text {
	color: var(--bpibb-sale-color) !important;
	font-weight: 700 !important;
}

.bpibb-badge-special_offer .bpibb-badge-text {
	color: var(--bpibb-special-color) !important;
	font-weight: 700 !important;
}

.bpibb-context-loop .bpibb-badge-text {
	font-size: clamp(15px, 1.6vw, 22px) !important;
}

.bpibb-context-single .bpibb-badge-text {
	font-size: clamp(20px, 2.7vw, 40px) !important;
}

.bpibb-single-badge-source {
	display: none !important;
}

@media (max-width: 640px) {
	.bpibb-badges { gap: 6px; }
	.bpibb-position-top-left { top: 10px; left: 10px; }
	.bpibb-position-top-right { top: 10px; right: 10px; }
	.bpibb-position-bottom-left { bottom: 10px; left: 10px; }
	.bpibb-position-bottom-right { bottom: 10px; right: 10px; }
	.bpibb-shape-ribbon .bpibb-badge,
	.bpibb-shape-pill .bpibb-badge,
	.bpibb-shape-glass .bpibb-badge { padding: 8px 12px; }
}


/* Fallback for themes that do not run the small placement script. */
.woocommerce ul.products li.product .woocommerce-LoopProduct-link:has(.bpibb-badges),
.woocommerce ul.products li.product .woocommerce-loop-product__link:has(.bpibb-badges) {
	position: relative !important;
}

.bpibb-badges img,
.bpibb-badge img {
	display: none !important;
}


/* Strong compatibility reset for themes that style product headings aggressively. */
.bpibb-badges .bpibb-badge-text {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	overflow: visible !important;
}


/* v1.0.3: Support product cards that output thumbnails through get_the_post_thumbnail(). */
.bpibb-loop-image-wrap {
	position: relative !important;
	display: block !important;
	width: 100%;
}

.bpibb-loop-image-wrap > img,
.bpibb-loop-image-wrap picture,
.bpibb-loop-image-wrap picture img {
	display: block !important;
	max-width: 100% !important;
	height: auto !important;
}


/* v1.0.4: Universal product-card compatibility layer. */
.bpibb-js-image-wrap,
.bpibb-loop-image-wrap {
	position: relative !important;
	display: inline-block !important;
	max-width: 100% !important;
	line-height: 0 !important;
	vertical-align: top !important;
}

.bpibb-js-image-wrap > img,
.bpibb-js-image-wrap > picture,
.bpibb-js-image-wrap > picture > img,
.bpibb-loop-image-wrap > img,
.bpibb-loop-image-wrap > picture,
.bpibb-loop-image-wrap > picture > img {
	display: block !important;
	max-width: 100% !important;
	height: auto !important;
	visibility: visible !important;
	opacity: 1 !important;
}

.bpibb-js-fallback-badges {
	z-index: 9999 !important;
}

.bpibb-card-fallback-host {
	position: relative !important;
}

/* Keep catalogue badges neat on dense product grids. */
.bpibb-context-loop .bpibb-badge {
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14);
}

.products .bpibb-context-loop .bpibb-badge-text,
.wc-block-grid__products .bpibb-context-loop .bpibb-badge-text,
.elementor-widget-woocommerce-products .bpibb-context-loop .bpibb-badge-text {
	font-size: clamp(13px, 1.2vw, 18px) !important;
}


/* v1.0.5: Strong universal image scan mode for custom homepage product grids. */
.bpibb-js-image-wrap,
.bpibb-loop-image-wrap {
	position: relative !important;
	display: inline-block !important;
	max-width: 100% !important;
	line-height: 0 !important;
	vertical-align: top !important;
}

.bpibb-js-image-wrap > img,
.bpibb-loop-image-wrap > img,
.bpibb-js-image-wrap > picture,
.bpibb-loop-image-wrap > picture,
.bpibb-js-image-wrap picture > img,
.bpibb-loop-image-wrap picture > img {
	display: block !important;
	max-width: 100% !important;
	height: auto !important;
	visibility: visible !important;
	opacity: 1 !important;
}

.bpibb-js-fallback-badges {
	z-index: 2147483000 !important;
}

.bpibb-card-fallback-host {
	position: relative !important;
}
