@charset "UTF-8";

.sp {
	display: none;
}
#gl-nav .about-txt {
	display: none;
}


#mainbody * {
    font-family:'ヒラギノ角ゴ Pro', 'ヒラギノ角ゴ Pro W3','Hiragino Sans','Hiragino Kaku Gothic Pro','Noto Sans Japanese','メイリオ','Meiryo',sans-serif;
}


#mainbody {
	margin-bottom: -50px;
	min-height: 50px;
	background: #ccc;
}


.link-button a {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 146px;
	height: 52px;
	font-size: 1.7rem;
	font-weight: 600;
	color: #000;
	text-decoration: none;
	border: 2px solid #000;
	transition: all 300ms ease-out;
}
.link-button.bg a {
	background: #fff;
}

.link-button.white a {
	color: #fff;
	border: 2px solid #fff;
}
.link-button a:hover {
	background: rgba(0,0,0,0.1);
}
.link-button.white a:hover {
	background: rgba(255,255,255,0.1);
}
.link-button.bg a:hover {
	background: rgba(255,255,255,0.85);
}

.link-button.en a {
	font-size: 1.5rem;
}


#kv {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 600px;
	background: #111;
}
#kv h1 {
	position: relative;
	margin-top: -80px;
	z-index: 10;
	font-size: 4rem;
	font-weight: 600;
	text-align: center;
	color: #fff;
}
#kv .link {
	position: absolute;
	display: flex;
	justify-content: center;
	width: 100%;
	left: 0;
	bottom: 120px;
	z-index: 10;
}
#kv .link a {
	display: inline-flex;
	padding: 15px 20px 14px;
	font-size: 1.5rem;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	border: 1px solid #fff;
	background: rgba(0,0,0,0.7);
}
#kv video {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	z-index: 1;
	object-fit: cover;
	object-position: center center;
}
#kv .scroll {
	position: absolute;
	width: 40px;
	height: 20px;
	left: calc(50% - 20px);
	bottom: 34px;
	z-index: 100;
}

#kv .link a {
	transition: all 300ms ease-out;
}
#kv .link a:hover {
	opacity: 0.7;
}



#info {
	padding: 50px 0;
	background: #f2f2f2;
}
#info .inner {
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 30px;
}
#info .inner > div {
	width: calc(50% - 20px);
}
#info.single .inner > div {
	width: 100%;
}


#info .head {
	display: flex;
	justify-content: space-between;
	padding: 0 0 6px;
	border-bottom: 1px solid #707070;
}
#info h2 {
	font-size: 1.8rem;
	font-weight: 600;
}
#info .head a {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	top: -2px;
	padding: 1px 8px 0 22px;
	font-size: 1.3rem;
	line-height: 1;
	text-decoration: none;
	color: #666;
	border: 1px solid #e7e7e7;
	background: #fff url(/common/images/arrow_com_link.png) 8px .65em no-repeat;
	cursor: pointer;
}
#info .head a:hover {
	border-color: #666;
}

#info li a {
	color: #000;
	text-decoration: none;
}
#info li a:hover {
	text-decoration: underline;
}

#info .news ul {
	margin: 20px 0 0;
}
#info .news li {
	position: relative;
	padding: 0 0 0 50px;
	font-size: 1.2rem;
}
#info .news li + li {
	margin-top: 12px;
}
#info .news li::before {
	position: absolute;
	content: "";
	display: block;
	width: 33px;
	height: 38px;
	left: 0;
	top: 0;
	background: transparent url(/common/images/icon_link_l.png) 0 5px no-repeat;
}
#info .news li.pdf::before {
	background: transparent url(/common/images/icon_pdf_l.png) 0 5px no-repeat;
}
#info .news li dd {
	margin-top: 3px;
}



#info .topics ul {
	display: flex;
	justify-content: space-between;
	margin: 20px 0 0;
	font-size: 1.2rem;
}
#info .topics li {
	width: calc(50% - 12px);
}
#info .topics dl {
	margin: 10px 0 0;
}
#info .topics li dd {
	margin-top: 3px;
}
#info .topics img {
	width: 100%;
	height: auto;
}



#intro {
	position: relative;
	height: 568px;
}
#intro .inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 660px;
	z-index: 10;
}
#intro .image {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	z-index: 1;
}
#intro .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

#intro h2 {
	margin: 115px 0 0;
	font-size: 4rem;
	font-weight: 600;
	line-height: 1.8;
	text-align: center;
}
#intro p {
	margin: 50px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.8;
	text-align: center;
}
#intro .foot {
	margin: 50px 0 0;
	font-size: 1.6rem;
	font-weight: 600;
	text-align: center;
}





