body{
	font-family: 'Poppins', 'Zen Kaku Gothic New', sans-serif;
	line-height: 1.75rem;
	letter-spacing: 1px;
}

img{
	max-width:100%;
}

p{
	margin:0;
}

p::selection {
	background-color: #000;
	color:#fff;
}

p a.textlink{
	background-color: #000;
  	color:#fff;
  	text-decoration: none;
  	transition: ease .2s;
}

p a.textlink:hover{
	background-color: #fff;
  	color:#000;
}

hr{
	border-top: 1px solid #000;
    border-right: none;
    border-bottom: none;
    border-left: none;
    margin: 1.5rem 0;
}

.strong{
	font-weight: bold;
}

.container{
	max-width:1190px;
	margin:0 auto;
}

.section-wrapper{
	max-width:1190px;
	padding:50px 50px 90px;
	background:rgba(255,255,255,0.8);
	margin-bottom:100px;
}

.section-title{
	padding:40px 0 30px;
	text-align: center;
}

.text-center{
	text-align: center;
}

.margin-small-top{
	margin-top:20px;
}

.margin-medium-top{
	margin-top:50px;
}

.margin-large-top{
	margin-top:100px;
}

nav.fixed{
	position: fixed;
	top: 10px;
	bottom:auto;
	z-index:9999;
}

#news-trigger{
	position:fixed;
	bottom:15px;
	right:15px;
	width:95px;
	opacity:0;
	transition: transform 0.4s ease, opacity 0.4s ease;
	transform: scale(0.6);
}

#news-trigger.fadein{
	opacity:1;
	transform: scale(1);
}

#news-trigger a{
	width:95px;
	height:95px;
	background:#0099FF;
	display:block;
	padding-top:35px;
	text-align:center;
	border-radius:999px;
	box-sizing: border-box;
	transition: ease .2s;
}

#news-trigger a:hover{
	background:#fff;
}

#news-trigger a:hover svg path{
	fill:#000 !important;
}

#totop-trigger{
	position:fixed;
	bottom:15px;
	right:calc(50vw - 306px);
	width:612px;
	opacity:0;
	transition: transform 0.4s ease, opacity 0.4s ease;
	transform: scale(0.6);
	z-index:999;
}

#totop-trigger a svg path{
	transition: ease .2s;
}

#totop-trigger a:hover svg path{
	fill:#fff !important;
}

#totop-trigger.fadein{
	opacity:1;
	transform: scale(1);
}

#totop-trigger.fixed{
	position: relative;
	    right: auto;
    text-align: center;
    margin: 0 auto;
    transition:all 0s ease;
}

@keyframes wipe-out-left {
  from {
    clip-path: inset(0 0 0 0);
  }
  to {
    clip-path: inset(0 100% 0 0);
  }
}

@keyframes slideOut {
    from {
        transform: translateX(0);
        opacity:1;
    }

    to {
        transform: translateX(-100%);
        opacity:0.8;
    }
}

#loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 99999;
}
    
#loader .loader-slide {
    width: 100%;
    height: 100vh;
    background-color: #fff;
}

#loader .loader-slide img{
	width:100%;
	height:100vh;
	object-fit: cover;
}
        
#loader .loader-slide.open {
    animation-name: wipe-out-left;
    animation-fill-mode: forwards;
    animation-duration: 1s;
    animation-delay: 0.8s;
    animation-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000);
}
    

/* fadeUpをするアイコンの動き */
.fade{
animation-name: fadeAnime;
animation-duration:2s;
animation-fill-mode:forwards;
opacity: 0;
}

@keyframes fadeAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/*== ボタン共通設定 */
.btn{
    /*アニメーションの起点とするためrelativeを指定*/
    position: relative;
	overflow: hidden;
    /*ボタンの形状*/
	text-decoration: none;
	display: inline-block;
    padding: 25px 150px;
    text-align: center;
    outline: none;
    background:#000;
    border:0;
    /*アニメーションの指定*/   
    transition: ease .2s;
}

.btn.wide{
	padding: 25px 180px;
}

