/* CORE */
.announcement-bar{
    color:#fff;
    text-align:center;
    padding:10px 20px;
    background-size:400% 400%;
    overflow:hidden;

    /* DEFAULT (KRİTİK) */
    --gradient-speed: 10s;
}

/* TEXT BASE (KRİTİK) */
.announcement-text{
    display:inline-block;
    white-space:nowrap;
    will-change:transform, opacity;
}

/* =====================
   GRADIENT FLOW (FIX)
===================== */
.announcement-bar[data-gradient="flow"]{
    animation-name: gradientFlow;
    animation-duration: var(--gradient-speed);
    animation-timing-function: ease;
    animation-iteration-count: infinite;
}

@keyframes gradientFlow{
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}

/* =====================
   FADE / SLIDE
===================== */
.effect-fade-in{animation:fadeIn .8s ease both}
.effect-fade-out{animation:fadeOut .8s ease both}
.effect-fade-in-up{animation:fadeUp .8s ease both}
.effect-fade-in-down{animation:fadeDown .8s ease both}

@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeOut{from{opacity:1}to{opacity:0}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:none}}

/* SLIDE */
.effect-slide-left{animation:slideLeft .8s ease both}
.effect-slide-right{animation:slideRight .8s ease both}
.effect-slide-up{animation:slideUp .8s ease both}
.effect-slide-down{animation:slideDown .8s ease both}

@keyframes slideLeft{from{transform:translateX(100%);opacity:0}to{transform:none;opacity:1}}
@keyframes slideRight{from{transform:translateX(-100%);opacity:0}to{transform:none;opacity:1}}
@keyframes slideUp{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes slideDown{from{transform:translateY(-40px);opacity:0}to{transform:none;opacity:1}}

/* =====================
   ATTENTION
===================== */
.effect-bounce{animation:bounce 1s ease both}
@keyframes bounce{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-10px)}
}

.effect-shake-horizontal{animation:shakeX .6s ease both}
.effect-shake-vertical{animation:shakeY .6s ease both}

@keyframes shakeX{
    0%,100%{transform:translateX(0)}
    25%{transform:translateX(-5px)}
    75%{transform:translateX(5px)}
}
@keyframes shakeY{
    0%,100%{transform:translateY(0)}
    25%{transform:translateY(-4px)}
    75%{transform:translateY(4px)}
}

/* ZOOM */
.effect-zoom-in{animation:zoomIn .6s ease both}
.effect-zoom-out{animation:zoomOut .6s ease both}
.effect-zoom-pulse{animation:zoomPulse 1.5s ease infinite}

@keyframes zoomIn{
    from{transform:scale(.8);opacity:0}
    to{transform:scale(1);opacity:1}
}
@keyframes zoomOut{
    from{transform:scale(1.2);opacity:0}
    to{transform:scale(1);opacity:1}
}
@keyframes zoomPulse{
    0%{transform:scale(1)}
    50%{transform:scale(1.08)}
    100%{transform:scale(1)}
}

/* =====================
   PREMIUM
===================== */
.effect-blur-in{animation:blurIn 1s ease both}
@keyframes blurIn{
    from{filter:blur(6px);opacity:0}
    to{filter:blur(0);opacity:1}
}

.effect-flip-x{animation:flipX .8s ease both}
.effect-flip-y{animation:flipY .8s ease both}

@keyframes flipX{
    from{transform:rotateX(90deg);opacity:0}
    to{transform:none;opacity:1}
}
@keyframes flipY{
    from{transform:rotateY(90deg);opacity:0}
    to{transform:none;opacity:1}
}

/* =====================
   MARQUEE
===================== */
.effect-marquee-left .announcement-text{
    display:inline-block;
    padding-left:100%;
    animation:marqueeLeft 14s linear infinite;
}
@keyframes marqueeLeft{
    from{transform:translateX(0)}
    to{transform:translateX(-100%)}
}

/* SEPETE EKLE BUTONU */
.tp-product-details-add-to-cart-btn {
    background-color: #000 !important; /* normal siyah */
    color: #fff !important; /* yazı beyaz */
    border: none !important;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

.tp-product-details-add-to-cart-btn:hover:not(:disabled) {
    background-color: #1543b5 !important; /* hover mavi */
    color: #fff !important;
}

/* BUY NOW BUTONU */
.tp-product-details-buy-now-btn {
    background-color: #000 !important;
    color: #fff !important;
    border: none !important;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

.tp-product-details-buy-now-btn:hover:not(:disabled) {
    background-color: #007bff !important;
    color: #fff !important;
}

/* BUTONLAR DISABLED DURUMDA */
.tp-cart-disabled .tp-product-details-add-to-cart-btn,
.tp-cart-disabled .tp-product-details-buy-now-btn {
    background-color: #999 !important;
    color: #fff !important;
    cursor: not-allowed !important;
}

/* RESPONSIVE EKSTRA */
@media (max-width: 768px) {
    .tp-product-details-add-to-cart-btn,
    .tp-product-details-buy-now-btn {
        font-size: 15px !important;
    }
}