/* Custom Styles & Tailwind Config */
:root {
    --glow-color: rgba(49, 107, 255, 0.5);
    --glow-color-hover: rgba(49, 107, 255, 0.7);
}

html, body {
    height: 100%;
}

body {
    font-family: 'Inter', sans-serif;
    background-color: #FFFFFF;
    color: #1F2937;
    overflow-x: hidden;
}

.gradient-heading {
    background: linear-gradient(to right, #111827, #4A5568);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Interaktiver Hintergrund */
#spotlight {
    background: radial-gradient(circle, rgba(49, 107, 255, 0.15) 0%, transparent 50%);
    transition: transform 0.3s ease-out;
    pointer-events: none;
}

#background-zoom {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: inherit;
    transform-origin: center;
    transition: transform 0.5s ease-out;
    pointer-events: none;
    z-index: -1;
}

#grid-pattern {
    background-image: 
        linear-gradient(to right, rgba(31, 41, 55, 0.05) 1px, transparent 1px), 
        linear-gradient(to bottom, rgba(31, 41, 55, 0.05) 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none;
}

/* Fade-in Animation */
.fade-in-section {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275), transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Animierter Border für Service-Karten */
.service-card {
    position: relative;
    background-color: #F9FAFB;
    border: 1px solid #E5E7EB;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.07);
}
.service-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border-radius: 0.75rem;
    border: 2px solid transparent;
    background: linear-gradient(120deg, transparent, var(--glow-color), transparent) border-box;
    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: destination-out;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    animation: rotate 4s linear infinite;
}
.service-card:hover::before { opacity: 1; }
@keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* Cursor-Glow für Buttons */
.cta-button { position: relative; overflow: hidden; }
.cta-button .glow {
    position: absolute; width: 100px; height: 100px;
    background: var(--glow-color-hover);
    border-radius: 50%; filter: blur(20px);
    opacity: 0; transition: opacity 0.3s ease;
    pointer-events: none;
}
.cta-button:hover .glow { opacity: 1; }

/* Scroll-Progress-Bar */
#progress-bar {
    position: fixed; top: 0; left: 0; height: 4px;
    background: #316bff;
    width: 0%; z-index: 100;
    transition: width 0.1s ease-out;
}

/* Animierte Prozesslinie & Schritte */
#process-line {
    transform: scaleY(0); transform-origin: top;
    transition: transform 1s ease-in-out;
}
#process.is-visible #process-line {
    transform: scaleY(1);
}
.process-step {
    opacity: 0;
    transform: translateX(-20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
#process.is-visible .process-step:nth-child(1) { transition-delay: 200ms; }
#process.is-visible .process-step:nth-child(2) { transition-delay: 400ms; }
#process.is-visible .process-step:nth-child(3) { transition-delay: 600ms; }
#process.is-visible .process-step:nth-child(4) { transition-delay: 800ms; }
#process.is-visible .process-step {
    opacity: 1;
    transform: translateX(0);
}

/* Scrolling Logo Bar */
.logo-scroller {
    display: flex;
    gap: 3rem;
    animation: scroll 60s linear infinite;
}
.logo-item {
    flex-shrink: 0;
    filter: grayscale(1) opacity(0.7);
}
@keyframes scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-100%); }
}
@media (prefers-reduced-motion) {
    .logo-scroller { animation: none; }
}

/* Staggered animation for service cards */
.service-card {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
#services.is-visible .service-card:nth-child(1) { transition-delay: 100ms; }
#services.is-visible .service-card:nth-child(2) { transition-delay: 200ms; }
#services.is-visible .service-card:nth-child(3) { transition-delay: 300ms; }
#services.is-visible .service-card:nth-child(4) { transition-delay: 400ms; }
#services.is-visible .service-card:nth-child(5) { transition-delay: 500ms; }

#services.is-visible .service-card {
    opacity: 1;
    transform: translateY(0);
}