#about {
	padding: 100px 0 150px;
	background: #fff;
}
#about .inner {
	box-sizing: border-box;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 30px;
}

#about .entry {
	display: flex;
	justify-content: space-between;
}
#about .entry + .entry {
	margin-top: 80px;
}
#about .entry:nth-of-type(2n) {
	flex-direction: row-reverse;
}
#about .entry .image {
	width: calc(50% - 25px);
}
#about .entry dl {
	position: relative;
	width: calc(50% - 20px);
}
#about .entry img {
	box-sizing: border-box;
	width: 100%;
	height: auto;
}
#about .entry a img {
	border: 1px solid #707070;
}
#about .entry dt {
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.6;
}
#about .entry dd {
	margin: 20px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.8;
}

#about .entry:nth-of-type(1) dl {
	top: 20px;
}
/*
#about .entry:nth-of-type(2) dl {
	top: -5px;
}
*/
#about .entry:nth-of-type(2) {
	align-items: center;
}


#about .links {
	margin: 120px 0 0;
}
#about .links ul {
	display: flex;
	justify-content: space-between;
}
#about .links li {
	position: relative;
	width: calc(50% - 5px);
}
#about .links  a {
	display: block;
	text-decoration: none;
	color: #000;
}

#about .link-button span {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 146px;
	height: 52px;
	font-size: 1.7rem;
	font-weight: 600;
	color: #000;
	text-decoration: none;
	border: 2px solid #000;
	background: #fff;
	transition: all 300ms ease-out;
}
#about .link-button.white span {
	color: #fff;
	border-color: #fff;
	background: #000;
}
#about .links a:hover img {
	opacity: 1;
}
#about .links a:hover .link-button span {
	background: rgba(255,255,255,0.75);
}
#about .links a:hover .link-button.white span {
	background: rgba(0,0,0,0.75);
}




#about .links li dl,
#about .links li nav {
	position: relative;
	z-index: 10;
}
#about .links dl {
	left: 0;
	top: 0;
	padding: 45px 45px 0;
}
#about .links nav {
	margin: 65px 0 40px 45px;
}

#about .links li .image {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	z-index: 1;
}
#about .links li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#about .links dt {
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.3;
}
#about .links dd {
	margin: 10px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.6;
}

#about .links li:nth-child(2) dl {
	color: #fff;
}
#about .links li:nth-child(2) nav a {
	color: #fff;
	border-color: #fff;
}






#column1 {
	position: relative;
	height: 550px;
}
#column1 .inner {
	position: relative;
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1200px;
	height: 550px;
	margin: 0 auto;
	padding: 0 30px;
	z-index: 10;
}
#column1 .image {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	z-index: 1;
}
#column1 .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

#column1 .box {
	position: relative;
	left: -45px;
	padding: 45px;
	background: rgba(255,255,255,0.8);
}
#column1 h2 {
	font-size: 3.8rem;
	font-weight: 600;
	line-height: 1.6;
}
#column1 p {
	margin: 15px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.8;
}


#tech {
	padding: 65px 0 130px;
	background: #e9ebec;
}
#tech .inner {
	position: relative;
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 30px;
	z-index: 10;
}

#tech ul {
	display: flex;
	flex-wrap: wrap;
}
#tech li {
	position: relative;
	box-sizing: border-box;
	width: calc(50% - 5px);
}
#tech li:nth-child(2n) {
	margin-left: 10px;
}
#tech li:nth-child(n + 3) {
	margin-top: 10px;
}

#tech li a {
	box-sizing: border-box;
	display: block;
	padding: 45px 45px 40px;
	min-height: 342px;
	color: #000;
	text-decoration: none;
	background: #fff;
}

#tech dl {
	position: relative;
	z-index: 10;
}
#tech dt {
	font-size: 3.0rem;
	font-weight: 600;
	line-height: 1.5;
}
#tech dd {
	margin: 10px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.6;
}

#tech li .link-button {
	position: absolute;
	left: 45px;
	bottom: 40px;
	z-index: 10;
}
#tech li .link-button span {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 146px;
	height: 52px;
	font-size: 1.7rem;
	font-weight: 600;
	color: #000;
	text-decoration: none;
	border: 2px solid #000;
	transition: all 300ms ease-out;
}

#tech .image {
	position: absolute;
	right: 31px;
	bottom: 15px;
	z-index: 1;
}
#tech .image img {
	width: 260px;
	height: auto;
}

#tech li a:hover img {
	opacity: 1;
}
#tech li a:hover .link-button span {
	background: rgba(0,0,0,0.1);
}





