@charset "utf-8";

/*-------reset--------*/

html,
body,
h1,
h2,
h3,
h4,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    vertical-align: baseline;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

article,
header,
footer,
aside,
main,
figure,
figcaption,
nav,
section {
    display: block;
}

body {
    line-height: 1.6;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

ol,
ul,
li {
    list-style: none;
    list-style-type: none;
}

a {
    text-decoration: none;
    color: #000;
}

a:focus {
    outline: none;
}

a:hover {
    cursor: pointer;
    opacity: 0.8;
}

address,
caption,
cite,
code,
dfn,
em,
th,
var {
    font-style: normal;
    font-weight: normal;
}

table,
td,
th {
    border-collapse: collapse;
}

/* iOSでのデフォルトスタイルをリセット */

input[type="submit"],
input[type="button"],
input[type="reset"] {
    border-radius: 0;
    -webkit-box-sizing: content-box;
    -webkit-appearance: button;
    appearance: button;
    border: none;
    box-sizing: border-box;
    cursor: pointer;
    vertical-align: middle;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration,
input[type="reset"]::-webkit-search-decoration {
    display: none;
}

input[type="submit"]::focus,
input[type="button"]::focus,
input[type="reset"]::focus {
    outline-offset: -2px;
}

/*=====pc_mode=====*/

/*-----共通------*/

body {
    font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", sans-serif;
    font-size: 16px;
    color: #000;
    line-height: 1.7;
}

.pc_style {
    display: block;
}

.tb_style {
    display: none;
}

.sp_style {
    display: none;
}

.sp_style02 {
    display: none;
}

.flex {
    display: flex;
}

.bold {
    font-weight: bold;
}

.text_w {
    color: #fff;
}

.content_wrap {
    width: 95%;
    max-width: 1200px;
    margin: 0 auto;
}

.fl {
    display: flex;
    display: -ms-flexbox;
    display: -webkit-box;
    display: -webkit-flex;
}

.fl-wr {
    flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
}

.fl-bt {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

.fl-end {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: flex-end
}

@media screen and (max-width: 580px) {
    .sp_style02 {
        display: block;
    }
}

/*======header=====*/

/*------header_nav------*/

#nav_toggle,
.sp_nav {
    display: none;
}

#header_nav {
    position: fixed;
    width: 100%;
    z-index: 600;
    transition: all 1s ease;
    background-color: #fff;
}

#header_nav > div.flex {
    margin: 0 auto;
    z-index: 200;
    padding-left: 25px;
    padding-right: 20px;
    justify-content: space-between;
    align-items: center;
}

#header_nav ul.pc_nav > li {
    font-size: 18px;
    margin-left: 25px;
    margin-right: 25px;
    padding-top: 23px;
    padding-bottom: 23px;
}

#header_nav ul.pc_nav > li a {
    font-size: 18px;
    display: block;
    transition: .5s;
    position: relative;
}

#header_nav ul.pc_nav > li a::after {
    position: absolute;
    bottom: -2px;
    left: 0;
    content: '';
    width: 100%;
    height: 2px;
    background: #2846C8;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform .3s;
}

#header_nav ul.pc_nav > li a:hover::after {
    transform: scale(1, 1);
}

#header_nav ul.pc_nav > li.noline a::after {
    display: none;
}

#header_nav .top_logo img {
    display: block;
}

#header_nav .nav-con {
    margin-top: 10px;
}

#header_nav .en p {
    font-size: 12px;
    margin-top: 3px;
    margin-right: 5px;
}

#header_nav .nav-con .en a {
    display: block;
    border: 1px solid #000;
    border-radius: 15px;
    padding: 0 35px;
    font-size: 14px;
}

#header_nav .nav-con .en a::after {
    content: "▶";
    padding-left: 5px;
}

#header_nav .nav-con .en a:hover {
    background-color: #000;
    color: #fff;
}

/*------sub_menu------*/

.menu > li.menu__multi {
    position: relative;
}

ul.menu__second-level {
    visibility: hidden;
    opacity: 0;
    z-index: 1;
}

.menu > li:hover {
    -webkit-transition: all .5s;
    transition: all .5s;
}

li.menu__multi ul.menu__second-level {
    top: 60px;
    position: absolute;
    left: -70px;
    width: 230px;
    background-color: #E9EAF1;
}

li.menu__multi:hover ul.menu__second-level {
    visibility: visible;
    opacity: 1;
}

li.menu__multi ul.menu__second-level li a {
    display: block;
    position: relative;
    padding: 0.8em 1em;
    font-size: 16px;
    font-weight: normal;
    color: #333;
    border-bottom: 1px solid #fff;
    transition: all .2s ease;
}

li.menu__multi ul.menu__second-level li a:hover {
    opacity: .7;
}

li.menu__multi ul.menu__second-level li:last-child a {
    border-bottom: none;
}

li.menu__multi ul.menu__second-level li a::after {
    display: none;
}

/*------main_visual------*/

.main_visual {
    padding-top: 78px;
    position: relative;
    width: 100%;
    padding-bottom: 39%;
    overflow: hidden;
}

.catchphrase {
    width: 59%;
    /*  max-width: 1182px;*/
    position: absolute;
    top: 14%;
    left: 5.8%;
}

.catchphrase img {
    width: 100%;
}

.top_info {
    position: absolute;
    width: 100%;
    padding-bottom: 3%;
    z-index: 100;
    bottom: 0;
    background-image: url("../images/main_visual_front.png");
    background-size: 100%;
    background-position: bottom;
    background-repeat: no-repeat;
}

.top_info > .flex {
    justify-content: space-between;
    width: 60%;
    max-width: 1200px;
}

.top_info a {
    display: block;
    width: 30.4%;
    background-color: #2846C8;
    padding: 2px;
    font-size: 1.25vw;
    text-align: center;
    position: relative;
}

