
/* このシートでは全ページの共通部分のCSSを記載しています */
/* 画面サイズ　デスクトップPC→ノートPC→タブレット→スマホ　の順に記載しています */


/* 1280px以上の幅の場合に適応される（デスクトップPC） */

* {
	font-family: "IBM Plex Sans JP", sans-serif;
	font-style: normal;
	font-weight: 400;
	margin: 0 auto;
}


a {
	text-decoration: none;
	color: black;
	margin: 0;
	padding: 0;
}

li {
	list-style: none;
}

ul {
	padding: 0;
	margin: 0;
}

.container {
	max-width: 1400px;
	margin: 0 auto;
}


/* 最上部 ロゴ部分等 */

.headerlogo {
	display: flex;
	flex-direction: row;
	width: 460px;
}

.headerlogo img {
	width: 60px;
	padding-bottom: 5px;
	padding-top: 18px;
	margin-top: -10px;
}

.headerlogo_sentense {
	padding-top: 18px;
	display: inline-block;
}

.headerlogo_sentense1 {
	font-size: 1.65rem;
	font-weight: 500;
	letter-spacing: 0.1rem;
	line-height: 120%;
	margin-top: -5px;
}

.headerlogo_sentense2 {
	font-family: "IBM Plex Sans JP", sans-serif;
	font-size: 0.8rem;
	font-weight: 400;
	letter-spacing: 0.05rem;
	margin-top: 4px;
}

.headercontainer {
	display: flex;
	justify-content: flex-end;
}

.headerbuttons {
	width: 400px;
	display: flex;
	margin-right: 0;
}

.button {
	padding-top: 4px;
	padding-bottom: 4px;
}

.button_insta {
	width: 200px;
	font-size: 0.8rem;
	text-align: center;
}

.button_insta img {
	width: 60px;
	margin: 0 auto;
	text-align: center;
	padding-top: 8px;
}

.button_school {
	width: 200px;
	height: 108px;
	background-color: #29396f;
	color: #ffffff;
	font-size: 0.8rem;
	text-align: center;
}

.button_school img {
	width: 60px;
	margin: 0 auto;
	padding-top: 8px;
}

/* ハンバーガーメニュー（スマホ・タブレット用の為非表示） */

#header-hamburger {
	display: none;
}

#hamburger-window {
	display: none;
}

/* メニューバー */

.navititle {
	font-size: 1.08rem;
}

header#header {
	position: relative;
	height: 150px;
	z-index: 200;
	padding-top: 10px;
}

header#header nav#navi {
	position: relative;
}
header#header nav#navi::before {
	position: absolute;
	width: 100%;
	height: 80px;
	left: 0px;
	top: 0px;
	background-color: #e6e6e6;
	content: "";
}
header#header nav#navi > ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	position: relative;
}
header#header nav#navi > ul > li {
	width: 210px;
}
header#header nav#navi > ul > li.width-01 {
	width: 147px;
}
header#header nav#navi > ul > li.width-02 {
	width: 150px;
}
header#header nav#navi > ul > li.width-03 {
	width: 200px;
}
header#header nav#navi > ul > li > a,
header#header nav#navi > ul > li div.nest p.headline {
	letter-spacing: 0.1em;
}
header#header nav#navi > ul > li > a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	height: 80px;
	text-indent: 0.1em;
	color: #000000;
	transition: 0.25s background-color ease;
}
header#header nav#navi > ul > li:hover > a {
	background-color: #b5b5b6;
}

header#header nav#navi > ul > li > a::after {
	position: absolute;
	width: 0px;
	height: 60px;
	top: calc(50% - 30px);
	border-right: 1px solid #999999;
	content: "";
}

header#header nav#navi > ul > li.access_collapse > a::after {
	border-right: none;
}

header#header nav#navi > ul > li:first-child > a::before {
	left: 0px;
}
header#header nav#navi > ul > li > a::after {
	right: 0px;
}

header#header nav#navi > ul > li div.nest {
	position: absolute;
	width: 111%;
	height: 0px;
	left: -69px;
	top: 80px;
	overflow: hidden;
	background-color: #efefef;
	transition: 0.25s height ease;
	box-shadow:
		0px 5px 5px rgba(0, 0, 0, 0.075),
		0px 5px 5px rgba(0, 0, 0, 0.075) inset;
}
header#header nav#navi > ul > li:hover div.nest {
	height: 350px;
}
header#header nav#navi > ul > li div.nest div.inner-nest {
	width: 100%;
	margin: auto;
	padding: 40px 0px 0px 240px;
}
header#header nav#navi > ul > li div.nest p.headline {
	position: absolute;
	left: calc(49% - 490px);
	top: 45px;
	font-size: 1.375rem;
	color: #4d4d4d;
}
header#header nav#navi > ul > li.guide div.nest div.list {
	display: flex;
	flex-wrap: wrap;
}
header#header nav#navi > ul > li.guide div.nest div.list div.row {
	position: relative;
	width: calc(33.33% - 10px);
	margin-right: 10px;
}

