@charset "UTF-8";

main{
    font-size: 16px;
}

h1.ttl{
    padding-top: 29px;
}
.page h1.ttl:before{
    height: 60px;
    margin: 0 auto 20px;
    background: linear-gradient(0deg,rgba(2, 27, 104, 1) 0%, rgba(99, 153, 198, 1) 100%);
}
h1.ttl span.ttl-e{
    margin-bottom: 26px;
}


@media screen and (max-width:768px) {
    main{
        font-size: calc(100vw * 12 / 375);
    }

    h1.ttl{
        padding-top: 5%;
    }
    .page h1.ttl:before{
        height: 30px;
        margin: 0 auto 2.4%;
    }
    h1.ttl span.ttl-e{
        margin-bottom: 1.6%;
    }
}

/* achievements */

section#achievements:before{
    top: -19%;
}


/* strength */

#strength main{
    padding-bottom: 190px;
    margin-bottom: -70px;
    background: url(../img/strength_bg.png)no-repeat bottom center;
}

section#strength{
    padding: 36px 0 89px;
    background: url(../img/under_bg.png)no-repeat top center;
    background-size: cover;
}

section#reason{
    margin: 126px 0 0;
    background: url(../img/reason_bg.png)repeat-x top left;
    background-size: 100% 90%;
}

section#reason h1.ttl{
    position: relative;
    top: -50px;
}

section#reason .inner > p {
    margin: 15px 0 0;
    font-size: 20px;
    font-weight: 600;
    text-align: center;
}

.reason_block {
    margin: 70px 0 0;
    display: flex;
    justify-content: center;
    column-gap: 40px;
}

.reason_block > div{
    max-width: 350px;
    padding: 28px 30px 38px;
    background: #003f98;
    border-radius: 15px;
    color: #fff;
}

.reason_block > div .img{
    width: 198px;
    margin: 0 auto 35px;
}
.reason_block > div h2 {
    margin-bottom: 28px;
    text-align: center;
    font-size: 30px;
    font-weight: 900;
}
.reason_block > div .txt p {
    display: flex;
    justify-content: center;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.7;
}


section#case{
    padding: 72px 0;
    background: #003f98;
}

section#case h1.ttl2 {
    margin-bottom: 51px;
    color: #fff;
    text-align: center;
    font-size: 40px;
}

section#case p.case_txt {
    margin-bottom: 59px;
    text-align: center;
    font-size: 26px;
    color: #fff;
}
section#case p.case_txt span{
    font-size: 28px;
    font-weight: 600;
    color: #4cd2ff;

}

.case01, .case02 {
    text-align: center;
    max-width: 1100px;
    margin: 0 auto 59px;
}

@media screen and (max-width:768px) {
    #strength main{
        padding-bottom: 21.9%;
    }
    
    section#strength{
        padding: 5% 0 0;
    }

    section#reason{
        margin: 15% 0 0;
    }
    section#reason h1.ttl{
        top: -30px;
    }
    section#reason h1.ttl span.ttl-e{
        font-size: 97%;
    }
    section#reason  h1.ttl span.ttl-j{
        font-size: 142%;
    }

    section#reason .inner > p{
        margin: 2.3% 0 0;
        font-size: 84%;
    }

    .reason_block{
        margin: 9.5% 0 0;
        display: block;
    }
    
    .reason_block > div{
        width: 96%;
        max-width: 720px;
        margin: 0 auto 5.4%;
        padding: 5.9% 4.9%;
        border-radius: 10px;
        display: flex;
    }

    .reason_block > div .img{
        width: 30%;
        max-width: 198px;
        margin: 0;
    }
    .reason_block > div .txt {
        width: 70%;
        padding-left: 7%;
    }
    .reason_block > div h2{
        margin: 1% 0 4.1%;
        text-align: left;
        font-size: 125%;
        letter-spacing: 5px;
    }
    .reason_block > div .txt p{
        font-size: 106%;
        line-height: 1.8;
    }

    section#case{
        padding: 9.6% 0 1.4%;
    }

    section#case h1.ttl2{
        margin-bottom: 6%;
        font-size: 167%;
    }

    section#case p.case_txt{
        margin-bottom: 6.3%;
        font-size: 108%;
    }
    section#case p.case_txt span{
        font-size: 108%;
    }

    .case01, .case02{
        margin: 0 auto 2.5%;
    }
}

/* topics */
main#news .news__wrap{
    padding: 47px 11px 0 57px;
    background: #fff url(../img/topics_bg.png)repeat-x top;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

main#news .news__inner{
    width: 100%;
    max-width: 740px; 
    margin: 19px 0;
}

