@charset "UTF-8";


/* TOPPAGE */
body.home {
    padding-top: 0 !important;
}
#toppage h2 {
    background: url(../img/common/h1_bg.webp) no-repeat left top / 155px auto;
    padding: 2.5em 2em 2em;
    margin-left: -2em;
}
#toppage h2.white {
    background: url(../img/top/ttl_bg_w.svg) no-repeat left top / 155px auto;
    padding: 2.5em 2em 2em;
    margin-left: -2em;
}
#toppage h2.white.blu .ja,
#toppage h2.white.blu .en {
    color: #587ABF;
}
#toppage h2 .ja {
    display: block;
    font-family: "Zen Kaku Gothic New", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 40px;
    margin-bottom: .1em;
    color: #399C90;
}
#toppage h2 .en {
    display: block;
    font-family: "Poppins", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
    color: #399C90;
    letter-spacing: .06em;
}
#toppage h2 + .exp {
	margin-bottom: 49px;
    font-size: 19px;
}

#toppage .btn a{
    display: block;
    color: #FFF;
    letter-spacing: 0.1em;
    text-decoration: none;
    padding: 1em 4em 1em 2em;
    border-radius: 3em;
    background: #ccc;
    position: relative;
    box-shadow: 8px 8px 2px rgba(0,0,0,0.06);
    transition: 0.5s;
    max-width: 420px;
}
#toppage .btn a:after{
    content:"";
    display: inline-block;
    width: 1.3em;
    height: 1.3em;
    background: url('../img/common/arrow_circle.svg') center no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top:50%;
    right:2em;
    transform: translateY(-50%);
}
#toppage .btn a:hover{
    transform: translateY(5px);
     box-shadow: 3px 3px 2px rgba(0,0,0,0.3);
}
#toppage .btn.btn3 a:after{
    background-image: url('../img/common/arrow_circle1.svg');
}
@media only screen and (max-width: 767px) {
	#toppage #mv{
        margin-top: 22px;
    }
	#toppage h2,
	#toppage h2.white {
        padding: 5vw 7% 7vw;
        margin: 0 -6vw;
        background-size: 5.5em auto;
	        background-position: left 5px top;
	}
	#toppage h2 .ja {
	    font-size: 2rem;
	    margin-bottom: .3em;
	    line-height: 1.2;
	}
	#toppage h2 .en {
	    font-size: 0.9rem;
	}
	#toppage h2.lng {
		padding-top: 31px;
	}
	#toppage h2.lng .ja {
		font-size: 27px;
	}
    

    #toppage .btn {
		width:100%;
	}
    #toppage .btn a{
		width:100%;
		padding: .75em 2em .75em 2em;
		text-align:center;
		font-size: 16px;
	}
	#toppage .btn a:after{
	    width: 1.6em;
	    height: 1.6em;
	    background: url('../img/common/arrow_circle.svg') center no-repeat;
	    right:1em;
	}
}

