﻿html:not(.responsive) {
	min-width: 1000px;
	/* viewport */
}


/*=============================================
 * body
 *=============================================*/

body {
	color: #000;
	font-family: 'Noto Serif JP', serif;
	font-size: 15px;
	line-height: 32px;
	letter-spacing: 1.5px;
	background-color: #f2f0eb;
	min-width: inherit;
	min-height: inherit;
	max-height: 100%;
}


/*=============================================
 * fonts - DON'T EDIT
 *=============================================*/

.fnt-mincho {
	font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.fnt-meiryo {
	font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-gothic {
	font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

.fnt-NotoSerif {
	font-family: 'Noto Serif JP', serif;
}

.fnt-NotoSans {
	font-family: 'Noto Sans JP', sans-serif;
}


.nav--opened  {

	overflow-y: hidden;

	-webkit-overflow-scrolling: touch;

}


body.nav--opened,
body.nav--opened *,
body.nav--opened *:hover,
body.nav--opened *:focus,
body.nav--opened *:active {
/*    cursor: none !important;*/
touch-action: none !important;
pointer-events: none !important;
}
body.nav--opened .hamburger,
body.nav--opened #menu_toggle,
body.nav--opened #menu_toggle * {
touch-action: auto !important;
pointer-events: visible !important;
}

/*=============================================
 * .fnt - customs
 *=============================================*/

.fnt-mincho {}

.fnt-meiryo {}

.fnt-gothic {}

.fnt-garamond {}


/*=============================================
 * <main>
 *=============================================*/

main {
	clear: both;
	width: 100%;
	position: relative;
	overflow: hidden;
}

.wrap {
	width: 1000px;
}


/*=============================================
 * <header>
 *=============================================*/

header {
	height: 100vh;
	position: relative;
	z-index: 99999;
}

header h1 {
	display: none;
}

header .belt {
	width: 170px;
	height: 100vh;
	background-color: #fff;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 999;
}

header .belt:before {
	content: '';
	background: url(../img/shared/key_icon.png) no-repeat right center;
	background-size: cover;
	height: 100vh;
	width: 10px;
	position: absolute;
	right: -10px;
	top: 0;
	bottom: 0;
	z-index: 999;
}

header .belt .nav {
	padding-top: 53px;
	height: 100%;
	box-sizing: border-box;
	position: relative;
}

header .belt .nav ul {
	padding: 0 28px 0 37px;
	text-align: left;
}

header .belt .nav ul li {
	padding-bottom: 30px;
	vertical-align: top;
	padding-top: 10px;
	position: relative;
	height: 115px;
	width: 35px;
	float: left;
	letter-spacing: 4px;
}

header .belt .nav ul .show6{
		height: 200px;
}

header .belt .nav ul li:hover {
	opacity: 0.8;
}

/* header .belt .nav ul li:before {
	content: '';
	background: url(../img/shared/icon1.png) no-repeat center;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	text-align: center;
	margin: auto;
	width: 14px;
	height: 14px;
} */

header .belt .nav ul li a {
	display: block;
	cursor: pointer;
}

header .belt .nav ul li a:hover {
	text-decoration: none;
}

header .belt .logo {
	text-align: center;
	/* padding-top: 110px; */
	position: absolute;
	bottom: 80px;
	left: 10px;
	right: 0;
}

header .belt .h_list {
	width: 120px;
	margin: 20px auto 0 auto;
	position: absolute;
	bottom: 15px;
	left: 5px;
	right: 0;
}

header .list1 {
	position: absolute;
	top: 50px;
	right: 29px;
	z-index: 9;
}

header .list1 li {
	float: left;
	width: 48px;
	margin: 0 1px;
	font-size: 22px;
	line-height: 48px;
	letter-spacing:1em;
	position: relative;
}

header .list1 li span {
	position: relative;
	display: block;
	transition: 1s 1s;
	white-space: nowrap;
	overflow: hidden;
    margin-bottom:-0.5em;
	height: 0;

}

header .list1 li span:before {
	position: absolute;
	content: "";
	background: #fff;
	left: 0;
	top: 0;
	right: 0;
	bottom: 100%;
	transition: 1s 0.3s;
	z-index: -1;
	display: inline-block;
}

.actBody header .list1 li span{
	height: 100%;
	padding: 1em 0 0;


}

.actBody header .list1 li span:before{
	bottom: 0;
}


#index{
	opacity: 0;
}

.actBody{
	transition: .7s;
	opacity: 1 !important;
}


header #key {
	height: 100vh;
	width: calc(100% - 170px);
}