article.news__box{
    margin-bottom: 45px;
    padding: 29px 18px 15px;
    background: #fff;
    border: 1px solid #d6d6d6;
    position: relative;
    box-shadow: 5px 5px 10px 0px #dedede;
}
article.news__box .df{
    display: flex;
}

article.news__box .img_block {
    width: 217px;
    height: 145px;
}
article.news__box .img_block img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

article.news__box .news__box-right{
    margin-bottom: 10px;
    width: 485px;
    padding-left: 13px;
}

article.news__box time.date,
.pickup_wrap time.date,
ul.post-prev-next time.date{
    margin-bottom: 10px;
    display: flex;
    color: #347bb5;
}
ul.post-prev-next time.date{
    margin-bottom: 0;
}

article.news__box time.date span.y-m,
.pickup_wrap time.date span.y-m,
ul.post-prev-next time.date span.y-m {
    font-size: 14px;
    line-height: 1;
}
article.news__box time.date span.y-m > span,
.pickup_wrap time.date span.y-m > span,
ul.post-prev-next time.date span.y-m > span {
    display: block;
    font-size: 26px;
    line-height: 1.3;
}
article.news__box time.date span.day,
.pickup_wrap time.date span.day,
ul.post-prev-next time.date span.day{
    font-size: 54px;
    line-height: 0.8;
    margin-left: 5px;
    display: inline-block;
}

article.news__box p.cate,
.detail__block p.cate {
    position: absolute;
    top: 10px;
    right: 23px;
}
article.news__box p.cate a,
.detail__block p.cate a {
    display: inline-block;
    padding: 3px 4px 5px;
    background: #eee;
    color: #919191;
    font-size: 15px;
    line-height: 1;
}

article.news__box .news__box-right h2 {
    margin-bottom: 6px;
    font-size: 20px;
    color: #00146a;
}
article.news__box .news__box-right p.txt{
    line-height: 1.8;
}

/*** pagenation ***/
ul.page-numbers{display: flex;}

.pagenation {
    width: 100%;
    margin: 40px auto;
    position: relative;
}

.nav-links{
    display: flex;
    align-items: center;
    justify-content: center;     
}

.pagenation span, .pagenation a {
    width: 39px;
    margin: 0 3px;
    padding: 10px 10px;
    display: block;
    font-size: 18px;
    text-decoration: none;
    text-align: center;
    line-height: 1;
    color: #347bb5;       
}

/* ホバー時 & 現在のページ */
.pagenation a:hover,
.pagenation .current  {
    background-color: #F5F4F2;
}

ul.page-numbers {
    display: flex;
    justify-content: center;
    margin: auto;
}
ul.page-numbers li{
    text-align: center;
    font-size: 18px;
    margin: 0;
    line-height: 1;
}
ul.page-numbers li a {
    width: 42px;
    height: 42px;
    padding: 12px 0;
    background: #fff;
    color: #347bb5;
    display: block;
    border: 1px solid #D6D6D6;
}
ul.page-numbers li span{
    width: 42px;
    height: 42px;  
    padding: 12px 0;    
    background: #fff;    
    color: #347bb5;    
    display: block;  
    font-weight: bold;    
    border: 1px solid #D6D6D6;    
}

.news__contents_block{
    padding-top: 15px;
    width: 100%;
    max-width: 800px;
}
.detail__block{
    width: 100%;
    max-width: 730px;
    position: relative;
}

.detail__block p.cate {
    top: 5px;
    right: 3px;
}
.detail__block time.date {
    margin-bottom: 12px;
    font-weight: 600;
    color: #919294;
}

.detail__block h1 {
    margin-bottom: 27px;
    font-size: 36px;
    color: #003b96;
}

.detail__block p.pdf_txt{
    margin: 7px 0 25px;
    font-weight: 600;
    color: #919294;
}

.detail__block .main_txt p{
    margin-bottom: 20px;
    line-height: 1.8;
    font-size: 20px;
}

ul.post-prev-next {
    margin-top: 80px;
    display: flex;
}

ul.post-prev-next li {
    width: 50%;
}

ul.post-prev-next a.trans {
    display: flex;
    align-items: center;
}
ul.post-prev-next .is-next a.trans{
    justify-content: flex-end;
}

ul.post-prev-next .is-prev a:before,
ul.post-prev-next .is-next a:after{
    content: '';
    width: 34px;
    height: 34px;
    background: url(../img/icon_arrow.png)no-repeat top;
    background-size: 100%;
    display: inline-block;
}
ul.post-prev-next .is-next a:after{
    rotate: 180deg;
}

