.sp-product-badge {
    position: absolute;
    z-index: 9;
    padding: 5px 10px;
    border-radius: var(--badge-border-radius, 3px);
    font-weight: bold;
    text-align: center;
    display: flex !important;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
    box-sizing: border-box;
    transition: all 0.2s ease;
}

/* Badge Positions */
.sp-badge-position-top-left {
    top: var(--badge-padding-top, 10px);
    left: var(--badge-padding-left, 10px);
}

.sp-badge-position-top-right {
    top: var(--badge-padding-top, 10px);
    right: var(--badge-padding-right, 10px);
}

.sp-badge-position-bottom-left {
    bottom: var(--badge-padding-bottom, 10px);
    left: var(--badge-padding-left, 10px);
}

.sp-badge-position-bottom-right {
    bottom: var(--badge-padding-bottom, 10px);
    right: var(--badge-padding-right, 10px);
}

/* Custom Image Badge */
.sp-product-badge img {
    max-width: 100px;
    height: auto;
    display: block;
    margin: auto;
}

/* RTL Support */
.rtl .sp-badge-position-top-left {
    left: auto;
    right: var(--badge-padding-right, 10px);
}

.rtl .sp-badge-position-top-right {
    right: auto;
    left: var(--badge-padding-left, 10px);
}

.rtl .sp-badge-position-bottom-left {
    left: auto;
    right: var(--badge-padding-right, 10px);
}

.rtl .sp-badge-position-bottom-right {
    right: auto;
    left: var(--badge-padding-left, 10px);
}

/* Elementor Support */
.elementor-widget-loop-grid .sp-product-badges-wrapper,
.elementor-widget-wc-products .sp-product-badges-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9;
    pointer-events: none;
}

.elementor-loop-container .sp-product-badge {
    display: block !important;
    visibility: visible !important;
}

.elementor-widget-loop-grid .sp-product-badge,
.elementor-widget-wc-products .sp-product-badge {
    position: absolute;
    z-index: 99;
}

/* Elementor Loop Grid Support */
.elementor-widget-loop-grid .elementor-element-populated {
    position: relative;
}

.elementor-widget-loop-grid .sp-product-badges-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9;
    pointer-events: none;
}

.elementor-widget-loop-grid .sp-product-badge {
    position: absolute;
    z-index: 99;
    pointer-events: auto;
}

/* Ensure badges are visible */
.elementor-widget-loop-grid .elementor-widget-theme-post-featured-image {
    position: relative;
}

/* Fix badge positioning in loop items */
.e-loop-item .sp-product-badges-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9;
}

.e-loop-item .sp-product-badge {
    display: block !important;
    visibility: visible !important;
}

/* RTL support for Elementor */
.rtl .elementor-widget-loop-grid .sp-product-badges-wrapper {
    left: auto;
    right: 0;
}

/* Улучшенное центрирование текста */
.sp-product-badge span {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 5px;
    box-sizing: border-box;
    /* Добавляем поддержку переноса длинного текста */
    word-wrap: break-word;
    white-space: pre-wrap;
}

/* Фиксированные размеры */
.sp-product-badge.has-fixed-size {
    padding: 0 !important; /* Убираем padding для точных размеров */
}

/* Минимальные размеры только если не заданы фиксированные */
.sp-product-badge:not(.has-fixed-size) {
    min-width: 50px;
    min-height: 50px;
}

/* Loop Grid specific styles */
.elementor-widget-loop-grid .sp-product-badges-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9;
    pointer-events: none;
}

.elementor-widget-loop-grid .sp-product-badge {
    position: absolute;
    z-index: 99;
    pointer-events: auto;
}

/* Fix for nested elements */
.elementor-widget-loop-grid .elementor-element {
    position: relative;
}

/* Loop Grid specific styles */
.elementor-widget-loop-grid .elementor-element {
    position: relative !important;
}

.elementor-widget-loop-grid .sp-product-badges-wrapper {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 9 !important;
    pointer-events: none !important;
}

.elementor-widget-loop-grid .sp-product-badge {
    position: absolute !important;
    z-index: 99 !important;
    pointer-events: auto !important;
}

/* Fix for nested elements */
.elementor-widget-loop-grid .elementor-element .elementor-element {
    overflow: visible !important;
}

