@charset "utf-8";
@font-face {
  /*フォントの名前*/
  font-family: "Noto Serif CJK JP";
  /*フォントファイルへのパス（複数指定の場合、上から順に読み込まれる）*/
  src: url("../font/tsukushi.woff2") format("woff2"),
       url("../font/tsukushi.woff") format("woff");
}
:root {--main-color: #1B266B;}/*濃い青*/
:root {--sub-color: rgba(27,38,107,0.20);}/*紫*/
:root {--accent-color: #FCED5A;}/*イエロー*/
:root {--accent02-color: #D4512F;}/*オレンジ*/
:root {--main-font: "ヒラギノ角ゴ Pro", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS PGothic", sans-serif;}
:root {--sub-font: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;}

.main{
	position: relative;
}
section{
	width: 100%;
	position: relative;
	overflow: hidden;
}
.inner{
	width: 80%;
	max-width: 1000px;
	position: relative;
	margin: 0 auto;
}
p{
	font-size: 18px;
	line-height: 2;
    letter-spacing: 0.1em;
	color: #333;
}
h1,h2,h3,h4,h5{
	font-weight: normal;
	line-height: 1.5;
	letter-spacing: 0.15em;
	color: #000;
}
h2{
	font-size: 78px;
	font-family: var(--sub-font);
	color: #333;
}
/*共通の形をするh2の記述*/
#interview,#plan,#contact{
	overflow: inherit;
}
h2.sameTitle{
	width: fit-content;
	line-height: 1;
	padding: 0 0 30px;
	position: absolute;
	top: -40px;
	left: 50%;
    transform: translateX(-50%);
}
h2.sameTitle::after{
	display: block;
	content: "";
	width: 100px;
	height: 5px;
	background: var(--accent02-color);
	position: absolute;
	bottom: 0;
	left: 50%;
    transform: translateX(-50%);
}
@media screen and (max-width: 1200px) {
	h2{ font-size: 70px;}
	h2.sameTitle{ top: -35px;}
}
@media screen and (max-width: 1000px) {
	p{ font-size: 16px;}
	h2{ font-size: 50px;}
	h2.sameTitle{ top: -25px;}
	h2.sameTitle::after{
		width: 80px;
		height: 3px;
	}
}
@media screen and (max-width: 767px) {
	.inner{ width: 90%;}
	p{ font-size: 15px;}
}
@media screen and (max-width: 520px) {
	h2{ font-size: 32px;}
	h2.sameTitle{ top: -16px; padding: 0 0 20px;}
	h2.sameTitle::after{
		width: 60px;
		height: 2px;
	}
}
.btn{
	display: block;
	width: 100%;
	max-width: 655px;
	font-size: 16px;
	font-family: var(--sub-font);
	text-align: center;
	letter-spacing: 0.25em;
	color: #FFF;
	background: var(--main-color);
	padding: 15px 0;
	margin: 0 auto;
	position: relative;
	transition: .3s;
}
.btn:hover{
	color: #FFF;
	background: var(--accent-color);
	opacity: 1;
}
.btn::after{
	display: block;
	content: "";
	width:  20%;
	max-width: 110px;
	height: 1px;
	background: var(--accent-color);
	position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}
.btn:hover::after{
	background: var(--main-color);
}
.btnlp{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 65px;
	font-size: 18px;
	font-family: var(--sub-font);
	text-align: center;
	letter-spacing: 0.1em;
	color: #333;
	border: solid 3px #333;
	background: #FFF;
	position: relative;
	transition: .3s;
}
.btnlp::after{
	display: block;
	content: "";
	width: 80px;
	height: 3px;
	background: #333;
	position: absolute;
    top: 50%;
    left: -40px;
    transform: translateY(-50%);
	transition: .5s;
}
.btnlp:hover{ 
	width: 220px;
	color: #FFF;
	background: var(--accent02-color);
	opacity: 1;
}
.btnlp:hover::after{
	width: 90px;
	left: -50px;
	transition: .5s;
}
.btnnormal::after{
	display: none;
}
.bg-main{
	background-image: linear-gradient(0deg, transparent 31px, #DBDDDD 32px), linear-gradient(90deg,  transparent 31px, #DBDDDD 32px);
	background-size: 32px 32px;
	background-color: #FFF;
}
.bggray{ background: #f7f6f5;}

.bgpurple{ background: var(--sub-color);}

.bgpurple50 {
  background: linear-gradient( 90deg, var(--sub-color) 0%, var(--sub-color) 45%, #FFF 45%, #FFF 100%);
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.blue{ color: var(--sub-color);}
.red{ color: var(--accent02-color);}

@media screen and (max-width: 767px) {
	/*.bg-main{
		background-image: linear-gradient(0deg, transparent 21px, #F9F9F9 22px), linear-gradient(90deg,  transparent 21px, #F9F9F9 22px);
		background-size: 22px 22px;
	}*/
}
.anchor{
	position: relative;
	top: -150px;
}
@media screen and (max-width: 420px) {
	.anchor{ top: -100px;}
}
/*==================================================================================================
ここからheader
==================================================================================================*/
header{
	width: calc( 100% - 40px );
	height: 100px;
	position: fixed;
	right: 0;
	z-index: 1000;
	transition: all .2s ease-out;
}
.headInner{
	height: 100px;
	padding: 0 20px;
	margin: 0 auto;
	position: absolute;
	right: 0;
}
.min-header .headInner{
	padding: 0 10px;
	transition: .5s;
}
h1.logo{
	width: fit-content;
}
h1.logo a{
	display: block;
	font-size: 32px;
	font-family: var(--sub-font);
	line-height: 1;
	letter-spacing: 0.15em;
	/*text-shadow: 0 0 5px #000;*/
	color: #FFF;
	position: relative;
}
h1.logo a span{
	font-size: 18px;
	font-family: var(--main-font);
	letter-spacing: 0;
}
#nav_toggle{
	display: none;
}
nav{
	width: fit-content;
}
nav ul{
	display: flex;
}
nav ul li{
	width: fit-content;
}
nav ul li a{
	display: flex;
	align-items: center;
	height: 100%;
	font-size: 18px;
	font-family: var(--sub-font);
	text-align: center;
	line-height: 1;
	text-shadow: 0 0 5px #000;
	color: #FFF;
	padding: 0 10px;
	margin: 0 10px;
	position: relative;
}
nav ul li a::after{
	display: block;
	content: "";
	width: 0;
	height: 2px;
	background: var(--main-color);
	position: absolute;
	bottom: -20px;
	left: 50%;
    transform: translateX(-50%);
	transition: .5s;
}
nav ul li a:hover::after{
	width: 100%;
	transition: .5s;
}
@media screen and (max-width: 1200px) {
	.headInner{ height: 80px;}
	h1.logo a{ font-size: 26px;}
	h1.logo a span{ font-size: 14px;}
	nav ul li a{ padding: 5px 10px;}
}
@media screen and (max-width: 1100px) {
	nav ul li a{ margin: 0;}
}
@media screen and (max-width: 1000px) {
	h1.logo a{ font-size: 24px;}
	h1.logo a span{ font-size: 12px;}
	nav ul li a{ font-size: 16px;}
	nav ul li a::after{ bottom: -10px;}
}
@media screen and (max-width: 900px) {
	.headInner{ height: 65px;}
	h1.logo a{ font-size: 20px;}
	nav ul li a{ font-size: 14px; padding: 5px;}		
}
/*@media screen and (max-width: 767px) {*/
@media screen and (max-width: 800px) {
/*	header{ width: 100%; height: 65px;}*/
	header{ height: 65px;}
	.min-header{ 
		height: 65px;
		background: var(--sub-color);
	}
	nav.nav_content{
		display: none;
		width: 100%;
		max-width: 100%;
		height: 100vh;
		background: rgba(0,42,101,0.9);
		position: fixed;
		top: 0;
		left: 0;
		z-index: 100;
		overflow: scroll;
	}
	nav.nav_content ul{
		width: 80%;
		max-width: 500px;
		flex-wrap: wrap;
		position: absolute;
		top: 45%;
		left: 50%;
		transform: translate(-50%, -50%);
	}
	nav.nav_content ul li{
		width: 100%;
		margin: 0;
	}
	nav.nav_content ul a{
		display: block;
		width: 100%;
		height: auto;
		font-size: 20px;
		text-align: center;
		color: #FFF;
		padding: 30px 0;
		border-bottom: solid 1px #FFF;
		margin: 0;
	}
	nav ul li:last-child{
		border-bottom: none;
	}
	nav ul li:last-child a{
		background: none;
	}
	/*開閉ボタン*/
	#nav_toggle{
		display: block;
		width: 65px;
		height: 65px;
		background: var(--main-color);
		position: fixed;
		top: 0; right: 0;
		z-index: 1000;
		-webkit-transition: 0.5s ease-in-out;
		-moz-transition: 0.5s ease-in-out;
		transition: 0.5s ease-in-out;
		padding: 13px;
	}
	.open #nav_toggle{ background: #FFF;}

	#nav_toggle div { position: relative; top: 5px;}
	#nav_toggle span{
		display: block;
		height: 1px;
		border-radius: 2px;
		background: #FFF;
		position:absolute;
		width: 100%;
		left: 0;
		-webkit-transition: 0.5s ease-in-out;
		-moz-transition: 0.5s ease-in-out;
		transition: 0.5s ease-in-out;	
	}

	#nav_toggle span:nth-child(1){ top:0px;}
	#nav_toggle span:nth-child(2){ top:13px;}
	#nav_toggle span:nth-child(3){ top:26px;}

	/*開閉ボタンopen時*/
	.open #nav_toggle span:nth-child(1),
	.open #nav_toggle span:nth-child(3){
		background: var(--main-color);
		top: 15px;
	}
	.open #nav_toggle span:nth-child(1) {
	   -webkit-transform: rotate(135deg);
		-moz-transform: rotate(135deg);
		transform: rotate(135deg);
	}
	.open #nav_toggle span:nth-child(2) { height: 0;}
	.open #nav_toggle span:nth-child(3) {
		-webkit-transform: rotate(-135deg);
		-moz-transform: rotate(-135deg);
		transform: rotate(-135deg);
	}
}
@media screen and (max-width: 420px) {
	.headInner{ 
		width: 100vw;
		padding: 0 10px;
	}	
}
/*==================================================================================================
ここからfooter
==================================================================================================*/
/*contact*/
#contact{
	padding: 150px 0;
}
#contact .inner{
	padding: 50px 0;
	background: #fff;
	border-radius: 30px;
}
#contact .inner .cinner{
	width: 80%;
	max-width: 700px;
	margin: 0 auto;
}
#contact dl{
	justify-content: flex-start;
	margin: 0 0 20px;
}
#contact dt{
	width: 30%;
	font-size: 13px;
}
#contact dd{
	width: 70%;
	height: 49px;
	font-size: 12px;
	color: #DBDBDB;
	padding: 13px 20px;
	border: solid 1px #BDBDBD;
	border-radius: 5px;
}
#contact .select dd{
	width: 50%;
	color: #000;
	position: relative;
}
#contact .select dd::after{
	display: block;
	content: "";
	width: 5px;
	height: 5px;
	border-right: solid 1px #000;
	border-bottom: solid 1px #000;
	position: absolute;
	top: 44%; right: 20px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
	transform: rotate(45deg);
}
#contact .select02 dd{
	width: 20%;
	color: #000;
}
#contact .select02::after{
	display: block;
	content: "人";
	font-size: 12px;
	margin: 0 0 0 10px;
}
#contact .inner h2{
	font-size: 14px;
	text-align: left;
	margin: 50px 0 10px 0;
}
#contact .inner h2::before{
	display: inline-block;
	content: "";
	width: 3px;
	height: 14px;
	background: #00A7EB;
	margin: 0 10px 0 0;
}
.required{
	width: fit-content;
	display: block;
	position: relative;
}
.required::after{
	display: block;
	content: "*";
	color: red;
	position: absolute;
	top: -5px;
	right: -10px;	
}
#contact .btn{
	max-width: 260px;
}
#contact .btn::after{
	max-width: 35px;
}
@media screen and (max-width: 768px) {
	#contact{ padding: 100px 0;}
}
@media screen and (max-width: 420px) {
	#contact{ padding: 60px 0;}
	#contact .inner .cinner{
		width: 90%;
	}
	#contact dl:nth-child(3) dt{ width: 100%; margin: 0 0 10px;}
	#contact dl:nth-child(3) dd{ width: 100%;}
	#contact .btn{ max-width: 100%;}
}
/*==================================================================================================*/
/*footer*/
.footer{
	padding: 50px 0;
	background: #333333;
}
.footer h2{
	width: 50%;
	font-size: 32px;
	font-family: var(--sub-font);
	color: #FFF;
}
.footer h2 span{ 
	font-size: 18px;
	font-family: var(--main-font);
	letter-spacing: 0;
}
.footer .inner div{
	width: 50%;
}
.footer p{ 
	font-size: 16px;
	color: #FFF;
}
.footer p:first-child{ 
	margin: 0 0 10px;
}
@media screen and (max-width: 1200px) {
}
@media screen and (max-width: 767px) {
	.footer h2{
		width: 100%;
		font-size: 26px;
	}
	.footer h2 span{ font-size: 11px;}
	.footer .inner div{	width: 100%;}
	.footer p{ font-size: 12px;}
	.footer p:first-child{ margin: 0 0 5px;}
}
@media screen and (max-width: 420px) {
}