.top_info a:hover {
    opacity: 1;
}

.top_info a img {
    width: 100%;
    display: block;
}

.top_info a:after {
    content: '';
    display: inline-block;
    border-style: solid;
    border-width: 7px 0 7px 11px;
    border-color: transparent transparent transparent #fff;
    width: 0;
    height: 0;
    position: absolute;
    bottom: 15%;
    right: 20px;
    transform: translateY(-50%);
    transition: .3s;
}

.top_info a:hover:after {
    right: 15px;
}

.top_info p {
    padding: 1.5em 1em .8em;
    line-height: 1.4;
}

.top_info a.top_info_content2 p {
    padding-top: .7em;
}

@media screen and (max-width: 1600px) {
    .catchphrase {
        width: 70%;
        top: 10%;
        left: 0;
    }

    .top_info > .flex {
        justify-content: space-between;
        width: 67%;
    }

    .top_info a {
        width: 31.5%;
        font-size: 1.5vw;
    }
}

.slide_topvisual {
    position: absolute !important;
    padding-bottom: 39%;
    width: 100%;
}

.slider-item {
    width: 100%;
    padding-bottom: 39%;
    background-repeat: no-repeat;
    background-position: top;
    background-size: 100%;
}

.slider-item01 {
    background-image: url("../images/main_slider1.jpg");
}

.slider-item02 {
    background-image: url("../images/main_slider1.jpg");
}

.fadein {
    animation-name: fade-in;
    animation-duration: 1s;
    /*アニメーション時間*/
    animation-timing-function: ease-out;
    /*アニメーションさせるイージング*/
    animation-delay: .2s;
    /*アニメーション開始させる時間*/
    animation-iteration-count: 1;
    /*繰り返し回数*/
    animation-direction: normal;
    /*往復処理をするかどうか*/
    animation-fill-mode: backwards;
    /*アニメーション後のスタイル*/
}

@keyframes fade-in {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

/*------main------*/

h2.border_style {
    text-align: center;
    font-size: 32px;
    line-height: 1.5;
    margin-bottom: 76px;
}

h2.border_style span {
    font-size: 20px;
    display: block;
    letter-spacing: 2px;
}

h2.border_style:after {
    content: "";
    padding: 10px;
    display: block;
    background-image: url("../images/section_line.png");
    background-repeat: no-repeat;
    background-size: 60px;
    background-position: bottom;

}

/*-----section/news------*/

#news {
    padding-top: 100px;
    padding-bottom: 70px;
    background-image: url("../images/main_visual_front2.png");
    background-size: 100%;
    background-position: bottom;
    background-repeat: no-repeat;
    background-color: #F5F5F5;
}

#news > .flex {
    justify-content: space-between;
}

#news > .flex > div {
    width: 48%;
}

#news h3 {
    font-size: 20px;
    padding-bottom: .2em;
    border-bottom: 1px solid #707070;
    margin-bottom: 2em;
}

#news ul li {
    margin-bottom: 2em;
}

#news .time {
    font-size: 14px;
    display: inline-block;
    font-weight: bold;
    background-color: #557CBC;
    margin-bottom: .5em;
    border-radius: 40px;
    padding: .2em 1.5em;
}

#news .time_r {
    font-size: 14px;
    display: inline-block;
    font-weight: normal;
    background-color: #a3a3a3;
    margin-bottom: .5em;
    //border-radius: 40px;
    padding: .2em 1.5em;
}

#news .time_r1 {
    font-size: 14px;
    display: inline-block;
    font-weight: normal;
    background-color: #87ceeb;
    margin-bottom: .5em;
    //border-radius: 40px;
    padding: .2em 1.5em;
}

#news .time_r2 {
    font-size: 14px;
    display: inline-block;
    font-weight: normal;
    background-color: #ff7936;
    margin-bottom: .5em;
    //border-radius: 40px;
    padding: .2em 1.5em;
}

#news .time_r3 {
    font-size: 14px;
    display: inline-block;
    font-weight: normal;
    background-color: #66cc66;
    margin-bottom: .5em;
    //border-radius: 40px;
    padding: .2em 1.5em;
}

#news ul li a {
    text-decoration: underline;
}


.scroll-box {
    margin-top: 20px;
    height: 500px;
    overflow-y: scroll;
    padding: 0 15px;
    transform: translate3d(0, 0, 0);
    -webkit-transform: translate3d(0, 0, 0);
    width: 100%;
}

/*-----section/organization------*/

#organization {
    padding-top: 100px;
    padding-bottom: 60px;
    text-align: center;
}

#organization a {
    display: block;
    margin: 4px 8px;
}

#organization .flex {
    justify-content: center;
}

/*-----footer------*/

footer {
    font-size: 14px;
    line-height: 1.8;
}

footer .gotop {
    display: block;
    width: 100px;
    margin-left: auto;
    margin-right: 10%;
}

footer .gotop img {
    width: 100%;
    display: block;
}

footer .bg_gray {
    background-color: #F5F5F5;
    padding-top: 70px;
    padding-bottom: 70px;
}

footer .content_wrap.flex {
    justify-content: space-between;
}

footer .l_content .flex {
    align-items: center;
}

footer .l_content .flex a {
    display: block;
    margin-right: 10px;
}

.copyright {
    font-size: 10px;
    margin-top: 1em;
}

footer .r_content {
    font-weight: bold;
}

footer .r_content ul {
    flex-wrap: wrap;
}

footer .r_content ul li {
    margin-left: 2.5em;
    margin-bottom: 1em;
}

footer .r_content ul li.link a {
    display: block;
    font-weight: normal;
}






/*------------------------------*/

/*---------- SUB PAGE ----------*/

/*------------------------------*/

/*------sub_visual------*/

.subpage section {
    margin: 120px auto 70px;
}