#column2 {
	position: relative;
	min-height: 560px;
	padding: 0 0 150px;
	background: #557277;
}
#column2 .inner {
	position: relative;
	box-sizing: border-box;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 30px;
	z-index: 10;
}
#column2 .image {
	position: absolute;
	width: 100%;
	height: 560px;
	left: 0;
	top: 0;
	z-index: 1;
}
#column2 .image::after {
	position: absolute;
	display: block;
	content: "";
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	background: #07221d;
	opacity: 0.4;
}

#column2 .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

#column2 .box {
	position: relative;
	padding: 130px 45px 50px;
	color: #fff;
}
#column2 h2 {
	font-size: 3.8rem;
	font-weight: 600;
	line-height: 1.6;
}
#column2 p {
	margin: 70px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.8;
}

#column2 .flow {
	position: relative;
	padding: 0 45px;
}
#column2 .flow a {
	position: absolute;
	display: block;
	width: calc((100% - 90px) / 3);
	padding-top: 26%;
	left: 0;
	top: 0;
	font-size: 0;
	background: rgba(0,0,0,0);
}
#column2 .flow a:nth-of-type(1) {
	left: 45px;
}
#column2 .flow a:nth-of-type(2) {
	left: 50%;
	transform: translateX(-50%);
}
#column2 .flow a:nth-of-type(3) {
	left: calc(100% - 45px);
	transform: translateX(-100%);
}



#column2 nav {
	box-sizing: border-box;
	position: absolute;
	width: 100%;
	height: 150px;
	left: 0;
	bottom: 0;
	padding: 0 0 55px;
}
#column2 nav a {
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	text-decoration: none;
}
#column2 nav a span {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 146px;
	height: 52px;
	font-size: 1.7rem;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	border: 2px solid #fff;
	transition: all 300ms ease-out;
}
#column2 nav a:hover span {
	background: rgba(255,255,255,0.1);
}



#company {
	padding: 120px 0;
	background: #fff;
}
#company .inner {
	position: relative;
	box-sizing: border-box;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 30px;
	z-index: 10;
}

#company h2 {
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.8;
	text-align: center;
}
#company .inner > .image {
	margin: 50px 0 0;
}
#company .text {
	margin: 50px 0 0;
	text-align: center;
}
#company .text h3 {
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.3;
}
#company .text p {
	margin: 15px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.8;
}

#company ul {
	margin: 60px 0 0;
}
#company li {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#company li + li {
	margin-top: 65px;
}

#company li .image {
	width: 55%;
}
#company li .box {
	box-sizing: border-box;
	width: 45%;
	padding: 0 0 0 32px;
}

#company li dt {
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.3;
}
#company li dd {
	margin: 15px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.8;
}
#company li p {
	margin: 55px 0 0;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.8;
}
#company li p a {
	color: #000;
	text-decoration: underline;
}
#company li p a:hover {
	text-decoration: none;
}
#company li nav {
	margin-top: 25px;
}


#company .next-stage {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	margin: 70px 0 0;
}
#company .next-stage .image {
	width: 58%;
}
#company .next-stage .box {
	box-sizing: border-box;
	width: 42%;
	padding: 0 20px 0 0;
}

#company .next-stage h3 {
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.3;
}
#company .next-stage dt {
	margin: 30px 0 0;
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.3;
}
#company .next-stage dd {
	margin: 25px 0 0;
	font-size: 1.8rem;
	/*
	font-weight: 600;
	*/
	line-height: 1.8;
}
#company .next-stage nav {
	margin-top: 30px;
}





.video-player-ui:before {
	content: "";
	visibility: hidden;
	background-image: url(../img/ui_pause.svg);
}
.video-player-ui:after {
	content: "";
	visibility: hidden;
	background-image: url(../img/ui_play.svg);
}


.video-player-ui {
	position: absolute;
	left: 15px;
	bottom: 15px;
	z-index: 100;
	opacity: 0.9;
}
.video-player-ui button {
	display: block;
	width: 50px;
	height: 50px;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
}
.video-player-ui button canvas {
	position: absolute;
	left: 0;
	top: 0;
	transform-origin: left top;
	transform: scale(0.5);
	z-index: 10;
}
.video-player-ui button span {
	position: absolute;
	width: 24px;
	height: 24px;
	left: 50%;
	top: 50%;
	z-index: 1;
	margin: -12px 0 0 -12px;
	background-position: 50% 50%;
	background-repeat: no-repeat;
}






