@charset "UTF-8";

.regular {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.medium {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.bold {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}

/* 上下 | 左右 */
/* 上 | 左右 | 下 */
/* 上 | 右 | 下 | 左 */


/*================================================
 *  一般・共通設定
 ================================================*/
/* レイアウトのためのCSS */
html { font-size: 16px; }
body{
    overflow-x: hidden;
    background:#2A397E;/*ローディング画面のため*/
	color: #333;
	font-size:1rem;/* 16px */
	line-height:1.85;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: 100%; 
	word-wrap: break-word;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
}

body.appear{
    background:#fff;
}
body.no-splash{
    background:#fff;
}


ul{
	margin:0;
	padding: 0;
	list-style: none;
}

a{
	text-decoration: none;
    outline: none;
}

img{
    width:auto;
    height: auto;
}

*{
    box-sizing: border-box
}

/* font-family */



/* area */

.inner{
    width:100%;
    margin:0 auto;
    padding:70px 70px;/* 上下 | 左右 */
}
.base_inner{
    width:100%;
    margin:0 auto;
    padding:0 50px;/* 上下 | 左右 */
}
.bg_inner{
    background: #EDF6FD;
}

/* 834px以下に適用(max-width) タブレット*/
@media screen and (max-width:834px) {
	.inner{
	    padding:70px 30px;/* 上下 | 左右 */
	}
	.base_inner{
	    padding:0 0px;/* 上下 | 左右 */
	}
}
/* 600px以下に適用(max-width) スマホ*/
@media screen and (max-width:600px) {
	.inner{
	    padding:60px 20px;/* 上下 | 左右 */
	}
}



/* header */

#header{
    height: 100vh;
    position: relative;
}
/* 834px以下に適用(max-width) タブレット*/
@media screen and (max-width: 834px) {
	#header{
    	height: 85vh;
	}
}
.header-area{
    position: relative;
    z-index:2;
    top:0px;
    left:0px;
    animation-delay: .5s;
    /*add*/
    width: calc(100% - 100px);
    height:100px;
    background: #27347D;
    padding-right:20px;
    
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    justify-content: space-between;
}
#header .header-logo{
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    
    font-size: 16px;
    color:#ccc;
	padding:20px 30px;/* 上下 | 左右 */
}
#header .header-logo img{
	height:60px;
	display: block;
}
@media screen and (max-width: 400px) {
	.header-area{
    	height:80px;
    	width: calc(100% - 80px);
	}
	#header .header-logo{
		padding:20px 20px;/* 上下 | 左右 */
	}
	#header .header-logo img{
		height:40px;
	}
}
#header .header-logo span{
	letter-spacing: -1px;
	font-weight: 400;
}
@media screen and (max-width: 1300px) {
	#header .header-logo span{
	    display: none;
	}
}

.header-menu{
	right:150px;
	font-weight: 500;
    display: flex;
}
.header-menu li{
    position: relative;
}
.header-menu li a{
	display: block;
	padding: 20px 10px 20px 50px;/* 上 | 右 | 下 | 左 */
    transition: all 0.3s;
    color:#fff;
    white-space: nowrap;
}
.header-menu li a:hover{
	color: #ccc;
    transform: translateY(-5px);
}
@media screen and (max-width: 1200px) {
	.header-menu{
	  display: grid;
	  grid-template-columns: repeat(2, 1fr);
	  /*gap: 16px;*/
	}
	.header-menu li a{
		padding: 00px 10px 0px 50px;/* 上 | 右 | 下 | 左 */
	}
}
@media screen and (max-width: 834px) {
	.header-menu{
	    display: none;
	}
}

.header-menu li:first-child a{
     background:url("../img/icon_1.png") no-repeat 20px center;
    background-size:20px 20px;
}
.header-menu li:nth-child(2) a{
     background:url("../img/icon_2.png") no-repeat 20px center;
    background-size:20px 20px;
}
.header-menu li:nth-child(3) a{
     background:url("../img/icon_3.png") no-repeat 20px center;
    background-size:20px 20px;
}
.header-menu li:nth-child(4) a{
     background:url("../img/icon_4.png") no-repeat 20px center;
    background-size:20px 20px;
}