.sub_page_mainvisual {
    background-image: url("../images/sub_visual01.png");
    background-size: cover;
    padding-top: 240px;
    padding-bottom: 86px;
    text-align: center;
}

.sub_page_mainvisual h1 {
    color: #fff;
    font-size: 38px;
    display: inline-block;
    position: relative;
    margin-bottom: 0.8em;
}

.sub_page_mainvisual h1 span {
    color: #fff;
    font-size: 20px;
    display: inline-block;
}

.breadcrumb {
    font-size: 13px;
    margin-top: 17px;
    line-height: 1;
}

.text_wrap {
    margin: 0 auto;
}

.text_wrap p {
    line-height: 32px;
}

.text_wrap a {
    text-decoration: underline;
}

.img_wrap {
    margin: 0 auto;
}

.guide li {
    margin-bottom: 15px;
    font-weight: bold;
    position: relative;
    padding-left: 1.65em;
}

.guide li::before {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50px;
    background-color: #000;
    position: absolute;
    top: 7.5px;
    left: 0%;
}




@media screen and (max-width: 900px) {
    .sub_page_mainvisual {
        padding-top: 130px;
        padding-bottom: 50px;
        text-align: center;
    }

    .sub_page_mainvisual h1 {
        font-size: 30px;
    }

    .subpage section {
        margin: 50px auto 20px;
    }

    .breadcrumb {
        font-size: 13px;
        margin-top: 10px;
    }
}

@media screen and (max-width: 600px) {
    .sub_page_mainvisual {
        padding-top: 100px;
        padding-bottom: 20px;
    }

    .sub_page_mainvisual h1 {
        font-size: 24px;
    }

    .breadcrumb {
        margin-top: 5px;
    }

    .guide li {
        margin-bottom: 10px;
        font-weight: bold;
        position: relative;
        padding-left: 1.5em;
        font-size: 14px;
    }

    .guide li::before {
        width: 7px;
        height: 7px;
    }

}




h3 {
    font-weight: bold;
    font-size: 20px;
    color: #08249B;
    margin-top: 1em;
    margin-bottom: 1.2em;
    /*    border-bottom: 1px solid #08249B;*/
}

h3.h3_style02 {
    width: fit-content;
    font-weight: bold;
    font-size: 32px;
    color: #2846C8;
    text-align: center;
    margin: 0 auto 55px;
    position: relative;
    padding-bottom: 0.65em;
    background-image: url("../images/h3_icon.png");
    background-size: auto;
    background-position: center bottom;
    background-repeat: no-repeat;
}

h3.h3_style02 span {
    font-size: 20px;
    display: block;
    font-weight: 500;
}

h3.h3_style02 a span {
    display: block;
    font-size: 20px;
    text-align: center;
    margin-top: -5px;
    font-weight: 500;
}


h4.h4_style02 {
    width: 100%;
    border-top: 1px solid #333333;
    border-bottom: 1px solid #333333;
    vertical-align: middle;
    text-align: left;
    font-size: 20px;
    margin-top: 55px;
    padding: 0.6em 1.5em;
    margin-bottom: 35px;
    font-weight: 500;
}

h4.h4_style02 span {
    color: #2846C8;
}

.subpage section#btn_list {
    margin: 0 auto 70px;
}

#btn_list {
    position: sticky;
    top: 110px;
    z-index: 5;
    background: #fff;
    padding-top: 30px;
}

#btn_list ul {
    width: 100%;
}

#btn_list li {
    width: 50%;
    max-width: 595px;
}

#btn_list li.w_110 {
    width: 100%;
    max-width: inherit;
}

#btn_list li.btn_inner a {
    position: relative;
    width: 100%;
    display: block;
    padding: 20px;
}

#btn_list li.btn_inner a.w_105 {
    position: relative;
    width: 100%;
    height: 105px;
}

#btn_list li.btn_inner.w_100 a {
    height: 110px;
}


#btn_list li.btn_inner a span {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    padding: 0.8em 0;
    font-size: 18px;
    line-height: 1.4;
}

#btn_list li.btn_inner a span02 {
    font-size: 14px;
    margin-top: 5px;
    display: block;
    font-size: 16px;
}

a.btn_arrow {
    position: relative;
    display: block;
    padding: 0 2em;
    width: 100%;
    text-align: center;
    font-weight: bold;
    font-size: 16px;
    margin-bottom: 10px;
}

.btn_inner:last-child a.btn_arrow {
    margin-bottom: 0;
}

a.btn_arrow.c_ore {
    border: 1px solid #EE7D19;
    color: #EE7D19;
}

a.btn_arrow.c_blu {
    border: 1px solid #2846C8;
    color: #2846C8;
}

a.btn_arrow.c_sky {
    border: 1px solid #78B0CB;
    color: #78B0CB;
}

a.btn_arrow.c_gre {
    border: 1px solid #64BA8D;
    color: #64BA8D;
}

/*
a.btn_arrow.c_whi {
    border: 1px solid #fff;
    color: #fff;
}
*/

a.btn_arrow:after {
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    transition: .2s;
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
}


a.btn_arrow.c_ore:after {
    border-left: 12px solid #EE7D19;
}

a.btn_arrow.c_blu:after {
    border-left: 12px solid #2846C8;
}

a.btn_arrow.c_sky:after {
    border-left: 12px solid #8ED4F6;
}

a.btn_arrow.c_gre:after {
    border-left: 12px solid #64BA8D;
}

a.btn_arrow.c_whi:after {
    border-left: 12px solid #fff;
}

#btn_list a span {
    font-size: 14px;
    display: block;
    line-height: 1;
    /*    margin-top: 3px;*/
}

#btn_list li.img-btn {
    width: 100%;
    max-width: 100%;
}

#btn_list li.img-btn img {
    width: 100%;
}


