@import url('https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&family=Oswald:wght@200..700&display=swap');

*{
    box-sizing: border-box;
    line-height: inherit;
    font-weight: inherit;
    font-size: inherit;
    color: inherit;
    font-family: inherit;
}
html,body,div,h1,h2,h3,h4,h5,h6,ul,ol,li,p,dl,dt,dd{
    padding: 0;
    margin: 0;
}
html{
    font-size: 10px;
}
body{
    font-family:"BIZ UDPGothic", sans-serif;
    line-height: 1.5;
    color: #131313;
}
ol,ul,li{
    list-style: none;
}
img{
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}
a{
    text-decoration: none;
    color: #0393E7;
}
input[type="text"]{
    width:100%;
    font-size: 1.6rem;
}
.flex{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.en{
    font-family: 'DIN', 'Oswald', sans-serif;
}
h3.title{
    text-align: center;
    font-weight: 700;
    font-size: 2.4rem;
    line-height: 1.2;
    letter-spacing: .4rem;
    margin: 0 0 4rem;
}
h3.title .en{
    font-size: 1.4rem;
    letter-spacing: 0.1rem;
    color: #0393E7;
    margin-bottom: .4rem;
}
.dl_table{
    display: table;
    width: 100%;
    border-spacing: collapse;
}
.dl_table > dl{
    display: table-row;
    width: 100%;
}
.dl_table > dl > dt,
.dl_table > dl > dd{
    display: table-cell;
}
.sp{
    display: none;
}
.btn{
    display: block;
    position: relative;
    z-index: 1;
    width: 28.4rem;
    height: 5.2rem;
    border-radius: 2.6rem;
    background: linear-gradient(90deg, #109EE6 0%, #77E0E4 100%);
    box-shadow: 0px 0px 24px 0px rgba(3, 147, 240, 0.4);
    cursor: pointer;
}
.btn.back{
    background: linear-gradient(90deg, #ddd 0%, #bbb 100%);
}
.btn:before{
    content: "";
    position: absolute;
    display: block;
    width: 28.4rem;
    height: 5.2rem;
    top: 0;
    left: 0;
    border-radius: 2.6rem;
    transition: opacity .3s ease-out;
    background: linear-gradient(90deg, #FFFFFF 0%, #D9FEFF 100%);
    opacity: 0;
    z-index: 2;
}
.btn:hover:before{
    opacity: 1;
}
.btn span{
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: 700;
    font-size: 1.7rem;
    letter-spacing: .23rem;
    text-align: center;
    color: #fff;
    transition: color .3s ease-out;
    z-index: 3;
    width: 100%;
}
.btn:hover span{
    color: #0393E7;
}
.btn[disabled]{
    opacity: 0.6;
    pointer-events: none;
}

body{
    background: linear-gradient(180deg, #FFFFFF 10.58%, #EEF7FC 30.77%, #FFFFFF 45%, #EEF7FC 60%, #DAF2FF 100%);
    height: auto;
}

#wrapper{
    position: relative;
    min-height: 100vh;
    padding-bottom: 4.6rem;
}
.content{
    padding-bottom: 5rem;
}
h2{
    font-weight: 700;
    font-size: clamp(1.8rem, 1.589rem + 0.901vw, 2.4rem);
    line-height: 134%;
    letter-spacing: .4rem;
    text-align: center;
}
.attention{
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.75;
    text-align: center;
    margin: 2rem 0 0;
}
.msg{
    font-weight: 500;
    font-size: 1.2rem;
    line-height: 134%;
    text-align: center;
    margin: 3rem 0 0;
    color: #cc0000;
}
.form{
    width: 90%;
    max-width: 83.2rem;
    margin: 4.2rem auto 0;
    background: #fff;
    border-radius: .8rem;
    padding: 7.7rem 8rem;
    box-shadow: 24px 24px 24px 0px rgba(3, 147, 240, 0.2);
}
.btn_wrap{
    margin: 4.2rem auto 0;
    text-align: center;
}
.btn_wrap.flex{
    justify-content: center;
    gap: 2rem;
}

.dl_table{
    font-size: 1.4rem;
}
.dl_table dt{
    width: 15rem;
    position: relative;
}
.dl_table dt .require:before{
    content: "必須";
    display: block;
    color: #fff;
    border-radius: .2rem;
    padding: 0.2rem 0.75rem;
    font-size: 1.1rem;
    background: #cc0000;
    position: absolute;
    right: 0;
    top: .5rem;
}
.dl_table dl + dl dt .require:before{
    top: 2.35rem;
}
.dl_table dt p{
    font-weight: 700;
}
.dl_table dd{
    width: calc(100% - 15rem);
    padding: 0 0 0 1rem;
}
.dl_table dl + dl dt{
    padding: 2rem 0 0 0;
}
.dl_table dl + dl dd{
    padding: 2rem 0 0 1rem;
}
.dl_table dd .flex{
    gap: 1rem;
}
.dl_table dd label:has(input[type="radio"]){
    display: block;
    width: fit-content;
    padding: 0.3rem 0 0.3rem 2.5rem;
    cursor: pointer;
    position: relative;
}
.dl_table dd .checkbox label{
    display: block;
    width: fit-content;
    padding: 0.3rem 0 0.3rem 2.5rem;
    position: relative;
    cursor: pointer;
}
.dl_table dd input[type="checkbox"],
.dl_table dd label input[type="radio"]{
    display: none;
}
.dl_table dd label:has(input[type="radio"]):before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0.4rem;
    z-index: 1;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    border: 1px solid #ccc;
}
.dl_table dd label:has(input[type="radio"]:checked):after{
    content: "";
    display: block;
    position: absolute;
    left: 0.3rem;
    top: 0.725rem;
    z-index: 1;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: linear-gradient(90deg, #109EE6 0%, #77E0E4 100%);
}
.dl_table dd .checkbox input[type="checkbox"] + label:before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0.4rem;
    z-index: 1;
    width: 1.5rem;
    height: 1.5rem;
    border: 1px solid #ccc;
}
.dl_table dd .checkbox input[type="checkbox"]:checked + label:after{
    content: "";
    display: block;
    position: absolute;
    left: 0.3rem;
    top: 0.725rem;
    z-index: 1;
    width: 1rem;
    height: 1rem;
    background: linear-gradient(90deg, #109EE6 0%, #77E0E4 100%);
}
.dl_table dd .separator span{
    display: block;
    width: 0.75rem;
    height: 1px;
    background: #aaa;
}
.code .upper{
    width: 10%;
    min-width: 6.5rem;
}
.code .lower{
    width: 14%;
    min-width: 10rem;
}
.privacy_policy > *{
    font-size: 1.25rem;
    line-height: 1.75;
}


footer{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
}
footer a{
    color: #fff;
}
.footer_wrap{
    position: relative;
    padding: 12.5vw 0 0;
}
.footer_bnr{
    position: relative;
    z-index: 1;
    width: 90%;
    max-width: 136rem;
    margin: 0 auto;
    background: #fff;
    border-radius: 1.6rem 1.6rem 0 0;
    padding: 8.5rem 0;
}
.footer_bnr_list .flex{
    justify-content: center;
    gap: 2rem 4.7rem;
}
.footer_bnr_list .flex > li{
    width: 24.2rem;
    height: 10.1rem;
    border: 1px solid #eee;
}
.copyright{
    color: #fff;
    background: #0086D5;
    padding: .8rem 5%;
}
.copyright > *{
    font-size: 1.2;
    line-height: 134%;
    letter-spacing: .1rem;
    text-align: center;
}
.copyright .flex{
    justify-content: center;
    gap: 2rem;
    margin-bottom: .4rem;
}

@media screen and (max-width: 767px){
    #wrapper{
        padding-bottom: 6rem;
    }
    .form{
        padding: 3rem 3.5rem;
        width: 100%;
    }
    .dl_table,
    .dl_table > dl,
    .dl_table > dl dt,
    .dl_table > dl dd{
        display: block;
        width: 100%;
    }
    .dl_table dl + dl dt{
        padding: 2.5rem 0 0 0;
    }
    .dl_table dl > dd,
    .dl_table dl + dl dd{
        padding: 1rem 0 0 0;
    }
    .btn_wrap.flex{
        flex-direction: column-reverse;
    }
    .dl_table dt .require:before{
        top: unset !important;
        bottom: 0;
    }
}