/*=============================================
 * key
 *=============================================*/


/* .nav */

.hamburger {
	display: none;
}


/*=============================================
 * <section>
 *=============================================*/

section {}


/*=============================================
 * #socialbuttons
 *=============================================*/

#socialbuttons {}


/*=============================================
 * <footer>
 *=============================================*/

footer {
	background-color: #fff;
	text-align: center;
	position: relative;
	z-index: 999;
}

footer .boxleft {
	width: 180px;
}

footer .boxright {
	width: calc(100% - 180px);
	position: relative;
	padding: 46px 0;
}

footer .boxright .logo img {
	width: 70px;
	height: auto;
}

footer .up {
	position: absolute;
	top: -58px;
	left: 0;
	right: 0;
	text-align: center;
	background: url(../img/shared/pagetop.png) no-repeat top center;
	width: 153px;
	height: 58px;
	margin: 0 auto;
}

footer .up span {
	padding-top: 33px;
    display: block;
}

footer .up a {
	display: block;
	font-size: 8pt;
}

footer .up a:hover {
	text-decoration: none;
}

footer .logo {
	padding-left: 4px;
}


/*=============================================
 * copyright
 *=============================================*/

address {
	font-size: 9px;
	line-height: 25px;
	color: #b2b2b2;
	letter-spacing: 0.5px;
}

.txt {
/*	text-align: justify;*/
}

.txt_coming_soon {
	color: #808080;

}

#pagetop {
	z-index: 990;
}




/*=============================================
 * bxslider
 *=============================================*/

.bx-wrapper {
	position: relative;
}

.bx-wrapper .bx-pager {
	color: #ffee00;
	font-family: Arial;
	font-size: 0.85em;
	font-weight: bold;
	text-align: center;
}

.bx-wrapper .bx-pager,
.bx-wrapper .bx-controls-auto {
	line-height: 10px;
	bottom: 5%;
	left: 0;
	position: absolute;
	right: 0;
	width: 100%;
	z-index: 60;
}

.bx-controls-direction {
	left: 0;
	position: absolute;
	right: 0;
	top: 27vw;
	margin-top: -20px;
	width: 100%;
	z-index: 60;
}

