*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

body{
    font-family:'Arial', sans-serif;
    background:#f0fbfd;
    color:#333;
    background-image: url('../images/back_img.webp');
    width:100%;
    height:100%;
}

ul{
    list-style:none;

}

button, a{
    cursor:pointer;
}


button.blue, a.blue{
    background-color:#2D7E98;
    color:#FFF;
}
button.thin_blue{
    background:#13485B;
    color:#FFF;
}
button.gray{
    background-color:#B2B2B2;
    color:#FFF;
}
.t_blue{
    color:#2D7E98;
}
.t_gray{
    color:#B2B2B2;
}

.sp{
    display:none;
}
.pc{
    display:block;
}

input[type=radio] {
    accent-color:#2D7E98;
}

.container{
    padding: 20px;
}

header{
    max-width:1280px;
    margin:0 auto;
    padding:0 20px;
}

header img{
    margin:40px 0 0;
    width:194px;
    height:40px;
}

footer{
    background-color:#307E9A;
}

.footer_body{
    padding:44px 20px 86px;
}
.first_line{
    max-width:1160px;
    margin:0 auto 55px;
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:94px;
    color:#FFF;
}

.first_line dl dt{
    font-size:16px;
    font-weight:600;
    border-bottom:1px solid #ccc;
    padding-bottom:8px;
}

.first_line dl dd a{
    font-size:14px;
    margin-top:20px;
}


footer ul li{
    font-size:14px;
}
footer ul li p{
    border-bottom:1px solid #ccc;
    font-size:18px;
    padding-bottom:5px;
}

footer ul li ul{
    margin-top:10px;
    display:flex;
    flex-direction:column;
    gap:15px;
}

footer a{
    color: #FFF;
    text-decoration-line: none;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.footer_colum{
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: flex-end;
    max-width: 1260px;
    margin: 0 auto;
    gap:5px;
}

.footer_area_right{
    width: 1050px;
}

.footer_right_row1{
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 29px;
    gap:23px;
}
.footer_right_row1 img{
    width:187px;
}
.footer_right_row1 img + img {
    width: 104px;
}

.footer_nav{
    flex-direction: row;
    justify-content: flex-end;
    width:100%;
    border-top:1px solid #fff;
    padding-top:20px;
    display: flex;
    gap: 30px;
}

.footer_nav ul{
    display: flex;
    flex-direction: row;
    gap:30px;
}

.footer_nav ul li{
    font-size:12px;
}

.footer_area_right{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
}

small{
    background-color:#13485A;
    width:100%;
    display:none;
    text-align:center;
    color:#fff;
    padding:10px;
}

.footer_bottom_menu{
    display:none;
    grid-template-columns:repeat(3, 1fr);
}

.toggle_btn{
    display:none;
}

.footer_bottom_menu a{
    color:#fff;
    border:none;
    text-align:left;
    padding:12px;
    position:relative;
    font-size:14px;
}

.footer_bottom_menu a:first-child{
    background:#E8706F;
}
.footer_bottom_menu a:nth-child(2){
    background:#38BFA0;
}
.footer_bottom_menu a:nth-child(3){
    background:#E3864C;
}
.footer_area_left a{
    display:block;
}
.footer_area_left a img{
    width:179px;
}


.arrow_none_cirle::before,
.arrow_none_cirle::after{
	position:absolute;
	top:0;
	bottom:0;
	right:0;
	margin:auto;
	content:"";
	vertical-align:middle;
}
.arrow_none_cirle::before{
    content:'';
    width:20px;
    height:20px;
    -webkit-border-radius:50%;
    border-radius:50%;
}
.arrow_none_cirle::after{
    content:'';
    right:10px;
    width:5px;
    height:5px;
    border-top:1px solid #FFF;
    border-right:1px solid #FFF;
    -webkit-transform:rotate(45deg);
    transform:rotate(45deg);
}

.arrow_right{
    display:inline-block;
    width:8px;
    height:8px;
    margin-right:10px;
    border-top:2px solid #ffffff;
    border-right:2px solid #ffffff;
    transform:rotate(45deg);
}

.logo {
    height:40px;
}

main{
    margin:60px auto;
    max-width: 1160px;
    padding: 20px;
    box-sizing: border-box;
}

.section_container{
    text-align:center;
    max-width:1160px;
    margin:0 auto;
}

.main_page{
    background:#fff;
    border-radius:20px;
    padding:184px 20px 110px;
    border:5px solid #2D7E98;
    position:relative;
}

.title_area{
    position:relative;
}
.title_area p{
    font-size:20px;
    margin-bottom:40px;
    margin-top: 20px;
}

.title_area strong{
    font-size:28px;
}

.title_area h2{
    display:flex;
    justify-content:center;
    align-items:flex-end;
    line-height:1;
    font-size:28px;
    margin-top: 10px;
}

.title_area h2::before,.title_area h2::after{
    width:2px;
    height:28px;
    content:"";
    background-color:#000;
}

.title_area h2::before{
    margin-right: 0.5em;
    transform: rotate(-30deg);
}

.title_area h2::after{
    margin-left: 0.5em;
    transform: rotate(30deg);
}



h1{
    display:inline-flex;
    gap:4px;
    align-items:center;
    justify-content:center;
    font-size:36px;
    margin-bottom:20px;
    position:relative;
}

h1 span{
    z-index:21;
}

h1 img{
    z-index:20;
    position:absolute;
    right: -30px;
    top: -75px;
}

h1 span{
    display:inline-block;
    border:2px solid #13485B;
    border-radius:4px;
    background:white;
    font-size:56px;
    color:#13485B;
    width:70px;
    height:70px;
    display:flex;
    justify-content:center;
    align-items:center;
}

.highlight{
    background:#13485B;
    color:#FFF;
}

.button_area{
    text-align:center;
    max-width:250px;
    margin:36px auto 0;
}

a.common_btn{
    text-decoration:none;
}

.common_btn{
    font-size:18px;
    width:100%;
    position:relative;
    display: flex;
    align-items: center;
    justify-content:center;
    position:relative;
    padding:15px;
    border-radius: 40px;
    border:none;
}

.arrow{
	position: absolute;
    right: 10px;
    width: 39px;
    height: 39px;
    background: #fff;
    border-radius: 100%;
    display: inline-block;
    padding: 0 0 0 16px;
    color: #000;
    vertical-align: middle;
    text-decoration: none;
}
.arrow::before,
.arrow::after{
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	content: "";
	vertical-align: middle;
}
.arrow::before{
    content:'';
    width:20px;
    height:20px;
    -webkit-border-radius:50%;
    border-radius:50%;
}
.arrow::after{
    content:'';
    left:13px;
    width:8px;
    height:8px;
    border-top:1px solid #2D7E98;
    border-right:1px solid #2D7E98;
    -webkit-transform:rotate(45deg);
    transform:rotate(45deg);
}

.main_adjust{
    padding:74px 20px 42px;
}

#s0_answer{
    /* display:none; */
    position: absolute;
    top: 0;
    left: 0;
    background: #2D7E98;
    padding:5px 10px;
    border-radius: 10px 0 10px 0;
    font-size:17px;
    color:#fff;

}

