.stepItem {
    border: 1px solid #000;
    border-radius: 8px;
    display: flex;
    align-items: center;
    padding: 24px;
    position: relative;
    margin-bottom: 30px;
}

.stepItem::after {
    content: "";
    display: block;
    width: 1px;
    height: 30px;
    background: #000;
    position: absolute;
    bottom: -30px;
    left: 50%;
}

.stepItem:last-child::after {
    display: none;
}

.stepItem>div {
    display: flex;
    align-items: center;
}

#contents .stepItem p {
    margin: 0;
}

#contents p.stepTitle {
    font-weight: bold;
    width: 17em;
    text-align: center;
}

#contents h3.gray {
    background: #DDD;
    padding: 10px 20px;
    border-bottom: none;
    color: #000;
    font-weight: normal;
}


@media screen and (max-width:599px) {
    .stepItem {
        flex-direction: column;
        align-items: flex-start;
        padding: 16px 24px;
        gap: 12px 0;
    }

    #contents p.stepTitle {
        text-align: left;
        padding-left: 10px;
        font-size: 1.125rem;
        width: 100%;
    }

    #contents p.stepTitle br {
        display: none;
    }
}