/*ボタン内spanの形状*/
.btn span {
	position: relative;
	z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
	color:#fff;
	font-size:18px;
}

.btn.wide span{
	font-size:16px;
}

.btn:hover span{
	color:#000;
}

/*== 背景が流れる（左から右） */
.bgleft:before {
 	content: '';
    /*絶対配置で位置を指定*/
 	position: absolute;
 	top: 0;
 	left: 0;
 	z-index: 2;
    /*色や形状*/
 	background:#fff;/*背景色*/
 	width: 100%;
	height: 100%;
    /*アニメーション*/
 	transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
 	transform: scale(0, 1);
	transform-origin: right top;
}

/*hoverした際の形状*/
.bgleft:hover:before{
	transform-origin:left top;
	transform:scale(1, 1);
}

header{
	width:100vw;
	height:100vh;
	text-align: center;
	height: calc(var(--vh, 1vh) * 100);
}

header nav{
	position:absolute;
	bottom:30px;
	width:100%;
	max-width:1190px;
}

header nav ul.menu{
	width:790px;
	list-style: none;
	margin:0 auto;
	padding:0;
}

header nav ul.menu li{
	display:inline-block;
	margin:10px;
	padding:5px;
	transition: all 0.2s ease;
}

header nav ul.menu li.current{
	background: #0099FF;
}

header nav ul.menu li.current svg{
	fill:#fff !important;
}

header nav ul.menu li:hover{
	background: #fff;
}

header nav ul.menu li:hover svg{
	fill: #0099FF !important;
}

header nav ul.sns{
	width: auto;
    display: inline-block;
    position: absolute;
    right: 10px;
    top: 6px;
    margin: 6px;
}

header nav ul.sns li{
	display:inline-block;
	margin-left:13px;
}

header nav ul.sns li svg{
	transition: all 0.2s ease;
}

header nav ul.sns li svg:hover{
	fill:#fff;
}

header #logo{
	position:relative;
	top:calc(50vh - 27.5px);
	top: calc(var(---vh, 1vh) * 50 - 65px);
	width:46.875vw;
	margin: 0 auto;
	cursor: pointer;
}


/* SCROLL DOWN */
.scrolldown{
	position:absolute;
	left:50%;
	bottom:50px;
	height:50px;
	display: none;
}

.scrolldown span{
	position: absolute;
    left: -36px;
    top: 50px;
}

.scrolldown::after{
	content: "";
	position: absolute;
	top: 0;
	width: 1px;
	height: 30px;
	background: #000;
	animation: pathmove 2s ease-in-out infinite;
	opacity:0;
}

@keyframes pathmove{
	0%{
		height:0;
		top:0;
		opacity: 1;
	}
	35%{
		height:150px;
		top:0px;
		opacity: 1;
	}
	65%{
		height:150px;
		top:0px;
		opacity: 1;
	}
	100%{
		height:0;
		top:150px;
		opacity: 1;
	}
}

.mv-slider{
	position:fixed !important;
	top:0;
	left:0;
	width:100vw !important;
	height:100vh !important;
	height: calc(var(----vh, 1vh) * 100) !important;
	z-index:-1;
}

.slidesWrap .slides,
.slidesWrap .slides .slide{
	width:100vw !important;
	height:100vh !important;
}

.slidesWrap .slides .slide img{
	object-fit: cover;
	width:100%;
	height:100%;
}

.mv-slider.slick-slider .slick-list,
.mv-slider.slick-slider .slick-list .slick-track,
.mv-slider.slick-slider .slick-list .slick-track img{
	height:100%;
}

.mv-slider.slick-slider .slick-list .slick-track img{
	object-fit: cover;
	width: 100%;
}


/* WE ARE */
#weare.section-wrapper{
	padding-top:80px;
}

#weare p{
	font-weight: bold;
}

.weare-slider .slick-slide{
	margin:0 10px;
	position:relative;
}

.weare-slider .slick-dots{
	bottom: -37px;
}

.weare-slider .slick-dots li{
	margin:0;
}