.contents{
    position:relative;
    max-width:1160px;
}

.contents h2{
    text-align:center;
}

.contents img{
    width:100%;
    position:relative;
}

.contents_container{
    max-width:960px;
    margin:0 auto;
}
.section_text{
    max-width: 709px;
    margin: 0 auto;
}
.section_text h2{
    border-bottom:1.5px solid #13485B;
    padding-bottom:21px;
}
.section_text p{
    margin-top:24px;
}



/*------ 設問フォーム ------*/
.question_page{
    padding:110px 20px;
}
.question_box{
    max-width:800px;
    margin:0 auto;
}
.question_box h1{
    font-size:24px;
    margin-bottom:50px;
    text-align:left;
}

.question_box .arrow::after{
    content: '';
    left: 13px;
    width: 8px;
    height: 8px;
    border-top: 1px solid #B2B2B2;
    border-right: 1px solid #B2B2B2;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.question_box .arrow.active::after{
    border-top: 1px solid #2D7E98;
    border-right: 1px solid #2D7E98;
}

.title_wrapper{
    display:grid;
    grid-template-columns:80px 1fr;
    margin-bottom:10px;
    align-items:center;
    gap:10px;
    padding:0 20px;
}

.title_wrapper img{
    width:100%;
}

.title_wrapper h1{
    margin: 0;
}

.q_form{
    display:flex;
    justify-content:center;
    gap:16px;
    flex-direction:column;
}

.q_form label{
    border:1px solid #2D7E98;
    text-align:left;
    padding:18px;
    font-size:18px;
    display:flex;
    align-items:center;
    gap:12px;
    border-radius:8px
}

.q_no{
    border:none;
    background: #2D7E98;
    border-radius: 100%;
    color: #FFF;
    font-size: 20px;
    width: 43px;
    height: 43px;
    margin-right:8px;
    flex-shrink:0;
}

.q_form label input[type="radio"]{
    height:20px;
    width:20px;
}

.next_btn{
    background-color:#B2B2B2;
    max-width:200px;
    margin:25px auto 0;
}

.next_btn.active {
    background-color: #2D7E98; /* 有効化されたらこの色 */
    cursor: pointer;
}