@media screen and (max-width: 1250px) {

    .subpage section {
        margin: 100px auto 70px;
    }

    #btn_list li {
        width: 48%;
        max-width: 580px;
    }

    h3.h3_style02 {
        font-size: 28px;
        margin: 0 auto 35px;
        padding-bottom: 0.65em;
    }
}



@media screen and (max-width: 900px) {

    #btn_list li {
        width: 49%;
        max-width: inherit;
    }

    a.btn_arrow {
        max-height: 60px;
        padding: 0.7em 1.5em;
        width: 100%;
        font-size: 16px;
        margin-bottom: 15px;
        line-height: 1.4;
    }



    #btn_list li.btn_inner a span {
        font-size: 16px;
        line-height: 1.3;
    }

    a.btn_arrow:after {
        right: 2%;
        border-top: 5px solid transparent;
        border-bottom: 5px solid transparent;
    }

    a.btn_arrow.c_ore:after {
        border-left: 8px solid #EE7D19;
    }

    a.btn_arrow.c_blu:after {
        border-left: 8px solid #2846C8;
    }

    a.btn_arrow.c_sky:after {
        border-left: 8px solid #8ED4F6;
    }

    a.btn_arrow.c_gre:after {
        border-left: 8px solid #64BA8D;
    }

    a.btn_arrow.c_whi:after {
        border-left: 8px solid #fff;
    }
}


@media screen and (max-width: 768px) {
    .subpage section {
        margin: 80px auto;
    }

    #btn_list li.btn_inner a span {
        font-size: 14px;
    }

    h3.h3_style02 {
        font-size: 24px;
        margin: 0 auto 20px;
        padding-bottom: 0.5em;
    }

    h3.h3_style02 span {
        font-size: 17px;
    }

    h4.h4_style02 {
        font-size: 18px;
        margin-top: 40px;
        padding: 0.4em 1em;
        margin-bottom: 20px;
    }
}

@media screen and (max-width: 600px) {
    .subpage section {
        margin: 60px auto;
    }

    #btn_list {
        position: sticky;
        top: 65px;
        padding-top: 10px;
    }

    #btn_list li {
        width: 100%;
    }

    a.btn_arrow {
        max-height: inherit;
        margin-bottom: 10px;
    }

    #btn_list li.btn_inner a.w_105 {
        height: 65px;
    }

    #btn_list li.w_110 {
        margin-top: 10px;
    }

    .subpage section {
        margin: 60px auto 10px;
    }
}



@media screen and (max-width: 480px) {
    .subpage section {
        margin: 40px auto;
    }

    h3.h3_style02 {
        width: 100%;
        font-size: 20px;
        margin: 0 auto 15px;
        padding-bottom: 0.5em;
    }

    h3.h3_style02 span {
        font-size: 15px;
    }

    h4.h4_style02 {
        font-size: 17px;
        margin-top: 30px;
        margin-bottom: 20px;
    }

    #btn_list li.btn_inner.w_110 a {
        height: 80px;
    }

    #btn_list li.btn_inner a span {
        padding: 0.8em 1em;
    }

    #btn_list li.btn_inner a span02 {
        font-size: 12px;
        margin-top: 0;
        display: block;
    }
}


.btn_contact02 {
    height: 140px;
}

.btn_contact02 a.btn_arrow {
    max-height: 140px;
}

.btn_inner.btn_contact {
    background: linear-gradient(to right, #557CBC 0%, #2846C8 100%);
}


#btn_list li.btn_inner.btn_contact a {
    position: relative;
    width: 100%;
    height: 110px;
    background-image: url(../images/btn_c_bg.png);
    background-position: left bottom;
    background-size: auto;
    background-repeat: no-repeat;
    color: #fff;
}

.btn_inner.btn_contact02 {
    height: 140px;
    background: linear-gradient(to right, #557CBC 0%, #2846C8 100%);
}


#btn_list li.btn_inner.btn_contact02 a {
    position: relative;
    width: 100%;
    height: 140px;
    background-image: url(../images/btn_c_bg02.png);
    background-position: left bottom;
    background-size: auto;
    background-repeat: no-repeat;
    color: #fff;
}

@media screen and (max-width: 768px) {
    .btn_inner.btn_contact02 {
        height: 100px;

    }

    #btn_list li.btn_inner.btn_contact02 a {
        height: 100px;
    }

}


/* greeting */

.greeting .text_wrap {
    width: 74%;
    max-width: 860px;
    margin-right: 2%;
}


.greeting .img_wrap {
    width: 24%;
    max-width: 300px;
}

.greeting .text_wrap h4 {
    color: #2846C8;
    font-weight: 500;
    font-size: 32px;
    margin-bottom: 15px;
}

@media screen and (max-width: 768px) {
    .greeting .text_wrap h4 {
        font-size: 26px;
        margin-bottom: 10px;
    }
}

@media screen and (max-width: 520px) {
    .greeting .text_wrap h4 {
        font-size: 20px;
        margin-bottom: 10px;
    }

    .greeting .fl {
        display: block;
    }

    .greeting .text_wrap,
    .greeting .img_wrap {
        width: 100%;
        margin-right: 0;
    }

    .greeting .img_wrap {
        margin: 20px auto 0;
        text-align: center;
    }
}

/* vision 

.vision .img_wrap {
    text-align: center;
}

/* story */

.bg_g {
    width: 100%;
    background-color: #F9F9F9;
    padding: 120px 0;
}

.bg_g .sec_wrap {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}


@media screen and (max-width: 1250px) {
    .bg_g {
        padding: 100px 0;
    }
}


@media screen and (max-width: 900px) {
    .bg_g {
        padding: 100px 0;
    }
}

@media screen and (max-width: 768px) {
    .bg_g {
        padding: 80px 0;
    }
}

@media screen and (max-width: 600px) {
    .bg_g {
        padding: 60px 0;
    }
}

