@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap');

*, *::before, *::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
html{
	font-size: 100%;
	line-height:1;
}
body {
	background: #ffffff;
	font-size: 0.9375rem;
	line-height: 170%;
	color: #333;
	letter-spacing: 1px;
	font-family: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
img {
	width: 100%;
	vertical-align: bottom;
}
a,
a:visited {
	color: #333;
	text-decoration: none;
}
.sp {
	display: none;
}
.pc {
	display: block;
}
@media only screen and (max-width: 768px) {
	body {
		font-size: 2.975vw;
		letter-spacing: 0.125vw;
	}
	.sp {
		display: block;
	}
	.pc {
		display: none;
	}
}
	

/*============================
Flexbox
=============================*/
.flexbox {
	display: flex;
	display: -o-flex;
	display: -ms-flex;
	display: -moz-flex;
	display: -webkit-flex;
}

/*============================
Loading
=============================*/
#loader-bg {
	background: #8E99A5;
	height: 100%;
	left: 0px;
	position: fixed;
	top: 0px;
	width: 100%;
	z-index: 120;
	text-align: left;
}
#loader img.load01 {
	position: fixed;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	z-index: 100;
	display: block;
	width: 240px;
	height: 50px;
	margin-top: -110px;
	opacity: 0;
	animation: fadein 1.2s 1.4s forwards ease-in; 
}
#loader img.load02 {
	position: fixed;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	z-index: 100;
	display: block;
	width: 240px;
	height: 72px;
	margin-top: -40px;
	opacity: 0;
	animation: fadein .4s .4s forwards ease-in; 
}
#loader img.mask {
	position: fixed;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	z-index: 101;
	display: block;
	width: 100%;
	height: 72px;
	margin-top: -60px;
	transform: translateX(-25%);
	animation: mask 1.6s .4s forwards ease-in; 
}
#loader img.load03 {
	position: fixed;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	z-index: 100;
	display: block;
	width: 240px;
	height: 120px;
	margin-top: 60px;
	opacity: 0;
	animation: fadein .6s .2s forwards ease-in; 
}
@keyframes fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes mask {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(25%);
  }
}
@keyframes mask2 {
  0% {
	visibility: hidden;  
    transform: translateX(-25%);
  }
  5% {
	visibility: visible;  
    transform: translateX(-15%);
  }
  100% {
	visibility: visible;
    transform: translateX(25%);
  }
}
@media only screen and (max-width: 768px) {
#loader img.load01 {
	width: 180px;
	height: 38px;
	margin-top: -85px;
}
#loader img.load02 {
	width: 180px;
	height: 54px;
	margin-top: -40px;
	opacity: 0;
	animation: fadein .3s .4s forwards ease-in; 
}
#loader img.mask {
	visibility: hidden;
	width: 100%;
	height: 52px;
	margin-top: -60px;
	transform: translateX(-50%);
	animation: mask2 1.6s .1s forwards ease-in; 
}
#loader img.load03 {
	width: 180px;
	height: 90px;
	margin-top: 30px;
}		
}

