/**
 * Global premium button shine (Stripe-style gloss sweep).
 * Load after Bootstrap / theme .btn rules.
 *
 * Touch (hover: none): no ::before — avoids sticky hover & extra paint.
 * Fine pointer + hover: left-to-right sweep.
 */

:root {
    --ms-btn-shine-duration: 0.85s;
    --ms-btn-shine-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
    --ms-btn-shine-skew: -16deg;
    --ms-btn-shine-core: 0.4;
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --ms-btn-shine-duration: 0.001ms;
    }
}

@media (hover: hover) and (pointer: fine) {
    /* BS4+ .btn + BS3 .btn-default (admin) */
    .btn:not([data-no-shine]):not(.btn-link):not(.close):not(.navbar-toggler):not(.btn-light):not(.badge),
    .btn-default:not([data-no-shine]),
    .ms-pack-slider__cta:not([data-no-shine]) {
        position: relative;
        z-index: 0;
        overflow: hidden;
        isolation: isolate;
        -webkit-backface-visibility: hidden;
        backface-visibility: hidden;
    }

    .btn:not([data-no-shine]):not(.btn-link):not(.close):not(.navbar-toggler):not(.btn-light):not(.badge)::before,
    .btn-default:not([data-no-shine])::before,
    .ms-pack-slider__cta:not([data-no-shine])::before {
        content: "";
        position: absolute;
        top: -1px;
        left: 0;
        width: 52%;
        height: calc(100% + 2px);
        z-index: 1;
        pointer-events: none;
        border-radius: inherit;
        background: linear-gradient(
            95deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.05) 36%,
            rgba(255, 255, 255, var(--ms-btn-shine-core)) 50%,
            rgba(255, 255, 255, 0.05) 64%,
            rgba(255, 255, 255, 0) 100%
        );
        transform: translate3d(-145%, 0, 0) skewX(var(--ms-btn-shine-skew));
        opacity: 0;
        transition:
            transform 0.55s var(--ms-btn-shine-ease),
            opacity 0.35s ease;
    }

    .btn-outline-primary::before,
    .btn-outline-secondary::before,
    .btn-outline-success::before,
    .btn-outline-danger::before,
    .btn-outline-warning::before,
    .btn-outline-info::before,
    .btn-outline-dark::before {
        --ms-btn-shine-core: 0.2;
    }

    .btn:not([data-no-shine]):not(.btn-link):not(.close):not(.navbar-toggler):not(.btn-light):not(.badge):hover::before,
    .btn-default:not([data-no-shine]):hover::before,
    .ms-pack-slider__cta:not([data-no-shine]):hover::before {
        opacity: 1;
        transform: translate3d(210%, 0, 0) skewX(var(--ms-btn-shine-skew));
        transition:
            transform var(--ms-btn-shine-duration) var(--ms-btn-shine-ease),
            opacity 0.22s ease;
    }

    /* Çok hafif canlılık — outline/ghost ile çakışmaz */
    .btn-primary:hover:not([data-no-shine]),
    .btn-success:hover:not([data-no-shine]),
    .btn-danger:hover:not([data-no-shine]),
    .btn-info:hover:not([data-no-shine]),
    .btn-warning:hover:not([data-no-shine]),
    .btn-dark:hover:not([data-no-shine]) {
        filter: brightness(1.03);
    }

    .btn-secondary:hover:not([data-no-shine]),
    .btn-default:hover:not([data-no-shine]) {
        filter: brightness(1.02);
    }

    .ms-pack-slider__cta:hover:not([data-no-shine]) {
        filter: brightness(1.04);
    }
}

@media (prefers-reduced-motion: reduce) {
    @media (hover: hover) and (pointer: fine) {
        .btn:not([data-no-shine]):not(.btn-link):not(.close):not(.navbar-toggler):not(.btn-light):not(.badge)::before,
        .btn-default:not([data-no-shine])::before,
        .ms-pack-slider__cta:not([data-no-shine])::before {
            display: none !important;
        }

        .btn-primary:hover:not([data-no-shine]),
        .btn-success:hover:not([data-no-shine]),
        .btn-danger:hover:not([data-no-shine]),
        .btn-info:hover:not([data-no-shine]),
        .btn-warning:hover:not([data-no-shine]),
        .btn-dark:hover:not([data-no-shine]),
        .btn-secondary:hover:not([data-no-shine]),
        .btn-default:hover:not([data-no-shine]),
        .ms-pack-slider__cta:hover:not([data-no-shine]) {
            filter: none;
        }
    }
}
