/* ==============================================
TAILWIND CUSTOM FARBEN & BASIS-STILE
==============================================
*/
.bg-primary-green { background-color: #7dc5a0; }
.text-primary-green { color: #7dc5a0; }
.border-primary-green { border-color: #7dc5a0; }
.bg-green-gradient-start { background-image: linear-gradient(to right bottom, var(--tw-gradient-stops)); --tw-gradient-stops: #7dc5a0 var(--tw-gradient-via-position), #6bb394 var(--tw-gradient-via-position), #5ca087; }
.bg-green-gradient-hover { background-image: linear-gradient(to right bottom, var(--tw-gradient-stops)); --tw-gradient-stops: #6bb394 var(--tw-gradient-via-position), #5ca087 var(--tw-gradient-via-position), #4c8e7a; }
.from-primary-light { --tw-gradient-from: #e8f5ed; --tw-gradient-to: rgba(232, 245, 237, 0); }
.to-primary-dark { --tw-gradient-to: #6bb394; }
.border-primary-light { border-color: #a7e0c8; }
.text-primary-dark-alt { color: #5ca087; }
.bg-light-mint { background-color: #e8fdf2; }

/* ==============================================
SCROLL-ANIMATIONEN
==============================================
*/
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    transition-delay: var(--animation-delay, 0ms);
}
.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ==============================================
STYLING FÜR SPEZIFISCHE KOMPONENTEN
==============================================
*/

/* Service-Kacheln */
.service-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}
.service-card .icon-bubble {
    transition: transform 0.3s ease, background-color 0.3s ease;
}
.service-card:hover .icon-bubble {
    transform: scale(1.1);
}
.service-card .icon-svg {
    transition: transform 0.3s ease;
}
.service-card:hover .icon-svg {
    transform: rotate(6deg);
}

/* ==============================================
ELEGANTE DROPDOWN-ANIMATION (FÜR LEBENSLAUF)
==============================================
*/
details > summary {
    list-style: none;
}
details > summary::-webkit-details-marker {
    display: none;
}
details .grid {
    transition: grid-template-rows 0.5s ease-in-out, opacity 0.3s ease-in-out 0.1s;
}
details .grid > div {
    min-height: 0;
}

/* ==============================================
WOW-EFFEKT ANIMATIONEN
==============================================
*/
@keyframes gradient-flow {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.hero-animated-bg {
    background: linear-gradient(to right bottom, #e8f5ed, #ffffff, #e8fdf2);
    background-size: 400% 400%;
    animation: gradient-flow 15s ease infinite;
}
@keyframes pulse-glow {
    0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); }
    70% { box-shadow: 0 0 0 12px rgba(16, 185, 129, 0); }
    100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}
.cta-pulse {
    position: relative;
    z-index: 10;
    animation: pulse-glow 2.5s infinite;
}

/* ==============================================
NEU: DYNAMISCHE NAVIGATION (HELL)
==============================================
*/
#main-nav {
    /* Standard-Zustand (oben): Hellgrau, solide */
    background-color: rgb(243 244 246); /* Entspricht 'bg-gray-100' */
    border-bottom: 1px solid rgb(229 231 235); /* 'border-gray-200' */
}
#main-nav.scrolled {
    /* Zustand nach dem Scrollen: Weiß, transparent, mit Schatten */
    background-color: rgba(255, 255, 255, 0.9); /* Entspricht 'bg-white/90' */
    @supports (backdrop-filter: blur(18px)) {
        backdrop-filter: blur(18px);
    }
    border-bottom: 1px solid rgba(229, 231, 235, 0.7); /* 'border-gray-200/70' */
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}
#main-nav.scrolled #nav-content {
    padding-top: 0.75rem; /* 12px */
    padding-bottom: 0.75rem; /* 12px */
}
/* Stile für Mobile Menu (damit es auch hellgrau ist) */
#mobile-menu {
    background-color: rgb(243 244 246); /* 'bg-gray-100' */
    border-top: 1px solid rgb(229 231 235); /* 'border-gray-200' */
}

/* ==============================================
NEU: SCROLL-SPY UNTERSTRICH
==============================================
*/
.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0%;
    height: 3px;
    background-image: linear-gradient(to right, #10b981, #06b6d4); /* Smaragd zu Cyan */
    border-radius: 2px;
    transition: width 0.3s ease-in-out;
}
/* Aktiv-Zustand (per JS) ODER Hover-Zustand */
.nav-link.active::after,
.nav-link:hover::after {
    width: 100%;
}
/* NEU: Aktiver Link-Text wird grün */
.nav-link.active,
.nav-link:hover {
    color: #059669; /* Entspricht 'text-emerald-600' */
}
/* Stellt sicher, dass mobile Links keinen Unterstrich bekommen */
#mobile-menu .nav-link::after {
    display: none;
}
/* ... aber mobile Links werden trotzdem farbig */
#mobile-menu .nav-link.active {
    color: #059669; /* 'text-emerald-600' */
    background-color: #ECFDF5; /* 'bg-emerald-50' */
}


/* ==============================================
NEU: SWIPER STYLING (Getrennt)
==============================================
*/

/* --- Allgemeine Swiper-Farben & Pfeile --- */
:root {
    --swiper-theme-color: #10b981; /* Tailwind 'emerald-500' */
}
.swiper-button-prev,
.swiper-button-next {
    color: var(--swiper-theme-color);
}
.swiper-pagination-bullet-active {
    background: var(--swiper-theme-color);
}

/* --- 1. Header "Cards" Slider --- */
.header-swiper {
    width: 100%;
    height: 500px;
}
.header-swiper .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.5rem; /* 24px, passt zu rounded-3xl */
    overflow: hidden; /* Stellt sicher, dass das Bild die Ecken abrundet */
    width: 100% !important;
    height: 100% !important;
    flex-shrink: 0 !important;
}
.header-swiper .swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* Pagination für Header-Swiper (Punkte unten) */
.header-swiper .swiper-pagination {
    position: absolute;
    bottom: 15px !important;
    left: 50%;
    transform: translateX(-50%);
    width: auto !important;
}
.header-swiper .swiper-pagination-bullet {
    background: #ffffff; /* Weiße inaktive Punkte */
    opacity: 0.7;
}
.header-swiper .swiper-pagination-bullet-active {
    background: var(--swiper-theme-color); /* Aktiver Punkt in Akzentfarbe */
    opacity: 1;
}

/* --- 2. Praxis-Galerie Slider --- */
.praxis-swiper {
    width: 100%;
    height: 500px;
}
.praxis-swiper .swiper-slide {
    text-align: center;
    font-size: 18px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100% !important;
    height: 100% !important;
    flex-shrink: 0 !important;
}
.praxis-swiper .swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.praxis-swiper .swiper-button-prev,
.praxis-swiper .swiper-button-next {
    color: #ffffff;
}
.praxis-swiper .swiper-pagination-bullet {
    background: #ffffff;
    opacity: 0.5;
}
.praxis-swiper .swiper-pagination-bullet-active {
    background: #ffffff;
    opacity: 1;
}

#back-to-top {
    transition-property: opacity, visibility, transform;
    transition-duration: 300ms;
}
#back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
}

/* Custom Animations for 404 Page */
@keyframes bounceSlow {
    0%, 100% {
        transform: translateY(-5%);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }
    50% {
        transform: translateY(0);
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}
.animate-bounce-slow {
    animation: bounceSlow 3s infinite;
}

/* Z-Index Fix für 3D-Elemente */
#main-nav {
    /* Diese Zeile zwingt die Navigation in einen eigenen Kontext
       und hebt sie über alle 3D-transformierten Elemente. */
    transform: translateZ(0);
}