ul.post-prev-next a.trans > div{
    width: 320px;
    padding: 5px;
    border: 1px solid;
}
ul.post-prev-next a.trans > div .df_wrap{
        display: flex;
    }

ul.post-prev-next .is-prev a > div{
    margin-left: 36px;
}
ul.post-prev-next .is-next a > div{
    margin-right: 36px;
}

ul.post-prev-next .item-content{
    width: 200px;
    padding: 3px 0 0 16px;
}
ul.post-prev-next h3.link-title {
    margin-bottom: 5px;
    font-size: 16px;
}
ul.post-prev-next h3.item-title{
    margin-bottom: 6px;
    height: 22px;
    font-size: 15px;
    font-weight: normal;
    line-height: 1.3;
    color: #000;
    overflow: hidden;
}

ul.post-prev-next .is-prev h3.link-title,
ul.post-prev-next .is-prev time.date{
    color: #347bb5;
}

ul.post-prev-next .is-next h3.link-title,
ul.post-prev-next .is-next time.date{
    color: #01166a;
}

ul.post-prev-next figure.item-img {
    width: 100px;
    margin-bottom: 0;
}

/* sidebar */
aside.news__side{
    width: 300px;
    max-width: 300px;
    padding: 5px;
    background: #fff;
    box-shadow: 5px 5px 10px 0px #dedede;
}

aside.news__side > h2,
h2.wp-block-heading{
    width: 100%;
    margin-bottom: 5px;
    padding: 2px 7px;
    background: #01166a;
    font-family: din-condensed, sans-serif;
    font-size: 20px;
    font-weight: normal;
    color: #fff;
    line-height: 1;
}

.pickup_wrap{
    margin-bottom: 4px;
    border: 1px solid #347bb5;
}
.pickup_wrap a{
    padding: 5px;
    display: flex;
}

.pickup_wrap .img_block{
    width: 110px;
    height: 110px;
}
.pickup_wrap .img_block img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pickup_wrap .txt_block {
    padding: 0 0 0 4px;
    width: 168px;
}

.pickup_wrap h2{
    margin: 7px 0 19px;
    font-size: 16px;
    color: #00146a;
    font-weight: 600;
}
.pickup_wrap time.date{
    margin-left: 5px;
}

aside.news__side .widget_block ul{
    margin: 10px 0px 50px;
}
aside.news__side .widget_block li {
    border-bottom: 1px solid #ccc;
    padding: 7px 4px 2px;
    font-weight: 600;
}

aside.news__side div#block-5 li a{
    color: #919191;
}

aside.news__side div#block-6 {
    margin-top: 20px;
    margin-bottom: 37px;
}
aside.news__side div#block-5{
    margin-bottom: 37px;
}    

