/* ===========================================
Common Class
=============================================*/

html {
	width: 100%;
 	height: 100%;
	font-family: "Lato", "Helvetica Neue", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "游ゴシック Medium", YuGothic, YuGothicM, メイリオ, Meiryo, sans-serif;
	font-size:62.5%; /* 1em=10px */
	letter-spacing: 0.03em;
	-webkit-font-smoothing: antialiased;
}

body {
	width: 100%;
	height: 100%;
	background: #FFF;
	line-height: 1;
 	color: #000;
	 -webkit-text-size-adjust: 100%;
	position:relative;
 	z-index: 0;
	overflow-y: scroll;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}

a {
	transition: opacity .25s linear;
}

a:link,
a:visited {
	color: #000;
	text-decoration: none;
}

a:active,
a:hover {
	color: #000;
	opacity: .5;
}

/* Clearfix */
.cf:before,
.cf:after {
	content:"";
	display:block;
	overflow:hidden;
}

.cf:after {
	clear:both;
}

.cf {
	zoom:1;
}

/* Hide-txt */
.hide-txt {
	text-indent: 100%;
	white-space: nowrap;
	overflow: hidden;
}

.js-scrollFadeIn,
.js-scrollUp,
.js-scrollSlide,
.js-scrollZoomIn {
	opacity: 0;
}

#wrapper {
	width: 100%;
	height: auto;
	overflow: hidden;
}

#header {
	width: 100%;
	z-index: 9999;
	position: fixed;
}


#header nav {
	margin: 0 auto;
	display: flex;
}
#header nav .main {
	font-weight: 700;
	position: relative;
	display: flex;
}

#header nav .main::after {
	content: "";
	width: 1px;
	height: 100%;
	background: #CCC;
	position: absolute;
	right: 0;
	top: 0;
	display: block;
}

#header nav .main .current {
	position: relative;		
}

#header nav .main .current::after {
	content: "";
	width: 100%;
	height: 2px;
	background: #ffeb00;
	position: absolute;
	left: 0;
	bottom: 0;
	display: block;
}

#header nav .sub {
	display: flex;
}

#header nav .sub li {
	position: relative;
}

#header nav .sub li::after {
	content: "";
	background: #000;
	position: absolute;
	right: 0;
	top: 50%;
	display: block;
	border-radius: 50%;
	transform: translateY(-50%);
}

#header nav .sub li:last-child {
	padding-right: 0;
	margin-right: 0;
}

#header nav .sub li:last-child::after {
	content: none;
}

#header nav .sub li a {
	color: #999;		
}

#header nav .sub li.current a {
	color: #000;		
}

#header .btn-mail {
	font-weight: 700;
	position: absolute;
}

#header .btn-mail a {
	background-color: #000;
	color: #FFF;
	text-align: center;
	display: block;
	position: relative;
	box-sizing: border-box;
	transition: background-color .25s linear, color .25s linear;
}

#header .btn-mail a:hover,
#header .btn-mail a:active {
	background-color: #ffeb00;
	color: #000;
	opacity: 1;
}

#header .btn-mail a .svg {
	height: auto;
	position: absolute;
	display: inline-block;
	transition: fill .25s linear;
}

#header .btn-mail a:hover .svg path,
#header .btn-mail a:active .svg path {
	fill: #000;
}

#main {
	position: relative;
	z-index: 1;
}

#key {
	width: 100%;
	height: 0;
	position: relative;
	z-index: 2;
}

#key .logo {
	position: absolute;
	z-index: 3;
}

#key .logo img {
	width: 100%;
	height: auto;
}

#key .catch {
	position: absolute;
	z-index: 3;
}

#key .lead { 
	position: absolute;
	z-index: 2;
}

#key .slide,
#key .slide .item {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
}

#key .slide .item {
	pointer-events: none;
}

#key .slide .item.current {
	pointer-events: auto;
}

#key .slide .item .image {
	width: 0;
	height: 100%;
	top: 0;
	position: absolute;
	right: 0;
	overflow: hidden;
	z-index: 1;
	transform-origin: 0 100%;
	transition: width .75s cubic-bezier(0.850, 0.000, 0.150, 1.000);
}

