@charset "utf-8";

/* -------------------------------------------------
	font
------------------------------------------------- */

/* google fonts JosefinSans */

/*@font-face {
	font-family: 'JosefinSans';
	font-weight: 400;
	font-style: normal;
	src: url('../font/Josefin_Sans/static/JosefinSans-Regular.ttf') format('truetype');
}*/

/* google fonts Inter (100,200,300,500,600,700,800,900) */

@font-face {
	font-family: 'Inter';
	font-weight: 400;
	font-style: normal;
	src: url('../font/Inter/static/Inter-Regular.ttf') format('truetype');
}

/* -------------------------------------------------
	reset
------------------------------------------------- */

* {
	margin: 0;
	padding: 0;
	vertical-align: top;
	box-sizing: border-box;
}

html {
}

body {
	line-height: 1;
	-webkit-text-size-adjust: 100%;
	position: relative;
	font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}

p, h1, h2, h3, h4, th, td, li, dt, dd, figcaption, input, select, textarea {
	font-weight: normal;
}

img {
	border: none;
	max-width: 100%;
	height: auto;
}

iframe {
	border: none;
}

a {
	text-decoration: none;
	color: #000;
}
a:hover {
	
}

ul, ol {
	list-style-type: none;
}

main {
	display: block;
}

.slick-slider * {
	outline: none;
}

@media print, screen and (min-width:768px) {
	.hover-alpha {
		transition: opacity 0.2s ease-out;
	}
	.hover-alpha:hover {
		opacity: 0.6;
	}
}

@media screen and (max-width:767px) {
	
}

/* -------------------------------------------------
	box
------------------------------------------------- */

.box970 {
	width: 96%;
	max-width: 970px;
	margin: 0 auto;
	position: relative;
}

@media screen and (max-width:767px) {
	.box970 {
		width: auto;
	}
	.box-sp {
		width: calc(570 / 640 * 100%);
		margin: 0 auto;
	}
}

/* -------------------------------------------------
	h
------------------------------------------------- */

.h-left {
	height: 45px;
	position: relative;
	text-align: left;
}
.h-left img {
	margin-top: -16px;
	transform: rotate(90deg);
	transform-origin: left bottom;
	position: absolute;
	display: inline-block;
	position: absolute;
}
.h-left img[alt="contact"] {
	height: 49px;
}
.h-left img[alt="about"] {
	height: 63px;
}

@media screen and (max-width:767px) {
	.h-left {
		height: auto;
		margin-bottom: 6vw;
		text-align: center;
	}
	.h-left img {
		margin-top: 0;
		position: static;
		transform: rotate(0deg);
	}
	.h-left img[alt="contact"] {
		height: calc(49 * 0.1vw);
	}
	.h-left img[alt="about"] {
		height: calc(63 * 0.1vw);
	}
}

/* -------------------------------------------------
	.back
------------------------------------------------- */

.back {
	margin-top: 80px;
	text-align: center;
	font-size: 16px;
	letter-spacing: 0.06em;
}
.back.mt-large {
	margin-top: 120px;
}
.back span {
	padding-bottom: 0.2em;
	display: inline-block;
	cursor: pointer;
	border-bottom: solid 2px transparent;
	transition: border 0.2s ease-out;
}
.back span::after {
	width: 0.6em;
	height: 0.6em;
	margin-left: 0.5em;
	border-top: solid 1px #000;
	border-right: solid 1px #000;
	transform: rotate(45deg);
	content: "";
	display: inline-block;
}

@media print, screen and (min-width:768px) {
	.back span:hover {
		border-bottom: solid 2px #000;
	}
}

@media screen and (max-width:767px) {
	.back {
		margin-top: calc(100 / 640 * 100vw);
		font-size: calc(23 / 640 * 100vw);
	}
	.back.mt-large {
		margin-top: calc(140 / 640 * 100vw);
	}
}

/* -------------------------------------------------
	header
------------------------------------------------- */

@media print, screen and (min-width:768px) {
	header {
		height: 120px;
	}
	header .inner {
		width: 100%;
		height: 120px;
		position: fixed;
		left: 0;
		top: 0;
		z-index: 100;
		background: #fff;
	}
	header .logo img {
		width: 206px;
		display: block;
		position: absolute;
		left: 56px;
		top: 50%;
		transform: translateY(-50%);
	}
	
	header .gnav {
		display: inline-flex;
		align-items: center;
		position: absolute;
		right: 190px;
		top: 50%;
		transform: translateY(-50%);
	}
	header .gnav li img {
		vertical-align: bottom;
		display: block;
	}
	header .gnav li img[alt="about"] {
		height: 13.4px;
	}
	header .gnav li img[alt="contact"] {
		height: 10.4px;
	}
	header .gnav li + li {
		margin-left: 24px;
	}
	
	header .sns {
		width: 91px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		position: absolute;
		right: 63px;
		top: 50%;
		transform: translateY(-50%);
	}
	header .sns li.i img { width: 16px; }
	header .sns li.y img { width: 20px; }
	header .sns li.f img { width: 8px; }
}