@media screen and (max-width:768px) {
    main#news .news__wrap{
        padding: 1px;
        display: block;
    }

    .news__contents_block{
        margin: 0 auto 11%;
        padding-top: 1px;
    }
    main#news .news__inner{
        width: 99%;
        margin: 1px 0;
    }
    article.news__box{
        margin-bottom: 4%;
        padding: 6% 1% 2%;
    }
    article.news__box .df{
        align-items: flex-end;
    }
    
    article.news__box .img_block{
        width: 44%;
        max-width: 318px;
        height: 50%;
    }
    article.news__box .news__box-right{
        width: 56%;
        max-width: 405px;
        margin-bottom: 0;
        padding-left: 4%;
    }
    article.news__box .news__box-right h2{
        font-size: 113%;
    }

    article.news__box p.cate{
        top: 14%;
        right: 1%;
    }

    article.news__box p.cate a{font-size: 104%;}

    article.news__box time.date span.y-m{font-size: 55%;}
    article.news__box time.date span.y-m > span{
        font-size: 193%;
        line-height: 1.5;
    }
    article.news__box time.date span.day{font-size: 230%;}

    article.news__box .txt.sp{
        display: block !important;
        font-size: 103%;
        padding: 2% 1%;
        line-height: 1.9;
    }

    .detail__block{
        width: 100%;
        margin: 0 auto;
    }
    .detail__block time.date{
        margin-bottom: 2.4%;
        line-height: 1.55;
        font-size: 100%;
        display: inline-block;
    }

    .detail__block p.pdf_txt{
        margin: 1.2% 0 2.5%;
        font-size: 109%;
    }
    .detail__block .main_txt p{
        line-height: 1.9;
        font-size: 100%;
    }

    .detail__block h1{
        margin-bottom: 3.9%;
        font-size: 146%;
    }

    .detail__block p.pdf_txt{
        margin: 1.2% 0 2.5%;
        font-size: 109%;
    }

    .detail__block p.cate{
        top: 14%;
        right: 1%;
        font-size: 104%;
    }
    .single-post .detail__block p.cate{
        top: 1%;
    }

    ul.post-prev-next .is-prev a > div{margin-left: 1.9%;}
    ul.post-prev-next .is-next a > div{margin-right: 1.9%;}

    ul.post-prev-next a.trans .ttl{
        padding: 6% 2% 1%;
    }
    ul.post-prev-next h3.link-title{
        margin-bottom: 5px;
        font-size: 100%;
    }
    ul.post-prev-next h3.item-title{
        font-size: 95%;
        height: 50%;
    }
    
    ul.post-prev-next a.trans > div{
        width: 80%;
    }
    ul.post-prev-next .item-content{
        width: 61%;
        padding: 3px 0 0 3%;
    }
    ul.post-prev-next figure.item-img{
        width: 35%;
    }
    
    ul.post-prev-next a.trans > div .df_wrap{
        align-items: center;
        justify-content: space-between;
    }
    ul.post-prev-next time.date span.y-m{font-size:72%;}
    ul.post-prev-next time.date span.y-m > span{font-size: 168%;}
    ul.post-prev-next time.date span.day{font-size: 256%;}

    aside.news__side{
        width: 96%;
        max-width: 720px;
        margin: 0 auto;
    }

    aside.news__side > h2, 
    h2.wp-block-heading{
        font-size: 100%;
    }

    .pickup_wrap a{align-items: center;}

    .pickup_wrap .img_block{
        width: 34%;
        max-width: 236px;
        height: 50%;
    }
    .pickup_wrap .txt_block{
        width: 66%;
        display: flex;
    }
    .pickup_wrap time.date{
        margin: 0 4%;
    }
    .pickup_wrap time.date span.y-m{font-size: 55%;}
    .pickup_wrap time.date span.y-m > span{font-size: 193%;}
    .pickup_wrap time.date span.day{font-size: 230%;}

    .pickup_wrap h2{
        margin: 0;
        font-size: 100%;
    }

    aside.news__side div#block-6{
        margin-top: 3%;
        margin-bottom: 4%;
    }
    aside.news__side .widget_block ul{
        margin: 0;
    }
    aside.news__side .widget_block li{
        padding: 0.7% 4px 0px;
        font-size: 100%;
    }

}

/* company */

section#company {
    margin-bottom: 226px;
}

section#company table {
    width: 100%;
    max-width: 900px;
    margin: 60px auto 0;
    border-collapse: separate;
    border-spacing: 1px;
    font-size: 20px;
    font-weight: 600;

}
section#company table th{
    width: 30%;
    padding: 18px 10px 18px 57px;
    background: #347bb5;
    color: #fff;
    vertical-align: middle;
    border: 1px solid #347bb5;
    text-align: left;
    letter-spacing: 2px;
}
section#company table td{
    width: 70%;
    padding: 16px 30px;
    background: #fff;
    vertical-align: middle;
    border: 1px solid #d6d6d6;
    line-height: 1.75;
}

@media screen and (max-width:768px) {
    section#company{
        margin-bottom: 1%;
    }
    section#company table{
        width: 98%;
        margin: 6% auto 0;
        font-size: 85%;
    }
    section#company table th{
        width: 27%;
        padding: 1.7% 10px;
        text-align: center;
    }
    section#company table td{
        width: 73%;
        padding: 1.7% 10px;
    }
    p.contact_txt{
        margin: 4.2% 0 0;
        font-size: 110%;
        line-height: 1.75;
    }

}

/* contact */
section#contact{
    margin-bottom: 85px;
}

p.contact_txt {
    margin: 45px 0 0;
    text-align: center;
    font-size: 20px;
    font-weight: 600;
}

.wpcf7{
    max-width: 920px;
    margin: 56px auto;
}

.wpcf7 p{
    margin-bottom: 35px;
    display: flex;
    align-items: center;  
}
.wpcf7 span.req, .wpcf7 span.any{
    width: 65px;
    margin-left: 2px;
    margin-right: 12px;
    padding: 5px 0px 5px;
    display: inline-block;
    font-size: 18px;
    text-align: center;
    font-weight: normal;
    line-height: 1;
    border-radius: 5px;
}
.wpcf7 span.req{
    background: #337ab7;
    color: #fff;
}
.wpcf7 span.any{
    background: #d6d6d6;
    color: #646464;
}

