.hpb-image-wrap{display:inline-block;position:relative;max-width:100%;vertical-align:top}.hpb-image-wrap img{max-width:100%}.hpb-overlay{position:absolute;inset:0;pointer-events:none;z-index:12;overflow:visible}.hpb-stack{position:absolute;display:flex;flex-direction:column;align-items:flex-start;max-width:48%;gap:0}.hpb-top-right{top:var(--hpb-y);right:var(--hpb-x)}.hpb-top-left{top:var(--hpb-y);left:var(--hpb-x)}.hpb-bottom-right{bottom:var(--hpb-y);right:var(--hpb-x)}.hpb-bottom-left{bottom:var(--hpb-y);left:var(--hpb-x)}.hpb-badge{box-sizing:border-box;position:relative;display:block;width:var(--hpb-w);max-width:100%;margin-bottom:var(--hpb-gap);font-size:clamp(9px,1vw,13px);line-height:1.25;overflow:hidden;color:var(--hpb-text);background:linear-gradient(120deg,var(--hpb-c1),var(--hpb-c2));box-shadow:0 1px 4px #0003}.hpb-badge img{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;border:0!important;box-shadow:none!important}.hpb-label{display:block;padding:7px 6px;font-weight:700;overflow-wrap:anywhere}.hpb-shape-rounded{border-radius:8px}.hpb-shape-square{border-radius:0}.hpb-shape-pill{border-radius:999px}.hpb-effect-shine:not(:has(img)):after{content:'';position:absolute;top:-50%;left:-20%;width:28%;height:200%;background:#ffffff55;transform:rotate(30deg);pointer-events:none}.hpb-effect-sparkle:not(:has(img)):after{content:'✦';position:absolute;top:0;right:3px;font-size:11px;color:#fff9;pointer-events:none}.woocommerce ul.products li.product{position:relative}.woocommerce ul.products li.product>.hpb-overlay{height:auto;aspect-ratio:1/1;bottom:auto}.woocommerce div.product .woocommerce-product-gallery{position:relative}@media(max-width:767px){.hpb-badge{width:var(--hpb-m);font-size:9px}.hpb-label{padding:4px 3px}.hpb-stack{max-width:47%}}
/* v1.0.1: JS positions the single visible overlay against the actual product image. */
.hpb-overlay.hpb-positioned{position:absolute!important;inset:auto!important;box-sizing:border-box;pointer-events:none;z-index:30}
.hpb-overlay.hpb-positioned .hpb-stack{max-width:48%}
/* v1.0.2: ensure original hook output does not create a visible second badge */
.hpb-overlay:not(.hpb-positioned){visibility:hidden!important}
.hpb-overlay.hpb-positioned{visibility:visible!important;inset:auto!important;max-width:none!important;overflow:visible!important}
.hpb-overlay.hpb-positioned .hpb-stack{pointer-events:none}

/* v1.0.5: render only the JS-positioned overlay */
.hpb-overlay.hpb-v105{position:absolute!important;inset:auto!important;display:block!important;visibility:visible!important;pointer-events:none!important;z-index:40!important;box-sizing:border-box!important}
.hpb-overlay.hpb-v105 .hpb-stack{position:absolute!important;display:flex!important}
/* v1.0.6: overlay belongs to the image's own wrapper, never to product text */
.hpb-overlay.hpb-v106{position:absolute!important;inset:auto!important;display:block!important;visibility:visible!important;pointer-events:none!important;z-index:40!important;box-sizing:border-box!important;max-width:none!important;overflow:visible!important}
.hpb-overlay.hpb-v106 .hpb-stack{position:absolute!important;display:flex!important}
