@charset "UTF-8";

/*-------------------
base.css
-------------------*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
	margin: 0; padding: 0; border: 0; outline: 0; font-weight: normal;}
img { margin: 0; padding: 0; border: 0; line-height:0; font-size:0; vertical-align:top;}
html { width:100%; height: 100%;}
ul, li { list-style: none;}
p, th, td, dd { font-style:normal; font-weight:0; word-break: normal;}
dd { word-break: break-all;}
a { margin: 0; padding: 0; border: 0;}
table { border-collapse: collapse; border-spacing: 0;}

a{
	-webkit-transition: color .3s linear;
	transition: color .3s linear;
	text-decoration: none;
	color: #222222;
	}
	a:visited{
		color: #222222;
	}
	a:hover{
		opacity: 0.9;
	}

body{
	background-color: #ffffff;
	font-family: 'TTHoves-Medium', 'Noto Sans CJK JP-Medium', 'Noto Sans Japanese', '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'メイリオ', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', HiraKakuPro-W3, Osaka, verdana, arial, sans-serif;
	/*font-family: 'TTHoves-Medium', 'Noto Sans JP', 'Noto Sans CJK JP-Medium', 'Noto Sans Japanese', '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'メイリオ', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', HiraKakuPro-W3, Osaka, verdana, arial, sans-serif;*/
	/*font-family: 'Noto Sans JP', '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'メイリオ', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', HiraKakuPro-W3, Osaka, verdana, arial, sans-serif;*/
	font-size: calc(112.5% + 0.25vw);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	font-weight: 500;
}

body::after {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #fff;  /* 背景カラー */
	z-index: 9999;  /* 一番手前に */
	pointer-events: none;  /* 他の要素にアクセス可能にするためにポインターイベントは無効に */
	opacity: 0;  /* 初期値 : 透過状態 */
	-webkit-transition: opacity .5s ease;  /* アニメーション時間は 0.5秒 */
	transition: opacity .5s ease;
	}
	body.fadeOut::after {
		opacity: 1;
	}

@font-face {
	font-family: 'Noto Sans CJK JP-Medium';
	src:url('../font/NotoSansCJKjp-Medium.eot');
	src:url('../font/NotoSansCJKjp-Medium.eot?#iefix') format('embedded-opentype'),
		url('../font/NotoSansCJKjp-Medium.woff2') format('woff2'),
		url('../font/NotoSansCJKjp-Medium.woff') format('woff');
	font-weight: normal;
	font-style: normal;
} 
@font-face {
	font-family: 'Noto Sans CJK JP-Bold';
	src:url('../font/NotoSansCJKjp-Bold.eot');
	src:url('../font/NotoSansCJKjp-Bold.eot?#iefix') format('embedded-opentype'),
		url('../font/NotoSansCJKjp-Bold.woff2') format('woff2'),
		url('../font/NotoSansCJKjp-Bold.woff') format('woff');
	font-weight: normal;
	font-style: normal;
} 

@font-face {
	font-family: 'TTHoves-DemiBold';
	src: url('../font/3A112A_0_0.eot');
	src: url('../font/3A112A_0_0.eot?#iefix') format('embedded-opentype'),
		 url('../font/3A112A_0_0.woff2') format('woff2'),
		 url('../font/3A112A_0_0.woff') format('woff');
	font-weight: normal;
	font-style: normal;
}
@font-face {
	font-family: 'TTHoves-Medium';
	src: url('../font/3A112A_1_0.eot');
	src: url('../font/3A112A_1_0.eot?#iefix') format('embedded-opentype'),
		 url('../font/3A112A_1_0.woff2') format('woff2'),
		 url('../font/3A112A_1_0.woff') format('woff');
	font-weight: normal;
	font-style: normal;
}

/*.en{ font-family: 'TT Hoves', sans-serif; }*/

