.fapesbooks-product-badge {
    --fapesbooks-badge-background: #000000;
    --fapesbooks-badge-color: #ffffff;

    position: absolute;
    top: 10px;
    right: -5px;
    z-index: 30;
    display: inline-flex;
    align-items: center;
    max-width: calc(100% - 12px);
    padding: 3px 9px;
    border-radius: 5px;
    border-bottom-right-radius: 0;
    background: var(--fapesbooks-badge-background);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.16);
    color: var(--fapesbooks-badge-color);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    pointer-events: none;
}

.fapesbooks-product-badge::after {
    position: absolute;
    right: -3px;
    bottom: -3px;
    width: 0;
    height: 0;
    border-color: transparent transparent var(--fapesbooks-badge-background);
    border-style: solid;
    border-width: 0 5.5px 5.5px;
    content: "";
    transform: rotate(90deg);
}

.fapesbooks-product-badge--image {
    top: -12px;
    right: -12px;
    width: auto;
    height: auto;
    max-width: none !important;
    max-height: none !important;
    padding: 0;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none;
    line-height: 0;
    overflow: visible;
}

.fapesbooks-product-badge--image::after {
    display: none;
}

.fapesbooks-product-badge--image > .product-image {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: visible;
    border-radius: 0 !important;
    background: transparent !important;
    aspect-ratio: auto !important;
    line-height: 0;
}

.fapesbooks-product-badge.fapesbooks-product-badge--image img.fapesbooks-product-badge__image {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    aspect-ratio: auto !important;
    box-shadow: none !important;
    object-fit: contain !important;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link,
.cpc-product-media,
.wc-block-components-product-image,
.wp-block-woocommerce-product-image-gallery {
    position: relative;
}

.cpc-product-image,
.cpc-product-media,
.wc-block-components-product-image {
    overflow: visible;
}

.single-product-page .single-product-content .wp-block-woocommerce-product-image-gallery {
    position: relative;
}

.single-product-page .fapesbooks-product-badge--single {
    right: max(-5px, calc(50% - 155px));
}

.single-product-page .fapesbooks-product-badge--single.fapesbooks-product-badge--image {
    top: -12px;
    right: max(-12px, calc(50% - 162px));
}

/* Defensive fallback for third-party templates that hard-code the native badge. */
.onsale,
.wp-block-woocommerce-product-sale-badge,
.wc-block-components-product-sale-badge {
    display: none !important;
}

@media (max-width: 600px) {
    .fapesbooks-product-badge {
        right: 0;
        max-width: calc(100% - 8px);
        font-size: 11px;
    }

    .fapesbooks-product-badge--image {
        top: -12px;
        right: -12px;
        max-width: none;
    }

    .single-product-page .fapesbooks-product-badge--single {
        right: max(0px, calc(50% - 150px));
    }

    .single-product-page .fapesbooks-product-badge--single.fapesbooks-product-badge--image {
        top: -12px;
        right: max(-12px, calc(50% - 162px));
    }

    .wp-block-woocommerce-product-image-gallery > .fapesbooks-product-badge--card + .woocommerce-product-gallery .woocommerce-product-gallery__trigger,
    .wp-block-woocommerce-product-image-gallery > .fapesbooks-product-badge--single + .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
        top: 52px;
    }

    .wp-block-woocommerce-product-image-gallery > .fapesbooks-product-badge--image + .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
        top: 8px;
        right: auto;
        left: 8px;
    }
}
