@charset "UTF-8";
/* CSS Document */
html{
	height: 100%;
}
body {
	height: 100%;
	margin:  0;
	padding: 0;
	background-color: #333;
	color:#333;
	font-family: sans-serif, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", Osaka;
}
a{
	text-decoration: none;
	color: #333;
}
a[onclick] {
	cursor: pointer;
}
a:hover {
	color: #0FE !important;
}
a:hover > * {
	filter:alpha(opacity=70);
	opacity:0.7;
}

/* blink animation */
header .blink /* <div class='wrap blink'></div> に対して適用 */
{
	opacity: 1 !important;
	animation-name: anime; /* @keyframes anime でアニメーションを定義 */
	animation-delay: 0ms; /* 開始時間 */
	animation-duration: 100ms; /* 実行時間 */
	animation-timing-function: liner; /* イージングしない */
	animation-fill-mode: forwards; /* 実行後に状態を維持 */
}
header .blink:before /* <div class='wrap blink'></div> に四角の形状を挿入して適用 */
{
	content: '';
	position: absolute;
	display: block;
	top: 0; left: 0;
	width: 0;
	height: 0;
	background-color: #FFF;

	animation-name: rect; /* @keyframes rect でアニメーションを定義 */
	animation-delay: 100ms; /* 開始時間 */
	animation-duration: 20ms; /* 実行時間は5秒 */
	animation-timing-function: liner; /* イージングしない */
	animation-fill-mode: forwards; /* 実行後に状態を維持 */
}
@keyframes anime /* ここでフラッシュするアニメーションのキーフレームを定義 */
{
	/* キーフレームの定義 */
	/*
	 * background-colorは背景色の指定
	 * 色の定義は、#RGBとなる3桁の16進数（16階調）で表す（#RRGGBBで各色256階調表現も可能）
	 * 16進数の数字は、0123456789ABCDEFの16種
	 * #000：黒
	 * #333：サイトの背景色（濃いグレー）
	 * #FFF：白
	 */

	0% {background-color: #333}
	40% {background-color: #333}
	50% {background-color: #DDD}
	60% {background-color: #333}
	100% {background-color: #333}
}
@keyframes rect /* ここで四角がズームするアニメーションのキーフレームを定義 */
{
	/* キーフレームの定義 */
	/*
	 * top: 四角枠の上辺の位置（親要素の高さに対する%で指定）
	 * left: 四角枠の左辺の位置（親要素の幅に対する%で指定）
	 * width: 四角枠の幅（親要素の幅に対する%で指定）
	 * height: 四角枠の高さ（親要素の高さに対する%で指定）
	 */
	0% {top: 50%; left: 50%; width: 0; height: 0;}
	100% {top: 0; left: 0; width: 100%; height: 100%;}
}

header{
	width:960px;
	margin: 0 auto;
	overflow: hidden;
}
header>.wrap.down {
	height: 0;
	overflow: hidden;
}
header>.wrap.opacity {
	position: relative;
	opacity: 0;
}
header .main_visual{
	clear: both;
	overflow: hidden;
	position: relative;
	background-repeat: no-repeat;
	background-size: cover;
	opacity: 0;
}
header video.main_visual{
	width: 100%;
	opacity: 1;
}
header .main_visual img{
	width: 100%;
}
header .main_visual:after {
	content: "";
	display: block;
	position: relative;
	margin-top: 41.66%;
	width: 100%;
	height: 0;
}
#index header .main_visual > .bg_caption span {
	position: absolute;
    bottom: 0;
    left: 50%;
    width: 50%;
    font-size: .8em;
	opacity: 0;
}
#index header .main_visual > .bg_caption span a {
	display: block;
    width: 100%;
}
#index header .main_visual > .box{
	width: 220px;
	height: 220px;
	background-color: rgba(0,0,0, 0.5);
	float: right;
	margin: 10px 10px 0 0;
}
header .main_visual > .box{
	display:none;
	width: 120px;
	height: 120px;
	background-color: rgba(0,0,0, 0.5);
	float: right;
	margin: 10px 10px 0 0;
}
#index header .main_visual > .box > .logo{
	margin: 0;
	padding: 10px 10px 0 0;
	text-align: right;
}
header .main_visual > .box > .logo{
	margin: 0;
	padding: 10px 10px 0 0;
	text-align: right;
}
#index header .main_visual > .box > .logo > img{
	width:112px;
}
header .main_visual > .box > .logo > img{
	width: 86px;
}
header .main_visual > .box > .keywords{
	color: #fff;
	font-size: 10px;
	text-align: right;
	padding: 15px 10px 0 0;
}
header > .area_title{
	height: 150px;
	position: relative;
	color: #999;
}
header > .area_title > .menu_movies{
	position: absolute;
	top:10px;
	left:10px;
	font-size: 12px;
	z-index: 100;
}
header > .area_title > .menu_movies > a{
	color: #999;
}
header > .area_title > .menu_english{
	position: absolute;
	top:10px;
	right:10px;
	font-size: 12px;
	z-index: 100;
}
header > .area_title > .menu_english > a{
	color: #999;
}
header > .area_title > h1{
	font-size: 24px;
	margin:0;
	position: absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	text-align: center;
	line-height: 100px;
}
header > .area_title > .news{
	text-align: center;
	width: 100%;
	position: absolute;
	top: 80px;
	font-size: 0.9em;
}
header > .area_title > .nav{
	display: none;
	position: absolute ;
	bottom: 5px;
	width: 100%;
}
header > .area_title > .nav > ul{
	list-style: none;
	margin: 0;
	padding: 0;
}
header > .area_title > .nav > .nav_left{
	float: left;
}
header > .area_title > .nav > .nav_right{
	float: right;
}
header > .area_title > .nav > ul > li{
	display: inline;
}
header > .area_title > .nav > .nav_left > li{
	margin: 0 7px 0 0;
	font-size: 12.8px;
}
header > .area_title > .nav > .nav_right > li{
	margin: 0 0 0 7px;
	font-size: 12.8px;
}
header > .area_title > .nav > ul > li a{
	color: #c6c6c6;
}