header#header nav#navi > ul > li div.nest div.list div.row ul {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-content: flex-start;
	height: 300px;
	margin-right: -10px;
	margin-left: 300px;
	margin-top: -8px;
}
header#header nav#navi > ul > li div.nest div.list div.row ul li {
	position: relative;
	width: calc(33.33% - 10px);
	line-height: 1.375rem;
	color: #6f3c80;
	margin: 30px 10px 10px 0px;
	padding-left: 20px;
	font-size: 1rem;
}
header#header nav#navi > ul > li.guide div.nest div.list div.row ul li {
	width: calc(100% - 10px);
}
header#header nav#navi > ul > li div.nest div.list div.row ul li::before {
	position: absolute;
	width: 8px;
	height: 8px;
	left: 0px;
	top: 7px;
	border-right: 1px solid #6f3c80;
	border-top: 1px solid #6f3c80;
	content: "";
	transform: rotate(45deg);
}
header#header nav#navi > ul > li div.nest div.list div.row ul li a {
	transition: 0.25s color ease;
}
header#header nav#navi > ul > li div.nest div.list div.row ul li a:hover {
	color: #34193c;
}

header#header p.button-close {
	display: none;
}

.navi-container {
	width: 90%;
	margin: 0 auto;
}

.search_collapse {
	border: none;
}



/* サイドバナー部分 */

aside {
	width: 300px;
	text-align: left;
	margin-bottom:50px;
}

.banner {
	width: 240px;
	font-size: 1.05rem;
	padding: 40px 30px 40px 30px;
	border: 2px solid #29396f;
	color: #29396f;
	letter-spacing: 0.05rem;
	font-weight: 500;
	display: flex;
	justify-content: flex-end;
	margin-bottom: 40px;

	/* ボタンアニメーション */
	background-color: #fff;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}

.banner:hover {
	color: #ffffff;
	background-color: #29396f;
}

.banner_sentense {
	width: 240px;
}

.banner_sentense p {
	font-weight: 500;
}

.arrow_s_b {
	position: relative;
	display: inline-block;
	padding-left: 22px;
}
.arrow_s_b:before {
	background: #29396f;
	content: "";
	width: 18px;
	height: 18px;
	border-radius: 50%;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
}
.arrow_s_b:after {
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 4px 0 4px 6px;
	border-color: transparent transparent transparent #fff;
	position: absolute;
	top: 0;
	left: 7px;
	bottom: 0;
	margin: auto;
}

/* 2枚目のバナー色替え */

#banner2 .banner {
	border: 2px solid #009245;
	color: #009245;
}

#banner2 .arrow_s_b:before {
	background: #009245;
}

#banner2 .banner:hover {
	background-color: #009245;
	color: #ffffff;
}


/* 3枚目のバナー色替え */

#banner3 .banner {
	border: 2px solid #e25e36;
	color: #e25e36;
}

#banner3 .arrow_s_b:before {
	background: #e25e36;
}

#banner3 .banner:hover {
	background-color: #e25e36;
	color: #ffffff;
}


/* メイン */

.maincontainer {
	display: flex;
	margin-top: -40px;
	margin-top:120px;
}

main {
	width: 950px;
	margin-left: 80px;
}

article {
	margin-bottom: 80px;
}

h1 {
	font-size: 2.3rem;
	font-weight: 500;
	letter-spacing: 0.03rem;
	margin-top: -8px;
	margin-bottom: 0;
}

h2 {
	margin-top: 0px;
	color: #29396f;
	font-size: 1.3rem;
	letter-spacing: 0.1rem;
}

.subpage_article h1{
 margin-left:-5px;
}

.subpage_article h2{
 margin-bottom:-20px;
}






/* フッター */

.footerarea1 {
	display: flex;
	justify-content: space-between;
	padding: 35px 80px;
	padding-bottom: 40px;
	background-color: #e6e6e6;
}

.footermenu {
	width: 830px;
	display: flex;
	justify-content: space-between;
	margin: 0;
	padding-right: 65px;
}

