@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ */
/* v1.0 | 20080212 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

body {
    line-height: 1;
}

ol, ul {
    list-style: none;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

/* remember to define focus styles! */
:focus {
    outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
    text-decoration: none;
}

del {
    text-decoration: line-through;
}

/* tables still need 'cellspacing="0"' in the markup */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* _base */
* {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
}

html {
    font-size: 62.5%;
    -webkit-text-size-adjust: 100%;
}

body, input, textarea, select {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: normal;
    color: #333333;
    line-height: 1.8;
    font-size: 1.6rem;
}


@media only screen and (max-width: 767px) {

    body, input, textarea, select {
        font-size: 4vw;
    }

}

a {
  text-decoration: none;
  color: #333333;
}

main {
  display: block;
}

em {
  font-style: normal;
}

input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
  margin: 0;
  padding: 0;
}

/*----- COMMON -----*/
.img {
    line-height: 0.9;
    max-width: 100%;
}
.inner-box img{
    line-height: 0.9;
    max-width: 100%;
}
.header-inner,.footer-inner{
    max-width: 640px;
    margin: 0 auto;
    padding: 0 20px;
}
.inner {
    max-width: 640px;
    margin: 0 auto;
    background-color: #eff5ff;
    padding: 0 20px 40px;
}
.inner-box{
    background-color: #fff;
    
}
.inner-box p{
    font-size: clamp(16px, 4vw, 26px);
}
.txt {
    text-align: center;
}

.center {
    text-align: center;
}


/*----- HEADER -----*/
.header {
    border-bottom: 1px solid #999999;
}
.header .logo {
    line-height: 0.0;
    margin: 0 auto;
    width: 140px;
    padding: 15px 0;
}

/*----- FOOTER -----*/
.footer {
    background: #ededed;
    padding: 10px 0;
    margin-top: 125px;
}

.footer .copy {
    font-size: 1rem;
    text-align: center;
}

/*----- SECTION -----*/
/* .sec {
    padding-top: 60px;
    
} */

.sec .q_txt {
    line-height: 0.9;
    text-align: center;
}

.sec .caption {
    font-size: 1.4rem;
    margin-bottom: 20px;
    text-align: center;
}


/*------ 2405check -----*/

.txt_open{
    display: none;
}
.btn_area{
    background-color: #eff5ff;
    flex-wrap: wrap;
    font-size: 24px;
    display: flex;
    justify-content: center;
    margin: 0 20px 0;
}
.btn_area li{
    width: 50%;
    display: flex;
    margin-bottom: 0;
}
.btn_area li:first-child{
    justify-content: end;
}
.btn_area li:last-child{
    justify-content: start;
}
.btn_area li label {
    width: 50%;
    height: auto;
    line-height: 1.2em;
    display: inline-block;
    vertical-align: middle;
    position: relative;
    cursor: pointer;
    transition: 0.3s all ease-in-out;
    padding: 20px 0 20px 60px;
}
.btn_area input[type=radio] + label:before{
    display: block;
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    content: "";
    width: 18px;
    height: 18px;
    border: 1px solid #000;
}
.btn_area input[type=radio]:checked + label:after{
    display: block;
    position: absolute;
    content: "";
    width: 25px;
    height: 15px;
    border-bottom: 3px solid;
    border-left: 3px solid;
    border-color:  #ce0010;
    transform: rotate(-45deg);
    top: 50%;
    left: 20px;
    margin-top: -20px;
}
.form{
    padding-bottom: 40px;
}




.btn_area_check{
    display: flex;
    justify-content: left;
    flex-wrap: wrap;
    font-size: clamp(20px, 4vw, 26px);
    padding: 0 30px 30px;
}
.btn_area_check li{
    width: 100%;
    margin-bottom: 20px;
}

.btn_area_check li label {
    width: 100%;
    height: auto;
    line-height: 1.2em;
    display: inline-block;
    border: 2px solid #083284;
    vertical-align: middle;
    border-radius: 10px;
    position: relative;
    cursor: pointer;
    background: #fff;
    transition: 0.3s all ease-in-out;
    padding: 20px 20px 20px 60px;
    font-size: clamp(16px, 4vw, 26px);
}
.btn_area_check li input[type=checkbox] {
    display: none;
}

.btn_area_check input[type=checkbox] + label:before{
    display: block;
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    content: "";
    width: 18px;
    height: 18px;
    border: 1px solid #000;
}
.btn_area_check li input[type=checkbox]:checked + label{
    background-color: #eff5ff;
}
.btn_area_check li input[type=checkbox]:checked + label:before {
    content: "";
    display: block;

}
.btn_area_check input[type=checkbox]:checked + label:after{
    display: block;
    position: absolute;
    content: "";
    width: 25px;
    height: 15px;
    border-bottom: 3px solid;
    border-left: 3px solid;
    border-color:  #ce0010;
    transform: rotate(-45deg);
    top: 50%;
    left: 20px;
    margin-top: -20px

}
.btn_area_check li span{
  vertical-align: super;
  font-size: 0.6em;
}




.lastbtn{
    max-width: 520px;
    margin: 0 auto 60px;
}
.lastbtn a {
    pointer-events: none;
    width: 100%;
}
.lastbtn a .uncheck{
    display: block;
}
.lastbtn a .allcheck{
    display: none;
}

.lastbtn.allcheck a {
    pointer-events: auto;
}
.lastbtn.allcheck a .uncheck{
    display: none;
}
.lastbtn.allcheck a .allcheck{
    display: block;
}

.lastbtn.allcheck a:hover {
    opacity: 0.8;
}

.wrapper-footer-link {
    display: flex;
    justify-content: center;
    width: 100%;
    margin: 2em auto 0;
}
.wrapper-footer-link .link_law {
    display: block;
    width: fit-content;
    text-decoration: underline;
}

.sec-hide{
    display: none;
}
/* SP */
@media only screen and (max-width: 767px) {

    /*----- HEADER -----*/
    .header .logo {
        width: 25%;
    }

    .inner {
        padding: 0 10px 30px;
    }
    .spw {
        width: 100%;
        margin: 0 auto;
    }

    /*----- SECTION -----*/
    /* .sec .q_txt {
        margin: 0 -4% 20px;
    } */

   
    /*----- MV -----*/
    .mv area {
        top: 86%;
        left: 10%;
        width: 36%;
    }


    /*----- FOOTER -----*/
    .footer {
        margin-top: 60px;
    }

    .footer .copy {
        font-size: 2.5vw;
    }



    /*------ 2405check -----*/
    .btn_area{
        margin: 0 10px 0;
    }
    .btn_area li{
        width: 45%;
    }

    .btn_area li label{
        width: 100%;
    }
    .btn_area_check{
        padding: 0 10px 30px;
    }
    .btn_area_check li label {
        padding: 15px 20px 15px 60px;
    }
    .lastbtn {
        padding: 0 30px;
    }
    .sec .caption {
        font-size: 1.4rem;
        margin: 10px auto 20px;
        text-align: center;
    }

}