article{
	background-color: #fff;
	width: 960px;
	margin: 0 auto;
}
#project article section a,
#book article section a {
	color: #0FE;
}
#project article section a:hover,
#book article section a:hover {
	color: rgba(0, 255, 204, 0.5) !important;
}
article:after {
	content: '';
	display: block;
	clear: both;
	width: 100%;
	height: 0;
}
#project article,
#book article {
	padding-bottom: 100px;
}
section{
	/*width: 800px;*/
	height: 100%;
	margin: 0 auto;
	padding: 0 0 40px 0;
}

#project section{
	width: 800px;
	margin: 0 auto;
}
#project section:after {
	content: '';
	display: block;
	clear: both;
	width: 100%;
	height: 0;
}
#list_station{

}
#index section > h2 {
	display: flex;
	color: #333;
	font-size: 15px;
	font-weight: bold;
	padding: 120px 0 0 360px;
	margin: 0 0 30px 0;
	width: 208px;
	text-align: center;
	align-items: center;
}
#index section > h2.noline {
	display: block;
	margin-bottom: 0;
}
#index section > h2.noline + h2 {
    padding-top: 0;
}
#index section > h3{
	color: #333;
	font-size: 13px;
	font-weight: bold;
	/*padding: 80px 0 0 360px;*/
	padding-left: 360px;
	margin: 0 0 30px 0;
	width: 208px;
	text-align: center;
}
#index section:first-child > h2 {
	padding-top: 40px;
}
#index section > h2:not(.noline):before{
	content: "";
	flex-grow: 1;
	margin-right: .4em;
	height: 2px;
	background: #333;
	display: block;
}
#index section > h2:not(.noline):after{
	content: "";
	flex-grow: 1;
	margin-left: .4em;
	height: 2px;
	background: #333;
	display: block;
}
#index .book_border{
	width: 208px;
	height: 1px;
	background: #999;
	margin: 30px 0 30px 360px;
}


