@charset "UTF-8";

.introduction {
    margin-bottom: 50px;
    padding: 0;
    color: #05a80b;
    border: none;
    line-height: 2;
    font-weight: bold;
}

.explanation {
    margin-bottom: 69px;
}

.explanation h2 {
    margin-bottom: 50px;
    font-size: 30px;
    font-weight: bold;
    color: #05a80b;
    text-align: center;
    letter-spacing: 1.5px;
    line-height: 1.2;
}

.explanation div {
    margin: 1em 0;
}

.explanation div.contact {
    width: fit-content;
    margin-top: 50px;
    margin-bottom: 0;
    padding: 16px 30px 18px;
    font-weight: bold;
    background: #ffffff;
    border: solid 1px #05a80b;
    line-height: 2.25;
}

.explanation div.contact span {
    font-size: 24px;
    color: #05a80b;
    letter-spacing: 1.2px;
    line-height: 1.2;
}

#form {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    padding: 110px 0 60px;
    background: #f5f5f5;
}

.wrapper {
    width: 720px;
    margin: 0 auto;
}

h2.ttl_main {
    margin-bottom: 40px;
    line-height: 1.5;
}

h2.ttl_main::before{
    margin: 0 19px 0 0;
}

.caution {
    font-size: 12px;
    color: #05a80b;
    letter-spacing: .6px;
    line-height: 2;
}

dl {
    display: flex;
    flex-wrap: wrap;
    margin: 63px 0 0;
}

dt,
dd {
    margin: 0 0 40px;
    padding-bottom: 30px;
    border-bottom: solid 1px #e0e0e0;
}

dt {
    width: calc(100% - 530px);
    font-weight: bold;
}

dt label {
    vertical-align: middle;
}

span.required::after,
dt label.required::after {
    content: '必須';
    margin-left: 10px;
    padding: 2px 6px;
    color: #07c300;
    font-size: 12px;
    font-weight: normal;
    border: 1px solid #07c300;
}

span.required::after {
    margin-left: 0;
}

dd {
    width: 530px;
}

dd ul {
    display: flex;
    gap: 40px;
}

input[type='text'],
input[type='tel'],
input[type='email'],
textarea {
    padding: 8px 15px;
    font-size: 16px;
    border: solid 1px #e0e0e0;
    border-radius: 3px;
}

input[type='radio'] {
    margin-right: 5.5px;
    border: solid 1px #e0e0e0;
}

textarea {
    width: 100%;
    height: 230px;
    line-height: 30px;
}

#name {
    width: 50%;
}

#address {
    width: 520px;
}

#phone_number {
    width: 200px;
}

#email {
    width: 460px;
}

.notice {
    margin-top: 10px;
    font-size: 12px;
    color: #868686;
    letter-spacing: .6px;
    line-height: 3;
}

.error {
    margin: 0 0 5px;
    font-size: 16px;
    font-weight: bold;
    color: #c70505;
}

.password {
    display: flex;
    justify-content: space-evenly;
    margin: -30px 0 60px;
    text-align: center;
}

/* ボタンエリア */
.button_area {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 0 auto;
}

.button_area a,
.button_area button {
    width: 300px;
    height: 80px;
    padding: 25px 0;
    text-align: center;
    font-weight: bold;
    border: none;
    font-size: 18px;
    letter-spacing: .9px;
    line-height: 1;
}

.button_area .next {
    color: #faf7ec;
    background: #05a80b;
}

.button_area .next::after{
    content: '';
    display: inline-block;
    background: url('../parts/icon_arrow_w.svg') no-repeat;
    width: 5.62px;
    height: 10.24px;
    background-size: contain;
    margin-left: 10px;
    margin-top: 5px;
}

.button_area .back {
    color: #05a80b;
    background: #ffffff;
    border: 1px solid #05a80b;
}

/* 確認画面 */
.confirm_p main {
    max-width: 960px;
}

.confirm_p .ttl_area{
    margin-bottom: 117px;
}

.confirm_p .explanation{
    margin: 0 0 65px;
}

.confirm_p .explanation h2{
    margin: 0 0 40px;
}

.confirm_p #form{
    padding: 98px 0 90.5px;
}

.confirm_p dl {
    padding-top: 40.5px;
    margin-top: 40px;
    border-top: solid 1px #e0e0e0;
    border-bottom: solid 1px #e0e0e0;
    margin-bottom: 50.5px;
}

