@charset "utf-8";

html[lang="ja"] {
	margin-top: 0 !important;
}
#wpadminbar {
	display: none;
}

/* -------------------------------------------------
	font
------------------------------------------------- */

@font-face {
	font-family: 'Noto Serif Japanese';
	font-style: normal;
	font-weight: 200;
	src: url('../font/NotoSerifCJKjp-hinted_subset_woff/NotoSerifCJKjp-Light_sub.woff') format('woff');
}
@font-face {
	font-family: 'Noto Serif Japanese';
	font-weight: 300;
	font-style: normal;
	src: url('../font/NotoSerifCJKjp-hinted_subset_woff/NotoSerifCJKjp-Regular_sub.woff') format('woff');
}
@font-face {
	font-family: 'Noto Serif Japanese';
	font-weight: 500;
	font-style: normal;
	src: url('../font/NotoSerifCJKjp-hinted_subset_woff/NotoSerifCJKjp-Medium_sub.woff') format('woff');
}
@font-face {
	font-family: 'Noto Serif Japanese';
	font-weight: 700;
	font-style: normal;
	src: url('../font/NotoSerifCJKjp-hinted_subset_woff/NotoSerifCJKjp-Bold_sub.woff') format('woff');
}
@font-face {
	font-family: 'Noto Serif Japanese';
	font-weight: 900;
	font-style: normal;
	src: url('../font/NotoSerifCJKjp-hinted_subset_woff/NotoSerifCJKjp-Black_sub.woff') format('woff');
}


@font-face {
	font-family: 'OpenSans-Bold';
	font-style: normal;
	src: url('../font/Open_Sans/OpenSans-Bold.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: 'Noto Serif Japanese', sans-serif;
	font-weight: 200;
	background: #000;
	color: #fff;
}

p, h1, h2, h3, h4, th, td, li, dt, dd, figcaption, input, select, textarea {
	font-weight: 200;
}
input, select, textarea {
	font-family: 'Noto Serif Japanese', sans-serif;
	font-weight: 200;
}

img {
	border: none;
	max-width: 100%;
	height: auto;
}

iframe {
	border: none;
}

a {
	text-decoration: none;
	color: #fff;
}
a:hover {
	
}

ul, ol {
	list-style-type: none;
}

main {
	display: block;
}

@media print, screen and (min-width:768px) {
	a[href^="tel:"] {
		cursor: default;
	}
	.hover-alpha {
		transition: 0.2s ease-out;
	}
	.hover-alpha:hover {
		opacity: 0.7;
	}
}

/* -------------------------------------------------
	box
------------------------------------------------- */

.box1366 {
	width: 100%;
	max-width: 1366px;
	margin: 0 auto;
	position: relative;
}
.box1209 {
	width: 96%;
	max-width: 1209px;
	margin: 0 auto;
	position: relative;
}
.box1006 {
	width: 92%;
	max-width: 1006px;
	margin: 0 auto;
	position: relative;
}

@media screen and (max-width:767px) {
	.box1366, .box1209, .box1006 {
		width: auto;
	}
	.box-sp {
		width: calc(607 / 690 * 100%);
		margin: 0 auto;
		position: relative;
	}
}

/* -------------------------------------------------
	h
------------------------------------------------- */

.h-style1 {
	font-size: 20px;
	text-align: center;
	font-weight: 200;
	letter-spacing: 0.1em;
}

@media screen and (max-width:767px) {
	.h-style1 {
		font-size: calc(27 / 690 * 100vw);
	}
}

/* -------------------------------------------------
	btn
------------------------------------------------- */

.btn-type1 {
	width: 287px;
	height: 46px;
	border: solid 1px #898989;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-size: 15px;
	letter-spacing: 0.1em;
	transition: all 0.2s ease-out;
}

@media print, screen and (min-width:768px) {
	.btn-type1:hover {
		background: #fff;
		border-color: #fff;
		color: #000;
	}
}

@media screen and (max-width:767px) {
	.btn-type1 {
		width: calc(379 / 690 * 100vw);
		height: calc(61 / 690 * 100vw);
		font-size: calc(20 / 690 * 100vw);
	}
}

/* -------------------------------------------------
	header
------------------------------------------------- */

header {
	height: 182px;
}
header .fix-header {
	width: 100%;
	height: 182px;
	background: #000;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 100;
}
header .fix-header .logo {
	width: 69px;
	display: block;
	position: absolute;
	left: 78px;
	top: 50%;
	transform: translateY(-50%);
}

#menu-btn {
	width: 67px;
	height: 35px;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
}
#menu-btn div {
	width: 100%;
	height: 1px;
	background: #fff;
	position: absolute;
	left: 0;
	cursor: pointer;
	transition: left 0.2s ease-out;
}
#menu-btn div:nth-child(2) { top: 33.33%; }
#menu-btn div:nth-child(3) { top: 66.66%; }
#menu-btn div:nth-child(4) { top: 99.99%; }