section > .wrap{
	/*position: relative;*/
	/*width: 960px;*/
	height:117px;
	margin: 0 auto 30px;
	clear: both;
	overflow: hidden;
}
section > .wrap:last-child{
	margin-bottom: 0;
}
span.new_anchor {
	display: block;
	width: 100%;
	height: 80px;
	margin-top: -80px;
}
section > .wrap > .image{
	position: relative;
	width: 208px;
	height:117px;
	float: left;
	text-align: center;
	/*background-color: #444;*/
}
section > .wrap > .image img{
	/*width: 100%;*/
	width:208px;
	height: 117px;
	object-fit: cover;
}
section > .wrap > .image:hover > img{
	opacity: 0.7;
}

section > .wrap > .image .cell{
	display: table-cell;
	padding: 0 8px;
	width: 208px;
	height: 117px;
	line-height: 1.5em;
	font-size: 11px;
	text-align: left;
	vertical-align: middle;
	background-color: #999;
	color: #FFF;
	box-sizing: border-box;
}

section > .wrap > .image span:not(.space) {
	display: block;
	position: absolute;
	top: 50px; left: 0; right: 0;
	margin: auto;
	width: 80px;
	height: 12px;
	background-color: #444;
	font-size: 12px;
	line-height: 12px;
	color: #FFF;
}
section > .wrap > .book_image{
	width: 82px;
}
section > .wrap > .book_image img{
	width: 82px;
	max-height: 117px;
}
section > .wrap > .category{
	float: left;
	margin: 50px 0 0 0;
	padding: 0 0 0;
	/*width: 80px;*/
	width:360px;
	height: 12px;
	background-color: #444;
	color:#FFF;
	text-align: center;
	font-size: 12px;
	line-height: 12px;
	position: relative;
	box-sizing: border-box;
}
section > .wrap > .category:empty {
	background-color: #FFF;
}
section > .wrap > .category > a {
	color: #fff;
}
section > .wrap > .category > .new,
section > .wrap > .category > .updated{
	/*color: #12dee0;*/
	color: dodgerblue;
	position: absolute;
	right: 5px;
}
section > .wrap > .category_book{
	/*width: 138px;*/
	width: 430px;
	background-color: #aaaaaa;
}
section > .wrap > .box_right{
	float: left;
	/*width: 672px;*/
	width: 392px;
}
section > .wrap > .box_right_book{
	/*width: 740px;*/
	width: 448px;
}
section > .wrap > .box_right > .name{
	background-color: #444;
	margin: 50px 0 0 0;
	padding: 0 0 0 20px;
	color: #fff;
	height: 12px;
	font-size: 12px;
	line-height: 12px;
}
section > .wrap > .box_right > .name > a{
	color: #fff;
}
section > .wrap > .box_right > .name > a.short_movie {
	display: inline-block;
	margin-left: 2em;
}
section > .wrap > .box_right > .name > .movie {
    position: relative;
    display: inline-block;
    margin-left: 2em;
    cursor: pointer;
}
section > .wrap > .box_right > .name > .movie:hover {
    color: #0FE !important;
}
section > .wrap > .box_right > .name > .movie img {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0;
}
@media (max-width: 768px) {
	section > .wrap > .box_right > .name > .movie {
		display: block;
		margin: 1em 0 0;
		font-weight: bold;
		color: #333;
	}
}
section > .wrap > .box_right > .name > .uc{
	margin-left: 10px;
	color: #CCC;
}
section > .wrap > .box_right > .name > .description{
	font-size: 12px;
	display: inline;
	/*background-color: #999;*/
}
section > .wrap > .box_right > .name > .description > a{
	color: #fff;
}
section > .wrap > .box_right > .note{
	font-size: 11px;
	margin: 5px 0 0 20px;
	color: #999;
}