/*============================
Header / Hamburger Menu
=============================*/
header h1.logo {
	position: fixed;
	top: 2%;
	left: 50%;
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
	transform: translateX(-50%);
	width: 100%;
	max-width: 120px;
	height: 30px;
	display: block;
	margin: 5px 0 0;
	padding: 0;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	z-index: 10;
}
header .menu {
	position: fixed;
	top: 2%;
	left: 2%;
	height: 27px;
	width: 35px;
	cursor: pointer;
	z-index: 100;
	transition: opacity 0.25s ease;
}
header .menu:hover {
	opacity: 0.7;
}
header .menu.active .top {
	transform: translateY(11px) translateX(0) rotate(45deg);
	background-color: #fff;
}
header .menu.active .middle {
	opacity: 0;
	background-color: #fff;
}
header .menu.active .bottom {
	transform: translateY(-11px) translateX(0) rotate(-45deg);
	background-color: #fff;
}
header .menu.active .bar {
	background-color: #fff!important;
}
header .menu span {
	background: #fff;
	border: none;
	height: 1px;
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	transition: all 0.5s ease;
	cursor: pointer;
}
header .menu span:nth-of-type(2) {
	top: 11px;
}
header .menu span:nth-of-type(3) {
	top: 22px;
}
header .overlay {
	position: fixed;
	background: #30404E;
	top: 0;
	left: 0;
	width: 0%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.35s, visibility 0.35s, width 0.35s;
	overflow: hidden;
	z-index: 99;
}
header .overlay.open {
	opacity: 0.9;
	visibility: visible;
	width: 40%;
}
header .overlay.close {
	visibility: hidden;
}
header .overlay.open li {
	animation: fadeInRight 0.5s ease forwards;
	animation-delay: 0.35s;
}
header .overlay.open li:nth-of-type(2) {
	animation-delay: 0.4s;
}
header .overlay.open li:nth-of-type(3) {
	animation-delay: 0.45s;
}
header .overlay.open li:nth-of-type(4) {
	animation-delay: 0.5s;
}
header .overlay.open li:nth-of-type(5) {
	animation-delay: 0.55s;
}
header .overlay.open li:nth-of-type(6) {
	animation-delay: 0.6s;
}
@keyframes fadeInRight {
	0% {
		opacity: 0;
		left: 20px;
	}
	100% {
		opacity: 1;
		left: 0;
	}
}
header .overlay nav {
	position: relative;
	height: 70%;
	top: 50%;
	transform: translateY(-50%);
	font-weight: 400;
	text-align: center;
}
header .overlay ul {
	list-style: none;
	padding: 0;
	margin: 0 auto;
	display: inline-block;
	position: relative;
	height: 100%;
}
header .overlay ul li {
	display: block;
	height: 20%;
	height: calc(100% / 6);
	min-height: 50px;
	position: relative;
	opacity: 0;
	text-align: left;
	font-family: 'Source Sans Pro', sans-serif;
	font-weight: 400;
}
header .overlay ul li h4 {
	font-size: 2.5rem;
	color: #ffffff;
}
header .overlay ul li a {
	position: relative;
	color: #fff;
	text-decoration: none;
	overflow: hidden;
	transition: opacity .5s ease-out;
}
header .overlay ul li a:hover {
	opacity: .5;
}
@media only screen and (max-width: 768px) {
	header .menu {
		top: 3%;
		left: 5%;
	}	
	header .overlay.open {
		width: 75%;
	}
}


/*============================
Footer
=============================*/
footer {
	width: 100%;
	margin: 0;
	padding: 30px 0 26px;
}
footer .wrapper {
	width: 1100px;
	margin: 0 auto;
}
footer .wrapper dl {
	justify-content: space-between;
	align-items: flex-start;
}
footer .wrapper dl dd {
	width: 80%;
}
footer .wrapper dl dt {
	width: 10%;
	margin-top: 5px;
}
footer .wrapper dl ul {
	justify-content: flex-start;
	align-items: center;
	align-content: center;
	align-self: center;
}
footer .wrapper dl ul li {
	margin: 0 2%;
	list-style: none;
	font-family: 'Source Sans Pro', sans-serif;
	font-weight: 600;
}
footer .wrapper dl ul li:first-child {
	margin-left: 0;
}
footer .wrapper p.copyright {
	margin: 0;
	padding: 0;
	font-size: 0.8125rem;
}
@media only screen and (max-width: 768px) {
	footer .wrapper {
		width: 92%;
	}
	footer .wrapper dl {
		flex-wrap: wrap;
	}
	footer .wrapper dl dd,
	footer .wrapper dl dt {
		width: 100%;
		margin: 2% 0;
		text-align: center;
	}
	footer .wrapper dl dt img {
		width: 30%;
		max-width: 100px;
		margin-bottom: 4%;
	}
	footer .wrapper dl ul {
		justify-content: space-between;
		font-size: 70%;
	}
	footer .wrapper p.copyright {
		text-align: center;
		font-size: 70%;
		margin-top: 10px;
	}
}


/*============================
Main Visual
=============================*/
#mv {
	margin: 0;
	padding: 0;
	width: 100vw;
	height: 64vw;
	overflow: hidden;
	position: relative;
	z-index: -1;
}
#mv img {
	width: 100%;
	transform: scale(1);
	animation: zoomout 4s 2.5s ease forwards;
}
@keyframes zoomout {
  0% {
    transform: scale(1.4);
  }
  100% {
    transform: scale(1);
  }
}
@media only screen and (max-width: 768px) {
	#mv {
		height: 134vw;
	}	
}