.footermenu li {
	margin-bottom: 14px;
	font-size: 0.95rem;
}

.footermenu div {
	margin: 0;
}

.menutitle {
	font-size: 1.3rem;
	border-bottom: 1px solid #000;
	margin-bottom: 25px;
	padding-bottom: 10px;
	letter-spacing: 0.05rem;
}

.menulist {
	width: 240px;
}

.placetitle {
	text-align: center;
	border: 1px solid #000;
	margin-bottom: 18px;
	padding: 8px;
	font-size: 1.1rem;
	letter-spacing: 0.15rem;
}

.placetitle2 {
	margin-top: 40px;
}

.placedetail {
	margin-top: 8px;
	letter-spacing: 0.05rem;
	font-size: 0.95rem;
}

.footerarea2{
	background-color:#29396F;
	color:#FFFFFF;
	padding:15px;
}

.footerarea2 a{
	color:#FFF;
}

.footerarea2_icon{
	display:none;
}

.footerarea2_menu{
	display:flex;
	width:500px;
	font-size:0.9rem;
}

.footerplace{
	margin:0;
}

.copyright{
	text-align: center;
	font-size:0.6rem;
	letter-spacing:0.04rem;
	margin-top:5px;
	padding-bottom:3px;
}

 

@media screen and (max-width: 1420px) {
	/* 1000px~1420px までの幅の場合に適応される（ノートPC） */

	/* メニューバー */

	.navi-container {
		width: 100%;
		margin: 0;
	}

	.navititle {
		font-size: 0.95rem;
	}
	


	header#header nav#navi > ul > li {
		width: 16.66%;
	}
	
	header#header {
	padding-top: 0px;
}
	
	.headerlogo{
		margin-top:6px;
	}
	
	.headerlogo img {
	width: 56px;
	padding-bottom: 5px;
	padding-top: 18px;
	margin-top: -10px;
}
	
	.headerlogo_sentense1 {
	font-size: 1.5rem;
	
}
	
	

	/* サイドバナー部分 */

	aside {
		width: 25%;
		margin-left: 30px;
		margin-right: 10px;
	}

	.banner {
		width: 200px;
		font-size: 0.9rem;
		padding: 40px 20px 40px 20px;
		border: 2px solid #29396f;
		color: #29396f;
		letter-spacing: 0.05rem;
		font-weight: 500;
		display: flex;
		justify-content: flex-end;
		margin-bottom: 40px;
	}

	/* メイン */

	main {
		width: 63%;
		margin: 0 auto;
		margin-bottom: -30px;
		margin-left: 60px;
	}
	
	.maincontainer{
		margin-top:120px;
	}

	h1 {
		font-size: 2.05rem;
	}

	h2 {
		font-size: 1.2rem;
	}




	/* フッター */

	.footerarea1 {
		padding: 30px 4%;
		padding-bottom: 40px;
		background-color: #e6e6e6;
	}

	.footermenu {
		width: 67%;
		padding-right: 30px;
	}

	.footermenu a {
		font-size: 0.9rem;
		letter-spacing: 0.01rem;
	}

	.footerplace {
		width: 29%;
	}

	.menutitle {
		font-size: 1.15rem;
		letter-spacing: 0.01rem;
	}

	.placetitle {
		font-size: 1rem;
		letter-spacing: 0.1rem;
	}

	.placedetail {
		letter-spacing: 0.07rem;
		font-size: 0.9rem;
	}

	.menulist {
		width: 32%;
	}
}