#menu-btn.on div:nth-child(2),
#menu-btn.on div:nth-child(4) {
	left: -16%;
}

#menu-panel {
	display: none;
	position: relative;
	z-index: 100;
}
#menu-panel .fix-panel {
	width: 100%;
	height: calc(100vh - 182px);
	position: fixed;
	z-index: 100;
	left: 50%;
	top: 182px;
	background: #000;
	transform: translateX(-50%);
	overflow: auto;
}
#menu-panel .inner {
	width: 600px;
	margin: 0 auto;
	padding-bottom: 50px;
}
#menu-panel .gnav li {
	padding-left: 80px;
	font-size: 24px;
	letter-spacing: 0.1em;
	position: relative;
}
#menu-panel .gnav li::before {
	content: "";
	display: block;
	width: 68px;
	height: 1px;
	background: #898989;
	position: absolute;
	left: 0;
	top: 50%;
}
#menu-panel .gnav li + li {
	margin-top: 0.8em;
}
#menu-panel .link1 {
	margin: 1.5em 0 0 80px;
	font-size: 24px;
	letter-spacing: 0.1em;
	line-height: 1.75;
}
#menu-panel .link2 {
	margin: 1.2em 0 0 80px;
	font-size: 24px;
	letter-spacing: 0.1em;
	line-height: 1.75;
}
#menu-panel .sns {
	margin: 38px 0 0 80px;
}
#menu-panel .sns li + li {
	margin-top: 20px;
}
#menu-panel .sns li a {
	font-size: 24px;
	letter-spacing: 0.1em;
}
#menu-panel .sns li a {
	min-height: 32px;
	padding: 2px 0 0 45px;
	display: inline-block;
	background: url(../img/ico_insta.svg) no-repeat 0 0 / 32px auto;
}

#menu-panel .gmap {
	width: 600px;
	height: 80px;
	margin-top: 50px;
	border: solid 1px #898989;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 20px;
	background: #000 url(../img/ico_pin.svg) no-repeat 93% center / 23px auto;
	color: #fff;
	letter-spacing: 0.1em;
	transition: all 0.2s ease-out;
}

@media all and (-ms-high-contrast:none){ /* ie11 */
	*::-ms-backdrop, #menu-panel .sns li a {
		background: url(../img/ico_insta.png) no-repeat 0 0 / 32px auto;
	}
	*::-ms-backdrop, #menu-panel .gmap {
		background: #000 url(../img/ico_pin.png) no-repeat 93% center / 23px auto;
	}
}

@media print, screen and (min-width:768px) {
	#menu-btn:hover div:nth-child(2),
	#menu-btn:hover div:nth-child(4) {
		left: -16%;
	}
	
	#menu-panel a:not(.gmap) {
		transition: opacity 0.2s ease-out;
	}
	#menu-panel a:not(.gmap):hover {
		opacity: 0.4;
	}
	
	#menu-panel .gmap:hover {
		color: #000;
		background-color: #999;
	}
}