/*============================
Content 
=============================*/
#content {
	background: #D1D3D6;
	margin: 0;
	padding: 0;
}
.pad {
	padding-bottom: 10px;
}
#about {
	padding: 100px 0 80px;
}
#about.wrapper {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	font-size: 0.8125rem;
}
#about.wrapper .spacer {
	margin-top: 80px;
}
#about.wrapper dl {
	margin: 40px auto;
	justify-content: space-between;
	align-items: flex-end;
	align-content: flex-end;
	align-self: flex-end;
	line-height: 180%;
}
#about.wrapper dl dt {
	width: 16%;
}
#about.wrapper dl dd ul {
	width: 72%;
	margin: 0 auto;
}
#about.wrapper dl dd {
	width: 60%;
	padding: 0 0 0 6%;
}
#about.wrapper h5 {
	font-family: 'Source Sans Pro', sans-serif;
	font-weight: 600;
	font-size: 2rem;
}
#about.wrapper .side01 {
	background: url(../img/side01.png) 0 10% no-repeat;
	background-size: 12px;
}
@media only screen and (max-width: 768px) {
	#about {
		padding: 8% 0 12%;
	}
	#about.wrapper {
		width: 92%;
	}
	#about.wrapper .spacer {
		margin-top: 14%;
	}
	#about.wrapper dl {
		margin: 4% auto;
		flex-wrap: wrap;
		width: 94%;
	}
	#about.wrapper dl dt {
		width: 100%;
		margin: 4% 0;
	}
	#about.wrapper dl dd ul {
		width: 86%;
		margin: 0 auto;
	}
	#about.wrapper dl dd {
		width: 100%;
		padding: 0;
		margin: 4% 0;
		font-size: 90%;
	}	
	#about.wrapper dl dt.sp {
		text-align: right;
	}
	#about.wrapper dl dt.sp img {
		width: 35%;
		max-width: 150px;
		margin: 5% 4% 0 0;
	}
	#about.wrapper .side01 {
		background: url(../img/side01.png) 0 10% no-repeat;
		background-size: 11px;
		padding-left: 7%;
	}
}

#gallery {
	padding: 60px 0;
}
#gallery .img01 {
	float: right;
	width: 70%;
}
#gallery .img02 {
	float: left;
	padding: 10% 0;
	margin-left: 5%;
	width: 38%;
}
#gallery .img03 {
	float: right;
	padding: 0;
	margin: 0 10% 0 0;
	width: 20%;
}
#gallery .img04 {
	width: 100%;
}
#gallery .img05 {
	margin: 10% 0;
	padding: 0;
	width: 100%;
}
#gallery .img06 {
	float: right;
	padding: 0;
	margin: 0 0 6%;
	width: 58%;
}
#gallery .side02 {
	float: right;
	width: 58%;
	margin: 10% 0 0;
	padding: 0 0 0 3%;
	background: url(../img/side02.png) left top no-repeat;
	background-size: 12px;
}
.space-min {
	margin-top: -20%;
}
.clearfix {
	overflow: auto;
}
.clearfix::after {
	content: "";
	clear: both;
	display: table;
}
@media only screen and (max-width: 768px) {
	#gallery {
		padding: 4% 0 8%;
	}
	#gallery .img01 {
		float: right;
		width: 80%;
	}
	#gallery .img02 {
		width: 48%;
	}
	#gallery .img03 {
		width: 30%;
		margin: 0 8% 0 0;
	}
	#gallery .img04 {
		width: 100%;
	}
	#gallery .img05 {
		margin: 10% 0;
		padding: 0;
		width: 100%;
	}
	#gallery .img06 {
		width: 68%;
	}
	#gallery .side02 {
		float: right;
		width: 68%;
		margin: 10% 0 0;
		padding: 0 0 0 5%;
		background: url(../img/side02.png) left top no-repeat;
		background-size: 12px;
	}	
}


/*============================
Inview JS
=============================*/
.visible {
	opacity: 0; 
	animation-duration: 2s;
	animation-fill-mode: both;
}
.effect {
	animation-name: imgbrightness;
	opacity: 0;
	transition: .8s;
}
@keyframes imgbrightness {
	0% {
		opacity: 0;
		filter: brightness(300%);
	}
	100% {
		opacity: 1;
		filter: brightness(100%);
	}
}


/*============================
Instafeed JS
=============================*/
#instagram {
	width: 100%;
	margin: 0 auto;
	padding: 100px 0;
}
#instagram .wrapper {
	width: 1100px;
	margin: 0 auto;
}
#instagram .wrapper h4 {
	margin: 0 0 30px;
	padding: 0;
	font-size: 1.125rem;
	list-style: none;
	font-family: 'Source Sans Pro', sans-serif;
	font-weight: 600;
	text-align: center;
}
#instagram .wrapper h4 img {
	width: 16px;
	display: inline-block;
	vertical-align: text-bottom;
	margin-right: 8px;
	padding-bottom: 3px;
}
#instafeed {
	width: 100%;
	margin: 0 auto;
	display: flex;
	display: -o-flex;
	display: -ms-flex;
	display: -moz-flex;
	display: -webkit-flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
