@charset "utf-8";
@import url("reboot.css");
html {
	font-size: 14px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
}
@media screen and (min-width: 768px){
	html {
		font-size: 16px;
	}
}
body * {
	box-sizing: border-box;
}
a, a:hover {
	text-decoration: none;
}
img {
	max-width: 100%;
	height: auto;
}
.logo-mark {
	width: 100%;
	height: auto;
	max-width: 80px;
}

.video-bg {
	height: 100%;
	width: 100%;
	position: relative;
}
.imgH {
	height: 100%;
	width: auto;
	max-width:inherit;
	object-fit: contain;
}
.mgB0 {
	margin-bottom: 0 !important;
}
.mgB10 {
	margin-bottom: 10px !important;
}
.mgB20 {
	margin-bottom: 20px !important;
}
.mgB30 {
	margin-bottom: 30px !important;
}
.mgB40 {
	margin-bottom: 40px !important;
}
.mgB50 {
	margin-bottom: 50px !important;
}
/* header
----------------------------------------------*/
.header {
	position: fixed;
	top: -60px;
	height: 60px;
	background-color: #fff;
	display: flex;
	align-items: center;
	z-index: 90;
	animation: header_in_sp 0.5s linear .8s forwards;
	padding: 0 10px;
	width: 100%;
}
@media screen and (min-width: 768px){
	.header {
		top: -90px;
		height: 90px;
		background-color: #fff;
		animation: header_in 0.5s linear .8s forwards;
		padding: 0 40px;
	}
}
@keyframes header_in_sp {
	0% { top: -60px; }
	100% { top: 0; }
}
@keyframes header_in {
	0% { top: -90px; }
	100% { top: 0; }
}
.site-name {
	margin-bottom: 0;
	line-height: 1;
}
.site-name a {
	line-height: 1;
	font-size: 1rem;
	color: #000;
}
.site-name .logo {
	height: 40px;
	margin-right: 5px;
}
@media screen and (min-width: 768px){
	.site-name .logo {
		height: 70px;
	}
}
/* menu
----------------------------------------------*/
.menu {
	height: 24px;
	position: absolute;
	right: 20px;
	top: 17px;
	width: 30px;
	z-index: 100;
	cursor: pointer;
}
.menu-line {
	background: #000;
	display: block;
	height: 2px;
	position: absolute;
	transition: transform .3s;
	width: 100%;
}
.menu-line-center{
	top: 11px;
}
.menu-line-bottom{
	bottom: 0;
}
.menu-line-top.active{
	top:10px;
	transform: rotate(45deg);
	background: #000;
}
.menu-line-center.active {
	transform:scaleX(0);
}
.menu-line-bottom.active {
	bottom: 12px;
	transform: rotate(135deg);
	background: #000;
}
@media screen and (min-width: 768px) {
	.menu {
		height: 30px;
		right: 40px;
		top: 30px;
		width: 50px;
	}
	.menu-line-center {
		top: 13px;
	}
	.menu-line-top.active {
		top:10px;
	}
	.menu-line-bottom.active {
		bottom: 18px;
	}
}
/*gnav*/
.gnav {
	display: none;
	position: fixed;
	top: 60px;
	left: 0;
	background: rgba(0,0,0,0.8);
	height: calc( 100% - 60px);
	z-index: 90;
	width: 100%;
}
.gnav-wrap {
	height: 100%;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gnav-menu {
	list-style-type: none;
	padding: 0;
	margin: 0;
}
.gnav-menu-item { 
	text-align: center;
	margin: 1.5em 0 1.5em 100px;
	opacity: 0;
}
.gnav-menu-item a {
	color: #fff;
	font-size: 1.4rem;
	font-weight: bold;
	transition: .5s;
}
.gnav-menu-item a:hover{
	color: #666;
}
@media screen and (min-width: 768px){
	.gnav {
		top:90px;
		height: calc( 100% - 90px);
	}
	.gnav-menu-item a {
		font-size: 2rem;
	}
}

/* Common Style
----------------------------------------------*/
.is-pc {
	display: none;
}
@media screen and (min-width: 768px){
	.is-pc {
		display: block;
	}
	.is-sp {
		display: none;
	}
}
.container {
	width: 96%;
	margin-left: auto;
	margin-right: auto;
}
@media screen and (min-width: 768px){
	.container {
		width: 100%;
	}
}
.btn {
	display: inline-block;
	border: 1px solid #000;
	color: #000;
	padding: 10px 16px;
	font-size: 1.1vw;
	font-weight: bold;
	position: relative;
	text-align: center;
	background-color: #fff;
	transition: all .3s;
	justify-content: center;
	align-items: center;
	width: 100%;
}
.btn.arrow-right {
	padding-right: 30px;
}
.btn.arrow-right::before {
	content: "";
	width: 14px;
	height: 1px;
	background-color: #000;
	position: absolute;
	right: 10px;
	bottom: 50%;
	margin-left: 15px;
}
.current .btn,
.btn:hover {
	background-color: #000;
	color: #fff;
	transform: scale(1.05);
}
.btn.arrow-right::after {
	content: "";
	width: 2px;
	height: 5px;
	transform: skewX(45deg);
	background-color: #000;
	position: absolute;
	right: 10px;
	bottom: 50%;
}
.link-list {
	list-style-type: none;
	padding-left: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 auto;
	align-items: stretch;
}
.link-list li {
	width: 48%;
	margin-bottom: 10px;
}
.link-list li .btn {
	width: 100%;
}
.current .btn.arrow-right::before,
.current .btn.arrow-right::after,
.btn.arrow-right:hover::before,
.btn.arrow-right:hover::after{
	background-color: #fff;
}
.ttl-section {
	font-size: 1.6rem;
	line-height: 1.6;
	margin-bottom: 10px;
	/*font-weight: bold;*/
font-weight: 900;
	/*font-family: '春夏秋冬BB';*/
/*font-family: 'eri';*/
font-family: 'beautiful-font';
letter-spacing:-0.1em;
text-shadow: 1px 0 0px #212529;
}
@media screen and (min-width: 768px){
	.ttl-section {
		font-size: 2.2vw;
    line-height: 3.2vw;
	}
}
.tx-mincho {
	font-family: "Sawarabi Mincho", serif;
}
.tx-large {
	font-size: 120%;
}
.tx-larger {
	font-size: 150%;
}
small, .tx-small {
	font-size: 80%;
}
.tx-smaller {
	font-size: 75%;
}
.tx-space {
	letter-spacing: 2px;
}
.tx-white {
	color: #fff;
}
.tx-red {
	color: #c00;
}
.tx-light {
	text-shadow: 1px 1px 0px #fff;
}
.tx-on-dark {
	text-shadow: 1px 1px 0px #000;
	color: #fff;
}
.tx-center {
	text-align: center;
}
.tx-right {
	text-align: right;
}
.slide-arrow {
	position: absolute;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
	display: block;
	background-color: inherit!important;
	z-index: 2;
	font-size: 40px;
	color: #999;
	bottom: 50%;
}
.slide-arrow:focus {
	outline: none;
}
.slide-arrow.prev-arrow {
	left: 10px;
}
.slide-arrow.next-arrow {
	right: 50px;
}
@media screen and (min-width: 768px){
	.slide-arrow {
		bottom: -80px;
	}
}
.slide-arrow.prev-arrow:before {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	content: "";
	vertical-align: middle;
	width: 40px;
	height:40px;
	border-top: 1px solid #FFF;
	border-right: 1px solid #FFF;
	-webkit-transform: rotate(225deg);
	transform: rotate(225deg);
}
.slide-arrow.prev-arrow:before {
	border-top: 1px solid #000;
	border-right: 1px solid #000;
}
.slide-arrow.next-arrow:before {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	content: "";
	vertical-align: middle;
	right: 0;
	width: 40px;
	height: 40px;
	border-top: 1px solid #FFF;
	border-right: 1px solid #FFF;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
.slide-arrow.next-arrow:before {
	border-top: 1px solid #000;
	border-right: 1px solid #000;
}


/* Animation
----------------------------------------------*/
/* --- fade-in -- */
.active .fade-in {
	animation: fadeIn 2s linear both;
}
@keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
/* --- fade-up -- */
.active .fade-up {
	animation: fadeUp .7s linear both;
}
@keyframes fadeUp {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/* --- slide-up -- */
.active .slide-up {
	animation: slideUp 1s linear both;
}
@keyframes slideUp {
	0% {
		opacity: 0;
		transform: translateY(120px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/* --- slide-down -- */
.active .slide-down {
	animation: slideDown 1s linear both;
}
@keyframes slideDown {
	0% {
		opacity: 0;
		transform: translateY(-120px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/* --- fade-in-left -- */
.active .fade-in-left {
	animation: fadeInLeft 1s linear both;
}
@keyframes fadeInLeft {
	0% {
		opacity: 0;
		transform: translateX(-40px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
/* --- fade-in-right -- */
.active .fade-in-right {
	animation: fadeInRight 1s linear both;
}
@keyframes fadeInRight {
	0% {
		opacity: 0;
		transform: translateX(40px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
/* --- scale-in -- */
.active .scale-in {
	animation: scaleIn 1s linear both;
}
@keyframes scaleIn {
	0% {
		opacity: 0;
		transform: scale(0.9);
	}
	100% {
		opacity: 1.0;
		transform: scale(1.0);
	}
}
/* --- delay setting -- */
.active .delay-500 {
	animation-delay: 0.5s;
}
.active .delay-1000 {
	animation-delay: 1s;
}
.active .delay-1500 {
	animation-delay: 1.5s;
}
.active .delay-2000 {
	animation-delay: 2s;
}
.active .delay-2500 {
	animation-delay: 2.5s;
}
.active .delay-3000 {
	animation-delay: 3s;
}
.active .delay-3500 {
	animation-delay: 3.5s;
}
.active .delay-4000 {
	animation-delay: 4s;
}
.active .delay-4500 {
	animation-delay: 4.5s;
}
.active .delay-5000 {
	animation-delay: 5s;
}
.active .delay-5500 {
	animation-delay: 5.5s;
}
.active .delay-6000 {
	animation-delay: 6s;
}
.active .delay-6500 {
	animation-delay: 6.5s;
}
.active .delay-7000 {
	animation-delay: 7s;
}
.active .delay-7500 {
	animation-delay: 7.5s;
}
.active .delay-8000 {
	animation-delay: 8s;
}
.active .delay-8500 {
	animation-delay: 8.5s;
}
.active .delay-9000 {
	animation-delay: 9s;
}
.active .delay-9500 {
	animation-delay: 9.5s;
}
.active .delay-10000 {
	animation-delay: 10s;
}

/* Modaal
----------------------------------------------*/
.modaal-wrapper {
	width: calc( 100% - 30px);
	height: calc( 100vh - 100px);
	top: 60px;
	left: 15px;
}
.modaal-fullscreen .modaal-close {
	top: 80px;
	right: 35px;
}
@media screen and (min-width: 768px){
	.modaal-wrapper {
		width: calc( 100% - 80px);
		height: calc( 100vh - 130px);
		top: 90px;
		left: 40px;
	}
	.modaal-fullscreen .modaal-close {
		top: 100px;
		right: 50px;
	}
}
.modaal-fullscreen .modaal-close:hover {
	transform: rotate(90deg);
	background-color: #000;
	color: #FFF !important;
}
.modaal-close:focus:before, .modaal-close:focus:after, .modaal-close:hover:before, .modaal-close:hover:after {
	background-color: #fff;
}
.modaal-frame {
	width: 100%;
	height: 100vh;
	background-color: transparent;
}
.modaal-frame .school-photo {
	text-align: center;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.modaal-frame .school-photo img {
	height: 100%;
	width: auto;
	object-fit: contain;
}
.modaal-container {
	background-color: transparent;
}

/* header banner
----------------------------------------------*/
@media screen and (max-width: 767px){
body {
	/*padding-bottom: 70px;*/
}
.header_bnr {
	position: fixed;
	bottom: -70px;
	left: 0;
	width: 100%;
	height: 70px;
	z-index: 90;
	animation: header_bnr_in_sp 0.5s linear .8s forwards;
}

@keyframes header_bnr_in_sp {
	0% { bottom: -70px; }
	100% { bottom: 0; }
}

.header_bnr a {
	display: flex;
	justify-content: center;
	line-height: 0;
	height: 70px;
	text-align: center;
}
.header_bnr a img {
	width: auto;
	max-width: 100%;
	max-height: 70px;
	align-self: flex-end;
}
}
@media screen and (min-width: 768px){
.header_bnr {
	position: absolute;
	right: 120px;
	top:10px;
	width: auto;
}
.header_bnr a {
	transition: .2s;
	display: block;
	line-height: 0;
	height: 70px;
}
.header_bnr a img {
	width: auto;
	height: 100%;
}
.header_bnr a:hover {
	transform: scale(1.1);
	/*transform-origin: right bottom;*/
}
}
