/* style.css */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

html { scroll-behavior: smooth; }
body { font-family: 'Inter', system-ui, sans-serif; }

/* ------------------------------------------------
   FORMULAR VALIDIERUNG
   ------------------------------------------------ */
.input-error {
    border-color: #EF4444 !important;
    background-color: #FEF2F2 !important;
}
.input-error:focus {
    ring-color: #EF4444 !important;
}

.radio-group-error {
    border: 1px solid #EF4444;
    padding: 10px;
    border-radius: 0.75rem;
    background-color: #FEF2F2;
}

.error-message {
    display: none;
    color: #EF4444;
    font-size: 0.75rem;
    margin-top: 0.25rem;
    font-weight: 500;
}

.has-error .error-message {
    display: block;
}


/* ------------------------------------------------
   NAVIGATION
   ------------------------------------------------ */
#main-nav {
    transition: background-color 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

/* 1. MAGIC NAV (Startseite): Startet Transparent, Text Weiß */
.magic-nav {
    background-color: transparent;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
.magic-nav .nav-link, 
.magic-nav .brand-text,
.magic-nav button {
    color: #ffffff; 
}
/* Hover Effekt auf Startseite oben */
.magic-nav .nav-link:hover { color: #50E3C2; }


/* 2. SCROLLED STATE (Für BEIDE Varianten) */
/* Erzwingt dunklen Text auf weißem Hintergrund - FIX FÜR LESBARKEIT */
.nav-scrolled {
    background-color: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 20px -5px rgb(0 0 0 / 0.1);
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    border-bottom: none !important;
}

/* WICHTIG: Überschreibt alle Textfarben auf Primary (Dunkelblau) wenn gescrollt */
.nav-scrolled .nav-link,
.nav-scrolled .brand-text,
.nav-scrolled button#mobile-menu-button {
    color: #050A30 !important; 
}
.nav-scrolled .nav-link:hover { color: #50E3C2 !important; }

/* Spezifisch für den Kontakt-Button (CTA) - Immer Grün */
.nav-cta-button {
    background-color: #50E3C2 !important; /* Accent */
    color: #050A30 !important; /* Primary Text */
    transition: all 0.3s ease;
}
.nav-cta-button:hover {
    background-color: #ffffff !important;
    color: #050A30 !important;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
/* Wenn gescrollt, soll der Button sich nicht im Text verlieren, bleibt grün */
.nav-scrolled .nav-cta-button {
    background-color: #50E3C2 !important;
    color: #050A30 !important;
}
.nav-scrolled .nav-cta-button:hover {
    background-color: #050A30 !important;
    color: #ffffff !important;
}


/* 3. STATIC NAV (Unterseiten): Immer Weiß, Text Dunkel */
.static-nav {
    background-color: #ffffff;
    border-bottom: 1px solid #f3f4f6;
}
.static-nav .nav-link,
.static-nav .brand-text,
.static-nav button {
    color: #050A30; 
}
.static-nav .nav-link:hover { color: #50E3C2; }


/* Hover-Unterstrich Animation */
.nav-link { position: relative; padding-bottom: 2px; }
.nav-link::after {
    content: ''; position: absolute; width: 0; height: 2px; bottom: 0; left: 0;
    background-color: #50E3C2; transition: width 0.3s ease-in-out;
}
.nav-link:hover::after { width: 100%; }

/* Mobile Menu Fix */
#mobile-menu { border-top: 1px solid #eee; }


/* ------------------------------------------------
   SONSTIGE STYLES
   ------------------------------------------------ */
/* FAQ */
.faq-item { border-bottom: 1px solid #e5e7eb; transition: all 0.3s ease; }
.faq-item:last-child { border-bottom: none; }
.faq-button { width: 100%; text-align: left; padding: 1.5rem 0; display: flex; justify-content: space-between; align-items: center; background: transparent; cursor: pointer; }
.faq-content { max-height: 0; overflow: hidden; transition: max-height 0.5s cubic-bezier(0, 1, 0, 1), opacity 0.4s ease, margin 0.3s ease; opacity: 0; }
.faq-item.active .faq-content { max-height: 1000px; opacity: 1; margin-bottom: 1.5rem; }
.icon-wrapper { position: relative; width: 24px; height: 24px; }
.icon-line { position: absolute; background-color: #050A30; transition: transform 0.3s ease, background-color 0.3s ease; }
.icon-line.h { width: 100%; height: 2px; top: 11px; left: 0; }
.icon-line.v { width: 2px; height: 100%; top: 0; left: 11px; }
.faq-item.active .icon-line.v { transform: rotate(90deg); }
.faq-item.active .icon-line.h { transform: rotate(180deg); }

/* Hero Effects */
.shimmer-text { background: linear-gradient(to right, #ffffff 20%, #50E3C2 50%, #ffffff 80%); background-size: 200% auto; color: #fff; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: shine 5s linear infinite; }
@keyframes shine { to { background-position: 200% center; } }
.word-container { display: inline-block; position: relative; vertical-align: bottom; }
.blur-in { animation: textBlurIn 0.8s cubic-bezier(0.2, 0, 0.2, 1) forwards; }
.blur-out { animation: textBlurOut 0.8s cubic-bezier(0.2, 0, 0.2, 1) forwards; position: absolute; top: 0; left: 0; }
@keyframes textBlurIn { 0% { filter: blur(12px); opacity: 0; transform: translateY(20px); } 100% { filter: blur(0); opacity: 1; transform: translateY(0); } }
@keyframes textBlurOut { 0% { filter: blur(0); opacity: 1; transform: translateY(0); } 100% { filter: blur(12px); opacity: 0; transform: translateY(-20px); } }

.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease-out, transform 0.6s ease-out; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.hero-animate-1 { animation: fadeInUp 0.8s ease-out 0.1s backwards; }
.hero-animate-2 { animation: fadeInUp 0.8s ease-out 0.3s backwards; }
.hero-animate-3 { animation: fadeInUp 0.8s ease-out 0.5s backwards; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.solution-card { transition: all 0.3s ease-in-out; background-size: cover; background-position: center; }
.solution-card:hover { transform: translateY(-8px); box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1); }
.card-gradient { background: linear-gradient(0deg, rgba(5,10,48,0.85) 0%, rgba(5,10,48,0) 100%); }