@media screen and (max-width: 480px) {
    .bg_g {
        padding: 40px 0;
    }
}




.enkaku02 table {
    width: 100%;
    background-image: url(../images/t-border.png);
    background-position: 3px top;
    background-repeat: repeat-y;
}

.enkaku02 th {
    position: relative;
    width: 147px;
    background-image: url(../images/border.png);
    background-position: right bottom;
    background-repeat: no-repeat;
    background-size: 86%;
}

.enkaku02 th span {
    font-size: 20px;
    font-weight: bold;
}

.enkaku02 th span::before {
    content: '';
    position: absolute;
    left: 0;
    top: 22px;
    width: 15px;
    height: 15px;
    background-color: #2846C8;
    border-radius: 50px;
    z-index: 1;
}

.enkaku02 th span::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 23px;
    width: 3px;
    height: 100%;
    background-color: #D5D5D5;
}

.enkaku02 td {
    background-image: url(../images/border.png);
    background-position: right bottom;
    background-repeat: no-repeat;
}

.enkaku02 td ul {
    margin-bottom: 1em;
    margin-top: 1em;
}

.enkaku02 td:first-child ul {
    margin-bottom: 1em;
    margin-top: 0;
}

.enkaku02 td li {
    font-weight: 500;
    margin-bottom: 0.4em;
}

.enkaku02 td li span {
    width: 62px;
    color: #2846C8;
    font-size: 18px;
    font-weight: bold;
    display: inline-block;
}



@media screen and (max-width: 520px) {
    .enkaku02 th {
        display: block;
        background-image: none;
    }

    .enkaku02 th span::before {
        top: 12px;
    }

    .enkaku02 th span {
        font-size: 18px;
    }

    .enkaku02 td {
        display: block;
        margin-left: 1em;
        padding-left: 2em;
    }

    .enkaku02 td ul {
        margin-top: 0.5em;
        padding-bottom: 1em;
    }

    .enkaku02 td li span {
        width: auto;
        margin-right: 1em;
    }

    .enkaku02 th span::after {
        left: 7px;
        width: 2px;
        height: 166px;
    }
}

.enkaku table {
    width: 100%;
}

.enkaku th {
    width: 110px;
}

.enkaku th.year {
    display: inline-block;
    font-size: 22px;
    font-weight: bold;
}

.enkaku tr {
    position: relative;
}

.enkaku tr.border {
    background-image: url(../images/border.png);
    background-position: right bottom;
    background-repeat: no-repeat;
    background-size: 97.5%;
}

.enkaku tr.border td {
    margin-bottom: 15px;
}

.enkaku tr span {
    font-size: 22px;
    font-weight: bold;
    display: inline-block;
    margin-left: 35px;
    margin-right: 25px;
}

.enkaku tr.point td {
    margin-top: 15px;
}

.enkaku tr.point::before {
    content: '';
    position: absolute;
    left: 0;
    top: 22px;
    width: 10px;
    height: 10px;
    background-color: #38B49F;
    border-radius: 50px;
    z-index: 1;
}

.enkaku tr::after {
    content: '';
    position: absolute;
    left: 3.5px;
    top: 22px;
    width: 3px;
    height: 100%;
    background-color: #EFEFEF;
    z-index: 0;
}

.enkaku td {
    margin-bottom: 5px;
    font-weight: bold;
}

.enkaku td.month {
    width: 45px;
    color: #3EBC82;
    font-size: 16px;
    font-weight: bold !important;
    display: inline-block;
}

.enkaku td.detail {
    display: inline-block;
}

@media screen and (max-width: 1250px) {
    .enkaku table {
        width: 96%;
        margin: 0 auto;
    }
}



@media screen and (max-width: 600px) {
    .enkaku td.detail {
        display: inline-block;
        margin-left: 35px;
    }

    .enkaku td {
        margin-bottom: 0;
    }

    .enkaku tr.point td {
        margin-top: 0;
    }

    .enkaku tr.border {
        background-size: 94%;
    }
}


@media screen and (max-width: 520px) {
    .enkaku th.year {
        display: block;
        font-size: 18px;
        width: 300px;
        text-align: left;
        margin-left: 30px;
    }

    .enkaku tr.point::before {
        top: 12px;
    }

    .enkaku tr.border {
        background-size: 97%;
    }

    .enkaku tr.border td {
        margin-bottom: 10px;
    }

    .enkaku tr.point td {
        margin-bottom: 10px;
    }

    .enkaku td.month {
        margin-bottom: 0;
        margin-left: 35px;
        vertical-align: top;
    }

    .enkaku td.detail {
        margin-left: 0px;
        width: 70%;
    }

}


.img_wrap.org_img {
    margin-top: 60px;
}

.img_wrap img {
    width: auto;
    max-width: 100%;
}

.about table {
    width: 100%;
    margin-bottom: 5em;
}

.about th {
    max-width: 188px;
    width: 20%;
    padding: 2em 2%;
    margin-right: 2%;
    border-bottom: 1px solid #D5D5D5;
    font-weight: bold;
    vertical-align: top;
    text-align: left;
}

.about tr.border th,
.about tr.border td {
    border-top: 1px solid #D5D5D5;
}

.about td {
    width: 80%;
    padding: 1.9em 0;
    border-bottom: 1px solid #D5D5D5;
    font-weight: bold;
    vertical-align: top;
    font-weight: 500;
    line-height: 34px;
}


.about tr.title {
    width: 100%;
    border-top: 1px solid #333333;
    border-bottom: 1px solid #333333;
    vertical-align: middle;
    text-align: left;
    font-size: 20px;
    margin-top: 120px;
}

.about tr.title th {
    width: 100%;
    padding: 0.6em 2%;
    border-top: 1px solid #333333;
    border-bottom: 1px solid #333333;
    vertical-align: middle;
    text-align: left;
    font-weight: 500;
}


