/* Custom Animation Classes - Karagöz Emlak & Dekorasyon
 * Extensions of animate.css library with custom animations
 */

/* Base animation styles */
.animated {
    visibility: visible !important;
}

/* Fade In animations with different durations */
.fade-in-100 {
    animation: fadeIn 1s;
}

.fade-in-200 {
    animation: fadeIn 2s;
}

.fade-in-300 {
    animation: fadeIn 3s;
}

/* Slide in from directions */
.slide-in-left {
    animation: slideInLeft 1s both;
}

.slide-in-right {
    animation: slideInRight 1s both;
}

.slide-in-up {
    animation: slideInUp 1s both;
}

.slide-in-down {
    animation: slideInDown 1s both;
}

/* Bounce effects */
.bounce-in {
    animation: bounceIn 1s both;
}

.bounce-in-up {
    animation: bounceInUp 1s both;
}

/* Zoom effects */
.zoom-in {
    animation: zoomIn 1s both;
}

.zoom-in-up {
    animation: zoomInUp 1s both;
}

/* Custom delay classes */
.delay-100 {
    animation-delay: 0.1s;
}

.delay-200 {
    animation-delay: 0.2s;
}

.delay-300 {
    animation-delay: 0.3s;
}

.delay-400 {
    animation-delay: 0.4s;
}

.delay-500 {
    animation-delay: 0.5s;
}

.delay-600 {
    animation-delay: 0.6s;
}

.delay-700 {
    animation-delay: 0.7s;
}

.delay-800 {
    animation-delay: 0.8s;
}

.delay-900 {
    animation-delay: 0.9s;
}

.delay-1000 {
    animation-delay: 1s;
}

/* Animation speed classes */
.speed-300 {
    animation-duration: 0.3s;
}

.speed-500 {
    animation-duration: 0.5s;
}

.speed-700 {
    animation-duration: 0.7s;
}

.speed-1000 {
    animation-duration: 1s;
}

.speed-1500 {
    animation-duration: 1.5s;
}

.speed-2000 {
    animation-duration: 2s;
}

/* Hide element until animated */
.animate__animated:not(.animated) {
    visibility: hidden;
}

/* Custom elements animations */
.hero-content .hero-title {
    animation-delay: 0.2s;
}

.hero-content .hero-subtitle {
    animation-delay: 0.4s;
}

.hero-content .hero-text {
    animation-delay: 0.6s;
}

.hero-content .hero-btn {
    animation-delay: 0.8s;
}

/* Section title animations */
.section-title {
    position: relative;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 0;
    width: 0;
    height: 3px;
    background-color: var(--primary-color, #007bff);
    transition: width 1s ease;
}

.section-title.animated::after {
    width: 80px;
}

/* Property card hover effects */
.property-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.property-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

/* Service box hover animations */
.service-box {
    transition: all 0.3s ease;
    overflow: hidden;
}

.service-box::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: rgba(0, 123, 255, 0.1);
    transition: all 0.5s ease;
    z-index: -1;
}

.service-box:hover::before {
    left: 0;
}

.service-box .icon {
    transition: transform 0.5s ease;
}

.service-box:hover .icon {
    transform: rotateY(180deg);
}

/* Counter animation enhancements */
.counter-item {
    position: relative;
    overflow: hidden;
}

.counter-item::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0;
    left: 0;
    background-color: var(--primary-color, #007bff);
    transition: width 1s ease;
}

.counter-item.animated::after {
    width: 100%;
}

/* Back to top button animations */
.back-to-top {
    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    transition: all 0.3s ease;
}

.back-to-top.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Navbar scroll animation */
.header {
    transition: all 0.3s ease;
}

.header.scrolled {
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    padding: 10px 0;
}

/* Footer widget title animation */
.footer-widget .widget-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 2px;
    background-color: var(--primary-color, #007bff);
}

/* Keyframe animations - Fade In */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translate3d(0, -30px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 30px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-30px, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translate3d(30px, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Slide In animations */
@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes slideInDown {
    from {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Bounce In animations */
@keyframes bounceIn {
    from {
        opacity: 0;
        transform: scale3d(0.3, 0.3, 0.3);
    }
    50% {
        opacity: 1;
    }
}

@keyframes bounceInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Zoom In animations */
@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale3d(0.3, 0.3, 0.3);
    }
    50% {
        opacity: 1;
    }
}

@keyframes zoomInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0) scale3d(0.9, 0.9, 0.9);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
    }
}