.lead{
    width: calc(100% - 100px);
    height:  calc(85vh - 50px);
    position: absolute;
    top:100px;
    left: 0px;
	
    background: #27347D;
}
/* スライダーの中に変更*/
/*
.lead-text{
    position: absolute;
    bottom:0;
    left: 100px;
    z-index:3;
    font-size: 5rem;
	font-weight: 500;
	line-height:1.25;
	color:#fff;
	text-shadow:0 4px 8px rgba(0,0,0,0.2);
}
*/
/* 834px以下に適用(max-width) タブレット*/
@media screen and (max-width: 834px) {
	.lead{
	    height:  calc(85vh - 150px);
	}
	/*.lead-text{
	    font-size: 3rem;
		bottom:10%;
	}*/
}
/* 600px以下に適用(max-width) スマホ*/
@media screen and (max-width: 600px) {
	/*.lead-text{
		font-size: 2rem;
    	left: 30px;
		line-height:1.5;
	}*/
}
@media screen and (max-width: 400px) {
	.lead{
	    width: calc(100% - 80px);
		top:80px;
	}
}

/* slider */

.slider{
    position: absolute;
    top:100px;
    right:50px;
    width: calc(100% - 100px);
    border-radius: 20px;
    overflow: hidden;
}
@media screen and (max-width: 834px) {
	.slider{
    	width: calc(100% - 60px);
		right:30px;
    }
    
}
@media screen and (max-width: 600px) {
	.slider{
    	width: calc(100% - 20px);
		right:10px;
	}
}
@media screen and (max-width: 400px) {
	.slider{
    	top:80px;
	}
}
.slider-item{
    border-radius:20px;
}

.header-area .border-yellow {
    background: linear-gradient(transparent 60%, #ffff66 60%);
}


/* gnavi */

#g-nav ul {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
}

#g-nav.panelactive ul li{
    position: relative;
    width:30%;
    text-align: left;
    white-space: nowrap;
}

@media screen and (max-width:960px) {
#g-nav.panelactive ul li{
    width:48%;
    }
}


@media screen and (max-width:580px) {
#g-nav.panelactive ul li{
    width:100%;
    }
}

#g-nav li a{
    padding: 15px 20px;
    transition: all 0.3s;
}

#g-nav li a:hover{
    transform: translateY(-5px);
}
#g-nav.panelactive ul li::before{
    content:'';
    width:10px;
    height: 10px;
    background:#27347D;
    border-radius: 50%;
    position: absolute;
    left:-10px;
    top:43%;
}



/* 見出し */
/* heading */
.heading-left-bar {
  display: flex;
  flex-direction: column; /* 上下に並べる */
  margin: 20px 0;
}

/* 上の英語（メイン）＋左側の横線 */
.main-title {
  display: flex;
  align-items: center; /* 横線と文字の「中心」を揃える */
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.2;
}

/* 左側の横線（太さと長さの調整） */
.main-title::before {
  content: "";
  display: inline-block;
  width: 100px;        /* 横線の長さ */
  height: 3px;        /* 横線の太さ */
  background-color: #000; /* 横線の色 */
  margin-right: 12px; /* 横線と文字の間の余白 */
}

/* 下の日本語（サブ） */
.sub-title {
  font-size: 1.5rem;
  color: #000;
  /* 横線の長さ(100px) ＋ 余白(12px) ＝ 42px 左にずらして位置を揃える */
  padding-left: 112px; 
  margin-top: 5px;    /* 英語との間隔 */
  font-weight: 500;
}
/* 834px以下に適用(max-width) タブレット*/
@media screen and (max-width: 834px) {
	.main-title {
	  font-size: 2.5rem;
	}
	.main-title::before {
	  width: 80px;        /* 横線の長さ */
	  height: 2px;        /* 横線の太さ */
	}
	.sub-title {
	  font-size: 1.4rem;
	  padding-left: 92px; 
	}
}
/* 600px以下に適用(max-width) スマホ*/
@media screen and (max-width: 600px) {
	.main-title {
	  font-size: 2.0rem;
	}
	.main-title::before {
	  width: 50px;        /* 横線の長さ */
	}
	.sub-title {
	  font-size: 1.2rem;
	  padding-left: 62px; 
	}

}