.bx-wrapper .bx-controls-direction a {
	color: #fff;
	font-family: "fontello";
	font-size: 28px;
	line-height: 35px;
	outline: 0 none;
	position: absolute;
	text-indent: -9999px;
	top: 0%;
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.bx-prev::after {
	content: url(../img/shared/prev.png);
	left: 0px;
	position: absolute;
	text-indent: 0;
	top: 0;
}

.bx-next::after {
	content: url(../img/shared/next.png);
	left: 0px;
	position: absolute;
	text-indent: 0;
	top: 0;
}

.bx-prev {
	position: absolute;
	top: 0;
	left: 0;
}

.bx-next {
	position: absolute;
	top: 0;
	right: 0;
}

.bx-wrapper .bx-pager .bx-pager-item,
.bx-wrapper .bx-controls-auto .bx-controls-auto-item {
	display: inline-block;
}

.bx-wrapper .bx-pager.bx-default-pager a {
	background: rgba(255, 255, 255, 0.5);
	border-radius: 5px;
	display: block;
	height: 10px;
	margin: 0 5px;
	outline: 0 none;
	text-indent: -9999px;
	width: 10px;
}

.bx-wrapper .bx-pager.bx-default-pager a:hover,
.bx-wrapper .bx-pager.bx-default-pager a.active {
	background: #fff none repeat scroll 0 0;
}


/*=============================================
 * RESPONSIVE
 *=============================================*/

@media only screen and (min-width: 768px) {
	.pc {
		display: block;
	}
	.sp {
		display: none;
	}
}

@media only screen and (max-width: 1080px) and (min-width: 769px) {
	/* Tablet */
	.menu_sp {
		display: block
	}
	header .boxright {
		padding-right: 33px;
	}
	.key_txt {
		margin-left: -385px;
	}
}

@media only screen and (max-width: 768px) {
	.menu_sp {
		display: block
	}
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
	.br-sp {
		display: none;
	}
	.fl {
		float: none;
	}
	.fr {
		float: none;
	}
	.frl {
		float: none;
	}
	.br-sp {
		display: none;
	}
	/* .txt-vertical {
    -ms-writing-mode: inherit;
    writing-mode: inherit;
    -webkit-writing-mode: inherit;
    cursor: auto;
  } */
	#pagetop img {
		width: 50px;
	}
	/* header */
	header .belt {
		width: 100%;
		height: 60px;
	}
	header #key {
		height: 35vh;
		width: 100%;
		background: url(../img/index/key.jpg) no-repeat top center;
		background-size: cover;
	}
	header #key_sp {
		height: 35vh;
		width: 100%;
		background-size: cover;
	}
	header .list1 li {
		font-size: 5vw;
	}
	header .logo_fix {
		position: absolute;
		top: 8px;
		right: 0;
		left: 0;
		text-align: center;
	}
	header .logo_fix img {
		width: 50px
	}
	header .header_bot {
		position: relative;
		height: calc(55vh - 60px);
	}
	header .header_bot .list1 {
		position: absolute;
		top: 35%;
		right: 5%;
		-moz-transform: translateY(-53%);
		-webkit-transform: translateY(-53%);
		-o-transform: translateY(-53%);
		-ms-transform: translateY(-53%);
		transform: translateY(-53%);
	}
	.actBody header .list1 li span{
		letter-spacing: 0.7em;
	}
	/*=============================================
 * nav
 *=============================================*/
	.hamburger {
		position: fixed;
		top: 10px;
		left: 5%;
		z-index: 9999;
		padding: 15px 10px 5px 0px;
		border-radius: 10px 0 0 10px;
		display: block;
	}
	.nav--opened .hamburger {
		background: none;
	}
	.has_nav .hamburger {
		top: 10px;
	}
	.hamburger:after {
		display: none;
	}
	.hamburger:hover {
		opacity: 1;
	}
	header .toggle-link {
		color: #000;
		font-size: 16px;
		line-height: 16px;
		display: block;
		padding: 15px 0 15px 10px;
	}
	header .toggle-link:after {
		color: #000 !important;
		left: 30% !important;
	}
	header .toggle-main {
		padding: 0 10px;
	}
	.hamburger-inner,
	.hamburger-inner::before,
	.hamburger-inner::after {
		height: 2px;
		background-color: #2f1a0b !important;
		width: 28px;
	}

	.hamburger-inner::before {
		top: -8px;
	}
	.hamburger-inner::after {
		bottom: -8px;
	}
	.hamburger-box {
		width: 28px;
		display: inline-block;
		position: relative;
	}
	header .menu_toggle {
		position: fixed !important;
		left: 0;
		bottom: 0;
		top: -100%;
		right: 0;
		height: 100vh !important;
		overflow-y: auto;
		z-index: 999;
		background-color: #fff;
		transition: .3s;
		opacity: 1;
		visibility: hidden;
	}
	header .belt {
		position: fixed;
		z-index: 9999;
		top: 0;
		left: 0;
		right: 0;
	}
	header .belt:before {
		content: '';
		background: url(../img/shared/key_sp_icon.png) no-repeat bottom center;
		background-size: cover;
		height: 11px;
		width: 100%;
		position: absolute;
		right: 0px;
		left: 0;
		bottom: 0;
		top: 60px;
		z-index: 999;
	}
	header .belt .nav {
		padding-top: 25px;
	}
	header .belt .box_menu {
		display: block;
		text-align: center;
	}
	header .belt .nav ul {
		padding: 0;
		display: inline-block;
		width: 140px;
		height: 254px;
	}
	#hd_top {
		height: 60px;
	}
	.menu_show {
		opacity: 0;
	}
	.nav--opened .menu_show {
		opacity: 1;
	}
	.nav--opened .show1 {
		transition: 1s 0.7s;
	}
	.nav--opened .show2 {
		transition: 1s 0.9s;
	}
	.nav--opened .show3 {
		transition: 1s 1.1s;
	}
	.nav--opened .show4 {
		transition: 1s 1.3s;
	}
	.nav--opened .show5 {
		transition: 1s 1.5s;
	}
	.nav--opened .show6 {
		transition: 1s 1.7s;
	}
	.nav--opened .show7 {
		transition: 1s 1.9s;
	}
	.nav--opened .show8 {
		transition: 1s 2.1s;
	}
	
	header .belt .nav ul li {
		padding: 17px 5px 0px 5px;
		margin-top: 5px;
		height: 125px;
		font-size: 16px;
	}

	header .belt .nav ul .show6{
		height: 250px;
		font-size: 14px;
	}

	header .belt .nav ul li a {
		
	}
	header .belt .h_list .fl {
		float: left;
		width: 53%;
	}
	header .belt .h_list .frl {

		width: 53%;
	}
	header .belt .h_list .fr {
		float: right;
		width: 32%;
	}
	header .belt .h_list .frl {

		width: 32%;
	}
	header .belt .logo {
		padding-top: 0px;
		bottom: 10%;	
		right: 0;
	}
	header .belt .h_list {
		width: 180px;
		bottom: 2%;
		left: 0;
	}
	header .belt .logo img {
		width: 90px;
	}
	header .scroll {
		position: absolute;
		bottom: 14%;
		left: 5%;
		z-index: 9;
		-moz-transform: rotate(90deg);
		-webkit-transform: rotate(90deg);
		-o-transform: rotate(90deg);
		-ms-transform: rotate(90deg);
		transform: rotate(90deg);
		cursor: pointer;
		font-size: 8pt;
	}
	header .scroll span {
		cursor: pointer;
	
	}

	.nav--opened header .menu_toggle {
		opacity: 1;
		transition: .5s;
		visibility: visible;
		top: 0;
	}

	header .group {
		margin-left: 3vw;
	}

	header .group span img {
		width: 7vw;
		display: inline-block;
		margin-right: 3vw;
	}

	header .menu_toggle ul li.social a {
		display: inline-block;
	}
	header .social a:before {
		display: none;
	}
	header a:hover {
		opacity: 0.8;
	}
	header #key {
		padding-top: 60px;
	}
	header #key_sp {
		padding-top: 60px;
	}
	header .topnavi {
		position: absolute;
		top: 10px;
		left: 5px;
		height: 54px;
	}
	header .topnavi li {
		display: inline-block;
		position: relative;
		width: 60px;
		vertical-align: top;
	}
	header .topnavi li a {
		color: #fff;
		font-size: 11px;
		line-height: 23px;
		text-align: center;
		display: block;
		height: 100%;
		padding-top: 5px;
		width: 100%;
	}
	header .topnavi li a:hover {
		text-decoration: none;
	}
	header .topnavi li a[class^="icon-"]:before {
		display: block;
		width: 100%;
		padding-bottom: 4px;
		font-size: 19px;
		font-weight: normal;
	}
	.icon-location-1 {
		display: block;
		font-size: 18px;
	}
	/* footer */
	footer .boxleft {
		width: 0px;
	}
	footer .boxright {
		width: 100%;
		position: relative;
		padding: 20px 0;
	}
	footer .boxright .logo img {
		width: 70px;
	}
	footer .up {
		position: absolute;
		top: -58px;
		left: 0;
		right: 0;
		text-align: center;
	}
	.up {
		max-width: 153px;
		width: 153px;
		margin: 0 auto;
	}

	footer .up a {
		display: block;
		font-size: 8pt;
	}

	header .belt .h_list {
		width: 140px;
	}
}

