@charset "utf-8";

/* ---------------------------------------- 
 - #loading
---------------------------------------- */
#loading {
	position: fixed;
	z-index: 1000;
	background-color: #ffffff;
	width:100%;
	height: 100%;
	top:0;
	left: 0;
	animation: disappear 0.8s ease-in-out 0.8s both;
}
@keyframes disappear {
	0% {
		display: block;
		opacity: 1;
	}
	99% {
		display: block;
		opacity: 0;
	}
	100% {
		display: none;
		opacity: 0;
		visibility: hidden;
	}
}
html.onload body div#loading {
	animation-play-state: paused;
}
#loading .loader,
#loading .loader:after {
  border-radius: 50%;
  width: 50px;
  height: 50px;
}
#loading .loader {
	display:none;
	z-index: 1000;
	margin: auto;
	margin-top: -25px;
	margin-left: -25px;
	font-size: 5px;
	position: absolute;
	top:50%;
	left:50%;
	text-indent: -9999em;
	border-top: 2px solid rgba(204, 204, 204, 0.2);
	border-right: 2px solid rgba(204, 204, 204, 0.2);
	border-bottom: 2px solid rgba(204, 204, 204, 0.2);
	border-left: 2px solid #ccc;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	-webkit-animation: load8 1.1s infinite linear;
	animation: load8 1.1s infinite linear;
}
@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* ---------------------------------------- 
 - mainvisual 
---------------------------------------- */
/* mainvisual */
#mainvisual {
	position: relative;
	max-height: 100%;
	width: 100%;
}
#mainvisual #mainvisual_inner {
	position: fixed;
    width: 100%;
    height: 100%;
	max-height: 100%;
    top: 50%;
    left: 50%;
	margin:auto;
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
    overflow: hidden;
}
#mainvisual .media {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
#mainvisual .media video {
    height: 100%;
    width: 100%;
	object-fit: cover;
    font-family: 'object-fit: cover';
}
#mainvisual .media > img {
    height: 100%;
    width: 100%;
	object-fit: cover;
    font-family: 'object-fit: cover';
}
/* scroll */
#mainvisual .scroll {
	position: absolute;
	display: inline-block;
	bottom: 0;
	left: 0;
	right:0;
	margin: auto;
	text-align: center;
	z-index: 2;
	font-weight: normal;
	height:70px;
	opacity: 0;
	animation: scrollIn 1s ease 0s 1 forwards;
    -webkit-animation: scrollIn 1s ease 0s 1 forwards;
	animation-delay:1.5s;
}
#mainvisual .scroll::after {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	content: "";
	width: 1px;
	height: 70px;
	margin: auto;
	display: block;
	opacity: 1;
	background-color:#fff;
	z-index: 2;
	-webkit-transform: translate3d(0, 0, 0) scaleY(1);
	transform: translate3d(0, 0, 0) scaleY(1);
	-webkit-transform-origin: top left;
	transform-origin: top left;
	transition: -webkit-transform .4s;
	transition: transform .4s;
}
#mainvisual .scroll.fadeOut::after {
	opacity: 0;
}
#mainvisual .scroll.active::after {
	-webkit-transform-origin: bottom left;
	transform-origin: bottom left;
	-webkit-transform: translate3d(0, 0, 0) scaleY(0);
	transform: translate3d(0, 0, 0) scaleY(0);
}
@keyframes scrollIn {
    0% {opacity: 0}
    100% {opacity: 1}
}
@-webkit-keyframes scrollIn {
    0% {opacity: 0}
    100% {opacity: 1}
}
@media screen and (max-width: 768px) {
	/* scroll */
	#mainvisual .scroll {
		height:60px;
		left:5%;
	}
	#mainvisual .scroll::after {
		height: 60px;
	}
}

/* ---------------------------------------- 
 - contents（overview）
---------------------------------------- */
#overview {
	width: 90%;
    max-width: 1100px;
    margin: 120px auto;
}
#overview .ttl{
	position: relative;
	margin: auto;
	font-size:3.8rem;
	text-align: center;
	padding-bottom: 0.5em;
	margin-bottom: 1.0em;
	line-height: 1.2;
}
#overview .ttl::before {
    background: #e50a11;
    content: "";
    position: absolute;
    width: 50px;
    height: 1px;
    left: 0;
	right:0;
    bottom: 0;
    margin: auto;
}
@media screen and (max-width: 768px) {
	#overview {
		margin: 50px auto;
	}
	#overview .ttl{
		font-size:2.8rem;
	}
	#overview .ttl::before {
		width: 35px;
	}
	#overview .lead{
		line-height: 1.8;
	}
}

