/* =============================================================
   CWS Animated Badge Widget
   custom-widget-slide / animated-badge.css
   ============================================================= */

@property --cws-gradient-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

@keyframes cws-rotateBorder {
    0%   { --cws-gradient-angle: 0deg; }
    100% { --cws-gradient-angle: 360deg; }
}

/* Wrapper handles alignment */
.cws-badge-wrapper {
    display: flex;
    width: 100%;
}

/* Core badge */
.cws-badge {
    /* CSS custom-property defaults (overridden by Elementor selectors) */
    --cws-border-size:  1px;
    --cws-grad-c1:      #FF4400;
    --cws-grad-c2:      #FD8111;
    --cws-grad-c3:      #FBBF22;
    --cws-anim-speed:   4s;

    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;

    /* Defaults – all overridable from Elementor panel */
    padding: 3px 20px;
    border-radius: 999px;
    background: #0d0d0d;
    color: #ffffff;
    font-size: 18px;
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    cursor: default;
    margin: 2px;

    /* smooth responsive resize */
    box-sizing: border-box;
    max-width: 100%;
    word-break: break-word;
}

/* Animated gradient border via ::before mask trick */
.cws-badge::before {
    content: '';
    position: absolute;
    inset: calc(-1 * var(--cws-border-size));
    border-radius: inherit;
    padding: var(--cws-border-size);
    background: conic-gradient(
        from var(--cws-gradient-angle),
        transparent 0%,
        var(--cws-grad-c1) 20%,
        var(--cws-grad-c2) 50%,
        var(--cws-grad-c3) 80%,
        transparent 100%
    );
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
    -webkit-mask-composite: xor;
    pointer-events: none;
    animation: cws-rotateBorder var(--cws-anim-speed) linear infinite;
}

/* Static border (no animation) */
.cws-badge--static::before {
    animation: none;
    background: conic-gradient(
        from 45deg,
        transparent 0%,
        var(--cws-grad-c1) 20%,
        var(--cws-grad-c2) 50%,
        var(--cws-grad-c3) 80%,
        transparent 100%
    );
}

/* Dot indicator */
.cws-badge-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #FFBF00;
    flex-shrink: 0;
    margin-right: 2px;
}

/* =============================================================
   Responsive helpers
   ============================================================= */

/* Tablet  (768 – 1024px) */
@media (min-width: 768px) and (max-width: 1024px) {
    .cws-badge {
        font-size: 15px;
        padding: 3px 16px;
    }
}

/* Mobile  (≤ 767px) */
@media (max-width: 767px) {
    .cws-badge {
        font-size: 13px;
        padding: 3px 14px;
    }
    .cws-badge-wrapper {
        justify-content: center; /* center on mobile by default */
    }
}