#key .slide .item .image img {
	width: auto;		
	height: 100%;
	position: absolute;
	top: 0;
	right: 0;
	display: block;
	transform-origin: 0 100%;
	transition: transform .75s cubic-bezier(0.850, 0.000, 0.150, 1.000);
}

#key .slide .item h4 {
	width: 0;
	font-weight: 800;
	white-space: nowrap;
	position: absolute;
	overflow: hidden;
	z-index: 2;
	transition: width .75s cubic-bezier(0.850, 0.000, 0.150, 1.000);
}

#key .slide .item h4 .underline { 
	display: inline-block;
	position: relative;
}

#key .slide .item h4 .underline::after {
	content: "";
	width: 100%;
	height: 2px;
	background: #000;
	position: absolute;
	left: 0;
	bottom: 0;
	display: block;
}

#key .dot {
	width: 100%;
	display: flex;
	position: absolute;
	z-index: 2;
}

#key .dot li a {
	border: 1px solid #000;
	display: block;
	box-sizing: border-box;
	border-radius: 50%;
}

#key .dot li.current a {
	background: #000;
	pointer-events: none;
}

#key .brn-down {
	position: absolute;
	z-index: 5;
}

#key .brn-down a {
	background-color: #000;
	display: block;
	position: relative;
	border-radius: 50%;
	transition: background-color .25s linear, color .25s linear;
}

#key .brn-down a:hover,
#key .brn-down a:active {
	background-color: #ffeb00;
	color: #000;
	opacity: 1;
}

#key .brn-down a .svg {
	height: auto;
	margin-top: -8px;
	position: absolute;
	left: 50%;
	top: 50%;
	display: block;
	transform: translate(-50%,0);
	transition: transform .25s ease, fill .25s linear;
}

#key .brn-down a:hover .svg path,
#key .brn-down a:active .svg path {
	fill: #000;
}

#obi {
	background: #EEE;
	position: relative;
	z-index: 1;
}

#obi .marquee {
	white-space: nowrap;
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	transform: translate(-50%,-50%);
}

#obi .marquee p {
	display: block;
	padding-right: 0.5em;
	font-weight: 700;
	color: #fff;
	text-align: center;
	white-space: nowrap;
 }

@keyframes marquee-pc {
	0% {
		transform: translate(-40%, -50%);
	}
	100% {
		transform: translate(-60%, -50%)
	}
}

@keyframes marquee-sp {
	0% {
		transform: translate(-40%, -50%);
	}
	100% {
		transform: translate(-60%, -50%)
	}
}

.contents {
	background-repeat: no-repeat;
	background-position: center top;
}

.content {
	position: relative;
}

.content .title {
	font-weight: 800;
	position: relative;
}

.content .title::after {
	content: "";
	background: #000;
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
}

#service {
	position: relative;
	z-index: 4;
}

#service .list .subtitle {
	position: relative;
}

#service .list a {
  display: inline-block;
}

#service .list .subtitle::before {
	content: "";
	background: #ffeb00;
	display: block;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(28deg) ;
}

#service .list .subtitle .no {
	white-space: nowrap;
	position: absolute;
	left: 0;
	top: 0;
}

#service .list .subtitle .small {
	white-space: nowrap;
	position: absolute;
	opacity: .5;
}

#service .list .subtitle h4 {
	font-weight: 800;
	white-space: nowrap;
	position: absolute;
	bottom: 0;
}

#service .list li .image {
	position: relative;
}

#service .list li .image img {
	width: 100%;
	height: auto;
	display: block;
}

#about {
	position: relative;
	z-index: 3;
}

#about::before {
	content: "";
	background: #ffeb00;
	display: block;
	position: absolute;
	z-index: 1;
}

#about .title {
	z-index: 2;
}

#about .detail {
	position: relative;
	z-index: 3;
}

#about .detail li {
	border-bottom: 1px solid #CCC;
	box-sizing: border-box;
}

