.ablauf-section {
    margin-top: 12vw;
    padding: 4vw 0 6vw 0;
    max-width: 100vw;
}

.ablauf-title {
    text-align: center;
    color: #fff;
    font-family: 'Poppins', sans-serif;
    font-size: 3.4vw;
    font-weight: 800;
    margin-bottom: 3.5vw;
    margin-top: 2vw;
    letter-spacing: -0.01vw;
}

.ablauf-timeline {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 3vw;
    max-width: 85vw;
    margin: 0 auto;
    position: relative;
    padding: 2vw 0 0 0;
}

.ablauf-timeline::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 0.3vw;
    border-bottom: 0.26vw dashed #4bf1f7cc;
    z-index: 0;
}

.ablauf-step {
    background: #212127;
    border-radius: 1vw 1vw 1.7vw 1.7vw;
    box-shadow: 0 0.6vw 2vw #16161950, 0 1vw 2.5vw #4bf1f716;
    width: 15vw;
    min-width: 13vw;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 1vw;
    margin-bottom: 2vw;
    position: relative;
    transition: transform 0.18s, box-shadow 0.21s;
}
.ablauf-step:hover {
    transform: translateY(-1vw) scale(1.045);
    box-shadow: 0 1.2vw 3.5vw #4bf1f744, 0 0.5vw 2vw #111c;
}

.ablauf-step-head {
    background: linear-gradient(90deg,#119ba6 65%,#4bf1f7 100%);
    color: #fff;
    font-size: 1.35vw;
    font-weight: 800;
    padding: 1vw 0 0.8vw 0;
    border-radius: 1vw 1vw 0 0;
    width: 100%;
    margin-bottom: 0;
    box-shadow: 0 0.11vw 0.4vw #4bf1f766;
    letter-spacing: 0.02vw;
}

.ablauf-step-body {
    display: flex;
    flex-direction: column;
    gap: 0.45vw;
    padding: 1.2vw 2vw 0.7vw 2vw;
    border-radius: 0 0 1vw 1vw;
}

.ablauf-step-title {
    color: #fff685;
    font-size: 1.2vw;
    font-weight: 800;
    margin: 0.5vw 0 0.4vw 0;
}

.ablauf-step-desc {
    color: #e6e7e9;
    font-size: 1vw;
    font-weight: 400;
    line-height: 1.28;
}

/* Step heights for "stufenartig" look */
.ablauf-step:nth-child(1) { height: 15vw; }
.ablauf-step:nth-child(2) { height: 15.5vw; }
.ablauf-step:nth-child(3) { height: 16vw; }
.ablauf-step:nth-child(4) { height: 16.5vw; }
.ablauf-step:nth-child(5) { height: 17vw; }

/* Timeline circle below each step */
.ablauf-step::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -3vw; /* mittig auf Linie, bei Bedarf feinjustieren */
    transform: translateX(-50%);
    width: 2.2vw;
    height: 2.2vw;
    background: #18181c;
    border: 0.32vw solid #4bf1f7;
    border-radius: 50%;
    z-index: 3;
    box-shadow: 0 0.08vw 1.1vw #4bf1f744;
}

/* --- Responsive Anpassung (bis 900px) --- */
@media (orientation:portrait) {
    .ablauf-section {
        padding: 6vw 0 6vw 0;
    }
    .ablauf-title {
        font-size: 7vw;
        padding: 0 2vw;
    }
    .ablauf-timeline {
        flex-direction: column;
        align-items: center;
        gap: 7vw;
        max-width: 97vw;
        padding: 4vw 0 0 0;
    }
    .ablauf-timeline::before {
        left: 50%;
        top: 0;
        bottom: unset;
        width: 0.36vw;
        height: 100%;
        border-bottom: none;
        border-left: 0.21vw dashed #4bf1f7cc;
    }
    .ablauf-step {
        width: 80vw;
        min-width: 0;
        margin-bottom: 6vw;
        padding-bottom: 2vw;
        height: auto !important;
    }
    .ablauf-step-head {
        font-size: 4vw;
        padding: 2vw 0 1vw 0;
    }
    .ablauf-step-title {
        font-size: 3vw;
        margin-top: 1vw;
    }
    .ablauf-step-desc {
        font-size: 2.1vw;
    }
    .ablauf-step::after {
        width: 3vw;
        height: 3vw;
        left: 50%;
        top: 100%;
        bottom: unset;
    }
}