@media screen and (max-width:767px) {
	header {
		height: calc(140 / 640 * 100vw);
	}
	header .inner {
		width: 100%;
		height: calc(140 / 640 * 100vw);
		position: fixed;
		left: 0;
		top: 0;
		z-index: 100;
		background: #fff;
		transition: background 0.2s ease-out;
	}
	header.on .inner {
		background: transparent;
	}
	
	header .logo {
		width: calc(230 / 640 * 100vw);
		position: absolute;
		left: calc(35 / 640 * 100vw);
		top: 50%;
		transform: translateY(-50%);
		z-index: 20;
		display: inline-block;
		background: url(../img/logo_01_white.svg) no-repeat 0 0 / 100% auto;
	}
	header .logo img {
		width: 100%;
		display: block;
		transition: opacity 0.2s ease-out;
	}
	header.on .logo img {
		opacity: 0;
	}
	
	#menu-btn {
		width: calc(40 / 640 * 100vw);
		height: calc(37 / 640 * 100vw);
		position: absolute;
		right: calc(42 / 640 * 100vw);
		top: 50%;
		transform: translateY(-50%);
		cursor: pointer;
		z-index: 20;
	}
	#menu-btn div {
		width: 100%;
		height: 2px;
		background: #000;
		position: absolute;
		left: 0;
		transition: all 0.2s ease-out;
	}
	#menu-btn div:nth-child(2) { top: 50%; }
	#menu-btn div:nth-child(3) { top: 100%; }
	
	header.on #menu-btn div:nth-child(1) { top: 50%; transform: rotate(45deg); background: #fff; }
	header.on #menu-btn div:nth-child(2) { opacity: 0; }
	header.on #menu-btn div:nth-child(3) { top: 50%; transform: rotate(-45deg); background: #fff; }
	
	header .menu-panel {
		width: 100%;
		height: 100vh;
		padding-top: calc(140 / 640 * 100vw);
		position: absolute;
		left: 0;
		top: 0;
		z-index: 10;
		background: #000;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
		display: none;
	}
	
	header .gnav li {
		margin-top: calc(120 / 640 * 100vw);
		margin-left: calc(100 / 640 * 100vw);
	}
	header .gnav li a {
		color: #fff;
	}
	header .gnav li img[alt="about"] {
		height: calc(29.3 / 640 * 100vw);
	}
	header .gnav li img[alt="contact"] {
		height: calc(22.8 / 640 * 100vw);
	}
	
	header .sns {
		margin-top: calc(130 / 640 * 100vw);
		margin-left: calc(100 / 640 * 100vw);
		display: flex;
		align-items: center;
	}
	header .sns li + li {
		margin-left: calc(88 / 640 * 100vw);
	}
	header .sns li.i img { width: calc(42 / 640 * 100vw); }
	header .sns li.y img { width: calc(53 / 640 * 100vw); }
	header .sns li.f img { width: calc(21 / 640 * 100vw); }
	
	header .copyright {
		margin-top: calc(130 / 640 * 100vw);
		color: #fff;
		text-align: center;
		font-size: calc(20 / 640 * 100vw);
		font-family: 'Inter';
		font-weight: 400;
	}
}

/* -------------------------------------------------
	footer
------------------------------------------------- */

footer .copyright {
	padding: 35px 0 60px;
	font-size: 14px;
	text-align: center;
	font-family: 'Inter';
	font-weight: 400;
}

@media screen and (max-width:767px) {
	footer .copyright {
		padding: calc(65 / 640 * 100vw) 0;
		font-size: calc(20 / 640 * 100vw);
	}
}

/* -------------------------------------------------
	responsive
------------------------------------------------- */

@media print, screen and (min-width:768px) {
	.pc-none {
		display: none !important;
	}
}

@media screen and (max-width:767px) {
	.sp-none {
		display: none !important;
	}
}

/* -------------------------------------------------
	animation
------------------------------------------------- */

.anim {
	opacity: 0;
	transition: all 2s cubic-bezier(.12,.92,.31,.95);
	transform: translateY(50%) scale(1.2);
}
.anim.to-bottom { transform: translateY(-50px); }
.anim.to-right { transform: translate(-50px,0); }
.anim.to-left { transform: translate(50px,0); }

.anim.delay01 { transition-delay: 0.1s; }
.anim.delay02 { transition-delay: 0.2s; }
.anim.delay03 { transition-delay: 0.3s; }
.anim.delay04 { transition-delay: 0.4s; }
.anim.delay05 { transition-delay: 0.5s; }
.anim.delay06 { transition-delay: 0.6s; }

@media screen and (max-width:767px) {
	.anim {
		transition-duration: 1.0s;
	}
}

.anim.on {
	opacity: 1;
	transform: translate(0,0);
}

/* -------------------------------------------------
	print
------------------------------------------------- */

@media print {
	body {
		width: 980px !important;
	}
}