#about .detail li h4 {
	font-weight: 800;
}

#contact::before {
	content: "";
	background: #EEE;
	display: block;
	position: absolute;
	top: 0;
	z-index: 1;
}

#contact .title,
#contact .lead,
#contact .detail {
	position: relative;
	z-index: 2;
}

#contact .lead {
	font-weight: 800;
}

#contact .detail li {
	border-bottom: 1px solid #BEBEBE;
	box-sizing: border-box;
}

#contact .detail li:first-child {
	border-top: 1px solid #BEBEBE;
}

#contact .detail li h4 {
	font-weight: 800;
}

#contact .map  {
	background: #FFF;
	z-index: 3;
	overflow: hidden;
}

#contact .map #gmap {
	width: 100%;
	height: 100%;
}

#footer {
	position: relative;
	z-index: 9998;
	-webkit-transform: translate3d( 0,0,0 );
	-ms-transform: translate3d( 0,0,0 );
	transform: translate3d( 0,0,0 );
}

#footer .image {
	height: 0;
	background-repeat: no-repeat;
	background-position: 50% 0;
	background-size: auto 120%;
}

#footer .image img {
	width: 100%;		
	height: auto;
}

#footer .copyright {
	background: #ffeb00;
	text-align: center;
}



/* ===========================================
PC
=============================================*/