.confirm_p dt,
.confirm_p dd {
    margin-bottom: 50px;
    padding: 0;
    border: none;
}

.confirm_p dt:last-child,
.confirm_p dd:last-child{
    margin-bottom: 40px;
}

.confirm_p dt {
    font-weight: 500;
    color: #868686;
}

.confirm_p .button_area .next {
    margin: 0;
}

/* 完了画面 */
.complete_p .ttl_area{
    margin-bottom: 112px;
}

.complete_p main{
    max-width: 960px;
}

.complete_p .explanation{
    margin-bottom: 65px;
    line-height: 1.8571;
}

.complete_p .button_area .next{
    width: 300px;
    height: 80px;
    line-height: inherit;
}

/* 896px以下 */

@media screen and (max-width: 896px) {
    #container:not(.free_page) .ttl_area{
        margin-bottom: 30px;
    }

    .introduction{
        margin: 0 0 40px;
    }

    .explanation{
        font-size: 13px;
        letter-spacing: .65px;
        margin: 0 0 50px;
    }

    .explanation h2{
        font-size: 20px;
        letter-spacing: 1px;
        line-height: 1.3;
    }

    .explanation div.contact{
        margin-top: 39px;
        max-width: 250px;
        padding: 10px 20px 11px;
    }

    #form{
        margin: 0 -20px;
        padding: 40px 20px 50.76px;
    }

    h2.ttl_main{
        margin: 0 0 27px;
    }

    .wrapper{
        width: auto;
    }

    dl{
        margin: 30px 0 0;
        flex-direction: column;
    }

    dt{
        font-size: 14px;
        letter-spacing: .7px;
        font-weight: 500;
        line-height: inherit;
        margin: 0 0 10px;
        padding: 0;
        border: none;
        width: auto;
    }

    dd{
        margin: 0 0 25px;
        padding: 0 0 20px;
        width: auto;
    }

    dd ul{
        gap: 20px;
    }

    .notice{
        line-height: inherit;
    }

    input[type='text'], input[type='tel'], input[type='email'], textarea{
        width: auto;
        height: 40px;
        font-size: 14px;
    }

    label{
        font-size: 14px;
        letter-spacing: .7px;
    }

    input[type='radio']{
        width: 15px;
        height: 15px;
        margin-right: 6px;
    }

    #name{
        max-width: 200px;
    }

    #address, #email, textarea{
        max-width: 570px;
        width: 100%;
    }

    textarea{
        font-size: 14px;
        line-height: 26px;
        height: 144px;
    }

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

    .button_area .next,
    .button_area .back {
        width: 155px;
        padding: 0 17px;
        font-size: 14px;
        letter-spacing: .7px;
        height: 50px;
    }

    .button_area .back {
        margin: 35px 0 0;
    }

    .password {
        flex-direction: column;
        margin: -20px 0 60px;
    }

    .remember {
        margin: 0 0 25px;
        text-align: center;
    }

    .confirm_p #form{
        padding: 40px 20px 50.76px;

    }

    .confirm_p dl{
        padding-top: 32px;
        margin-top: 25px;
    }

    .confirm_p dt{
        margin: 0 0 10px;
        line-height: 1.7142;
    }

    .confirm_p dd{
        margin-bottom: 30px;
        font-size: 14px;
        letter-spacing: .7px;
        line-height: 1.7143;
    }

    .confirm_p .button_area{
        gap: 25px;
    }

    .confirm_p .button_area .next,
    .confirm_p .button_area .back{
        width: 185px;
        height: 50px;
        padding: 0 16px;
        margin: 0;
    }

    /* 完了画面 */
    .complete_p .ttl_area{
        margin-bottom: 34px;
    }

    .complete_p main{
        max-width: 960px;
    }

    .complete_p .explanation{
        margin-bottom: 40px;
    }

    .complete_p .explanation h2{
        margin: 25.24px;
    }

    .complete_p .button_area .next{
        width: 185px;
        height: 50px;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0 0 2px;
    }

}

/* 480px以下 */

@media screen and (max-width: 480px) {
    .form {
        width: 90%;
    }

    .button_area .next,
    .button_area .back {
        width: auto;
        min-width: 155px;
    }

    h2.ttl_main::before{
        margin: 0 10px 0 0;
    }

    .upfile a, .f_tbl table th{
        font-family: inherit;
    }
}