/*--project--*/
.project_title{
	width: 800px;
	margin: 30px auto;
}
.project_title > .category{
	font-size: 14px;
}
.project_title > h1{
	margin: 0;
	font-size: 20px;
}
h1 > span,
h2 > span,
h3 > span {
	margin-left: 30px;
}
.project_title.has_award {
	position: relative;
}
.project_title.has_award::before,
.project_title.has_award::after {
	content: "";
	display: block;
}
.project_title.has_award::after {
	clear: both;
}
.project_title.has_award > *:not(.award) {
	float: left;
	width: calc(100% - 260px)
}
.award {
	/*position: absolute;
	top: 0;
	right: 0;*/
	float: right;
    display: flex;
    flex-wrap: wrap;
    width: 240px;
    margin: 0;
    font-size: 11px;
    font-weight: bold;
}
.award dt {
    width: 4.5em;
}
.award dd {
    width: calc(100% - 4.5em);
    margin: 0;
}
.award dd span {
    display: inline-block;
}
section > h2{
	color: #999;
	font-size: 15px;
	font-weight: normal;
	padding: 40px auto ;
	margin: 0 auto 10px;
	width: 800px;
}
.project_title p{
	font-size: 12px;
	line-height: 1.8em;
}
.project_title p span{
	color: #999;
}
.genealogy {
	margin: 50px 0 30px;
	font-family: sans-serif, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", Osaka;
	font-size: 14px;
}
.genealogy .list_title {
	font-weight: bold;
}
.genealogy .list_title:not(:first-of-type) {
	margin-top: 1.5em;
}
.genealogy ul {
	list-style: none;
	margin: 0;
	padding-left: 1.5em;
}
.genealogy ul li {
	position: relative;
	font-weight: bold;
	-webkit-font-feature-settings: "palt";
	-moz-font-feature-settings: "palt";
	font-feature-settings: "palt";
}
.genealogy ul li:not(.current)::before {
	content: "\2192";
	position: absolute;
	left: -1.5em;
}
.genealogy ul li a {
	color: #0FE;
}
.genealogy ul li.current a {
	pointer-events: none;
	color: #777777 !important;
	cursor: unset;
}
.genealogy ul li.current a:hover {
	opacity: 1;
}
.genealogy ul li span {
	margin-left: 1.5em;
}
article .wrap_nav{
	clear: both;
	overflow: hidden;
	padding: 10px 0;
}
article .button_top{
	font-size: 14px;
	text-align: left;
	box-sizing: border-box;
	margin: 0 0 0 10px;
}
article .button_top > a{
	color: #999;
}
article .menu_english{
	float:right;
	color: #999;
	font-size: 14px;
	text-align: right;
	box-sizing: border-box;
	margin: 0 10px 0 0;
}
article .menu_english > a{
	color: #999;
	text-decoration: none;
}
article .button_title{
	float:right;
	color: #999;
	font-size: 14px;
	margin: 0 30px 0 0;
}
article .button_title > a{
	color: #999;
}
.document{
	clear: both;
	overflow: hidden;
	font-size: 12px;
}
.document > h2{
	font-size: 18px;
	color: #333;
	font-weight: bold;
}
.document > .image{
	width: 240px;
	float: right;
}
.document > .image > img{
	display: block;
	width: 100%;
	/*margin-bottom: 5px;*/
}
.document > .image > img.pop{
/*	border: 2px solid #0FE;
*/	box-sizing: border-box;
}
.document > .image > img.s_only{
	cursor: default;
}
.document > .image > a > img{
	margin-bottom: 5px;
	width: 100%;
}

.document > .image > img:not(.s_only) {
	cursor: pointer;
}
.document > .image > div.link {
	margin: 10px 0 20px;
}