@media screen and (min-width:768px) {
	
	.sp {
		display: none!important;
	}
	
	body {
		font-size: 1.4rem;
	}
	
	#wrapper {
		min-width: 1216px;
	}
	
	#header {
		min-width: 1216px;
		height: 80px;
	}

	#header nav {
		height: 32px;
		margin: 24px auto 24px 7.5%;
	}

	#header nav .main {
		font-size: 1.3rem;
		padding-top: 10px;
	}

	#header nav .main li {
		margin-right: 63px;
	}

	#header nav .main li:last-child {
		margin-right: 48px;
	}

	#header nav .main li.current {
		padding-bottom: 8px;
	}
	
	#header nav .sub {
		font-size: 1.2rem;
		padding: 11px 0;
		margin-left: 47px;
	}

	#header nav .sub li {
		padding-right: 10px;
		margin-right: 7px;
	}

	#header nav .sub li::after {
		width: 3px;
		height: 3px;
	}

	#header .btn-mail {
		font-size: 1.3rem;
		right: 16px;
		top: 16px;
	}

	#header .btn-mail a {
		width: 160px;
		height: 48px;
		line-height: 47px;
		padding-left: 22px;
		border-radius: 4px;
	}

	#header .btn-mail a .svg {
		width: 15px;
		height: 11px;
		margin-right: 7px;
		left: 53px;
		top: 50%;
		transform: translateY(-50%);
	}

	#key {
		width: 100%;
		height: 0;
		padding-top: 49.0625%;
	}

	#key .logo {
		width: 22.578%;
		left: 7.5%;
		top: 26.59%;
	}

	#key .catch {
		font-size: 2.1875vw;
		left: 7.5%;
		top: 72.929936%;
	}

	#key .lead {
		font-size: 2.1875vw;
		left: 7.5%;
		top: 78.980892%;
	}

	#key .slide .item h4 {
		font-size: 2.1875vw;
		left: 17.25%;
		top: 78.980892%;
	}

	#key .slide .item.current h4 {
		width: 42.5%;
	}

	#key .slide .item h4 .underline {
		padding-bottom: 6px;
	}

	#key .slide .item .image {
		transform: skew(-28deg);
	}

	#key .slide .item.current .image {
		width: 73.59375%;
	}

	#key .slide .item .image img {
		transform: skew(28deg) translateX(10%);
	}

	#key .slide .item.current .image img {
		transform: skew(28deg) translateX(0);
	}

	#key .dot {
		justify-content: center;
		left: 0;
		bottom: 3.8216561%;
	}

	#key .dot li {
		margin: 0 8px;
	}

	#key .dot li a {
		width: 8px;
		height: 8px;
	}

	#key .brn-down {
		right: 56px;
		bottom: -24px;
	}

	#key .brn-down a {
		width: 48px;
		height: 48px;
	}

	#key .brn-down a .svg {
		width: 14px;
	}

	#key .brn-down a:hover .svg,
	#key .brn-down a:active .svg {
		transform: translate(-50%,4px);
	}

	#obi {
		height: 240px;
	}

	#obi .marquee {
		margin-top: -3px;
		animation: marquee-pc 10s linear infinite;
	}

	#obi .marquee p {
		font-size: 14.4rem;
	}

	.contents {
		background-image: url(/assets/images/contents_bg_pc.png);
		background-size: 2068px auto;
		padding-bottom: 130px;
	}

	.content {
		width: 1024px;
		margin: 0 auto;
	}

	.content .title {
		font-size: 2.2rem;
		padding-bottom: 23px;
	}

	.content .title::after {
		width: 12px;
		height: 2px;
	}

	#service {
		padding-top: 94px;
	}

	#service .list {
		display: flex;
		justify-content: space-between;
		margin-top: 64px;
	}

	#service .list li {
		width: 320px;
	}

	#service .list .subtitle {
		height: 48px;
	}

	#service .list .subtitle::before {
		width: 5px;
		height: 54px;
		left: 25px;
		border-radius: 2px;
	}

	#service .list .subtitle .no {
		font-size: 1.2rem;
	}

	#service .list .subtitle .small {
		font-size: 1.1rem;
		left: 49px;
		bottom: 24px;
	}

	#service .list .subtitle h4 {
		font-size: 1.8rem;
		left: 49px;
	}

	#service .list li .image {
		width: 316px;
		height: 250px;
		margin: 30px auto 0 auto;
		position: relative;
	}

	#service .list li .image img {
		position: absolute;
		left: 0;
		top: 50%;
		transform: translateY(-50%);
	}

	#about {
		margin-top: 96px;
	}

	#about::before {
		width: 1216px;
		width: calc( 576px + 50vw );
		height: 482px;
		left: -64px;
		top: -203px;
	}

	#about .title {
		float: left;
		margin-top: 48px;
	}

	#about .detail {
		width: 864px;
		background: #FFF;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		float: right;
		padding: 48px;
		border-radius: 4px;
		box-shadow: 0 0 12px 0 rgba(0,0,0,0.1);
		box-sizing: border-box;
	}

	#about .detail li {
		width: 368px;
		padding: 24px;
	}

	#about .detail li:nth-child(-n+2) {
		border-top: 1px solid #CCC;
	}

	#about .detail li h4 {
		font-size: 1.2rem;
	}

	#about .detail li p {
		font-size: 1.5rem;
		line-height: 1.33;
		margin-top: 3px;
	}

	.jp #about .detail li:nth-child(7) p {
		margin-top: 10px;
	}

	.en #about .detail li:nth-child(7) p {
		margin-top: 23px;
	}

	#about .detail li p .small {
		font-size: 1.2rem;
	}

	#contact {
		width: 1024px;
		height: 793px;
		margin: 128px auto 0 auto;
	}

	#contact::before {
		width: calc( 87px + 50vw );
		height: 669px;
		right: calc( 50% - 87px );
	}

	.jp #contact .title {
		padding-top: 120px;
	}

	.en #contact .title {
		padding-top: 144px;
	}

	#contact .lead {
		font-size: 1.5rem;
		line-height: 1.466;
		margin-top: 28px;
	}

	.jp #contact .detail {
		margin-top: 43px;
	}

	.en #contact .detail {
		margin-top: 64px;
	}

	#contact .detail li {
		width: 368px;
		padding: 23px 24px;
	}

	#contact .detail li h4 {
		font-size: 1.2rem;
	}

	#contact .detail li p {
		font-size: 1.5rem;
		line-height: 1.33;
		margin-top: 3px;
	}

	#contact .detail li p .small {
		font-size: 1.2rem;
	}

	#contact .map  {
		width: 714px;
		height: 600px;
		position: absolute;
		bottom: 0;
		right: -96px;
		border-radius: 4px;
		box-shadow: 0 0 12px 0 rgba(0,0,0,0.1);
	}

	#footer .image {
		background-image: url(/assets/images/footer_image_pc.jpg);
		padding-top: 34.375%;
	}

	#footer .copyright {
		height: 64px;
		line-height: 62px;
		font-size: 1.2rem;
	}

}