.back_btn{
    position:relative;
    background:none;
    border:none;
    text-decoration:underline;
    font-size:14px;
    color:#202020;
}
.back{
	position:relative;
    left:-6px;
    width:20px;
    height:20px;
    background:#EDEDED;
    border-radius: 100%;
    display: inline-block;
    padding: 0 0 0 16px;
    color: #000;
    vertical-align: middle;
    text-decoration: none;
}
.back::before,
.back::after{
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	content: "";
	vertical-align: middle;
}
.back::before{
    content:'';
    width:20px;
    height:20px;
    -webkit-border-radius:50%;
    border-radius:50%;
}
.back::after{
    content: '';
    left:8px;
    width:5px;
    height:5px;
    border-top:1px solid #2D7E98;
    border-right:1px solid #2D7E98;
    -webkit-transform: rotate(45deg);
    transform: rotate(225deg);
}



.sub_contents{
    max-width:576px;
    margin:0 auto;
    background-color:#F8F8F8;
    padding:24px 28px 46px;
}

.link{
    background-color:#FCF0DE;
}

.downloads img{
    width:100%;
}
.recommend{
    background-color: #FCF0DE;
    max-width:1000px;
    margin:0 20px;
    padding:36px 20px 24px;
}
.recommend h2{
    text-align:center;
    color:#EEA63A;
    text-align: center;
    min-width: 200px;
    border-bottom:3px solid #EEA63A;
    padding:5px;
    position:relative;
    max-width:300px;
    margin:0 auto 20px;
}
.recommend h2::after {
    content:"";
    position:absolute;
    bottom:-1px;
    left:50%;
    width:10px;
    height:10px;
    background:#FCF0DE;
    border-left:3px solid #EEA63A;
    border-bottom:3px solid #EEA63A;
    transform:translate(-50%, 55%) rotate(315deg);
    transform-origin:center center;
  }
  





.chk{
    display: inline-block;
    vertical-align: middle;
    color:#FFF;
    line-height: 1;
    position: relative;
    width:14px;
    height:14px;
    border: 0.1em solid #FFF;
    border-radius: 50%;
    box-sizing: content-box;
    background:#3084A3;
    flex-shrink:0;
  }
  
  .chk > span {
    width: 0.40em;
    height: 0.210em;
    border: 0.1em solid #FFF;
    border-top: 0;
    border-right: 0;
    box-sizing: border-box;
    transform: translateY(-25%) rotate(-45deg);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
  }



  .trouble-title {
    font-size: 1.4rem;
    font-weight: bold;
    text-align: center;
    color: #187b92; /* 見出しの青 */
    margin-bottom: 1.5rem;
  }
  
  .trouble-title span {
    color: #187b92;
  }
  

/*success_page*/
.success_page{
    padding:60px 20px;
}

.success_page .title_area h1{
    color:#13485B;
}

.success_page p{
    color:#13485B;
    margin:32px 0 36px;
}

.success_page .button_area{
    position:relative;
    max-width:597px;
    margin-bottom:60px;
}

.success_page .button_area .common_btn{
    position: absolute;
    top: 60px;
    z-index: 10;
    font-size:24px;
}
.success_page a{
    /* text-decoration-line:none; */
}

.balloon{
    position:relative;
    display:inline-block;
    margin-top:28px;
    padding:7px 10px;
    min-width:120px;
    max-width:100%;
    font-size:16px;
    background:#FFF;
    box-sizing:border-box;
    z-index:20;
    border-radius:30px;
    text-shadow:0 0 black;
    box-shadow:0px 0px 5px #ada7a7;
}
  
.balloon:before{
    content:"";
    position:absolute;
    bottom:-24px;
    left:50%;
    margin-left:-15px;
    border:12px solid transparent;
    border-top:12px solid #FFF;
    z-index:2;
}
  
.balloon:after{
    content:"";
    position:absolute;
    bottom:-30px;
    left:50%;
    margin-left:-17px;
    border:14px solid transparent;
    z-index:1;
}
  
.balloon p{
    margin:0;
    padding:0;
}

.social_contents{
    background:#F7F7F7;
    max-width:937px;
    margin:90px auto 0;
    padding:36px 20px;
}

.speech_bubble_area{
    display:flex;
    gap:10px;
    flex-direction:row;
    justify-content:center;
}
.speech_bubble{
    position: relative;
    /* display: inline-block; */
    width: 583px;
    margin-right: 16px;
    padding: 14px 20px;
    border-radius: 6px;
    background-color: #ffffff;
    text-align: left;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    color:#13485B;
    display: flex;
    flex-direction: row;
    align-items: center;
    font-weight:bold;
    justify-content:center;
}
.speech_bubble::after{
    content:"";
    position:absolute;
    top:65%;
    right:0;
    border-style:solid;
    border-width:0 0 16px 16px;
    border-color:transparent transparent transparent #FFF;
    translate:100% calc(-50% - 0.4px);
}
.icon{
    background:#13485B;
    width:61px;
    height:61px;
    border-radius:100%;
    padding:20px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
}
.icon img{
    width:100%;
}
.social_links{
    display: flex;
    gap: 36px;
    justify-items: center;
    justify-content: center;
    margin-top: 28px;
}