@media screen and (max-width:767px) {
	header {
		height: calc(182 / 690 * 100vw);
	}
	header .fix-header {
		height: calc(182 / 690 * 100vw);
	}
	header .fix-header .logo {
		width: calc(69 / 690 * 100vw);
		left: calc(62 / 690 * 100vw);
		top: 50%;
	}

	#menu-btn {
		width: calc(67 / 690 * 100vw);
		height: calc(35 / 690 * 100vw);
	}

	#menu-panel .fix-panel {
		height: calc(100vh - 26.37vw);
		top: calc(182 / 690 * 100vw);
	}
	#menu-panel .inner {
		width: auto;
		padding-bottom: 10vw;
	}
	#menu-panel .gnav li {
		padding-left: calc(80 / 690 * 100vw);
		font-size: calc(24 / 690 * 100vw);
	}
	#menu-panel .gnav li::before {
		width: calc(68 / 690 * 100vw);
	}
	#menu-panel .gnav li + li {
		margin-top: 2em;
	}
	#menu-panel .link1 {
		margin: 1.8em 0 0 calc(80 / 690 * 100vw);
		font-size: calc(24 / 690 * 100vw);
		line-height: 1.75;
	}
	#menu-panel .link2 {
		margin: 1.2em 0 0 calc(80 / 690 * 100vw);
		font-size: calc(24 / 690 * 100vw);
		line-height: 1.75;
	}
	#menu-panel .sns {
		margin: 8vw 0 0 calc(80 / 690 * 100vw);
	}
	#menu-panel .sns li + li {
		margin-top: 4vw;
	}
	#menu-panel .sns li a {
		font-size: calc(24 / 690 * 100vw);
	}
	#menu-panel .sns li a {
		min-height: 4.7vw;
		padding: 0.4vw 0 0 calc(45 / 690 * 100vw);
		background: url(../img/ico_insta.svg) no-repeat 0 0 / 4.63vw auto;
	}

	#menu-panel .gmap {
		width: calc(600 / 690 * 100vw);
		height: calc(80 / 690 * 100vw);
		margin: calc(65 / 690 * 100vw) auto 0;
		font-size: calc(24 / 690 * 100vw);
		background-size: 3.33vw auto;
	}
}

/* -------------------------------------------------
	#main-visual
------------------------------------------------- */

#main-visual {
	position: relative;
}
#main-visual img {
	position: relative;
	z-index: 2;
}
#main-visual .texts {
	display: block;
	position: absolute;
	z-index: 4;
	left: calc(95 / 1366 * 100%);
	top: 64%;
}
#main-visual .texts .title {
	display: block;
	font-size: 18px;
	letter-spacing: 0.1em;
}
#main-visual .texts .lead {
	margin-top: 0.9em;
	display: block;
	font-size: 13px;
	letter-spacing: 0.1em;
	line-height: 2.15;
}

@media screen and (max-width:767px) {
	#main-visual .texts {
		left: calc(40 / 690 * 100%);
		top: 40%;
	}
	#main-visual .texts .title {
		font-size: calc(18 / 690 * 100vw);
	}
	#main-visual .texts .lead {
		margin-top: 0.8em;
		font-size: calc(13 / 690 * 100vw);
	}
}

/* -------------------------------------------------
	#page-path
------------------------------------------------- */

#page-path {
	margin: 29px 0 0 calc(95 / 1366 * 100%);
}
#page-path ul {
	display: flex;
}
#page-path ul li {
	font-size: 8px;
}
#page-path ul li + li::before {
	content: "＞";
	display: inline-block;
	margin: 0 0.7em;
}

@media print, screen and (min-width:768px) {
	#page-path ul li a:hover {
		text-decoration: underline;
	}
}

@media screen and (max-width:767px) {
	#page-path {
		margin: calc(35 / 690 * 100vw) 0 0 calc(35 / 690 * 100vw);
	}
	#page-path ul li {
		font-size: calc(13 / 690 * 100vw);
	}
}

/* -------------------------------------------------
	#category
------------------------------------------------- */

#category {
	width: 96%;
	max-width: 1102px;
	margin: 85px auto 0;
}
#category p {
	font-size: 13px;
	font-family: Arial, "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
	color: #898989;
	letter-spacing: 0.1em;
}
#category p.title {
	padding: 0 15px 0.7em;
	border-bottom: solid 1px #898989;
}
#category .children {
	padding: 15px 15px 0;
	display: flex;
	flex-wrap: wrap;
}
#category .children p + p::before {
	content: "/";
	display: inline-block;
	vertical-align: baseline;
	margin: 0 1em;
}
#category .children p a {
	color: #898989;
}
#category .children p a.current {
	color: #fff;
}

@media print, screen and (min-width:768px) {
	#category .children p a:hover {
		color: #fff;
	}
}

@media screen and (max-width:767px) {
	#category {
		width: auto;
		margin: calc(50 / 690 * 100vw) auto 0;
	}
	#category p {
		font-size: calc(17 / 690 * 100vw);
	}
	#category p.title {
		padding: 0 0 0.5em;
	}
	#category .children {
		padding: calc(15 / 690 * 100vw) 0 0;
	}
}