#toppage #mv{
    position: relative;
}
#toppage #mv p.lead{
    letter-spacing: 0.05em;
    line-height: 1.33;
    position: absolute;
    font-weight: bold;
    left: 5%;
    top: 2em;
    font-family: "Zen Kaku Gothic New", sans-serif;
    text-shadow: 0 0 20px #FFF, 0 0 20px #FFF;
    font-size: clamp(10px, 5vw, 65px);
}
@media only screen and (max-width: 767px) {
	#toppage #mv p.lead{
	    font-size: 9vw;
	    top: 18vw;
	    left: 4%;
	    letter-spacing: .02em;
	}
}
#toppage #about{
    background: url('../img/top/about_bg.svg') center top;
    background-size: cover;
    margin-top: -17.5vw;
    position: relative;
    z-index: 2;
    padding-top: 8.5vw;
}
#toppage #about .keyword{
    max-width: 1140px;
    margin: 0 auto;
    background: #FFF;
    display: flex;
    gap:20px;
    font-size:22px;
    padding: 36px 40px;
    border-radius: 10px;
    flex-wrap: wrap;
}
#toppage #about .keyword dd a{
    background: #FFF;
    border:1px solid #E9F3F4;
    color: #65BDB6;
    border-radius: 1.2em;
    font-size:14px;
    padding:0.3em 1em;
    text-decoration: none;
    display: block;
}
#toppage #about .keyword dd a:hover{
    border-color: #65BDB6;
	background: rgba(103, 190, 181, .1);
}
#toppage #about .flex {
    padding-top: 90px;
    align-items: center;
    gap: 20px;
}
#toppage #about .flex .txtbox h3{
    color: #FFF;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.37;
    font-size: clamp(10px, 5vw, 58px);
}
#toppage .recommend .btn,
#toppage #about .flex .txtbox p,
#toppage #supervisor .btn,
#toppage #faq .btn{
    padding: 33px 5px 10px;
    line-height: 2.7;
    color: #FFF;
    font-size: 18px;
    letter-spacing: 0.04em;
}
#toppage .recommend .btn {
	width: 420px;
}
#toppage #about .flex .img{
    background: #FFF;
    border-radius: 15px;
    padding:126px;
    margin-bottom: 40px;
}
#toppage #about .flex .txtbox .btn a{
    background: #FFF;
    color: #399C90;
}
@media only screen and (max-width: 767px) {
	#toppage #about{
	    background: url('../img/sp/top/about_bg.svg') center top;
	    margin-top: -34vw;
	    padding-top: 20vw;
	    background-size: cover;
	}
	#toppage #about .content-inner{
        padding: 6vw 4vw 29vw;
 }
	#toppage #about .keyword{
	    gap:3vw;
	    font-size:3.7vw;
	    padding: 4vw 6vw;
	    border-radius: 3vw;
	    flex-wrap: wrap;
	}
	#toppage #about .keyword dt{
		flex:0 0 100%;
		text-align:center;
		color:#EC6D87;
		font-weight:bold;
	}
	
	#toppage #about .keyword dd a{
	    display: inline-block;
	    border:1px solid #E9F3F4;
	    color: #399C90;
	    padding: 0.2em 0.7em;
	    border-radius: 1em;
	    text-decoration: none;
	}
	#toppage #about .flex {
	    align-items: center;
	    gap: 0vw;
	    flex-direction: column;
	    padding: 16vw 1vw 0;
	    align-items: flex-start;
	}
	#toppage #about .flex .txtbox{
		display:contents;
	}
	#toppage #about .flex .txtbox h3{
	    font-size: 8.4vw;
	    letter-spacing: 0;
	    line-height: 1.67;
	    font-weight: 500;
		order:1;
	}
	#toppage #about .flex .txtbox p{
	    padding: 9vw 1vw 6vw;
	    line-height: 2.4;
	    color: #FFF;
	    font-size: 4.2vw;
	    letter-spacing: 0.04em;
	    order:2;
	}
	#toppage #about .flex .img{
	    border-radius: 5vw;
	    padding: 21vw 14vw;
	    order:3;
	    margin-bottom: 0;
	}
	#toppage #about .flex .txtbox .btn{
		order:4;
		padding: 11vw 0 0;
	}	
}

#toppage #article{
    border-radius: 0 90px 0 0;
    margin-top: -110px;
    background: #fff;
    z-index: 3;
    position: relative;
    padding:23px 0;
    background: url('../img/top/article_bg.png') center repeat #FFF;
}
#toppage #article .content-inner{
    padding-bottom: 100px;
}
#toppage #article h2{
    margin: 0 -1.5em;
}
#toppage #article .article_list + .article_list{
    padding-top: 85px;
}
#toppage #article .article_list > .title{
    grid-column: 1 / -1;
    font-family: "Zen Kaku Gothic New", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-size: 24px;
    font-weight: bold;
    border-bottom:1px solid #65BDB6;
    padding: 0.1em 0.2em 0.3em;
    margin-bottom: 1.5em;
    width: 100%;
}
#toppage #article .article_list > .title:before{
    content:"";
    display: inline-block;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0.6em;
    border: 4px solid #65BDB6;
    border-radius: 1em;
    vertical-align: middle;
    margin-bottom: .25em;
}
#toppage #article .article_list .wpp-shortcode {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}
#toppage #article .article_list .wpp-shortcode .pst {
    margin-left: 2%;
    width: 32%;
}
#toppage #article .article_list .wpp-shortcode .pst:nth-of-type(3n+1) {
    margin-left: 0;
}