@media screen and (max-width:1216px) {
	#key .catch {
		font-size: 2.66rem;
	}

	#key .lead {
		font-size: 2.66rem;
	}

	#key .slide .item h4 {
		font-size: 2.66rem;
	}
	#about::before {
		width: 1216px;
	}
	#contact::before {
		width: 727px;
	}
}

/* ===========================================
SP
=============================================*/

@media screen and (max-width:767px) {
	
	.pc {
		display: none!important;
	}
	
	body {
		font-size: 1.25rem;
	}
	
	#header {
		height: 16vw;
		background: #FFF;
	}

	#header nav {
		height: 6.4vw;
		padding: 4.8vw 6.4vw 4.8vw 7.46vw;
		box-sizing: border-box;
	}

	#header nav .main {
		height: 2.4vw;
		font-size: 2.666vw;
		padding: 2vw 0;
	}

	#header nav .main li {
		height: 2.13vw;
		margin-right: 7.46vw;
	}

	#header nav .main li:last-child {
		margin-right: 6.93vw;
	}

	#header nav .main li.current {
		padding-bottom: 1.06vw;
	}
	
	#header nav .sub {
		height: 2.4vw;
		font-size: 2.666vw;
		padding: 2vw 0;
		margin: 0 0 0 auto;
	}

	#header nav .sub li {
		padding-right: 2.53vw;
		margin-right: 2.4vw;
	}

	#header nav .sub li::after {
		width: 0.4vw;
		height: 0.4vw;
	}

	#header .btn-mail {
		font-size: 2.933vw;
		right: 0;
		top: 24.533333vw;
	}

	#header .btn-mail a {
		width: 9.6vw;
		height: 27.2vw;
		line-height: 9.6vw;
		padding-top: 5vw;
		border-radius: 0.53vw 0 0 0.53vw;
		writing-mode: vertical-rl;
	}

	#header .btn-mail a .svg {
		width: 3.46vw;
		height: 2.6vw;
		left: 50%;
		top: 8.5vw;
		transform: translateX(-50%);
	}

	#main {
		padding-top:  16vw;
	}

	#key {
		width: 100%;
		height: 0;
		padding-top: 94.133333%;
	}

	#key .logo {
		width: 39.2%;
		left: 2.1333333%;
		top: 16.430595%;
	}

	#key .catch {
		font-size: 4.8vw;
		line-height: 1.22;
		left: 5.33%;
		top: 56.7988676%;
	}

	#key .lead {
		font-size: 4.8vw;
		left: 5.33%;
		top: 69.9%;
	}

	#key .slide .item h4 {
		font-size: 4.8vw;
		left: 5.33%;
		top: 76.0%;
	}

	#key .slide .item.current h4 {
		width: 44.666667%;
	}

	#key .slide .item h4 .underline {
		padding-bottom: 8px;
	}

	#key .slide .item .image {
		transform: skew(-28deg);
	}

	#key .slide .item.current .image {
		width: 83.2%;
	}

	#key .slide .item .image img {
		transform: skew(28deg) translateX(10%);
	}

	#key .slide .item.current .image img {
		transform: skew(28deg) translateX(0);
	}

	#key .dot {
		left: 5.33%;
		bottom: 5.6657224%;
	}

	#key .dot li {
		margin-right: 4vw;
	}

	#key .dot li a {
		width: 1.666667vw;
		height: 1.666667vw;
	}

	#key .brn-down {
		right: 5.33vw;
		bottom: -4.8vw;
	}

	#key .brn-down a {
		width: 9.6vw;
		height: 9.6vw;
	}

	#key .brn-down a .svg {
		width: 2.933vw;
	}

	#key .brn-down a:hover .svg,
	#key .brn-down a:active .svg {
		transform: translate(-50%,0.66vw);
	}

	#obi {
		height: 32vw;
		height: 120px;
	}
	
	#obi .marquee {
		margin-top: -0.4vw;
		margin-top: -1.5px;
		animation: marquee-sp 10s linear infinite;
	}

	#obi .marquee p {
		font-size: 19.2vw;
		font-size: 7.2rem;
	}

	.contents {
		background-size: 100% auto;
		padding-bottom: 21.33vw;
	}

	.jp .contents {
		background-image: url(/assets/images/contents_bg_sp_jp.png);
	}

	.en .contents {
		background-image: url(/assets/images/contents_bg_sp_en.png);
	}

	.content {
		width: 89.333vw;
		margin: 0 auto;
	}

	.content .title {
		font-size: 5.333vw;
		padding-bottom: 3.2vw;
	}

	.content .title::after {
		width: 2.133vw;
		height: 0.266vw;
	}

	#service {
		padding-top: 12.266vw;
	}

	#service .list {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		margin-top: 2.133vw;
	}

	#service .list li {
		width: 46.41791%;
		margin-top: 4.133vw;
	}

	#service .list .subtitle {
		height: 9.066vw;
	}

	#service .list .subtitle::before {
		width: 0.666vw;
		height: 10.4vw;
		left: 5.2vw;
		border-radius: 0.266vw;
	}

	#service .list .subtitle .no {
		font-size: 2.4vw;
	}

	#service .list .subtitle .small {
		font-size: 2.133vw;
		left: 8.8vw;
		bottom: 4.933vw;
	}

	#service .list .subtitle h4 {
		font-size: 3.733vw;
		left: 8.8vw;
	}

	#service .list li .image {
		width: 100%;
		margin: 3.2vw auto 0 auto;
		position: relative;
	}

	#about {
		padding-top: 9.066vw;
	}

	#about::before {
		width: 100vw;
		height: 145.333vw;
		left: -5.333vw;
		top: -20.8vw;
	}

	#about .detail {
		width: 100%;
		background: #FFF;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		padding: 5.333vw;
		margin-top: 6.4vw;
		border-radius: 0.533vw;
		box-shadow: 0 0 1.6vw 0 rgba(0,0,0,0.1);
		box-sizing: border-box;
	}

	#about .detail li {
		width: 100%;
		padding: 4vw 4vw 3.25vw 4vw;
	}

	#about .detail li:first-child {
		border-top: 1px solid #CCC;
	}

	#about .detail li h4 {
		font-size: 2.4vw;
	}

	#about .detail li p {
		font-size: 3.2vw;
		line-height: 1.33;
		margin-top: 1.066vw;
	}

	#about .detail li p .small {
		font-size: 2.666vw;
	}

	#contact {
		margin-top: 21.333vw;
	}

	#contact::before {
		width: 84vw;
		height: 103.333vw;
		left: -5.333vw;
	}

	#contact .title {
		padding-top: 10.533vw;
	}

	#contact .lead {
		font-size: 3.2vw;
		line-height: 1.333;
		margin-top: 4.533vw;
	}

	#contact .detail {
		margin-top: 4.8vw;
	}

	#contact .detail li {
		width: 82.089552%;
		padding: 4vw 4vw 3.25vw 4vw;
	}

	#contact .detail li h4 {
		font-size: 2.4vw;
	}

	#contact .detail li p {
		font-size: 3.2vw;
		line-height: 1.33;
		margin-top: 1.066vw;
	}

	#contact .detail li p .small {
		font-size: 2.666vw;
	}

	#contact .map  {
		width: 89.333vw;
		height: 80vw;
		margin-top: 8.533vw;
		position: relative;
		border-radius: 0.533vw;
		box-shadow: 0 0 1.6vw 0 rgba(0,0,0,0.1);
	}

	#footer .image {
		background-image: url(/assets/images/footer_image_sp.jpg);
		padding-top: 58.666%;
	}

	#footer .copyright {
		height: 9.6vw;
		line-height: 9.33vw;
		font-size: 2.4vw;
	}

}