/* .box-tg01 > * {
	opacity: 0;
	transition: 0.3s 0s;
}

.box-tg01[style^='display: block']> * {
	opacity: 1;
	transition: 0.3s 0.3s;
}
.box-tg01[style*='overflow']> * {
	opacity: 0;
}
.box-tg01[style*='height'][style*='block'] > * {
	opacity: 0;
	transition: 0.3s 0s;
} */


.fly {
    -webkit-animation-name: fly;
    -webkit-animation-duration: 2s;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: ease;
    -moz-animation-name: fly;
    -moz-animation-duration: 2s;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: ease
}

@-webkit-keyframes fly {
    0% {
        -webkit-transform: translate(0, 0)
    }
    50% {
        -webkit-transform: translate(0, -15px)
    }
    to {
        -webkit-transform: translate(0, 0)
    }
}

@-moz-keyframes fly {
    0% {
        -moz-transform: translate(0, 0)
    }
    50% {
        -moz-transform: translate(0, -15px)
    }
    to {
        -moz-transform: translate(0, 0)
    }
}

@media only screen and (max-width: 414px) and (min-width: 375px) {
	header .belt .nav {
		padding-top: 50px;
	}
	header .belt .logo {
		bottom: 30%;
		z-index: 99;
	}

	header .belt .h_list {
		bottom: 24%;
	}
}