/* ---------------------------------------- 
 - contents（greeting）
---------------------------------------- */
#greeting {
	width:90%;	
	max-width: 1100px;
	margin: 160px auto;
}
#greeting_inner{
	width:100%;	
	position: relative;
	text-align: left;
}
#greeting .visual{
	width:67%;	
	max-width: 730px;
	margin-left: auto;
	height: 450px;
}
#greeting .visual img,
#greeting .visual picture{
	height: 100%;
	object-fit: cover;
}
#greeting .leadbox{
	width: 70%;
    max-width: 550px;
	position: absolute;
	top:5%;
	left:0;
}
#greeting .leadbox .ttl{
	font-size:3.6rem;
	line-height: 1.2;
	margin-top: 0.5em;
	margin-bottom: 0.8em;
}
#greeting .leadbox .catch{
	color:#fff;
	font-size:4.0rem;
	margin-bottom: 0.5em;
	line-height: 1.2;
}
#greeting .leadbox .catch span.fadein{
	display: inline-block;
	padding:0 5px;
	position: relative;
	line-height: 1.4;
}
#greeting .leadbox .catch span.fadein span{
	position: relative;
	z-index: 1;
	opacity: 0;
}
#greeting .leadbox .catch.anime span.fadein::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
	width: 100%;
    height: 100%;
    background-color:#e50a11;
}
#greeting .leadbox .catch.anime span.fadein::after {
    animation: typo-overlayIn 0.6s 0.4s cubic-bezier(.77,0,.175,1);
    animation-fill-mode: both;
}
#greeting .leadbox .catch.anime span.fadein span{
	animation:typo-fadeIn 0.5s 0.7s;
	animation-fill-mode: both;
}
@keyframes typo-fadeIn {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
}
@keyframes typo-overlayIn {
    0% {
      width: 0;
    }
    100% {
      width:  100%;
    }
}
#greeting .leadbox .name{
	font-size:2.0rem;
	line-height: 1.6;
	margin-bottom: 1.5rem;
}
#greeting .leadbox .name span{
	font-size:3.0rem;
}
@media screen and (max-width: 768px) {
	#greeting {
		margin: 75px auto;
	}
	#greeting .visual{
		width:100%;	
		height: auto;
	}
	#greeting .leadbox{
		width: 100%;
		max-width: 100%;
		position: static;
	}
	#greeting .leadbox .ttl{
		font-size:4.8vw;
		height: 30px;
		margin-top: 2.0rem;
		margin-bottom: 0.5em;
	}
	#greeting .leadbox .catch{
		font-size:5.867vw;
	}
	#greeting .leadbox .name{
		font-size:3.733vw;
	}
	#greeting .leadbox .name span{
		font-size:5vw;
	}
}

/* ---------------------------------------- 
 - contents（department）
---------------------------------------- */
#department {
	width:90%;	
	max-width: 900px;
	margin: 150px auto;
	text-align: center;
}
#department .ttl{
	position: relative;
	margin: auto;
	font-size:3.8rem;
	text-align: center;
	padding-bottom: 0.5em;
	margin-bottom: 1.0em;
	line-height: 1.6;
}
#department .ttl::before {
    background: #e50a11;
    content: "";
    position: absolute;
    width: 50px;
    height: 1px;
    left: 0;
	right:0;
    bottom: 0;
    margin: auto;
}
#department ul.list {
	width: 100%;
	margin: 0 auto;
}
#department ul.list li{
	font-size: 2.2rem;
	line-height: 1.2;
	color:#222;
	border: solid 1px #222;
	margin-bottom: 20px;
	text-align: left;
}
#department ul.list li a {
	position: relative;
	display: flex;
	align-items: center;
	text-decoration: none;
	padding: 0 60px 0 100px;
	height: 70px;
	-webkit-transition: .3s;
    transition: .3s;
}
#department ul.list li a::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
	bottom:0;
    left: 1px;
	width: 68px;
    height: 68px;
	margin: auto;
	background: #6174a9;
}
#department ul.list li#bio a::before {
	background: #6174a9;
}
#department ul.list li#zos a::before {
	background: #a93c4a;
}
#department ul.list li#mas a::before {
	background: #0b7fb6;
}
#department ul.list li#fos a::before {
	background: #00693e;
}
#department ul.list li#ens a::before {
	background: #398a83;
}
#department ul.list li#agr a::before {
	background: #57a060;
}
#department ul.list li#fst a::before {
	background: #a7799b;
}
#department ul.list li#fbs a::before {
	background: #e6a35b;
}
#department ul.list li#gcs a::before {
	background: #dcaf00;
}
#department ul.list li#vtn a::before {
	background: #e97874;
}
#department ul.list li#vmd a::before {
	background: #ce3441;
}
#department ul.list li a::after {
    content: '';
    display: inline-block;
    background-size: contain;
    vertical-align: text-bottom;
    background-position: left top;
    background-repeat: no-repeat;
    position: absolute;
    top: 50%;
    right: 20px;
	width: 24px;
    height: 10px;
    background-image: url(/~NUBSenglish/wp-content/themes/nubsenglish/assets/images/common/ico_arw_next.svg);
    -webkit-transform: translate(0, -50%);
    transform: translate(0, -50%);
}
#department ul.list li#bio a:hover {
	color: #6174a9;
}
#department ul.list li#zos a:hover {
	color: #a93c4a;
}
#department ul.list li#mas a:hover {
	color: #0b7fb6;
}
#department ul.list li#fos a:hover {
	color: #00693e;
}
#department ul.list li#ens a:hover {
	color: #398a83;
}
#department ul.list li#agr a:hover {
	color: #57a060;
}
#department ul.list li#fst a:hover {
	color: #a7799b;
}
#department ul.list li#fbs a:hover {
	color: #e6a35b;
}
#department ul.list li#gcs a:hover {
	color: #dcaf00;
}
#department ul.list li#vtn a:hover {
	color: #e97874;
}
#department ul.list li#vmd a:hover {
	color: #ce3441;
}
@media screen and (max-width: 768px) {
	#department {
		margin: 75px auto;
	}
	#department .ttl{
		font-size:2.8rem;
	}
	#department .ttl::before {
		width: 35px;
	}
	#department ul.list li {
		font-size: 3.2vw;
		margin-bottom: 10px;
	}	
	#department ul.list li a {
		padding: 0 35px 0 60px;
		height: 52px;
	}
	#department ul.list li a::before {
		width: 50px;
		height: 50px;
		margin: auto;
		background: #6174a9;
	}
	#department ul.list li a::after {
		right: 15px;
    	width: 20px;
		height: 7px;
	}
}