.flow01 {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.flow_box {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 6.5vw;
    width: 100%;
}

.flow_circle {
    width: 18vw;
    max-width: 250px;
    min-width: 100px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.flow_circle img {
    width: 100%;
    height: auto;
    display: block;
}

.flow_arrow {
    position: absolute;
    top: 100%;
    /* img のすぐ下に配置 */
    left: 50%;
    /* 左右中央 */
    transform: translateX(-50%);
    width: 3px;
    height: 6.5vw;
    max-height: 150px;
    background-color: #10AF67;
    border-radius: 9999px;
}

.flow_arrow::before,
.flow_arrow::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 30px;
    border-radius: 9999px;
    background-color: #10AF67;
    transform-origin: bottom center;
}

.flow_arrow::before {
    transform: translateX(-50%) rotate(45deg);
}

.flow_arrow::after {
    transform: translateX(-50%) rotate(-45deg);
}

.flow_textblock {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-left: 20px;

}

.flow_textbox {
    background: #C4F0DC;
    padding: 20px;
    border-radius: 10px;
}

.flow_textblock h3 {
    font-size: clamp(1rem, calc(0.92rem + 0.3999999999999999vw), 1.4rem);
    text-align: center;
}

.flow_textblock p {
    text-align: center;
    font-size: .9em
}

/* レスポンシブ対応 */
@media only screen and (max-width: 1024px) {

    .flow_textblock {
        text-align: center;
    }
}

@media only screen and (max-width: 599px) {
    .flow_arrow {
        height: 31vw;
    }

    .flow_arrow::before,
    .flow_arrow::after {
        height: 20px;
    }
}