.weare-slider .slick-dots li button:before{
	font-size:14px;
	color:#000;
	opacity:1;
}

.weare-slider .slick-dots li.slick-active button:before{
	font-size:14px;
	color:#0099FF;
}

.weare-slider .slick-slide{
	-webkit-filter:grayscale(100%);
    -moz-filter:grayscale(100%);
    -ms-filter:grayscale(100%);
    filter:grayscale(100%);
    transition: filter 0.5s ease;
}

.weare-slider .slick-slide:after{
	content:'';
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background: rgba(0,0,0,0.2);
	transition: background 0.5s ease;
}

.weare-slider .slick-slide:hover:after{
	background:rgba(0,0,0,0);
}

.weare-slider .slick-current.slick-active{
	-webkit-filter:grayscale(0%);
    -moz-filter:grayscale(0%);
    -ms-filter:grayscale(0%);
    filter:grayscale(0%);
}

.weare-slider .slick-current.slick-active:after{
	display:none;
}

.weare-slider .slick-next,
.weare-slider .slick-prev{
	width: 33.333%;
    height: 100%;
	z-index:999;
}

.weare-slider .slick-next{
	left:auto;
	right:0px;
}

.weare-slider .slick-prev{
	right:auto;
	left:0px;
}


.weare-slider .slick-next:before {
    content:url(../img/weare/arrow-left.svg);
}
.weare-slider .slick-prev:before {
    content:url(../img/weare/arrow-right.svg);
}

.separator{
	width:100%;
	max-width:350px;
	display:block;
	margin: 35px auto;
	border-top:1px #000 solid;
}


/* ITEMS */
#items a:hover img{
	transition: opacity 0.2s ease;
	opacity:0.8;
}
#items p.imgonly a{
	background-color:transparent;
}


/* ACCESS */

#access .section-content{
	max-width:800px;
	margin:0 auto;
}

#aoyama-map{
	height:310px;
}

#shinjuku-map{
	height:310px;
}

#aoyama-map,#shinjuku-map{
	margin-bottom:22px;
}

#access p{
	font-size:14px;
}

.flex-content{
	display:flex;
	flex-wrap: wrap;
	align-content: space-between;
	justify-content: space-between;
}

.flex-content-2{
	display: flex;
    justify-content: flex-start;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: space-between;
}

.simple-warning{
	padding:9px 0;
	width:100%;
	border:1px #666666 solid;
	text-align: center;
	font-size:12px;
}

.box-left,.box-right{
	width:calc(50% - 20px);
	margin-bottom:25px;
}





/* ORDER */

.narrow-content{
	max-width:700px;
	margin:0 auto;
}

.pbox{
	border:1px #000 solid;
	background: rgba(255,255,255,0.5);
	padding:25px;
}

#order h4{
	font-size:16px;
	font-weight: bold;
	margin-bottom:15px;
}

p.small-font{
	font-size:14px;
}

#order h3{
	margin: 37px 0 14px;
}




/* RECRUIT */
#recruit p span{
	font-size:14px;
}

#recruit p span:first-child{
	min-width:200px;

}

#recruit .section-content{
	line-height: 2.2;
}





/* CONTACT */
form :focus {
    outline: none;
}
#contact .section-content{
	line-height: 2.2;
}

.form-content{
	margin-bottom:40px;
}

.form-content label{
	display:block;
	font-size:14px;
}

.form-content label span{
	color:#f00;
	padding-left:15px;
	font-size:12px;
}

.form-content input,
.form-content textarea{
	width:100%;
	height:60px;
	background:transparent;
	border:1px #000 solid;
}

.form-content textarea {
	height:270px;
}

input:focus,
textarea:focus,
input:not(:placeholder-shown),
textarea:not(:placeholder-shown){
	background:#fff;
}

.form-content input,
.form-content textarea,
.form-content select{
	padding:0 20px;
	box-sizing: border-box;
}

.form-content textarea{
	padding:18px 20px;
}

select{
	width:240px;
	height:60px;
	border-color:#000;
	background:transparent;
	color:rgba(0,0,0,0.5);
}