.wpcf7 span.txt {
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #191f86;
}

.wpcf7 p > label {
    width: 100%;
    font-size: 20px;
    font-weight: 600;
    color: #003f98;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select{
    width: 100%;
    margin: 10px 0 0;
    padding: 18px 16px 16px;
    background: #eff2f7;
    border: 1px solid #d6d6d6;
    border-radius: 5px;
}

.wpcf7 textarea {  
    height: 180px!important;
}

p.acceptance {
    margin: 60px 0 63px;
    font-size: 20px;
    font-weight: 600;
    color: #333;
}
.wpcf7-form-control-wrap{
    width: 100%;
}
span.wpcf7-list-item{
    width: 100%;
}
span.wpcf7-list-item label{
    display: flex;
    justify-content: center;
    align-items: center; 
}

.submitBtn {
    width: 51%;
    max-width: 470px;
    margin: 0 auto;
}

.wpcf7 input[type="submit"]{
    width: 100%;
    padding: 12px 0 14px;
    background: #337ab7;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    text-align: center;
    letter-spacing: 2px;
}

input[type="checkbox"]{
    width: 18px;
    height: 18px;
    position: relative;
    top: 2px;
    margin-right: 4px;
}

@media screen and (max-width: 768px){
    section#contact{
        margin-bottom: 5%;
    }
    
    .wpcf7{
        width: 97%;
        margin: 12%auto 20px;
    }

    .wpcf7 p > label{
        font-size: 113%;
    }
    .wpcf7 span.req, 
    .wpcf7 span.any
    .wpcf7 span{
        width: 20%;
        max-width: 64px;
        font-size: 84%;
        margin-right: 3%;
    }

    .wpcf7 p{
        margin-bottom: 4%;
    }
    
    .wpcf7 span.txt{
        width: 80%;
        font-size: 16px;
    }
    
    .wpcf7 {margin-bottom: 20px;}
    .wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea, .wpcf7 select{
        padding: 2% 10px 2%;    
    }
    
    .wpcf7 input[type="submit"]{
        padding: 2% 0 2%;
        font-size: 110%;
    }

    p.acceptance{
        margin: 2% 0 9%;
        font-size: 106%;
    }

    .submitBtn{
        width: 65%;
        max-width: 470px;
    }
}


/* notices */
section#notices h1.ttl span.ttl-j{
    display: inline-block;
    background: #fff;
    padding: 0 25px;
}

section#notices .notices_block{
    max-width: 1186px;
    padding: 57px 34px 30px;
    position: relative;
}
section#notices .notices_block:after{
    content: '';
    width: 100%;
    height: 100%;
    border: 3px solid #044299;
    border-radius: 20px;
    z-index: -1;
    position: absolute;
    top: -18px;
    left: 0;
}

section#notices .notices_block li{
    margin-bottom: 30px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.75;
}
section#notices .notices_block li > ol{
    margin-top: 32px;
}
section#notices .notices_block li > ol li{
    margin-bottom: 1px!important;
}

@media screen and (max-width: 768px){
    section#notices .notices_block{
        width: 98%;
        margin: 0 auto;
        padding: 6% 2%;
    }
    section#notices .notices_block li{
        margin-bottom: 6.4%;
        font-size: 105%;
        line-height: 1.85;
    }
    section#notices .notices_block li > ol{
        margin-top: 6%;
    }
}


/* privacy-policy */

#privacy-policy .pp_block{
    margin: 82px 0;
    padding: 0 60px 0 54px;
}

#privacy-policy .pp_block h2{
    margin: 40px 0 7px;
    font-size: 18px;
    font-weight: 600;
}

#privacy-policy .pp_block ol,
#privacy-policy .pp_block ul{
    margin: 7px 0;
}

#privacy-policy .pp_block ol li{
    margin-bottom: 13px;
    padding-left: 1em;
    text-indent: -1em;
}

#privacy-policy .pp_block ul {
    margin: 7px 0 100px;
    padding-left: 1em;
}
#privacy-policy .pp_block ul li{
    margin-bottom: 5px;
}

@media screen and (max-width:768px) {
    #privacy-policy .pp_block{
        margin: 4% 0;
        padding: 0 5%;
    }

    #privacy-policy .pp_block h2{
        margin: 6% 0 1%;
        font-size: 130%;
    }

    
}

/*service*/

#service section#service:before{
    top: 0;
}
section#problem{
    margin-bottom: 1px;
}
section#problem .inner{
    margin: 88px auto 0;
}