/* -------------------------------------------------
	#insta-area
------------------------------------------------- */

#insta-area {
	margin-top: 130px;
	padding-bottom: 140px;
}
#insta-area ul {
	margin-top: 80px;
}
#insta-area ul li a {
	display: block;
	position: relative;
	background: #fff;
	overflow: hidden;
}
#insta-area ul li a .group {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	text-align: center;
}
#insta-area ul li a .group p {
	margin-bottom: 0.5em;
	font-size: 17px;
	letter-spacing: 0.1em;
}
#insta-area ul li a .group .ico {
	width: 32px;
}

@media print, screen and (min-width:768px) {
	#insta-area ul {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	#insta-area ul li {
		width: calc(465 / 1006 * 100%);
	}
	#insta-area ul li a .pic {
		transition: transform 1s ease-out;
	}
	#insta-area ul li a:hover .pic {
		transform: scale(1.1);
	}
}

@media screen and (max-width:767px) {
	#insta-area {
		margin-top: 20vw;
		padding-bottom: calc(71 / 690 * 100vw);
	}
	#insta-area ul {
		width: calc(466 / 690 * 100%);
		margin: calc(52 / 690 * 100vw) auto 0;
	}
	#insta-area ul li + li {
		margin-top: calc(60 / 690 * 100vw);
	}
	#insta-area ul li a .group p {
		font-size: calc(24 / 690 * 100vw);
	}
	#insta-area ul li a .group .ico {
		width: calc(32 / 690 * 100vw);
	}
}

/* -------------------------------------------------
	footer
------------------------------------------------- */

footer {
	text-align: center;
}
footer .copyright {
	padding: 75px 0 80px;
	border-top: solid 1px #898989;
	font-size: 13px;
	letter-spacing: 0.1em;
}

@media screen and (max-width:767px) {
	footer .copyright {
		padding: calc(40 / 690 * 100vw) 0 calc(55 / 690 * 100vw);
		font-size: calc(16 / 690 * 100vw);
	}
}

/* -------------------------------------------------
	animation
------------------------------------------------- */

.anim.mask {
	position: relative;
}
.anim.mask::after {
	width: 100%;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	background: #000;
	z-index: 10;
	content: "";
	display: block;
	transition: width 1.6s cubic-bezier(.76,.07,.26,.97);
}

.anim.fade {
	opacity: 0;
	transition: all 1.2s cubic-bezier(.12,.92,.31,.95);
	transform: translateY(50px);
}
.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 print, screen and (min-width:768px) {
	.anim.pc-delay01 { transition-delay: 0.1s; }
	.anim.pc-delay02 { transition-delay: 0.2s; }
	.anim.pc-delay03 { transition-delay: 0.3s; }
	.anim.pc-delay04 { transition-delay: 0.4s; }
	.anim.pc-delay05 { transition-delay: 0.5s; }
	.anim.pc-delay06 { transition-delay: 0.6s; }
	
	.anim.mask.pc-delay04::after { transition-delay: 0.4s; }
	
	.anim.mask.slow::after {
		transition-duration: 2.2s;
	}
}

@media screen and (max-width:767px) {
	.anim {
		transition-duration: 1.0s;
	}
	.anim.pc-only {
		opacity: 1;
		transform: translate(0,0);
		transition: none;
	}
	.anim.sp-delay01 { transition-delay: 0.1s; }
	.anim.sp-delay02 { transition-delay: 0.2s; }
	.anim.sp-delay03 { transition-delay: 0.3s; }
	.anim.sp-delay04 { transition-delay: 0.4s; }
	.anim.sp-delay05 { transition-delay: 0.5s; }
	.anim.sp-delay06 { transition-delay: 0.6s; }
}

.anim.mask.on::after {
	width: 0;
}

.anim.fade.on {
	opacity: 1;
	transform: translate(0,0);
}

/* -------------------------------------------------
	responsive
------------------------------------------------- */

@media print, screen and (min-width:768px) {
	.pc-none {
		display: none !important;
	}
}

@media screen and (max-width:767px) {
	.sp-none {
		display: none !important;
	}
}

/* -------------------------------------------------
	print
------------------------------------------------- */

@media print {
	body {
		width: 980px !important;
	}
}