@media only screen and (max-width: 375px) {
	header .belt .nav {
		padding-top: 50px;
	}
	header .belt .logo {
		bottom: 20%;
		z-index: 99;
		left: 0;
	}

	header .belt .h_list {
		bottom: 10%;
		left: 0;
	}
}
@media only screen and  (max-width: 320px) {
	header .belt .nav {
		padding-top: 20px;
	}
	header .belt .logo {
		bottom: 20%;
		z-index: 99;
		left: 0;
	}

	header .belt .h_list {
		bottom: 15%;
		left: 0;
	}
}

.op0 {
	opacity: 0;
}


/* title h2 */


.box_left {
	position: relative;
	width: 100px;
	float: left;
	display: inline-block;
	text-align: center;
  }

.box_right {
	width: 830px;
	float: right;
  }

 .box_right_ossekai {
	width: 1000px;
	float: right;
	padding: 10% 0 0;
 }

.ttl-h2 {
	font-size: 30px;
	letter-spacing: 15px;
	display: inline-block;
	text-align: left;
	padding: 50px 0 40px;
}


.box_left:before {
	content: "";
	background: url(../img/shared/icon_open.svg) top right;
	width: 100px;
	height: 14px;
	position: relative;
	display: block;
	top: 0;
	left: 0;
  }
  
.box_left:after {
	content: "";
	background: url(../img/shared/icon_close.svg) top right;
	width: 100px;
	height: 14px;
	position: relative;
	display: block;
	left: 0;
  }

  .h2_lineheight {
	line-height: 40px;
  }

  .mt-12 {
	  margin-top: -12px;
  }

  


  @media only screen and (max-width: 1240px) and (min-width: 769px) {
	.box_left {
		width: 100px;
	  }

	.box_right {
		width: calc(100% - 150px);
	  }

	  .box_right_ossekai{
	  	width: calc(100%);
	  	padding: 8% 0 0;
	  }

  }

  @media only screen and (max-width: 768px) {
	.h234 {
		height: 234px;
	  }

	  .h290 {
		height: 290px;
	}
	.h2_lineheight {
		line-height: auto;
	}
	.box_left {
		position: relative;
		width: 50px;
		float: left;
	  }

	.box_right {
		width: calc(95% - 50px);
		float: right;
	  }

	  .box_right_ossekai{
	  	width: calc(100%);
	  	padding: 8% 0 0;
	  }

	.box_left:before {
		content: "";
		background: url(../img/shared/icon_open_sp.svg) no-repeat top right;
		width: 50px;
		height: 14px;
		top: 0;
		left: 0;
	  }
	.box_left:after {
		content: "";
		background: url(../img/shared/icon_close_sp.svg) no-repeat top left;
		width: 50px;
		height: 14px;
		bottom: 0px;
		left: 0;
	  }
	.box_left .ttl-h2  {
		font-size: 25px;
		letter-spacing: 15px;
		padding: 20px 0 5px;
	  }
	.box_left .ttl-h2-vertical  {
		padding: 20px 0 20px;
		
	  }
  }