/* Ensure badges are always visible */
.elementor-widget-loop-grid .sp-product-badges-wrapper {
    display: block !important;
    visibility: visible !important;
}

/* Loop Grid specific styles */
.elementor-widget-loop-grid .elementor-widget-wrap {
    position: relative !important;
}

.elementor-widget-loop-grid .sp-product-badges-wrapper {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 99 !important;
    pointer-events: none !important;
}

.elementor-widget-loop-grid .sp-product-badge {
    position: absolute !important;
    z-index: 100 !important;
    pointer-events: auto !important;
}

/* Fix for nested elements */
.elementor-widget-loop-grid .elementor-widget-wrap > .sp-product-badges-wrapper {
    z-index: 99 !important;
}

/* Ensure badges are always visible */
.elementor-widget-loop-grid .sp-product-badges-wrapper {
    display: block !important;
    visibility: visible !important;
}

/* Fix badge positioning */
.elementor-widget-loop-grid .sp-badge-position-top-left {
    top: 10px !important;
    left: 10px !important;
}

.elementor-widget-loop-grid .sp-badge-position-top-right {
    top: 10px !important;
    right: 10px !important;
}

.elementor-widget-loop-grid .sp-badge-position-bottom-left {
    bottom: 10px !important;
    left: 10px !important;
}

.elementor-widget-loop-grid .sp-badge-position-bottom-right {
    bottom: 10px !important;
    right: 10px !important;
}

/* RTL support for Elementor */
.rtl.elementor-widget-loop-grid .sp-badge-position-top-left,
.rtl .elementor-widget-loop-grid .sp-badge-position-top-left {
    left: auto !important;
    right: var(--badge-padding-right, 10px) !important;
    top: var(--badge-padding-top, 10px) !important;
}

.rtl.elementor-widget-loop-grid .sp-badge-position-top-right,
.rtl .elementor-widget-loop-grid .sp-badge-position-top-right {
    right: auto !important;
    left: var(--badge-padding-left, 10px) !important;
    top: var(--badge-padding-top, 10px) !important;
}

.rtl.elementor-widget-loop-grid .sp-badge-position-bottom-left,
.rtl .elementor-widget-loop-grid .sp-badge-position-bottom-left {
    left: auto !important;
    right: var(--badge-padding-right, 10px) !important;
    bottom: var(--badge-padding-bottom, 10px) !important;
}

.rtl.elementor-widget-loop-grid .sp-badge-position-bottom-right,
.rtl .elementor-widget-loop-grid .sp-badge-position-bottom-right {
    right: auto !important;
    left: var(--badge-padding-left, 10px) !important;
    bottom: var(--badge-padding-bottom, 10px) !important;
}

/* Fix for RTL in product grid */
.rtl .products .product .sp-badge-position-top-left {
    left: auto !important;
    right: var(--badge-padding-right, 10px) !important;
}

.rtl .products .product .sp-badge-position-top-right {
    right: auto !important;
    left: var(--badge-padding-left, 10px) !important;
}

.rtl .products .product .sp-badge-position-bottom-left {
    left: auto !important;
    right: var(--badge-padding-right, 10px) !important;
}

.rtl .products .product .sp-badge-position-bottom-right {
    right: auto !important;
    left: var(--badge-padding-left, 10px) !important;
}

/* Ensure RTL positioning works in all contexts */
.rtl .sp-badge-position-top-left {
    left: auto !important;
    right: var(--badge-padding-right, 10px) !important;
    top: var(--badge-padding-top, 10px) !important;
}

.rtl .sp-badge-position-top-right {
    right: auto !important;
    left: var(--badge-padding-left, 10px) !important;
    top: var(--badge-padding-top, 10px) !important;
}

.rtl .sp-badge-position-bottom-left {
    left: auto !important;
    right: var(--badge-padding-right, 10px) !important;
    bottom: var(--badge-padding-bottom, 10px) !important;
}

.rtl .sp-badge-position-bottom-right {
    right: auto !important;
    left: var(--badge-padding-left, 10px) !important;
    bottom: var(--badge-padding-bottom, 10px) !important;
}

/* Elementor specific RTL fixes */
.rtl .elementor-widget-loop-grid .sp-product-badges-wrapper {
    left: auto !important;
    right: 0 !important;
}

.rtl .elementor-widget-loop-grid .sp-product-badge {
    position: absolute !important;
}
  