/* rinen */
#rinen {
}
#rinen .flex_twobox {
  display: flex;
  justify-content: space-between; /* 要素を左右の端に寄せる */
  align-items: stretch;
  flex-wrap: wrap;
}
#rinen .left-item {
	line-height:2.5;
	width:55%;
}
#rinen .right-item {
	width: 40%;
    background: #27347D;
	display: flex;
	justify-content: center;
	align-items: center;
}
#rinen .right-item img {
	width: 100%;
}
/* 834px以下に適用(max-width) タブレット*/
@media screen and (max-width: 834px) {
	#rinen .left-item {
		width:100%;
		margin-bottom:50px;
	}
	#rinen .right-item {
		width: 100%;
		padding-top:50px;
		padding-bottom:50px;
	}
	#rinen .right-item img {
		width: 80%;
	}
}
/* 600px以下に適用(max-width) スマホ*/
@media screen and (max-width: 600px) {
	#rinen .left-item {
		line-height:2.0;
	}
}





/* guide */

#guide{
    position:relative;
    margin: 50px 0 50px 0;/* 上 | 右 | 下 | 左 */
}
#guide:after {
    position: absolute;
    z-index: -1;
    content: '';
    top: 0px;
    left: -30%;
    width: 160%;
    height: 100%;
    background: #EDF6FD;
    transform: rotate(3deg);
}

.guide-list{
	display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
}
/* 子要素（section）自体も縦方向のFlexboxにする */
.guide-list > section {
    display: flex;
    flex-direction: column;
}
/* 伸び縮みさせたい孫要素（テキスト部分など）を自動で引き伸ばす */
.guide-list > section .guide_text {
    flex: 1; /* 余白を埋めるように高さを自動で伸す */
}
.guide-list section{
    width:29%;
    background: #fff;
	box-shadow: 1px 1px 0 rgba(0,0,0,0.1);
	margin:0 0 50px 0;
    padding:30px 20px 30px 20px;/* 上 | 右 | 下 | 左 */
    border-radius: 10px;
}
.guide-list::after {
  content: "";
  width: 29%; /* 子要素と同じ幅を指定 */
}
.guide-list section:nth-child(2){
     animation-delay: 0.2s;   
}
.guide-list section:nth-child(3){
     animation-delay: 0.4s;   
}

@media screen and (max-width:1300px) {
	.guide-list section{
	    width:47%;
	}
	.guide-list::after {
	  content: "";
	  width: 47%; /* 子要素と同じ幅を指定 */
	}
}

@media screen and (max-width:834px) {
	.guide-list section{
	    width:100%;
	}
	.guide-list section:nth-child(2),
	.guide-list section:nth-child(3){
	     animation-delay: 0s;   
	}
	.guide-list::after {
	  display: none;
	}
}


.guide-list section .course-img{
	padding-top:70%;
	background-size:cover!important;
}

.guide-list section:nth-of-type(1) .course-img{
    background:url("../img/top/guide_img_1.jpg") no-repeat center;
    background-size: cover;
}
.guide-list section:nth-of-type(2) .course-img{
     background:url("../img/top/guide_img_2.jpg") no-repeat center;
    background-size: cover;
}
.guide-list section:nth-of-type(3) .course-img{
     background:url("../img/top/guide_img_3.jpg") no-repeat center;
    background-size: cover;
}
.guide-list section:nth-of-type(4) .course-img{
     background:url("../img/top/guide_img_4.jpg") no-repeat center;
    background-size: cover;
}
.guide-list section:nth-of-type(5) .course-img{
     background:url("../img/top/guide_img_5.jpg") no-repeat center;
    background-size: cover;
}