.document .caption{
	font-size: 12px;
	color: #999;
	margin: 0 0 10px 0;
}

.document > .image > div.movie { display: flex; justify-content: space-between; align-items: center; margin-top: 30px; }
.document > .image > div.movie .caption { width: calc(100% - 120px); color: #0FE; cursor: pointer; }
.document > .image > div.movie .caption:hover { color: rgba(0, 255, 204, 0.5) !important; }
.document > .image > div.movie > a { display: block; width: 100px; }
.document > .image > div.movie img { display: block; width: 100px; }

.document > .image > .download{
	font-size: 14px;
	margin: 10px 0;
	text-align: center;
}
.document > .image > .download > a{

}

.document > .right_wrap{
	width: 240px;
	float: right;
}
.document > .right_wrap img{
	width: 100%;
	margin-bottom: 5px;
}
.document > .movie{
	width: 240px;
	float: right;
	cursor: pointer;
}
.document > .movie img{
	width: 100%;
	height: auto;
}

.document > .text{
	width: 540px;
	float: left;
	font-size: 13px;
	line-height: 1.8em;
}
.document > .text > p{
	margin: 0 0 20px 0;
}

article .movie ul {
	list-style: none;
	padding: 0;
	text-align: right;
}
article .movie ul li {
	display: inline-block;
	margin: 0 0 20px 5px;
	height:85px;
	vertical-align: middle;
}
article .movie ul li.label:before {
	content: '';
	display: inline-block;
	height: 100%;
	width: 0;
	vertical-align: middle;
}
article .movie ul li img {
	width: auto;
	height: 100%;
	cursor: pointer;
}
/*--movie--*/
.popup_movie{
	display: none;
    background: none repeat scroll 0 0 #333;
	height: 100%;
	left: 0;
	position: fixed;
	text-align: center;
	top: 0;
	width: 100%;
	z-index: 1000;
}
.popup_movie > div{
	width: 854px;
	height: 480px;
	position: absolute;
	top:0;
	bottom: 0;
	margin: auto;
	left: 0;
	right: 0;
}
.popup_movie > div > iframe{
	width: 100%;
	height:100%;
}

/*--画像のPopUp--*/
.popup {
    display: none;
    background: none repeat scroll 0 0 #333;
	height: 100%;
	left: 0;
	position: fixed;
	text-align: center;
	top: 0;
	width: 100%;
	z-index: 1000;
}
.popup > .img{
	display: table-cell;
	vertical-align: middle;
	width: 100%;
}
.popup > .img > .photo_close{
	position: fixed;
	top: 5px;
	right: 5px;
}
.popup > .img > .arrow_prev{
	position: fixed;
	top: 45%;
	right: 90%;
	float: left;
	display: table-cell;
	vertical-align: middle;
	z-index: 2000;
}
.popup > .img > .arrow_prev img{
	width: 30px;
}
.popup > .img > .arrow_next{
	position: fixed;
	top: 45%;
	left: 90%;
	float: right;
	display: table-cell;
	vertical-align: middle;
	z-index: 2000;
}
.popup > .img > .arrow_next img{
	width: 30px;
}
.popup > .img > .popimg{
	max-width: 90%;
	max-height: 80%;
	position: absolute ;
	top:0;
	bottom:0;
	left:0;
	right:0;
	margin: auto;
}
.popup > .img > .popimg.over {
	cursor: pointer;
}
.popup > .img > .popcaption{
	display: none;
	position: absolute;
	right: 5%; bottom: 10px; left: 5%;
	margin: 10px auto 0;
	max-width: 90%;
	color: #999;
	font-size: 10px;
	line-height: 1.4em;
	text-align: right;
	box-sizing: border-box;
}
.popup > .close,
.popup_movie > .close {
	position: absolute;
	display: block;
	top: 10px; right: 10px; bottom: auto; left: auto;
	margin: 0;
	width: 30px;
	height: 30px;
	background: url(../img/parts/close.png);
	background-size: contain;
	cursor: pointer;
}
.popup > .close:hover,
.popup_movie > .close:hover {
	opacity: 0.5;
}

/*--book--*/
#book header{
	clear: both;
	overflow: hidden;
	padding: 10px 0;
	background-color: #fff;
}
#book header > .button_top{
	font-size: 12px;
	text-align: left;
	margin: 0 0 0 10px;
}
#book header > .button_top > a{
	color: #999;
    cursor: pointer;
}