@media screen and (max-width: 1030px) {
	/* 730px~1030pxの幅の場合に適応される（タブレット） */


	/* ---------------------------------------------- */
	/* ハンバーガーメニュー */
	/* ---------------------------------------------- */

	#hamburger_button {
		margin: 0;
		margin-right: 10px;
	}

	#header-hamburger {
		/* 見た目のCSS */
		display: block;
		background: #29396f;
		cursor: pointer;
		width: 50px;
		aspect-ratio: 1/1;
		margin-left: auto;
		/* ボタンがハンバーガーウィンドウの下に隠れないようにする指定 */
		position: fixed;
		top: 0px;
		right: 0px;
		z-index: 10;
		text-align: right;
	}

	/* ----------------- */
	/* 三本線 */
	/* ----------------- */
	#header-hamburger span {
		/* 見た目のCSS */
		display: inline-block;
		background: #fff;
		width: 50%;
		height: 2px;
		/* バーガー線の太さ */
		/*アニメーションの設定*/
		transition: all 0.4s;
		position: absolute;
		left: 50%;
		/* バーガー線の位置 */
		transform: translateX(-50%);
	}

	/* １本目 */
	#header-hamburger span:nth-of-type(1) {
		top: 30%;
	}

	/* ２本目 */
	#header-hamburger span:nth-of-type(2) {
		top: 50%;
	}

	/* ３本目 */
	#header-hamburger span:nth-of-type(3) {
		top: 70%;
	}

	/* ------------------ */
	/* ×印 */
	/* ------------------ */
	/*activeクラスが付与されると線が回転して×になる*/
	#header-hamburger.active span:nth-of-type(1) {
		top: 50%;
		left: 25%;
		transform: rotate(-45deg);
		width: 50%;
	}

	#header-hamburger.active span:nth-of-type(2) {
		opacity: 0;
	}

	#header-hamburger.active span:nth-of-type(3) {
		top: 50%;
		left: 25%;
		transform: rotate(45deg);
		width: 50%;
	}

	/* ----------------------------------------------- */
	/* メニューウィンドウ */
	/* ---------------------------------------------- */
	#hamburger-window {
		display: block;
		transition: 0.3s;
		text-align: center;
		/* 初期状態は非表示 */
		visibility: hidden;
		position: fixed;
		top: 50px;
		right: -100vw;
		z-index: 1;
		/* 画面いっぱいに表示されるサイズに設定 */
		width: 100%;
		height: 90vh;
		/* 画面からはみ出したらスクロール可能にする */
		overflow-y: scroll;
		-ms-overflow-style: none;
		scrollbar-width: none;
		background-color: #29396f;
		color: #fff;
        padding-bottom:100px;
	}

	/*スクロールバー非表示（Chrome・Safari）*/
	.content::-webkit-scrollbar {
		display: none;
	}

	#hamburger-window.open {
		visibility: visible;
		right: 0;
		overflow-y: scroll;
	}

	.hamburger-window__link {
		display: block;
		margin: 0 auto;
		width: 100%;
	}

	.hamburger-window__link p {
		margin: 0;
		padding-top: 20px;
		padding-bottom: 20px;
		color: #fff;
	}

	.hamburger-window__link:first-child .acordion-btn {
		border-top: 1px solid #ccc;
	}

/* ---------------------------------------------- */
	アコーディオン部分
/* ---------------------------------------------- */
.acordion-menu-wrapper {
		background-color: #29396f;
	}

	.acordion-btn {
		display: flex;
		align-items: center;
		padding-left: 5%;
	}

	.acordion-btn::after {
		/* fontawesomeアイコンを表示 */
		content: "\2b";
		font-weight: 900;
		font-family: "Font Awesome 6 Free";
		display: inline-block;
		position: absolute;
		right: 5%;
		width: 10px;
		aspect-ratio: 1/1;
		color: #fff;
	}

	.acordion-btn.is-open::after {
		/* fontawesomeアイコンを表示 */
		content: "\f068";
		color: #fff;
	}

	.hamburger-window__link {
		border-top: 1px solid #ccc;
	}

	.hamburger-window__title,
	.hamburger-window__link > a {
		color: #333;
	}

	.hamburger-window__link > a {
		display: block;
		text-align: left;
		padding-left: 5%;
		position: relative;
	}

	.acordion > .acordion__item {
		position: relative;
		text-align: left;
		width: 100%;
		background-color: #dfdfdf;
		/* 閉じている状態 */
		border-top: 0 #ccc solid;
		line-height: 0;
		/* 閉じるアニメーション */
		transition: border-top 0.1s ease-out;
	}

	.acordion.is-open > .acordion__item {
		background-color: #dfdfdf;
		/* 開いている状態 */
		border-top: 1px #ccc solid;
		/* 開くアニメーション */
		transition: border-top 0.1s ease-out;
	}

	.acordion.is-open > .acordion__item:first-child {
		border-top: none;
	}

	.acordion > .acordion__item > .acordion__link {
		color: #333;
		display: block;
		padding-left: 7%;
		/* 閉じている状態 */
		padding-top: 0;
		padding-bottom: 0;
		line-height: 0;
		opacity: 0;
		visibility: hidden;
		/* 閉じるアニメーション */
		transition:
			padding-top 0.3s ease-out,
			padding-bottom 0.3s ease-out,
			line-height 0.3s ease-out,
			opacity 0.1s linear,
			visibility 0.1s linear;
	}

	.acordion.is-open > .acordion__item > .acordion__link {
		display: block;
		padding-left: 7%;
		/* 開いている状態 */
		padding-top: 23px;
		padding-bottom: 23px;
		line-height: 1.5;
		opacity: 1;
		visibility: visible;
		/* 開くアニメーション */
		transition:
			padding-top 0.3s ease-out,
			padding-bottom 0.3s ease-out,
			line-height 0.3s ease-out,
			opacity 0.1s linear,
			visibility 0.1s linear;
	}
	
	
	nav {
		display: none;
	}
	

	aside {
		display: none;
	}

	main {
		width: 90%;
		margin: 0px auto;
		margin-top: -30px;
	}
	
	.maincontainer{
		margin-top:60px
	}

	.container {
		margin-top: 0;
	}
	


	.header_sp {
		display: flex;
		justify-content: space-between;
	}

	header#header {
		position: relative;
		height: 107px;
		z-index: 200;
		padding-top: 0px;
	}

	.headercontainer {
		justify-content: space-between;
		margin: 0;
	}

	.headerlogo {
		display: flex;
		flex-direction: row;
		width: 100%;
		margin-left: 5px;
	}

	.headerlogo img {
		width: 60px;
		height: 82px;
		padding: 0;
		margin: 0;
		margin-right: 10px;
		margin-top: 5px;
	}

	.headerlogo_sentense1 {
		font-size: 1.4rem;
		font-weight: 500;
		letter-spacing: 0.1rem;
		line-height: 120%;
		margin-top: -5px;
	}

	.headerlogo_sentense2 {
		font-family: "IBM Plex Sans JP", sans-serif;
		font-size: 0.7rem;
		font-weight: 400;
		letter-spacing: 0.04rem;
		margin-top: 5px;
	}

	.headerbuttons {
		display: none;
	}

	
	
}

