.step-wrap {
    counter-reset: count;
    margin: 2em 0;
    position: relative;
}

.step-content {
    padding: 1.3em 0 .3em 1em;
    margin: 0 0 1em 1em;
    position: relative;
    border-top: solid 2px #ddd;
}

.step-content::before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: -10px;
    border-style: solid;
    border-width: 17px 8px 0 8px;
    border-color: #ddd transparent transparent transparent;
}

.step-content::after {
    content: "";
    display: block;
    height: calc(100% - 36px);
    border-left: dashed 4px #ddd;
    position: absolute;
    top: 16px;
    left: -4px;
}

.step-label {
    padding: 3px 20px 3px 15px;
    color: #fff;
    font-weight: bold;
    position: absolute;
    top: -18px;
    left: -20px;
    background: #6ab5a5;
    border-radius: 20px;
    z-index: 1;
}

.step-label::after {
    counter-increment: count;
    content: counter(count);
    position: relative;
    left: .3em;
}

.step-title {
    font-weight: bold;
    font-size: 120%;
}

.step-body {
    margin-top: .5em;
    padding: 0 0 1em;
}

.step-wrap > :last-child {
    box-shadow: 5px 7px 0 -5px #ddd;
}

.step-wrap > :last-child::before, .step-wrap > :last-of-type::after {
    display: none;
}