@media screen and (max-width: 900px) {
    .about th.title {
        max-width: inherit;
        width: 30%;
        padding: 1.5em 2%;
        margin-right: 2%;
        line-height: 1;
        font-size: 18px;
    }

    .about th {
        max-width: inherit;
        width: 30%;
        padding: 1.5em 2%;
        margin-right: 2%;
        line-height: 1;
        font-size: 16px;
    }

    .about td {
        width: 70%;
        padding: 1.5em 0;
        line-height: 1;
    }
}



@media screen and (max-width: 520px) {

    .story table {
        margin-bottom: 30px;
    }

    .about th.title {
        max-width: inherit;
        width: 50%;
        font-size: 17px;
        padding: 1em 0;
    }

    .about th {
        max-width: inherit;
        width: 50%;
        font-size: 14px;
        padding: 1em 0;
    }

    .about td {
        width: 50%;
        padding: 1em 0;
    }

    .greeting .img_wrap img {
        max-width: 80%;
    }
}




.number {
    padding-left: 1em;
}

.number li {
    margin-bottom: 5px;
    position: relative;
    counter-increment: inherit;
    list-style-type: decimal;
}

.li_01,
.li_02 {
    padding-left: 2.3em;
}

.li_03 {
    margin-top: 60px;
}

.li_02 {
    margin-bottom: 30px;
}

.li_02.m_b_75 {
    margin-bottom: 75px;
}

.li_01 li {
    font-weight: bold;
    margin-bottom: 15px;
    /*    padding-left: 3em;*/
    position: relative;
}

.li_02 li {
    font-weight: bold;
    margin-bottom: 5px;
    position: relative;
}

.li_01 li::before,
.li_02 li::before {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50px;
    background-color: #000;
    position: absolute;
    top: 50%;
    left: -1em;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
}


.li_01 a,
.li_02 a {
    text-decoration: underline;
}

.li_01 .pdf,
.li_03 .pdf {
    background-image: url(../images/pdf_icon.png);
    background-position: left center;
    background-repeat: no-repeat;
    background-size: auto;
    font-weight: 500;
    padding-left: 2.5em;
}


.li_03 .word {
    background-image: url(../images/word_icon.png);
    background-position: left center;
    background-repeat: no-repeat;
    background-size: auto;
    font-weight: 500;
    margin-bottom: 20px;
}

.li_03 .word a {
    padding-left: 2.5em;
}

.li_01 li.pdf::before,
.li_01 li.word::before,
.li_03 li.pdf::before,
.li_03 li.word::before {
    display: none;
}


@media screen and (max-width: 900px) {
    .li_02.m_b_75 {
        margin-bottom: 50px;
    }
}

@media screen and (max-width: 768px) {

    .li_01,
    .li_02 {
        padding-left: 1.3em;
    }
}

@media screen and (max-width: 520px) {
    .li_03 {
        font-size: 14px;
        margin-top: 30px;
    }

    .li_02.m_b_75 {
        margin-bottom: 30px;
    }
}



/* アクセス */

.map {
    width: 100%;
}

.map iframe {
    width: 100%;
    height: 400px;
    margin-bottom: 60px;
}

img.map01 {
    height: 1%;
    width: 56.6666%;
    max-width: 680px;
}

img.map02 {
    height: 1%;
    width: 38.333333%;
    max-width: 460px;
}

@media screen and (max-width: 900px) {
    .map iframe {
        width: 100%;
        height: 300px;
        margin-bottom: 35px;
    }
}

@media screen and (max-width: 520px) {
    .map iframe {
        width: 100%;
        height: 300px;
        margin-bottom: 20px;
    }
}


/* 研究者・医療従事者の方*/

.researcher-btn a {
    width: 100%;
    background: linear-gradient(to right, #557CBC 0%, #2846C8 100%);
    display: table;
    line-height: 0;
}

.researcher-btn .img {
    display: table-cell;
    width: 437px;
}

.researcher-btn .img img {
    width: 100%;
}

.researcher-btn .btn-con {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}

.researcher-btn div h3 {
    color: #fff;
    font-size: 4.2rem;
    letter-spacing: 20px;
    line-height: 140%;
    margin-top: -35px;
    margin-bottom: 20px;
    margin-left: 20px;
}

.researcher-btn div span {
    background: #fff;
    color: #2A48C7;
    border-radius: 20px;
    font-weight: bold;
    font-size: 18px;
    padding: 10px;
}

.researcher-btn div span::after {
    content: "▶";
    margin-left: 5px;
    color: #2A48C7;
    padding: 1px 3px;
    font-size: 12px;
}

.researcher li {
    width: 100%;
    margin-top: 70px;
}

.researcher li a {
    display: block;
    width: 100%;
    height: 100%;
    display: table;
    padding-bottom: 1em;
}

.researcher li .institution {
    width: 130px;
    text-align: center;
    display: table-cell;
}

.researcher li p {
    display: table-cell;
    width: 83%;
    padding-left: 3%;
    vertical-align: middle;
}

.researcher li:nth-child(1) {
    border-bottom: 2px solid #64BA8D;
}

.researcher li:nth-child(2) {
    border-bottom: 2px solid #EE7D19;
}

.researcher li:nth-child(3) {
    border-bottom: 2px solid #A7C839;
}

.researcher li:nth-child(4) {
    border-bottom: 2px solid #8ED4F6;
}

.croco {
    margin: 80px auto 0;
}

.croco a {
    width: 100%;
    border: 1px solid #D8D8D8;
    padding-top: 32px;
    padding-bottom: 32px;
}

.croco img {
    margin-top: 2em;
}

#btn_list .croco li.btn_inner a {
    position: relative;
    width: 100%;
    height: fit-content;
}

#btn_list .croco li.btn_inner img {
    width: auto;
    max-width: 100%;
    margin-top: 15px;
}