@media screen and (max-width: 730px) {
	/* 730px以下の幅の場合に適応される（スマホ） */

	.container {
		margin-top: 0;
	    margin-bottom:0;
	}

	/* 最上部 ロゴ部分等 */

	.headerlogo {
		display: flex;
		flex-direction: row;
		width: 100%;
	}

	.headerlogo img {
		width: 48px;
		height: 72px;
		padding: 0;
		margin: 0;
		margin-right: 10px;
		margin-left:3px;
		margin-top: 5px;
	}

	.headerlogo_sentense {
		padding-top: 18px;
		display: inline-block;
		margin: 0;
	}

	.headerlogo_sentense1 {
		font-size: 1.2rem;
		font-weight: 500;
		letter-spacing: 0.1rem;
		line-height: 120%;
		margin-top: -5px;
	}

	.headerlogo_sentense2 {
		font-family: "IBM Plex Sans JP", sans-serif;
		font-size: 0.6rem;
		font-weight: 400;
		letter-spacing: 0.05rem;
		margin-top: 3px;
	}

	.headercontainer {
		display: block;
		justify-content: flex-start;
	}

	.headerbuttons {
		display: none;
	}

	header#header {
		position: relative;
		height: 95px;
		z-index: 200;
		padding-top: 0px;
	}



/* メイン */
	
	h1{
		font-size:1.7rem;
		letter-spacing: 0.02rem;   
	}
	
	h2{
		font-size:1rem;
		letter-spacing: 0.08rem;
	}
	
	.news p {
		margin-bottom:5px;
	}
	
	
.subpage_article h1{
   margin-left:24px; 
    }
    
.subpage_article h2{
   margin-left:27px; 
    }

    

	
	
	
/* フッター */
.footermenu {
	display:none;
}
	
.footerarea1{
	background-color:#29396f;
	padding: 25px 20px;
	margin-bottom:15px;
}
	
	
.footerarea2 {
	padding: 15px;
	margin-top:-40px;
}
	

.footerarea2_icon{
	display:block;
	text-align: center;
	margin-bottom:8px;
}
	
.footerarea2_icon img{
	width:45px;	
	}


.footerarea2_menu {
	display: flex;
	justify-content: space-between;
	width: 90%;
	font-size: 0.7rem;
	
}
	
.footerarea2_menu p{
	margin:0;
	}
	


.footerplace {
	width:95%;
	background-color:#29396f;
	margin: 0 auto;
	color:#FFF;
}
	
.placetitle{
	border: 1px solid #FFF;
	padding:5px;
	font-size:0.9rem;
	}
	
.placetitle2 {
	margin-top: 25px;
}

.copyright {
	text-align: center;
	font-size: 0.43rem;
	letter-spacing: 0.04rem;
	margin-top: 5px;
	padding-bottom: 3px;
}	
}