.guide-list section h3{
    border-left: 5px solid #F28C28;
    margin: 0 0 20px 0;/* 上 | 右 | 下 | 左 */
    padding-left: 10px;
	position: relative;
}
.guide-list section h3 img {
  vertical-align: bottom;
  height: 60px;
}
.guide-list h3 .bg-tag{
	display: inline-block;
	position: absolute;
    right: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	padding: 3px 5px;
	font-size:0.9rem;
	font-weight:400;
	color:#fff;
}
.guide-list section:nth-of-type(1) .bg-tag { background:#00A0E9;}
.guide-list section:nth-of-type(2) .bg-tag { background:#1D2088;}
.guide-list section:nth-of-type(3) .bg-tag { background:#FCC800;}
.guide-list section:nth-of-type(4) .bg-tag { background:#21A03A;}
.guide-list section:nth-of-type(5) .bg-tag { background:#E62570;}
.guide_tel{
	background:url("../img/icon_tel.png") no-repeat left calc(50% + 1px);
	background-size:1rem 1rem;
	padding-left: 1.4rem;
	line-height: 1.5;
}
.guide_link{
	background:url("../img/icon_link.png") no-repeat left calc(50% + 2px);
	background-size:1rem 1rem;
	padding-left: 1.4rem;
	line-height: 1.5;
}
.guide_link a{
	color:#333;
}
.guide_link a:hover{
	text-decoration: underline;
	transition: color 0.3s ease;
}
.guide_text{
	margin: 20px 0;
}
@media screen and (max-width: 600px) {
	.guide_text {
		line-height:1.5;
	}
}
/* list */

.link-list {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;           /* バナー間の余白（上下左右） */
	justify-content: flex-start;
	width: 942px;
	margin: 0 auto 50px auto;/* 上 | 右 | 下 | 左 */
  
}
.link-list li {
	width: 300px; 
	text-align: center;     /* テキストと画像を中央揃え */
	line-height: 1.0;
}
.link-list li a img {
	border:1px solid #666;
	width: 100%;
	display: block;      /* 下部の隙間を無くす */
	margin-bottom: 0px;  /* 画像とテキストの間の余白 */
	
    transition: all 0.3s;
}
.link-list li a {
	text-decoration: none;
	color: #333;
	font-weight: 400;
	font-size: 14px;
	transition: opacity 0.3s ease; 
}
/* ホバー時の処理 */
.link-list li a img:hover {
	opacity: 0.5;
    transform: translateY(-5px);
}
.link-list li a:hover {
    transform: translateY(-5px);
}
@media screen and (max-width: 1100px) {
	.link-list {
		width: 622px;
	}
}
@media screen and (max-width: 800px) {
	.link-list {width: 100%;gap: 20px;}
	.link-list li {width: calc(50% - 10px);}
}


.contact-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px; /* 左と右の間隔 */
  
  width:750px;
  margin: 0 auto;
  padding: 15px 25px; /* ボタンの内側の余白 */
  background-color: #F5F5F5;
  color: #333;
  border-radius: 10px;
  border:1px solid #aaa;
  transition: background-color 0.3s ease;
}
.contact-btn:hover {
  background-color: #EDF6FD;
  border:1px solid #333;
}
/* 左側 */
.contact-btn__main {
  display: flex;
  align-items: center;
  border-right: 1px solid #aaa;
  padding-right: 1rem;
}
.contact-btn__text {
	background:url("../img/icon_mail.png") no-repeat left calc(50% + 1px);
	background-size:1rem 1rem;
	padding-left: 1.4rem;
}

/* 右側：注意書き文章（小さな2行テキスト） */
.contact-btn__note {
  font-size: 12px;
  line-height: 1.5;
  text-align: left;
}
@media screen and (max-width: 800px) {
	.contact-btn {
		width:100%;
		gap: 5px;
		flex-direction: column;
   		align-items: flex-start; /* 左寄せ */
	}
	.contact-btn__main {
		width:100%;
		border-right: none;
		border-bottom:1px solid #aaa;
		padding-right: 1rem;
	}
}


/* footer */

/* フッター全体のスタイル */
#footer {
  width: 100%;
}
.footer-main {
  height: 300px;
  background-image: url("../img//footer_bg.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  
  display: flex;
  justify-content: center;
  align-items: center;
}
/* ロゴと住所の横並び */
.footer-content {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 20px 30px;
}
.footer-address {
  white-space: nowrap;
  font-style: normal;
  color:#fff;
}
.footer-logo img {
  display: block;
  max-height: 120px;
  width: auto;
}
@media screen and (max-width: 500px) {
	.footer-content {
		width:100%;
		gap: 5px;
		flex-direction: column;
	}
	.footer-address {
	  font-size: 0.9rem;
	}
	.footer-logo img {
	  max-height: 100px;
	}
}
/* コピーライトエリア */
.footer-copy {
  height: 30px;
  background-color: #27347D;
  color: #ffffff;
  
  display: flex;
  justify-content: center;
  align-items: center;
}
.footer-copy small {
  font-size: 12px;
}