@media only screen and (max-width: 767px) {
	#toppage #article{
	    border-radius: 0 20vw 0 0;
	    margin-top: -10vw;
	    padding: 4vw 0px;
	}
	#toppage #article .content-inner{
	    padding-bottom: 35px;
	}
	#toppage #article h2{
	    margin: 0 -1.5em;
	}
	#toppage #article h2 + .exp {
		margin-bottom: 2rem;
		line-height: 2;
		letter-spacing: .15em;
		font-size: 0.9rem;
	}
	
	#toppage #article .article_list + .article_list{
	    padding-top: 14vw;
	}
	#toppage #article .article_list > .title{
	    font-weight: bold;
	    border-bottom:1px solid #65BDB6;
	    padding: 0.1em 0.2em 0.3em;
	    margin-bottom: 1.5em;
	    font-size: 21px;
	}
	#toppage #article .article_list .title:before{
	    width: 0.6em;
	    height: 0.6em;
	    margin-right: 0.4em;
	}
	#toppage aside {
		display: none;
	}
}
#toppage #voice {
    padding:23px 0;
    border-radius: 90px 0 0 0;
    background: #E6EAF5;
}
#toppage #voice .content-inner {
    padding-bottom: 125px;
}
#toppage #voice ul {
    margin-top: 60px;
}
#voice .slick-track {
    display: flex;
}
#toppage #voice .slick-slide {
    height: auto !important;
    padding:0 15px;
}
#toppage #voice .slick-slide > div{
    background: #FFF;
    padding: 25px;
    border-radius: 15px;
    overflow: hidden;
    position: relative;
    height: 100%;
}
#toppage #voice ul li h4{
    color:#587ABF;
    font-size:22px;
    font-weight: bold;
    width: 80%;
}
#toppage #voice ul li .prof{
    margin-bottom: 1.5em;
    padding-bottom: 1.4em;
    color:#587ABF;
    font-size:13px;
    border-bottom: 1px solid #E9F3F4;
}
#toppage #voice ul li .image{
    position: absolute;
    right:20px;
    top:32px;
    width: 14%;
}
#toppage #voice ul li p:not([class]){
    font-size:14px;
    line-height: 2;
}

#toppage #voice ul .slide-dots{
    margin: 40px 20px 0;
    display: flex;
    width: 350px;
}
#toppage #voice ul .slide-dots li{
    background: #fff;
    flex: 1 1 auto;
    height:5px;
    transition: 0.5s;
}
#toppage #voice ul .slide-dots li button{
    display: none;
}
#toppage #voice ul .slide-dots li.slick-active{
    background: #617BAC;
}
#toppage #voice ul .slick-prev{
    top:100%;
    left: 400px;
	width: 36px;
	height: 36px;
}
#toppage #voice ul .slick-next{
    top: 100%;
    left: 450px;
	width: 36px;
	height: 36px;
}
#toppage #voice .slick-prev:before,
#toppage #voice .slick-next:before{
	content:"";
	background: url('../img/top/voice_arrow.png') center no-repeat;
    background-size: contain;
	width: 100%;
	height: 100%;
	display: block;
}

#toppage #voice .slick-prev:before{
    transform: scale(-1,1);
}
@media only screen and (max-width: 767px) {
	#toppage #voice{
	    border-radius: 10vw 0 0 0;
	    padding: 0;
	}
	#toppage #voice .content-inner {
		padding-bottom: 90px;
	}
	#toppage #voice ul {
	    margin: 10vw 1vw;
	}
	#toppage #voice .slick-list{
		overflow:visible;
	}
	#toppage #voice .slick-slide {
	    padding: 0 2vw;
	}
	#toppage #voice .slick-slide > div{
	    padding: 5vw;
	    border-radius: 3vw;
        height:100%;
	}
	#toppage #voice ul li h4{
	    font-size: 1rem;
	}
	#toppage #voice ul li .prof{
	    font-size:0.8rem;
	}
	#toppage #voice ul li .image{
	    position: absolute;
	    right:6%;
	    top:5%;
	}
    #toppage #voice ul .slide-dots{
        width: 60vw;
    }
    #toppage #voice ul .slick-prev{
        left: 70vw;
        width: 2rem;
        height: 2rem;
    }
    #toppage #voice ul .slick-next{
        left: calc(70vw + 2.5rem);
        width: 2rem;
        height: 2rem;
    }
}

#toppage #supervisor{
    border-radius: 0 90px 0 0;
    margin-top: -60px;
    background: #FFF;
    z-index: 2;
    position: relative;
}
#toppage #supervisor .content-inner {
    padding-bottom: 80px;
    padding-top: 60px;
}
#toppage #supervisor ul{
    margin: 60px auto 0;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap:20px;
}
#toppage #supervisor ul li{
    border:1px solid #67BEB5;
    border-radius: 15px;
}
#toppage #supervisor ul li a{
    display: flex;
    gap:20px;
    padding: 25px 25px ;
    color: #000;
    text-decoration: none;
    align-items: center;
}
#toppage #supervisor ul li a:hover{
	background: rgba(103, 190, 181, .1);
	color: #399C90;
}
#toppage #supervisor ul li .image{
    flex: 0 0 49%;
}
#toppage #supervisor ul li .image img{
    max-height: 7em;
    width:auto;
    border-radius: 0.7em;
}
#toppage #supervisor ul li .right{
    flex: 0 0 50%;
}
#toppage #supervisor ul li .name{
    font-size:22px;
    letter-spacing: 0.1em;
    line-height: 1;
    position: relative;
    display: inline-block;
    padding-right: 1.5em;
}
#toppage #supervisor ul li .name:after{
    content:"";
    position: absolute;
    width: 1.1em;
    height: 1.1em;
    margin-left: 1em;
    background: url('../img/common/arrow_circle2.svg');
    background-size: 100% 100%;
    vertical-align: bottom;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