@media screen and (max-width: 1200px) {
    .researcher-btn .img {
        width: 35%;
    }

    .researcher-btn div h3 {
        font-size: 3.2rem;
    }

    .researcher-btn div span {
        font-size: 16px;
    }

}

@media screen and (max-width: 900px) {
    .researcher-btn .img {
        width: 25%;
    }

    .researcher-btn .btn-con h3 {
        margin-top: 5px;
        font-size: 2.4em;
    }

    .researcher-btn .btn-con {
        padding-bottom: 1em;
    }

    .researcher-btn .btn-con span {
        font-size: 14px;
    }

    .researcher li p {
        width: 80%;
    }

    .croco a.btn_arrow {
        max-height: inherit;
    }

    .croco .btn_inner {
        padding-top: 20px;
        padding-bottom: 20px;
    }
}

@media screen and (max-width: 768px) {
    .researcher-btn a {
        display: block;
        padding-top: 2em;
        padding-bottom: 2em;
    }

    .researcher-btn .img {
        display: none;
    }

    .researcher-btn .btn-con {
        display: block;
    }

    .researcher li .institution img {
        width: auto;
    }

    .researcher li .institution {
        font-size: 14px;
    }

    .researcher li p {
        font-size: 14px;
    }

    .croco span02 {
        font-size: 14px;
    }
}

@media screen and (max-width: 580px) {
    .researcher-btn .btn-con span {
        font-size: 12px;
        line-height: 160%;
        display: block;
        width: 90%;
        margin: 0 auto;
        border-radius: 30px;
    }

    .croco img {
        width: 100%;
    }
}


@media screen and (max-width: 520px) {
    .researcher li a {
        display: block;
    }

    .researcher li {
        margin-top: 3em;
    }

    .researcher li .institution {
        width: 130px;
        display: block;
        text-align: center;
        margin: 0 auto 1em auto;
    }

    .researcher li p {
        display: block;
        width: 100%;
        padding-left: 0;
    }

    .croco {
        margin: 30px auto 0;
    }
}


/*  fix page  */

/*
.fix table {
    width: 100%;
    margin-bottom: 5em;
    margin-top: 2em;
}

.fix th {
    max-width: 250px;
    width: 25%;
    padding: 2em 2%;
    margin-right: 2%;
    border-bottom: 1px solid #D5D5D5;
    font-weight: bold;
    vertical-align: top;
    text-align: left;
    background-color: #f7f4f4;
}

.fix tr.border th,
.fix tr.border td {
    border-top: 1px solid #D5D5D5;
}

.fix td {
    width: 65%;
    padding: 1.9em 0 1.9em 1.9em;
    border-bottom: 1px solid #D5D5D5;
    font-weight: bold;
    vertical-align: top;
    font-weight: 500;
    line-height: 34px;
}


.fix tr.title {
    width: 100%;
    border-top: 1px solid #333333;
    border-bottom: 1px solid #333333;
    vertical-align: middle;
    text-align: left;
    font-size: 20px;
    margin-top: 120px;
}

.fix tr.title th {
    width: 100%;
    padding: 0.6em 2%;
    border-top: 1px solid #333333;
    border-bottom: 1px solid #333333;
    vertical-align: middle;
    text-align: left;
    font-weight: 500;
}
*/

/*
@media screen and (max-width: 900px) {
    .fix th.title {
        max-width: inherit;
        width: 30%;
        padding: 1.5em 2%;
        margin-right: 2%;
        line-height: 1;
        font-size: 18px;
    }

    .fix th {
        max-width: inherit;
        width: 30%;
        padding: 1.5em 2%;
        margin-right: 2%;
        line-height: 1;
        font-size: 16px;
    }

    .fix td {
        width: 70%;
        padding: 1.5em 0;
        line-height: 1;
    }
}
*/

/*

@media screen and (max-width: 520px) {

    .fix table {
        margin-bottom: 30px;
    }

    .fix tr {
        display: block;
    }

    .fix th.title {
        max-width: inherit;
        width: 60%;
        font-size: 17px;
        padding: 1em 0;
    }

    .fix th {
        max-width: inherit;
        width: 100%;
        font-size: 14px;
        padding: 1em;
        display: block;
    }

    .fix td {
        width: 100%;
        display: block;
        padding: 1em;
        line-height: 1.4;
    }
}
*/

/*FAQ table*/

/*ベース*/

.fix .toggle {
    display: none;
}

.fix .Label {
    /*タイトル*/
    padding: 1em 2.3em;
    display: block;
    color: #000;
    cursor: pointer;
    font-weight: bold;
}

.fix .Label:hover {
    color: #2846C8;
}


.fix .Label::before {
    /*タイトル横の矢印*/
    content: "";
    width: 6px;
    height: 6px;
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    -webkit-transform: rotate(45deg);
    position: absolute;
    top: calc(50% - 3px);
    right: 20px;
    transform: rotate(135deg);
}

.fix .Label span {
    margin-right: 0.5em;
}

.fix .Label,
.fix .content {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
    transition: all 0.3s;

}

.fix .content {
    /*本文*/
    height: 0;
    margin-bottom: 10px;
    padding: 0 2.3em;
    overflow: hidden;
    transition: all 0.3s;
}

.fix .accordion {
    padding-bottom: 2em;
}

.fix .content p {
    margin-bottom: 1em;
}

.fix .content p a {
    text-decoration: underline;
}

.fix .content::after {
    /*タイトル横の矢印*/
    position: absolute;
    left: 0.7em;
    top: 0.9em;
    font-weight: bold;

}


.fix .toggle:checked + .Label {
    background: #d1dbff;
}

.fix .toggle:checked + .Label + .content {
    /*開閉時*/
    height: auto;
    padding: 1em 2.3em;
    transition: all .3s;

}