section#problem .problem_block {
    max-width: 986px;
    margin: 0 62px 50px;
    padding: 24px 14px 32px;
    background: #337ab7;
    border-radius: 10px;
    position: relative;
    box-shadow: 0 0 6px 0px #d6d6d6;
}

section#problem .problem_block h2 {
    margin-bottom: 16px;
    margin-left: 11px;
}
section#problem .problem_block h2 span.no {
    display: block;
    font-family: din-condensed, sans-serif;
    font-size: 20px;
    color: #f0f3f2;
    font-weight: normal;
    letter-spacing: 1px;
    counter-increment: num;
}
section#problem .problem_block h2 span.no:after {
    margin-left: 5px;
    content: counter(num);
    display: inline-block;
}
section#problem .problem_block h2 span.ttl {
    display: block;
    font-size: 28px;
    color: #f0f3f2;
}
section#problem .problem_block h2 span.ttl:before{
    content: '';
    width: 86%;
    height: 1px;
    margin-top: 3px;
    margin-bottom: 13px;
    background: #fff;
    display: block;
}
section#problem .problem_block .txt_block {
    min-height: 100px;
    padding: 22px 135px 5px 25px;
    background: #f0f4f3;
    border-radius: 10px;
    line-height: 1.9;
    color: #337ab7;
    display: flex;
    align-items: center;
}
section#problem .problem_block .txt_block li {
    text-indent: -1em;
    padding-left: 1em;
    font-weight: 600;
}

section#problem .problem_block .img_block {
    position: absolute;
    right: -80px;
    bottom: 17px;
    border: 1px solid #fff;
    border-radius: 50%;
    height: 205px;
    width: 205px;
    box-shadow: 7px 0px 0px 2px #337ab7;

}

section#solution .inner{
    margin: 88px auto 0;
}

section#solution .solution_block {
    max-width: 1066px;
    min-height: 230px;
    margin-left: 77px;
    margin-bottom: 39px;
    background: #fff;
    display: flex;
    align-items: center;
    border: 3px solid #6195c3;
    border-radius: 20px;
}

section#solution .solution_block h2{
    width: 545px;
    min-height: 109px;
    padding: 8px 5px 8px 15px;
    background: #e5f2fb;
    border: 3px solid #034199;
    border-radius: 19px;
    display: flex;
    align-items: center;
    position: relative;
    left: -30px;
}
section#solution .solution_block h2:before{
    content: '';
    width: 44px;
    height: 34px;
    margin-right: 13px;
    background: url(../img/icon_solution.png)no-repeat;
    background-size: 100%;
    display: block;
}

section#solution .solution_block h2 span{
    font-size: 28px;
    font-weight: 600;
    color: #003f98;
    line-height: 1.6;
    letter-spacing: -1px;
}

section#solution .solution_block .txt_block {
    font-size: 20px;
    color: #3379b7;
    font-weight: 600;
}

section#solution .solution_block .txt_block p{
    line-height: 1.7;
}

section#solution .solution_block .txt_block ul {
    margin-top: 20px;
}

section#solution .solution_block .txt_block ul li{
    margin-top: 5px;
}

section#message{
    margin-bottom: 78px;
}

section#message .inner{
    margin: 100px auto 0;
}

section#message .message_block{
    max-width: 1060px;
    margin: 0 auto;
}
section#message .message_block h2{
    margin-bottom: 27px;
    padding: 38px 0 32px;
    background: #337ab7;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}
section#message .message_block h2 span.no{
    margin-right: 22px;
    display: block;
    font-family: din-condensed, sans-serif;
    font-size: 78px;
    color: #e5f2fb;
    font-weight: normal;
    letter-spacing: 1px;
}
section#message .message_block h2 span.ttl{
    color: #fff;
    font-size: 28px;
    font-weight: 600;
}

section#message .message_block p.txt{
    font-size: 20px;
    font-weight: 600;
    line-height: 1.8;
    display: flex;
    justify-content: center;
}

section#message .message_list{
    margin: 25px 0 73px;
    padding: 20px 0;
    background: #e5f2fb;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 27px;
    border-radius: 10px;
}

section#message .message_list2{
    margin: 62px 0px 50px;
    display: flex;
    column-gap: 52px;
}

section#message .message_list2 > div{
    width: 316px;
    border: 3px solid #6195c3;
    text-align: center;
    border-radius: 20px;
    padding: 34px;
}
section#message .message_list2 > div h3 {
    font-size: 28px;
    color: #003f98;
}
section#message .message_list2 > div h3:after{
    content: '';
    width: 83%;
    height: 2px;
    margin: 18px auto 26px;
    background: #003f98;
    display: block;
}