#book header > .button_title{
	float: right;
	margin: 0 30px 0 0;
	font-size: 12px;
	color: #999;
}
#book header > .button_title a{
	color: #999;
}
#book header > .menu_english{
	float: right;
	margin: 0 10px 0 0;
	font-size: 12px;
	color: #999;
}
#book header > .menu_english a{
	color: #999;
}
#book article{
	min-height: 100%;
	margin: 0 auto;
}
#book article section{
	clear: both;
	overflow: hidden;
	margin: 0 auto;
	padding: 0;
	position: relative;
}
#book article .info{
	width: 100%;
	height:auto;
	background-color: #ddd;
	margin: 0;
}
#book article .info > .contents{
	width: 800px;
	margin: 20px auto;
	clear: both;
	overflow: hidden;
}
#book article .detail{
	width: 800px;
	height:auto;
	font-size: 14px;
}
/*#book article section .menu_english{
	position: absolute;
	top:10px;
	right:0px;
	font-size: 12px;
	color: #999;
}*/
#book article .image{
	float: right;
	max-width: 240px;
	text-align: right;
	overflow: hidden;
}
#book article .image img{
	width: 100%;
	max-width: 240px;
}
#book article section .image > .left{
	float: left;
	width: 48%;
}
#book article section .image > .right{
	float: right;
	width: 48%;
}
#book article section .image .caption{
	font-size: 12px;
	color: #888;
	text-align: left;
}
#book article .book_title{
	float: left;
	width: 550px;
}
#book article .book_document{
	float: left;
	width: 550px;
}
#book article .book_title .category{

}
#book article .book_title h1,
#book article .book_detail h1 {
	font-weight: bold;
	font-size: 22px;
	margin: 15px 0;
}
#book article .book_detail h1 span {
	margin-left: 30px;
}
#book article .book_document h2,
#book article .book_detail h2 {
	font-size: 17px;
	margin: 40px 0 0 0;
}
#book article .book_document .text,
#book article .book_detail .text {
	font-size: 14px;
	margin: 20px 0 0 0;
}
#book article p span {
	color: #999;
}
#book .nav{
	margin: 20px 0 0 0;
}
#book .nav > dd{
	display: inline;
	margin: 0 5px 0 0;
}
#book .nav > dt{
	display: inline;
	margin: 0 30px 0 0;
}
#book article .detail > h2{
	font-size: 18px;
	color: #333;
	font-weight: bold;
	margin: 30px 0 10px 0;
	padding: 0;
}

/*--index以外のリスト--*/
#project #project_list{
	width: 100%;
}
#project section > .wrap > .box_right > .name{
	background-color: #fff;
	color: #444;
}
#project section > .wrap > .box_right > .name > a{
	color: #444;
}

/*--footer--*/
footer{
	width: 960px;
	margin: 0 auto;
	padding:50px 0;
	background-color: #444;
}
footer > .wrap_list{
	overflow: hidden;
	clear: both;
}
footer > .wrap_list > .footer_content{
	float: left;
	width: 320px;
	text-align: center;
}
footer > .wrap_list > .footer_content > a{
	color: #999;
}

/* toTop */
div.toTop {
	display: none;
	position: fixed;
	right: calc(50% - 460px);
	bottom: 20px;
	width: 40px;
	height: 40px;
	background-image: url(../img/parts/toTop.png);
	background-size: contain;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	cursor: pointer;
}