.bold{
	/*font-weight: 700;*/
	font-family: 'TTHoves-DemiBold', 'Noto Sans CJK JP-Bold', 'Noto Sans Japanese', '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'メイリオ', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', HiraKakuPro-W3, Osaka, verdana, arial, sans-serif;
}


@media screen and (min-width : 960px){

	/*layout style*/
	.pc{ display: block; }
	.sp{ display: none; }

	.inner{
		width: 100%;
		margin: 0 auto;
	}

	h1{
		position: fixed;
		width: 15vw;
		max-width: 230px;
		min-width: 180px;
		top: 5vw;
		/*left: 5vw;*/
		left: calc((100vw - 1440px) / 2 + 7rem);	}
	h1 a{
		display: block;
		font-size: 0;
	}
	h1 a div.frame{
		width: 52%;
		height: 7.6vw;
		max-height: 123px;
		min-height: 96px;
		margin: 0 9% 0 0;
		display: inline-block;
		vertical-align: middle;
		position: relative;
		overflow: hidden;
		}
		h1 a div.frame::before,
		h1 a div.frame::after{
			content: '';
			display: block;
			width: 9%;
			height: 12%;
			background-color: #ffffff;
			position: absolute;
			z-index: 1;
		}
		h1 a div.frame::before{ top: 0; left: 0; }
		h1 a div.frame::after{ bottom: 0; right: 0; }

	h1 a div.frame img{
		width: 58%;
		position: absolute;
		top: 0; left: 0; right: 0; bottom: 0;
		margin: auto;
	}

	h1 a div.frame span{
		display: inline-block;
		vertical-align: top;
		background-color: #222222;
		position: absolute;
	}
	h1 a div.frame span.top,
	h1 a div.frame span.bottom{
		width: 92%;
		height: 4%;
		max-height: 4px;
		min-height: 3px;
	}
	h1 a div.frame span.left,
	h1 a div.frame span.right{
		width: 5%;
		max-width: 4px;
		min-width: 3px;
		height: 88%;
	}
	h1 a div.frame span.top{
		top: 0; right: 0;
	}
	h1 a div.frame span.bottom{
		bottom: 0; left: 0;
	}
	h1 a div.frame span.left{
		left: 0; top: 9%;
	}
	h1 a div.frame span.right{
		right: 0; bottom: 9%;
	}


	h1 a div.text{
		width: 39%;
		display: inline-block;
		vertical-align: middle;
	}

	#wrap {
		/*width: 60vw;*/
		width: 56vw;
		max-width: 790px;
		height: 100vh;
		padding: 5vw 0;
		box-sizing: border-box;
		position: absolute;
		top: 0;
		/*right: 5vw;*/
		right: calc((100vw - 1280px) / 2 + 2rem);
		/*z-index: -1;*/
	}


	/* -------------------------------------------------------------------------------------------
	*
	* ヘッダー
	*
	* ----------------------------------------------------------------------------------------- */

	header{
		position: fixed;
		/*top: 11vw;*/
		top: calc((100vw - 1440px) / 15 + 17.5rem);
		/*left: 5vw;*/
		left: calc((100vw - 1440px) / 2 + 7rem);
	}

	header nav ul{
	}
	header nav ul.link{
		/*margin: 6rem 0 2.8rem 0;*/
		margin: 0 0 2.8rem 0;
	}
	header nav ul.type{
		margin: 0 0 2.8rem 0;
	}
	header nav ul li{
		font-size: 1.3rem;
		letter-spacing: 0.04rem;
		}
		header nav ul.effort li{
			font-size: 0.9375rem;
		}

	header nav ul.link li:nth-of-type(n+3),
	header nav ul.type li:nth-of-type(n+2),
	header nav ul.effort li:nth-of-type(n+2){
		margin: 0.7rem 0 0 0;
	}

	header nav ul li.selected,
	header nav ul li:hover,
	header nav ul li a:hover{
		color: #aaaaaa;
		-webkit-transition: color .1s linear;
		transition: color .1s linear;
	}
	header nav ul li:hover{
		cursor: pointer;
	}

	/* -------------------------------------------------------------------------------------------
	*
	* フッター
	*
	* ----------------------------------------------------------------------------------------- */

	footer{
		text-align: right;
		margin: 8vw 0 0 0;
		padding: 0 0 5vw 0;
		position: relative;
	}

	footer p.back{
		position: absolute;
		left: 3%; bottom: 5vw;
		font-size: 1.1rem;
	}
	footer p.back a{
		position: relative;
		display: block;
		line-height: 1;
		}
		footer p.back a::after {
			content: "";
			position: absolute;
			top: 0; bottom: 0; left: -1.2rem;
			margin: auto;
			vertical-align: middle;
			width: 0.5rem;
			height: 0.5rem;
			border-top: 2px solid #000000;
			border-left: 2px solid #000000;
			-webkit-transform: rotate(-45deg);
			transform: rotate(-45deg);
			-webkit-transition: all 0.3s ease;
			transition: all 0.3s ease;
		}
		body.js_isNotWin footer p.back a::after {
			top: -0.15rem;
		}
		body.js_isNotWin.js_isFirefox footer p.back a::after {
			top: -0.25rem;
		}

	footer p.back a:hover{
		color: #aaaaaa;
		-webkit-transition: color .1s linear;
		transition: color .1s linear;
		}
		footer p.back a:hover::after {
			-webkit-transition: .1s linear;
			transition: .1s linear;
			border-top: 2px solid #aaaaaa;
			border-left: 2px solid #aaaaaa;
		}

	footer p.copy{
		font-size: 1.1rem;
		margin: 0 0 0.5rem 0;
	}
	footer p.copyright{
		font-size: 0.8rem;
		letter-spacing: 0.03rem;
	}

}@media screen and (max-width : 959px){

	/*layout style*/
	.pc{ display: none; }
	.sp{ display: block; }

	.inner{
		width: 100%;
		margin: 0 auto;
	}

	h1{
		width: 29vw;
		margin: 7.25vw auto 7.25vw 7.25vw;
	}

	#wrap {
		width: 100%;
	}

	#modal-overlay {
		z-index: 2 ;
		display: none ;
		top: 0 ;
		left: 0 ;
		width: 100% ;
		height: 100% ;
		background-color: rgba(34,34,34,0.3) ;
		position: fixed;
	}

	div.mobileMenu{
		cursor: pointer;
		position: fixed;
		right: 7.25vw;
		top: 11.5vw;
		z-index: 100;
	}

	div.mobileMenu .menu-trigger,
	div.mobileMenu .menu-trigger span {
		display: inline-block;
		transition: all .4s;
		box-sizing: border-box;
	}
	div.mobileMenu .menu-trigger {
		position: relative;
		width: 10.5vw;
		height: 3.8vw;
	}
	div.mobileMenu .menu-trigger span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 2px;
		background-color: #000000;
	}
	div.mobileMenu .menu-trigger span:nth-of-type(1) {
		top: 0;
	}
	div.mobileMenu .menu-trigger span:nth-of-type(2) {
		left: auto;
		right: 0;
		bottom: 0;
	}

	div.mobileMenu.active .menu-trigger span:nth-of-type(1) {
		-webkit-transform: translateY(1.3vw) rotate(-30deg);
		transform: translateY(1.3vw) rotate(-30deg);
	}
	div.mobileMenu.active .menu-trigger span:nth-of-type(2) {
		-webkit-transform: translateY(-1.3vw) rotate(30deg);
		transform: translateY(-1.3vw) rotate(30deg);
		width: 100%;
	}



	/* -------------------------------------------------------------------------------------------
	*
	* ヘッダー
	*
	* ----------------------------------------------------------------------------------------- */
	header{
		position: fixed;
		top: 0; left: 100vw;
		z-index: 101;
		width: 100%;
		height: 100vh;
		background-color: #f6f6f6;
		-webkit-transition: all 0.2s ease;
		transition: all 0.2s ease;
		text-align: center;
		}
		header.active{
			left: 0;
		}


	/* nav */
	header nav{
		background-color: #f6f6f6;
		margin: 20vw 0 0 0;
		display: inline-block;
		vertical-align: top;
		width: 66vw;
	}
	header nav ul{
		}
		header nav ul.link{
			margin: 0 0 12vw 0;
		}
		header nav ul.type{
			margin: 0 0 10vw 0;
		}
		header nav ul.effort{
		}

	header nav ul li{
		font-size: 5vw;
		letter-spacing: 0.02vw;
		text-align: left;
		}
		header nav ul.effort li{
			font-size: 3.6vw;
		}

	header nav ul.link li:nth-of-type(n+2),
	header nav ul.type li:nth-of-type(n+2),
	header nav ul.effort li:nth-of-type(n+2){
		margin: 4vw 0 0 0;
	}


	header nav ul li a{
		text-decoration: none;
		text-align: left;
		display: inline-block;
	}

	header div.close{
		width: 9.36vw;
		height: 3vw;
		display: inline-block;
		vertical-align: middle;
		position: absolute;
		top: 13vw;
		right: 7.25vw;
	}

	header div.close span {
		display: inline-block;
		transition: all .4s;
		box-sizing: border-box;
		position: absolute;
		left: 0;
		width: 100%;
		height: 0.5vw;
		background-color: #000000;
	}
	header div.close span:nth-of-type(1) {
		top: 0;
		-webkit-transform: translateY(1.2vw) rotate(-25deg);
		transform: translateY(1.2vw) rotate(-25deg);
	}
	header div.close span:nth-of-type(2) {
		left: auto;
		right: 0;
		bottom: 0;
		-webkit-transform: translateY(-1.3vw) rotate(25deg);
		transform: translateY(-1.3vw) rotate(25deg);
		width: 100%;
	}


	/* -------------------------------------------------------------------------------------------
	*
	* フッター
	*
	* ----------------------------------------------------------------------------------------- */

	footer{
		width: 74vw;
		text-align: right;
		padding: 20vw 0 12vw 0;
		margin: 0 auto;
		position: relative;
		text-align: center;
	}

	footer p.back{
		display: inline-block;
		font-size: 4.2vw;
		margin: 0 0 20vw 0;
	}
	footer p.back a{
		position: relative;
		display: block;
		line-height: 1;
		}
		footer p.back a::after {
			content: "";
			position: absolute;
			top: 0; bottom: 0; left: -3vw;
			margin: auto;
			vertical-align: middle;
			width: 1.5vw;
			height: 1.5vw;
			border-top: 2px solid #000000;
			border-left: 2px solid #000000;
			-webkit-transform: rotate(-45deg);
			transform: rotate(-45deg);
			-webkit-transition: all 0.3s ease;
			transition: all 0.3s ease;
		}

	footer p.copy{
		font-size: 4.2vw;
		margin: 0 0 0.5vw 0;
		text-align: right;
	}
	footer p.copyright{
		font-size: 3.2vw;
		letter-spacing: 0.03vw;
		text-align: right;
	}

}

/* 個別調整部分 */
/*
@media screen and (min-width: 2000px){
	h1{
		left: calc((100vw - 1960px) / 5 + 17.5vw);
	}

	header{
		left: calc((100vw - 1960px) / 5 + 17.5vw);
	}

	#wrap {
		right: calc((100vw - 1960px) / 5 + 17.5vw);
	}

}
*/
@media screen and (min-width: 960px) and (max-width: 1280px){
	h1{	left: 6vw }

	header{
		left: 6vw;
		top: calc((100vw - 1440px) / 15 + 16.5rem);
	}

	#wrap {	right: 6vw; }
}

@media screen and (min-width: 560px) and (max-width: 959px){

	/* -------------------------------------------------------------------------------------------
	*
	* ヘッダー
	*
	* ----------------------------------------------------------------------------------------- */

	header nav{
		margin: 14vh 0 0 0;
	}


}