.thanks{
	width: 100%;
    text-align: center;
    border: 1px #000 solid;
    margin-top: 50px;
    padding: 18px 20px;
}



/* FOOTER */
#footer{
	text-align: center;
	margin-bottom:14px;
	padding-top:50px;
	font-size:11px;
}



/* MODAL */
#modal{
	display: none;
}

.modaal-overlay {
	z-index:9999 !important;
}

.modaal-wrapper {
	z-index: 99999 !important;
}

/*モーダルの横幅を変更したい場合*/
.modaal-container{
    max-width: 700px !important;
}

.modaal-content-container{
	padding: 30px 80px;
}

.modaal-content-container p{
	font-size:14px;
}

.modaal-content-container h2{
	font-size: 20px;
	margin-bottom:40px;
}

.modaal-container .modaal-close {
	position: absolute;
    top: -25px;
    right: -25px;
    background: #0099FF;
}

.modaal-container .modaal-close:after,.modaal-container .modaal-close:before{
	top: 11px;
    left: 24px;
    width: 1px;
    height: 30px;
    background: #fff;
}

.modaal-close:focus:after, .modaal-close:focus:before, .modaal-close:hover:after, .modaal-close:hover:before {
	background: #000 !important;
}

/*モーダルのボタンの色を変更したい場合*/
.modaal-close:after, 
.modaal-close:before{
	background:#ccc;	
}

.modaal-close:focus:after,
.modaal-close:focus:before,
.modaal-close:hover:after,
.modaal-close:hover:before{
	background:#000;
}


.modaal-close:hover,
.modaal-close:hover{
	background:#fff;
}


/* MOBILE MENU */
#g-nav{
    position:fixed;
    z-index: 999;
	top:0;
    right: -120%;
	width:70%;
    height: 100vh;
	transition: all 0.6s;
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive{
    right: 0;
}

#mb-header .panelmask{
	background:rgba(0,0,0,0.5);
	content:"";
	position:fixed;
	top:0;
	left:0;
	width:100vw;
	height:100vh;
	z-index:998;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
    position: fixed;
    z-index: 9999; 
    width: 70%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    background:rgba(255,255,255,0.9);
}

/*ナビゲーション*/
#g-nav ul {
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top:40%;
    left:50%;
    transform: translate(-50%,-50%);
    padding:0;
    width: 70%;
}

/*リストのレイアウト設定*/

#g-nav li{
	list-style: none;
    text-align: right;
}

#g-nav li a{
	color: #000;
	text-decoration: none;
	padding: 13px 0;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: bold;
	font-size:22px;
}

#g-nav li.mb-sns{
	margin-top:40px;
	position:relative;
}

#g-nav li.mb-sns:before{
	content:"";
	display:inline-block;
	width:25px;
	border-top:1px #000 solid;
	position: absolute;
    right: 0;
    top: -22px;
}

#g-nav li.mb-sns a{
	display:inline-block;
	margin-left:20px;
}

/*========= ボタンのためのCSS ===============*/
.logo-mb{
	position:absolute;
    z-index: 996;
	top:22px;
	right: 0px;
	cursor: pointer;
    width: 100%;
    height:50px;
    display:none;
    opacity:0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}
.openbtn{
	position:absolute;
    z-index: 9997;/*ボタンを最前面に*/
	top:10px;
	right: 10px;
	cursor: pointer;
    width: 50px;
    height:50px;
    display:none;
}

.openbtn.active{
	left:0;
	width: 80px;
    height:80px;
}
	
/*×に変化*/	
.openbtn span{
    display: inline-block;
    transition: all 0s;
    position: absolute;
    left: 14px;
    height: 1px;
    border-radius: 2px;
	background-color: #000;
  	width: 45%;
  }

.openbtn span:nth-of-type(1) {
	top:15px;	
}

.openbtn span:nth-of-type(2) {
	top:23px;
}

.openbtn span:nth-of-type(3) {
	top:31px;
}

.openbtn.active span {
	background-color: #fff;
}

.openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 100%;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}

.openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 100%;
}