#instafeed a {
	margin: 10px;
	padding: 0;
	display: inline-block;
	position: relative;
	overflow: hidden;
	width: 23%;
	height: 23%;
}
#instafeed a:hover {
	opacity: 1;
}
#instafeed img {
	width: 100%;
	transition: all .8s ease;
}
#instafeed img:hover {
	width: 100%;
	transform: scale(1.2);
}
#instafeed .likes {
	background:rgba(30,155,20,0.8);
	font-family:sans-serif;
	font-size:2em;
	position:absolute;
	color:#fff;
	padding: 0;
	right: 0;
	top: 0;
	left: 0;
	opacity: 0;
	line-height: 95px;
	transition: 0.65s;
}
#instafeed a:hover .likes {
	opacity:1;
}
#instagram a.btn {
	display: block;
	width: 100%;
	max-width: 250px;
	margin: 30px auto 0;
	text-align: center;
	padding: 8px 0 10px;
	border: 1px solid #333;
	transition: all .8s ease;
}
#instagram a.btn:hover {
	background: #000;
	color: #fff;
}
@media only screen and (max-width: 768px) {
	#instagram {
		padding: 12% 0;
	}
	#instagram .wrapper {
		width: 92%;
		margin: 0 auto;
	}
	#instagram .wrapper h4 {
		margin: 0 0 6%;
		font-size: 1.25rem;
	}	
	#instagram .wrapper h4 img {
		padding-bottom: 5px;
	}
	#instafeed a {
		margin: 2%;
		padding: 0;
		display: inline-block;
		position: relative;
		overflow: hidden;
		width: 46%;
		height: 46%;
	}
	#instafeed img:hover {
		transform: scale(1);
	}
}

#notify {
	display: none;
}


/*============================
Contact Form
=============================*/
#contact {
	width: 100%;
	margin: 0 auto;
	padding: 100px 0;
	background: url(../img/bg.jpg) top center no-repeat;
	background-size: cover;
}
#contact .wrapper {
	width: 900px;
	padding: 60px 0 40px;
	margin: 0 auto;
	background: #fff;
}
#contact dl {
	width: 72%;
	margin: 0 auto;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	align-content: center;
	align-self: center;
}
#contact dl dt {
	width: 46%;
	padding: 0;
	text-align: left;
}
#contact dl dt img {
	max-width: 160px;
}
#contact dl dd {
	width: 54%;
	padding: 0;
}
#cform {
	width: 100%;
	background: #fff;
	padding: 10px;
	border: none;
}
#cform label, #cform input, #cform textarea, #cform select {
	box-sizing: border-box;
	width: 100%;
	padding: 8px 5px;
	resize: none;
	font-size: 0.875rem;
}
#cform textarea {
	height: 100px;
}
#cform input, 
#cform select,
#cform textarea { 
	margin-bottom: 15px; 
}
#cform input[type=submit] { 
	margin-top: 20px; 
	background: #000;
	border: 1px solid #000;
	color: #fff;
	display: inline-block;
	width: 48%;
	margin-right: 1.875%;
	transition: all .6s ease; 
}
#cform input[type=reset] { 
	margin-top: 20px; 
	background: #fff;
	color: #000;
	border: 1px solid #000;
	display: inline-block;
	width: 48%;
	transition: all .6s ease;
}
#cform input:hover {
	opacity: .6;
}
@media only screen and (max-width: 768px) {
	#contact {
		padding: 10% 0;
	}	
	#contact .wrapper {
		width: 92%;
		padding: 6% 0;
	}
	#contact dl {
		width: 94%;
	}
	#contact dl dt {
		width: 100%;
		padding: 4% 0 14%;
		text-align: center;
	}
	#contact dl dt img {
		width: 28%;
		max-width: 120px;
	}
	#contact dl dd {
		width: 100%;
		padding: 0;
	}
	#cform input, 
	#cform select
	#cform textarea { 
		margin-bottom: 4%; 
	}
	#cform input:hover {
		opacity: 1;
	}
	#cform input[type=submit],
	#cform input[type=reset] { 
		margin-top: 4%;
		padding: 12px 0;
		width: 47%;
	}
}