body, div, p, ol, ul, li, dl, dt, dd, h1, h2, h3, h4, h5, h6 img {
    margin: 0;
    padding: 0;
}

.fv_w > hgroup.up_title {
    width: calc(100% - 16px);
    max-width: 1116px;
    margin: 0 auto;
}

.up_title p {
    width: fit-content;
    padding: 0 8px;
    font-weight: bold;
    background-color: #ed1c24;
}

form {
    width: calc(100% - 16px);
    max-width: 945px;
    margin: 70px auto;
    color: #000;
}

.border {
    border: solid #D9D9D9 1px;
    background-color: #F5F5F5;
}

.form_item {
    width: 100%;
    padding: 16px 0;
}

.radio_box label {
    padding-right: 16px;
}

.form_item > label {
    padding: 0;
    padding-bottom: 16px;
    display: flex;
    align-items: center;
}

.form_item > label > .req {
    padding: 4px 16px;
    color: #fff;
    background-color: #ed1c24;
    border-radius: 16px;
    font-weight: bold;
    margin-right: 16px;
}

.form_item > label > .any {
    padding: 4px 16px;
    color: #fff;
    background-color: #D9D9D9;
    border-radius: 16px;
    font-weight: bold;
    margin-right: 16px;
}

input.text_box,
textarea.text_box {
    width: 100%;
    border-color: #D9D9D9;
    border-radius: 12px;
    padding: 16px;
}

@media (min-width: 768px) {
    .form_item {
        display: flex;
        align-items: center;
    }

    .form_item > label {
        padding: 0;
        flex-basis: 300px;
        flex-shrink: 0;
   }
}

form > button.btn {
    margin: 40px auto;
}

form .con {
    text-align: center;
    margin: 0 auto;
}

/* 確認画面 */
.confirm ul {
    width: calc(100% - 16px);
    max-width: 945px;
    margin: 70px auto;
    color: #000;
}

.confirm ul li {
    width: 100%;
    border-bottom: solid #e5e5ef 1px;
}

.confirm ul dl {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 0;
}

.confirm ul li dl dt {
    color: #106fb1;
    font-weight: bold;
    padding-bottom: 8px;
}

.confirm form .btn_wrapper {
    width: calc(100% - 16px);
    max-width: 600px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
}

@media (min-width: 768px) {
    .confirm ul dl.item {
        display: flex;
    }

    .confirm ul li dl dt {
        padding: 0;
        flex-basis: 300px;
        flex-shrink: 0;
    }
}

.btn.correction {
    color: #929292;
}

.btn.correction .img-wr {
    border: 1px solid #929292;
}

.btn.send {
    color: #ED1C24;
}

.btn.send .img-wr {
    border: 1px solid #ED1C24;
}

.btn-con.back {
    margin: 0;
    margin-left: 20px;
}

.bgout.back {
    transform: scaleX(-1);
}

.bgout.back:before {
    background-color: #929292;
}

.bgout.next:before {
    background-color: #ED1C24;
}

/* 送信完了画面 */
.completion {
    color: #000;
}

.completion > div {
    width: 100%;
    max-width: 40rem;
    margin: 0 auto;
}

.completion > div p {
    margin: 40px auto;
    text-align: center;
}

.completion > div > a {
    margin: 40px auto;
}