.openbtn.active{
	right:auto;
	left:10px;
	top:30px;
}

#mb-header{
	position: fixed;
	width:100%;
	z-index:1;
	top:0;
	left:0;
	transform: scale(1);
}

.logo-mb.fadein{
	opacity:1;
	transform: scale(1);
}


/* MOBILE FOOTER */
#g-nav-mb-footer{
	padding:0 45px;
	display:none;
}
#g-nav-mb-footer ul {
    /*ナビゲーション天地中央揃え*/
    position: relative;
    padding:0;
    width: 100%;
}

/*リストのレイアウト設定*/

#g-nav-mb-footer li{
	list-style: none;
    text-align: left;
}

#g-nav-mb-footer li a{
	color: #000;
	text-decoration: none;
	padding: 13px 0;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: bold;
	font-size:22px;
}

#g-nav-mb-footer li.mb-sns{
	margin-top:40px;
	position:relative;
}

#g-nav-mb-footer li.mb-sns:before{
	content:"";
	display:inline-block;
	width:25px;
	border-top:1px #000 solid;
	position: absolute;
    left: 0;
    top: -22px;
}

#g-nav-mb-footer li.mb-sns a{
	display:inline-block;
	margin-right:20px;
}

span.en{
	font-weight: 600 !important;
}


/* レスポンシブ */
@media screen and (max-width: 975px) {
	header nav ul.menu {
	    width: 100vw;
	    display:none;
	}
	header nav ul.sns{
		position:relative;
		right:0;
		top:0;
		padding:0;
		display:none;
	}
	#mb-header{
		display:block;
	}
	#totop-trigger{
		display:none;
	}
	.scrolldown{
		display:block;
	}
	.logo-mb{
		display: block
	}
	.openbtn.active{
		left:0px;
	}
}
@media screen and (max-width: 700px) {
	.container{
		max-width: 100vw;
	}
	.section-wrapper{
		padding:25px;
	}
	header #logo {
	    width: 100vw;
	    max-width:325px
	}
	.btn, .btn.wide{
		padding: 25px 0;
		text-align: center;
		width:100%;
	}
	.box-left, .box-right{
		width:100%;
	}
	nav.fixed{
		position:static;
	}
	#news-trigger{
		width:80px;
	}
	#news-trigger a{
		width:80px;
		height:80px;
		padding-top:calc(33%);
	}
	#news-trigger a svg{
		width: 42px;
	}
	p{
		font-size:14px;
	}
	p.small-font{
		font-size:13px;
	}
	.flex-content-2{
		flex-wrap: wrap;
		margin-bottom:20px;
	}
	.flex-content-2 span{
		display:block;
		width:100%;
	}
	.weare-slider .slick-slide:after{
		background: rgba(0,0,0,0);
	}
	#weare{
		margin-top:53px;
		padding-top:60px;
	}
	#weare.section-wrapper{
		padding-top:60px;
	}
	#weare .section-title{
		padding: 55px 0 30px;
	}
	.weare-slider .slick-slide{
		margin: 0;
	}
	.section-wrapper{
		padding: 25px 25px 100px;
		overflow: hidden;
	}
	.weare-slider .slick-dots li button:before,
	.weare-slider .slick-dots li.slick-active button:before{
		font-size:14px;
	}
	#items .imgonly img{
		width:100vw;
		max-width: 100vw;
		position:relative;
		left:-25px;
	}
	.modaal-content-container {
	    padding: 30px 30px;
	}
	.modaal-content-container h2{
		text-align: center;
		margin-top:10px;
	}
	.slick-dots{
		bottom:-40px;
	}
	.margin-large-top{
		margin-top:40px
	}
	#g-nav-mb-footer{
		display:block;
	}
	#weare p{
		font-size:13px;
	}
	#contact.section-wrapper{
		margin-bottom:47px;
	}
	.smaller-font{
		font-size:11px;
	}
	.openbtn{
	    display:block;
	}
}
@media screen and (max-width: 374px) {
	#weare p{
		font-size:3.2vw;
	}
	.smaller-font{
		font-size:10px;
	}
}