.social_links li{
    display: flex;
    gap: 8px;
    flex-direction: column;
    align-items: center;
}
.social_links a{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:5px;
    text-decoration-line:none;
}
.social_links li span{
    color:#13485B;
}


/*------- result_page --------*/
.title{
    text-align:center;
}
.title h1{
    color: #13485B;
}

.content_decoration{
    max-width:324px;
    margin:0 auto;
    position:absolute;
    left:50%;
    top:15px;
    transform:translateX(-50%);
}

.result_contents{
    border-top:50px solid #2D7E98;
    border-bottom:50px solid #2D7E98;
    border-left:25px solid #2D7E98;
    border-right:25px solid #2D7E98;
    background:#FFF;
    border-radius:25px;
}

.about{
    max-width:720px;
    margin:0 auto;
    padding:90px 20px 30px;
}
.about h2{
    text-align:center;
    border-bottom:1.5px solid #13485B;
    padding-bottom:21px;
    font-size:27px;
}
.download_contents{
    max-width: 860px;
    margin: 0 auto;
}

.download_contents label{
    font-size:22px;
    display:flex;
    align-items:center;
    gap:5px;
    margin-bottom:30px;
}

.download_contents > label{
    font-size:14px;
    text-decoration:underline;
}

.download_contents label input{
    width: 16px;
    height: 16px;
    flex-shrink:0;
}

.download_lists{
    display:none;
}
.download_lists.active{
    display: flex;
    gap: 36px;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
}

.download_card{
    display:flex;
    flex-direction:column;
    width:100%;
    gap:5px;
    border:2px solid #13485B;
    border-radius:7px;
    background:#FFF;
    padding:37px 36px 24px;
    position:relative;
    flex: 1 1 calc(50% - 20px);
    box-sizing: border-box;
    max-width:420px;
}
.download_lists:has(.download_card:nth-child(2):not(.download_card)){
    justify-content: center;
}
.download_card label{
    position:relative;
    color:#13485B;
    font-weight:600;

    display: flex;
    align-items: flex-start;
    gap: 6px;
    line-height: 1.4;
}

.download_card label input{
    margin-top: 2px;
}

/* 改行ある場合上揃え */
.download_card label:has(br) {
    align-items: flex-start;
}

/* 改行なしなら中央揃え */
.download_card label:not(:has(br)){
    align-items: center;
}


.download_card label::after{
    content:"";
    position:absolute;
    height:2px;
    background:#13485B;
    width:100%;
    bottom:-30px;
}
.download_card img{
    margin-top:16px;
}

.download_result{
    background:#F4F4F4;
    padding:12px;
    margin-top:12px;
}

.download_result h3{
    font-size: 12px;
    color: #13485B;
}

.result_text{
    font-size: 12px;
    /* margin-top: 8px; */
}
.download.sending{
    background-color: #B2B2B2 !important;
    cursor: not-allowed;
    transition: all 0.3s;
}
.description_text{
    font-size: 12px;
    margin-top: 8px;
}

input[type="checkbox"] {
    accent-color: #13485B;
  }

.form{
    max-width:820px;
    margin:48px auto 60px;
    padding: 0 20px;
}
.form h2{
    color:#2D7E98;
    font-size:28px;
    padding-bottom:19px;
    border-bottom:1px dashed #2D7E98;
}

.form_area{
    display: flex;
    flex-direction: column;
    margin-top:36px;
}

.form_area dl{
    display:grid;
    grid-template-columns:30% 1fr;
    align-items:center;
    font-size:16px;
    margin-bottom:36px;
}

.form_area dt span{
    background:#2D7E98;
    color:#fff;
    font-size:12px;
    padding:3px;
    margin-left:12px;
}
.form_area > label{
    display:flex;
    align-items:center;
    gap:5px;
    justify-content:center;
    text-decoration:underline;
    cursor:pointer;
}

.form_area > label input{
    width:16px;
    height:16px;
    cursor:pointer;
}
.form_area .button_area{
    margin:0 auto;
}
.msg_box{
    background-color:#F0F0F0;
    padding:20px 24px;
    margin-bottom:16px;
}

.form_area dl dd input{
    width:100%;
    border:1px solid #E2E2E2;
    border-radius:4px;
    padding:10px;
    font-size:16px;
}
.form_area button{
    margin-top:36px;
}
.download{
    max-width:330px;
    margin:0 auto;
}

