/* =====================================================================
   VIZYONIC — Animasyonlar
   Sade, amaca yönelik: fade / slide / scroll-reveal / hover / mikro etkileşim.
   Aşırı animasyondan kaçınılmıştır.
   ===================================================================== */

/* Scroll-reveal: JS IntersectionObserver ile .is-visible sınıfı eklenir */
[data-reveal] {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--delay, 0ms);
}
[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Kart / buton hover mikro etkileşimleri (style.css içindeki transition'larla uyumlu) */
.service-card, .feature-card, .blog-card, .pricing-card, .portfolio-card-trigger img {
    will-change: transform;
}

/* Sayaç sayıları için hafif giriş */
.stat-value {
    animation: countIn 0.6s ease both;
}
@keyframes countIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Testimonial slider yumuşak geçiş zaten style.css'te transform ile tanımlı */

/* Cookie banner ve back-to-top giriş animasyonu */
.cookie-banner {
    animation: slideUp 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes slideUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.back-to-top {
    animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Mobil menü açılış */
.main-nav ul li {
    opacity: 0;
    animation: navItemIn 0.4s ease forwards;
}
.main-nav.is-open ul li:nth-child(1) { animation-delay: 0.05s; }
.main-nav.is-open ul li:nth-child(2) { animation-delay: 0.1s; }
.main-nav.is-open ul li:nth-child(3) { animation-delay: 0.15s; }
.main-nav.is-open ul li:nth-child(4) { animation-delay: 0.2s; }
.main-nav.is-open ul li:nth-child(5) { animation-delay: 0.25s; }
.main-nav.is-open ul li:nth-child(6) { animation-delay: 0.3s; }
@media (min-width: 993px) {
    .main-nav ul li { opacity: 1; animation: none; }
}
@keyframes navItemIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Modal içerik hafif büyüme (style.css modalIn ile birlikte çalışır) */
