/* Animace pro vstup prvků */
[data-aos] {
    pointer-events: none;
}

[data-aos].aos-animate {
    pointer-events: auto;
}

/* Rozšířené hover efekty */
.btn {
    position: relative;
    z-index: 1;
}

.btn:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.1);
    border-radius: inherit;
    transform: translateY(5px) scale(0.8);
    opacity: 0;
    z-index: -1;
    transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.btn:hover:before {
    transform: translateY(0) scale(1);
    opacity: 1;
}

/* Pulzující efekt pro ikony */
@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(110, 173, 255, 0.4);
    }
    70% {
        box-shadow: 0 0 0 15px rgba(110, 173, 255, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(110, 173, 255, 0);
    }
}

.service-icon:hover {
    animation: pulse 1.5s infinite;
}

/* Float efekt pro karty */
@keyframes float {
    0% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
    100% {
        transform: translateY(0px);
    }
}

.service-card:hover {
    animation: float 3s ease-in-out infinite;
}

/* Shine efekt pro tlačítka */
.primary-btn, .secondary-btn {
    position: relative;
    overflow: hidden;
}

.primary-btn:after, .secondary-btn:after {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    bottom: -50%;
    left: -50%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.13) 50%, rgba(255, 255, 255, 0));
    transform: rotateZ(60deg) translate(-5em, 7.5em);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.7s ease, opacity 0.4s ease;
}

.primary-btn:hover:after, .secondary-btn:hover:after {
    transform: rotateZ(60deg) translate(1em, -9em);
    opacity: 1;
}

/* Složitější hover efekt pro karty článků */
.article-card {
    position: relative;
    overflow: hidden;
}

.article-card:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(225deg, rgba(110, 173, 255, 0.2) 0%, rgba(255, 75, 75, 0.1) 100%);
    opacity: 0;
    transition: var(--transition-medium);
    z-index: 1;
    pointer-events: none;
}

.article-card:hover:before {
    opacity: 1;
}

/* Scroll reveal animace */
.reveal {
    position: relative;
    transform: translateY(50px);
    opacity: 0;
    transition: all 1s ease;
}

.reveal.active {
    transform: translateY(0px);
    opacity: 1;
}

/* Postupné objevování prvků */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.stagger-item {
    opacity: 0;
}

.stagger-item.show {
    animation: fadeInUp 0.8s forwards;
}

/* Overlap efekt pro obrázky */
.image-overlap {
    position: relative;
}

.image-overlap::after {
    content: '';
    position: absolute;
    top: 15px;
    left: 15px;
    right: -15px;
    bottom: -15px;
    background-color: var(--primary-light);
    z-index: -1;
    border-radius: var(--border-radius-md);
    transition: all 0.4s ease;
}

.image-overlap:hover::after {
    top: 8px;
    left: 8px;
    right: -8px;
    bottom: -8px;
}

/* Parallax effect */
.parallax {
    position: relative;
    overflow: hidden;
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

/* Ripple effect */
.ripple-btn {
    position: relative;
    overflow: hidden;
}

.ripple-btn:after {
    content: "";
    background: rgba(255, 255, 255, 0.3);
    display: block;
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.ripple-btn:active:after {
    transform: scale(0);
    opacity: 1;
    transition: 0s;
}

/* 3D transform effect */
.transform-3d {
    transform-style: preserve-3d;
    transition: transform 0.5s;
}

.transform-3d:hover {
    transform: perspective(1000px) rotateX(5deg) rotateY(5deg);
}

/* Glowing border effect */
@keyframes glowing {
    0% {
        box-shadow: 0 0 5px var(--primary-color);
    }
    50% {
        box-shadow: 0 0 20px var(--primary-color), 0 0 30px var(--primary-light);
    }
    100% {
        box-shadow: 0 0 5px var(--primary-color);
    }
}

.glow-on-hover:hover {
    animation: glowing 1.5s infinite;
}