.fix .toggle:checked + .Label::before {
    transform: rotate(-45deg) !important;
}


@media screen and (max-width: 520px) {

    .sp_none {
        display: none;
    }
}

.y_line {
    background: rgba(0, 0, 0, 0) linear-gradient(transparent 40%, #fff6d7 0%) repeat scroll 0 0;
}

.fix .content .img_wrap {
    width: auto;
    margin-top: 30px;
}

.fix .content .img_wrap img {
    width: auto;
    max-width: 100%;
}


/* 支援料シミュレーター */

.simu {
    width: 100%;
    max-width: 660px;
    padding: 3em 4%;
    margin: 0 auto;
    display: block;
    font-size: 15px;
}

.simu .box {
    margin-bottom: 30px;
}

.simu p.title {
    font-size: 20px;
    font-weight: bold;
    padding-bottom: 5px;
    border-bottom: 1px solid #557CBC;
    margin-bottom: 30px;
}

.simu p.title02 {
    font-size: 16px;
    font-weight: bold;
    position: relative;
    padding-left: 16px;
    margin-bottom: 12px;
}

.simu p.title02::before {
    content: '';
    position: absolute;
    width: 4px;
    height: 80%;
    background-color: #000;
    left: 0;
    top: 3px;
    font-size: 16px;
    font-weight: bold;
}

.simu p.title03 {
    font-size: 20px;
    font-weight: bold;
}

.simu span.fs18 {
    font-size: 18px;
    font-weight: normal;
}

.simu span.fs16 {
    font-size: 16px;
    font-weight: normal;
}

.simu .facility-number {
    margin-bottom: 30px;
}

.simu #facility-number {
    width: 350px;
    height: 40px;
    background-color: #F0F4F9;
    padding: 5px 10px;
    border-radius: 5px;
    border: 1px solid #9BA1B5;
    color: #000;
}

.simu #term {
    width: 150px;
    height: 30px;
    background-color: #F0F4F9;
    padding: 5px 10px;
    border-radius: 5px;
    border: 1px solid #9BA1B5;
    color: #000;
}

.simu #total {
    font-size: 24px;
    font-weight: bold;
    color: #2846C8;
}

.simu #total span {
    font-size: 16px;
    font-weight: normal;
    color: #000;
}

.simu .total_box {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #557CBC;
}

.simu .total_box .price {
    overflow: hidden;
    margin-top: 10px;
    width: 260px;
}


.simu .total_box .price span2 {
    float: left;
    display: inline-block;
    width: 50px;
    font-size: 20px;
    margin-left: 10px;
    margin-top: 30px;
    font-weight: bold;
}

.simu #subtotal {
    display: block;
    margin-top: 10px;
    font-size: 15px;
}

.simu #subtotal dl:nth-child(odd) {
    overflow: hidden;
    background-color: #F3F3F3;

}

.simu #subtotal h4 {
    font-weight: 500;
}

.simu #subtotal dt {
    width: 70%;
    float: left;
    margin-right: 0;
    padding: 7px 0 7px 15px;
    border-bottom: 1px solid #ccc;
}

.simu #subtotal dd {
    width: 110px;
    padding: 7px 15px;
    float: left;
    text-align: right;
    border-bottom: 1px solid #ccc;
}

.simu #subtotal dd span {
    display: inline-block;
    margin-left: 2px;
}

.simu dl {
    margin-bottom: 3em;
}

.fix-right {
    position: fixed;
    top: 20.6vh;
    right: 0;
    display: flex;
    flex-direction: column;
    z-index: 10;
}

.fix-right a:hover {
    opacity: 1;
}

.fix-right a {
    display: block;
    background: rgb(21 144 217);
    background: linear-gradient(180deg, rgb(21 144 217) 30%, rgb(37 159 231) 70%);
    color: #fff;
    font-size: 1.4rem;
    font-weight: bold;
    writing-mode: vertical-rl;
    padding: 25px 35px 26px 35px;
    margin-bottom: 10px;
    letter-spacing: 0.1em;
    line-height: 100%;
    border-radius: 10px 0 0 10px;
}

.fix-right a span::before {
    width: 19px;
    height: 25px;
    margin-right: 8px;
    margin-bottom: 10px;
    content: "";
    display: inline-block;
    vertical-align: middle;
    background: url(../images/h_mail.png) no-repeat center/contain;
}

.fix-right a:hover {
    background: rgb(36 154 225);
    background: linear-gradient(180deg, rgb(36 154 225) 30%, rgb(62 168 231) 70%);
}

@media screen and (max-width: 768px) {
    .fix-btn {
        display: none;
    }

    .fix-right {
        display: none;
    }
}

.sp-footer {
    display: none;
}

@media screen and (max-width: 980px) {
    .sp-footer {
        position: fixed;
        bottom: 0;
        width: 100%;
        display: flex;
        display: -ms-flexbox;
        display: -webkit-box;
        display: -webkit-flex;
        z-index: 1000;
    }

    .sp-footer a {
        display: block;
        width: 100%;
        height: 100%;
        line-height: 60px;
    }

    .sp-footer a span {
        position: relative;
        display: inline-block;
    }


    .sp-footer .sp-f-btn {
        background: rgb(21 144 217);
        width: 100%;
        height: 60px;
        text-align: center;
    }

    .sp-footer .sp-f-btn span::before {
        width: 20px;
        height: 16px;
        margin-top: -2px;
        margin-right: 0.3em;
        content: "";
        display: inline-block;
        vertical-align: middle;
        background: url(../images/h_mail.png) no-repeat center/contain;
        -webkit-transition: all 0.3s ease;
        transition: all 0.3s ease;
    }

    .sp-footer .sp-f-btn a {
        font-size: 16px;
        font-weight: 700;
        color: #fff;
        letter-spacing: 1.2px;
    }

    .mt3 {
        margin-bottom: 3em;
    }
}