section#message .message_list2 > div p {
    font-weight: 600;
    color: #3379b7;
}

section#message p.arrow{
    max-width: 547px;
    margin: 0 auto;
}

section#message p.txt2 {
    margin: 31px 0 55px;
    text-align: center;
    font-size: 28px;
    font-weight: 600;
    color: #003f98;
}

section#message .message_block2 h2{
    margin-bottom: 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 40px;
    font-weight: 600;
    color: #003f98;
    letter-spacing: 5px;
}
section#message .message_block2 h2:before{
    content: '';
    width: 135px;
    height: 135px;
    margin-right: 17px;
    background: url(../img/messege2_img.png)no-repeat;
    background-size: 100%;
    display: block;
}

section#message p.txt3{
    margin: 23px 0 0;
    text-align: center;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.8;
}


section#merit{
    position: relative;
}
section#merit:before {
    content: '';
    width: 100%;
    height: 100%;
    background: url(../img/achievements_bg.webp) no-repeat center top;
    position: absolute;
    top: -20%;
    display: block;
    z-index: -1;
}

section#merit .inner{
    margin: 62px auto;
}

section#merit .merit_block{
    margin-bottom: 96px;
    padding-top: 76px;
    position: relative;
}

.merit_block .img_block{
    width: 78%;
    max-width: 586px;
    height: 446px;
    border-radius: 10px;
    position: absolute;
    top: 0;
    overflow: hidden;
}

.merit_block.left_box .img_block{
    box-shadow: -353px 32px #337ab7;
    right: 18px;
}
.merit_block.right_box .img_block{
    box-shadow: 210px 32px #337ab7;
    left: 30px;
}

.merit_block .txt_block {
    width: 84%;
    max-width: 630px;
    min-height: 445px;
    padding: 55px 20px 52px;
    background: #fff;
    position: relative;
    z-index: 1;
    box-shadow: 0 0 2px 1px #dcdde1;
}

.merit_block.left_box .txt_block{
    margin-left: 36px;
}
.merit_block.right_box .txt_block{
    margin-left: 548px;
}

.merit_block .txt_block:before{
    content: '';
    width: 100%;
    height: 12px;
    background: linear-gradient(90deg,rgba(1, 138, 193, 1) 0%, rgba(101, 165, 213, 1) 100%);
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}
.merit_block .txt_block p.no{
    margin-bottom: 25px;
    font-family: din-condensed, sans-serif;
    font-size: 86px;
    color: #018abf;
    font-weight: normal;
    letter-spacing: 1px;
    line-height: 1;
    text-align: center;
}
.merit_block .txt_block p.no span{
    display: block;
    font-size: 28px;
}

.merit_block .txt_block h2 {
    margin-bottom: 28px;
    color: #013f92;
    font-size: 28px;
    text-align: center;
}

.merit_block .txt_block ul{
    padding: 0 36px;
}
.merit_block .txt_block ul li{
    margin-bottom: 8px;
    font-weight: 600;
    color: #646464;
    display: flex;
    align-items: baseline;
    line-height: 2;
}
.merit_block .txt_block ul li:before{
    content: '●';
    display: inline-block;
    font-size: 16px;
    margin-right: 3px;
}


section#offer{
    margin: 35px 0 106px;
}
.offer_block {
    margin: 77px 0 75px;
    padding: 0 10px;
    display: flex;
    column-gap: 28px;
}
.offer_block > div{
    width: 31%;
    max-width: 372px;
    padding: 72px 0 71px;
    background: #c1daee;
    border-radius: 20px;
    font-size: 24px;
    font-weight: 600;
    color: #011866;
    text-align: center;
    line-height: 1.8;
}