#toppage #supervisor ul li .prof{
    font-size:14px;
    margin-top: 7px;
}
#toppage #supervisor .btn{
    margin-top: 20px;
}
#toppage .recommend .btn a,
#toppage #supervisor .btn a,
#toppage #faq .btn a{
    background: #389C90;
}
@media only screen and (max-width: 767px) {
    #toppage #supervisor{
        border-radius: 0 10vw 0 0;
        margin-top: -15vw;
        padding: 6vw 0;
    }
	#toppage #supervisor .content-inner {
	    padding-bottom: 94px;
	    padding-top: 10px;
	}
    #toppage #supervisor ul{
        margin-top: 13vw;
        grid-template-columns: 1fr;
        grid-gap: 4vw;
    }
    #toppage #supervisor ul li{
        border-radius: 3vw;
    }
    #toppage #supervisor ul li a{
        display: flex;
        padding: 4vw;
        gap: 4vw 4%;
    }
    #toppage #supervisor ul li .image{
        flex: 0 0 39%;
    }
    #toppage #supervisor ul li .image img{
        height:5em;
        width:auto;
        border-radius: 0.35em;
    }
	#toppage #supervisor ul li .right {
	flex: 0 0 57%;
	}
    #toppage #supervisor ul li .name{
        font-size: 1.2rem;
    }
    #toppage #supervisor ul li .prof{
        font-size: 0.8rem;
        margin-top: 0.6em;
    }
    #toppage #supervisor .btn{
        margin-top: 1vw;
    }
}

#toppage #faq{
    border-radius: 90px 0 0 0;
    background: #E9F3F4;
    z-index: 3;
    position: relative;
}
#toppage #faq .content-inner {
    padding-bottom: 85px;
    padding-top: 60px;
}
#toppage #faq ul {
    margin-top: 60px;
}
#toppage #faq ul li+li {
    margin-top: 10px;
}
#toppage #faq ul li {
	cursor: pointer;
    background: #FFF;
}
#toppage #faq ul li:hover {
	background-color: rgba(103, 190, 181, .1);
	color: #399C90;
}
#toppage #faq ul li .que {
    position: relative;
    cursor: pointer;
    padding: 25px 45px 25px 25px ;
}
#toppage #faq ul li .ans {
    display: none;
}
#toppage #faq ul li .que:before,
#toppage #faq ul li .que:after {
    content: '';
    position: absolute;
    top: 0;
    right: 20px;
    bottom: 0;
    margin: auto;
    background: no-repeat center center
}
#toppage #faq ul li .que:before {
	border-top:3px solid #389C90;
	width: 20px;
	height: 0;
}
#toppage #faq ul li .que:after  {
	border-left:3px solid #389C90;
	width: 12px;
	height: 20px;
}
#toppage #faq ul li.open .que:before {
    opacity: 1.0;
    filter: alpha(opacity=0);
    -ms-filter: "alpha(opacity=0)";
}
#toppage #faq ul li.open .que:after  {
    opacity: 0.0;
    filter: alpha(opacity=100);
    -ms-filter: "alpha(opacity=100)";
}
#toppage #faq .btn{
    margin-top: 30px;
}

@media only screen and (max-width: 767px) {
    #toppage #faq{
        border-radius: 10vw 0 0 0;
        margin-top: -15vw;
    }
	#toppage #faq .content-inner {
		padding-top: 35px;
		padding-bottom: 54px;
	}
	#toppage #faq ul {
		margin-top: 30px;
	}
    #toppage #faq ul li .que{
        padding: 1.2em 2.2em 1.2em 1.2em ;
    }
	#toppage #faq ul li .que:before, #toppage #faq ul li .que:after {
		right: 3%;
		width: 7vw;
		height: 7vw;
		background-size: 100% auto;
	}
	#toppage #faq ul li .que:before {
		border-top:2px solid #389C90;
		width: 5.5vw;
		height: 0;
	}
	#toppage #faq ul li .que:after  {
		border-left:2px solid #389C90;
		width: 3vw;
		height: 5.5vw;
	}

    #search_section{
        padding: 14vw 6vw;
    }
    #search_section > * + *{
        margin-top: 8vw;
    }
}