@media screen and (max-width:1199px) {
	
	#about .entry dt {
		font-size: 2.4rem;
	}
	#about .entry dd {
		font-size: 1.6rem;
	}
	
	#about .links dt {
		font-size: 2.4rem;
	}
	#about .links dd {
		font-size: 1.6rem;
	}
	
	#column1 .box {
		left: 0;
	}
	#column1 h2 {
		font-size: 3.2rem;
	}
	#column1 p {
		font-size: 1.6rem;
	}
	
	#tech li a {
		min-height: 300px;
	}
	#tech dt {
		font-size: 2.4rem;
	}
	#tech dd {
		margin-top: 15px;
	}
	#tech .image img {
		height: 230px;
	}
	
	#column2 h2 {
		font-size: 3.2rem;
	}
	#column2 p {
		font-size: 1.6rem;
	}
	
	
	#company {
		padding: 80px 0;
	}
	#company h2 {
		font-size: 3.2rem;
	}
	
	
	
	#company li dt {
		font-size: 2.4rem;
	}
	#company li dd {
		font-size: 1.6rem;
	}
	#company li p {
		margin-top: 20px;
		font-size: 1.6rem;
	}
	
	


	#company .next-stage h3 {
		font-size: 3.2rem;
		font-weight: 600;
		line-height: 1.3;
	}
	#company .next-stage dt {
		font-size: 2.2rem;
	}
	#company .next-stage dd {
		margin: 20px 0 0;
		font-size: 1.6rem;
	}

}


@media screen and (max-width:1023px) {
	#kv h1 {
		font-size: 3.2rem;
	}
	
	#intro,
	#intro .inner {
		height: 480px;
	}
	#intro h2 {
		font-size: 3.2rem;
	}
	#intro p {
		font-size: 1.6rem;
	}
	
	#about {
		padding: 50px 0 100px;
	}
	#about .entry .image {
		width: calc(50% - 15px);
	}
	#about .entry dl {
		position: relative;
		width: calc(50% - 15px);
	}
	#about .entry dt {
		font-size: 2.4rem;
	}
	#about .entry dd {
		font-size: 1.6rem;
	}
	#about .entry:nth-child(2) dt br {
		display: none;
	}
	
	#about .links {
		margin-top: 80px;
	}
	#about .links dl {
		padding: 30px;
	}
	#about .links dt {
		font-size: 2.4rem;
	}
	#about .links dd {
		font-size: 1.6rem;
	}
	#about .links nav {
		margin: 15px 30px 30px;
	}

	#column1,
	#column1 .inner {
		height: 450px;
	}
	#column1 .box {
		left: 0;
		padding: 30px;
	}
	#column1 h2 {
		font-size: 3.2rem;
	}
	#column1 p {
		font-size: 1.6rem;
	}
	
	
	#tech {
		padding: 40px 0 80px;
	}
	#tech li a {
		padding: 25px;
		min-height: 280px;
	}
	
	#tech dt {
		font-size: 2.2rem;
	}
	#tech dd {
		margin-top: 10px;
		font-size: 1.6rem;
	}
	#tech li nav {
		left: 25px;
		bottom: 25px;
	}

	#tech .image {
		height: 194px;
		right: 15px;
		top: auto;
		bottom: 10px;
	}
	#tech .image img {
		width: 180px;
		height: auto;
	}
	
	#tech li .link-button {
		left: 25px;
		bottom: 25px;
	}

	#column2 .box {
		min-height: 420px;
	}
	#column2 h2 {
		font-size: 3.2rem;
	}
	#column2 p {
		margin-top: 40px;
		font-size: 1.6rem;
	}


	#company {
		padding: 80px 0;
	}
	#company h2 {
		font-size: 2.8rem;
	}
	
	#company ul {
		width: 500px;
		margin: 50px auto 0;
	}
	#company li {
		display: flex;
		flex-direction: column;
	}
	#company li + li {
		margin-top: 50px;
	}

	#company li .image {
		width: 100%;
	}
	#company li .box {
		width: 100%;
		padding: 0;
	}
	
	#company li dl {
		margin-top: 30px;
	}
	#company li dt {
		font-size: 2.4rem;
	}
	#company li dd {
		font-size: 1.6rem;
	}
	#company li p {
		margin-top: 20px;
		font-size: 1.6rem;
	}
	
	

	#company .next-stage {
		flex-direction: column;
		margin: 70px 0 0;
	}
	#company .next-stage .image {
		width: 100%;
	}
	#company .next-stage .box {
		width: 100%;
		padding: 30px 0 0;
	}

	#company .next-stage h3 {
		font-size: 3.2rem;
		font-weight: 600;
		line-height: 1.3;
	}
	#company .next-stage dt {
		font-size: 2.2rem;
	}
	#company .next-stage dd {
		margin: 20px 0 0;
		font-size: 1.6rem;
	}




}






































