@media screen and (max-width:768px) {
    section#service{
        margin-bottom: 9.1%;
    }

    section#problem .inner{
        margin: 7% auto 0;
    }
    
    section#problem .problem_block{
        width: 98%;
        margin: 0 1% 4%;
        padding: 1.3% 1.8% 5%;
    }

    section#problem .problem_block .img_block{
        right: 3%;
        bottom: 2%;
        width: 120px;
        height: 120px;

    }
    section#problem .problem_block h2{
        margin-bottom: 2.5%;
        margin-left: 1.4%;
    }
    section#problem .problem_block h2 span.no{
        font-size: 78%;
    }
    section#problem .problem_block h2 span.ttl{
        font-size: 76%;
    }
    section#problem .problem_block h2 span.ttl:before{
        width: 100%;
    }
    section#problem .problem_block .txt_block{
        width: 97%;
        padding: 2.9% 31% 5px 3%;
        line-height: 1.55;
    }
    section#problem .problem_block .txt_block li{
        font-size: 107%;
    }

    section#solution .inner{
        margin: 24% auto 0;
    }
    section#solution .solution_block{
        width: 98%;
        min-height: 120px;
        margin: 0 auto 23%;
        padding: 11% 1% 6% 7%;
        display: block;
        position: relative;
    }

    section#solution .solution_block h2{
        width: 86%;
        max-width: 563px;
        min-height: 80px;
        left: 16px;
        top: -58px;
        position: absolute;
    }
    section#solution .solution_block h2:before{
            width: 24px;
    height: 24px;
    }

    section#solution .solution_block h2 span{
        font-size: 77%;
    }

    section#solution .solution_block .txt_block{
        font-size: 110%;
    }

    section#message p.arrow{
        width: 50%;
    }

    section#message{
        margin-bottom: 6%;
    }

    section#message .inner{
        margin: 6% auto 0;
    }

    section#message .message_block h2{
        width: 98%;
        margin: 0 auto 2%;
        padding: 2.5% 1% 2.3% 3.1%;
    }
    section#message .message_block h2 span.no{
        margin-right: 3.4%;
        font-size:216%
    }
    section#message .message_block h2 span.ttl{
        font-size: 89%;
    }

    section#message .message_block p.txt {
        padding: 0 1.6%;
        font-size: 100%;
        line-height: 1.9;
    }

    section#message .message_list{
        width: 85%;
        max-width: 637px;
        margin: 1.8% auto 5%;
        padding: 3% 13%;
        display: block;
    }
    section#message .message_list > div:nth-child(2){
        margin: 6% 0;
    }

    section#message .message_list2{
        margin: 5% 0px 5%;
        display: block;
    }
    section#message .message_list2 > div{
        width: 86%;
        max-width: 645px;
        margin: 0 auto 6%;
        padding: 1.4% 1%;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    section#message .message_list2 > div h3{
        width: 41%;
        padding: 10% 0 8%;
        font-size: 120%;
        text-align: center;
        border-right: 2px solid #191f86;
    }
    section#message .message_list2 > div h3:after{
        display: none;
    }

    section#message .message_list2 > div p{
        width: 58%;
        font-size: 100%;
    }
    
    section#message p.txt2{
        margin: 4.3% auto 5.6%;
        font-size: 120%;
    }

    section#message .message_block2 h2{
        margin-bottom: 7%;
        font-size: 167%;
        text-align: center;
    }
    section#message .message_block2 h2:before{
        width: 18%;
        height: 75px;
        margin-right: 17px;
        background-size: 100%;
    }

    section#message p.txt3{
        margin: 3% 1% 0;
        text-align: left;
        font-size: 100%;
    }

    section#merit .inner{
        margin: 19% auto 1%;
    }
    section#merit .merit_block{
        margin-bottom: 4%;
        padding-top: 44%;
    }
    .merit_block .img_block{
        height: 50%;
    }

    .merit_block.left_box .img_block{
        box-shadow: -34px -24px #337ab7;
        right: 0;
        left: 0;
        margin: auto;
    }
    .merit_block.right_box .img_block{
        box-shadow: 24px -34px #337ab7;
        right: 0;
        left: 0;
        margin: auto;
        top: 36px
    }
    .merit_block.left_box .txt_block,
    .merit_block.right_box .txt_block{
        margin: 0 auto;
    }

    .merit_block.right_box .txt_block{
        margin-top: 4%;
    }

    section#merit .merit_block.right_box{
        margin-bottom: 10%;
    }

    .merit_block .txt_block{
        padding: 7% 1% 1%;
        min-height: auto;
    }

    .merit_block .txt_block p.no{
        margin-bottom: 2.7%;
        font-size: 350%;
    }
    .merit_block .txt_block p.no span{
        font-size: 30%;
        margin-bottom: 1.3%;
    }

    .merit_block .txt_block h2{
        margin-bottom: 2%;
        font-size: 120%;
        
    }

    .merit_block .txt_block ul li{
        
    font-size: 100%;
    }
    

    section#offer{
        margin: 0% 0 10%;
    }

    .offer_block{
        display: block;
    }
    .offer_block {
        margin: 5% 0 5%;
        padding: 0 10px;
        display: block;
        column-gap: 28px;
    }
    .offer_block > div{
        width: 94%;
        max-width: 740px;
        margin: 0 auto 4%;
        padding: 6% 0 6%;
        font-size: 100%;
    }

    section#offer#offer picture{
        width: 96%;
        display: block;
        margin: 0 auto;
    }
}