:root {
    --primary: #1e40af;
    --secondary: #1e3a8a;
    --accent: #3b82f6;
}

.gradient-bg {
    background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
}

.parallax {
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.animated-border {
    position: relative;
}

.animated-border::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 3px;
    background-color: var(--accent);
    transition: width 0.3s ease;
}

.animated-border:hover::after {
    width: 100%;
}

/* Reveal on scroll animation */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.7s cubic-bezier(0.4,0,0.2,1), transform 0.7s cubic-bezier(0.4,0,0.2,1);
}

.reveal.active {
    opacity: 1;
    transform: none;
}

@media (max-width: 768px) {
    .parallax {
        background-attachment: scroll;
    }
}