@charset "utf-8";

/*=== エントリーボタン ===*/
.btn_entry {
	position: fixed;
	bottom: 40px;
	right: 40px;
	z-index: 200;
	width: 24vw;
    max-width: 300px;
	transition: .3s;
}
.btn_entry img {
	width: 100%;
	box-shadow: 0 10px 25px 0 rgb(0 0 0 / 50%);
}
.btn_entry:hover {
	bottom: 50px;
}
.sp_btn_entry{
	display: none;
}
@media screen and (max-width: 1036px) {
	.btn_entry {
		display: none;
	}
	.sp_btn_entry{
		display: block;
		width: 50%;
    	margin: 0 auto;
		padding: 20px 0 0;
	}
	.sp_btn_entry a img{
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	.sp_btn_entry{
		width: 100%;
	}
}

/*-------------------------
header
---------------------------*/
header {
	background-image: url("../img/bg_pattern01.jpg");
	width: 100vw;
	color: #40220f;
	padding: 10px 20px 14px;
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 10;
}
header:after {
	content: "";
	background: url("../img/bg_pattern02.jpg") fixed;
	width: 100vw;
	height: 4px;
	position: absolute;
	bottom: 0;
	left: 0;
}
header a,
header img {
	display: block;
}
header a:hover {
	transform: scale(1.1);
}
header > div {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}
h1 {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-align-items: center;
	align-items: center;
	width: 136px;	
}
h1 a,
h1 img {
	width: 100%;
}
header div div {
	width: calc(100% - 156px);
	padding-left: 20px;
}
@media screen and (max-width: 904px) {
	h1 {
		width: 98px;
	}
	header div div {
		width: calc(100% - 118px);
		padding-left: 20px;
	}
}
header p {
	font-size: .8rem;
	font-weight: bold;
}
nav {
	margin-top: 10px;
}
nav ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}
nav li {
	height: 100%;
	border-right: 1px solid #40220f;
	border-left: 1px solid #40220f;
}
nav li+li {
	border-left: none;
}
nav a {
	padding: 5px 14px;
}
@media screen and (max-width: 1036px) {
	nav a {
		padding: 5px 7px;
	}
}

/*-------------------------
spMenu
---------------------------*/
#menu {
	width: 40px;
	height: 40px;
	border: 1px solid #000;
	position: fixed;
	top: 10px;
	right: 20px;
	z-index: 20;
	cursor: pointer;
}
#menu span {
	height: 0;
	padding-top: 2px;
	overflow: hidden;
}
#menu span,
#menu:before,
#menu:after {
	display: block;
	background-color: #000;
	width: 26px;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transition: .5s;
	transition: .5s;
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
}
#menu:before,
#menu:after {
	content: "";
	height: 2px;
}
#menu:before {
	top: calc(50% - 7px);
}
#menu:after {
	top: calc(50% + 7px);
}
#menu.close-button span {
	opacity: 0;
}
#menu.close-button:before,
#menu.close-button:after {
	top: 50%;
}
#menu.close-button:before {
	-webkit-transform: translate(-50%,-50%) rotate(-135deg);
	transform: translate(-50%,-50%) rotate(-135deg);
}
#menu.close-button:after {
	-webkit-transform: translate(-50%,-50%) rotate(135deg);
	transform: translate(-50%,-50%) rotate(135deg);
}
#spMenu {
	background-color: rgba(0,0,0,.8);
	width: 100%;
	padding: 20px;
	position: fixed;
	top: 0;
	left: 0;
	-webkit-transition: .2s;
	transition: .2s;
	-webkit-transform: translateY(-100%);
	transform: translateY(-100%);
}
#spMenu.open-menu {
	top: 64px;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}
#spMenu ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
#spMenu li {
	width: 50%;
}
#spMenu li a {
	display: block;
	height: 100%;
	padding: 10px;
	border-bottom: 1px dotted #fff;
}
#spMenu li:nth-child(2n) a {
	border-left: 1px dotted #fff;
}
#spMenu li:nth-last-child(2) a,
#spMenu li:last-child a {
	border-bottom: none;
}
#spMenu li img {
	display: block;
	margin: 0 auto;
}

/*-------------------------
title
---------------------------*/
h2 img,
h3 img {
	display: block;
	width: 100%;
}
h3 {
	color: #ffbe00;
	font-size: 1.9rem;
	line-height: 1.2;
}

/*-------------------------
keyvisual
---------------------------*/
.keyvisual {
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	height: 400px;
	position: relative;
}
.keyvisual h2 {
	width: 80%;
	max-width: 446px;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
}
.recommend .keyvisual {
	background-image: url("../img/recommend/bg_main.jpg");
}
.partyplan .keyvisual {
	background-image: url("../img/partyplan/bg_main.jpg");
}
.recruit .keyvisual {
	background-image: url("../img/recruit/bg_main.jpg");
}
@media screen and (max-width: 640px) {
	.recommend .keyvisual {
		background-image: url("../img/recommend/bg_main_sp.jpg");
	}
	.partyplan .keyvisual {
		background-image: url("../img/partyplan/bg_main_sp.jpg");
	}
	.recruit .keyvisual {
		background-image: url("../img/recruit/bg_main_sp.jpg");
	}
}
.keyvisual+div {
	padding: 5rem 0;
}

/*-------------------------
home
---------------------------*/
/* topKeyvisual */
#topKeyvisual {
	height: calc(100vh - 98px);
	min-height: 468px;
}
@media screen and (max-width: 640px) {
	#topKeyvisual {
		background: url("../img/home/bg_a01_sp.jpg") no-repeat center center;
		background-size: cover;
		height: calc(100vh - 64px);
	}
}
#topKeyvisual img {
	display: block;
	width: 100%;
	max-width: 186px;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
}

/* news */
#news,
#newsButton img {
	transition: 400ms ease-out;
}
#news {
	flex-wrap: wrap;
	background-color: rgba(30,0,0,.9);
	width: 100%;
	padding: 10px 20px;
}
#newsArticle {
	max-width: 960px;
	margin: 0 auto;
	overflow: hidden;
}
#newsArticle article {
	padding-top: 0;
	padding-bottom: 20px;
}
#newsArticle h2 {
	max-width: none;
	font-weight: bold;
	padding: 0;
	border-bottom: 1px dotted #fff;
}
#newsArticle p {
	text-align: justify;
	margin-top: .3em;
}
#newsArticle a {
	color: #fff;
	text-decoration: underline;
	transition: .2s ease-out;
}
#newsArticle a:hover {
	color: #ff0;
}
#newsButton {
	max-width: 960px;
	padding: 5px 0;
	margin: 0 auto;
	border: 1px dotted rgba(255,255,255,.5);
	cursor: pointer;
}
#newsButton img {
	display: block;
	width: 22px;
	height: 11px;
	margin: 0 auto;
}
#news.closed #newsButton img {
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
}

/* contentsB */
.home #contentsB {
	background: url("../img/home/bg_b01.jpg") no-repeat center center;
	background-size: cover;
}
@media screen and (max-width: 640px) {
	.home #contentsB {
		background: url("../img/home/bg_b01_sp.jpg") no-repeat center center;
		background-size: cover;
	}
}
.home #contentsB > div {
	padding-top: 70px;
	padding-bottom: 50px;
	padding-left: 370px;
}
.home #contentsB h2 {
	width: 100%;
	max-width: 496px;
}
.home #contentsB p {
	font-size: 1.15rem;
}
.home #contentsB a,
.home #contentsB img {
	display: block;
	width: 100%;
}
.home #contentsB p a {
	max-width: 490px;
}
@media screen and (max-width: 640px) {
	.home #contentsB > div {
		padding-left: 20px;
	}
}

/* menuAnchor */
#menuAnchor li {
	padding: 100px 20px;
}
#menuAnchor a {
	max-width: 340px;
	margin: 0 auto;
}

/*-------------------------
concept
---------------------------*/
.concept main {
	padding: 130px 0;
}
@media screen and (max-width: 640px) {
	.concept main {
		background: url("../img/concept/bg_a01_sp.jpg") no-repeat left top;
		background-size: cover;
	}
}
.concept h2 {
	width: 214px;
	padding-right: 150px;
}
.concept h2+div {
	width: calc(100% - 214px);
}
.concept section {
	width: calc(100% - 260px);
}
.concept section+div {
	width: 260px;
	padding-left: 40px;
}
.concept .reverse section+div {
	padding-left: 0;
	padding-right: 40px;
}
.concept h3 {
	max-width: 266px;
}
@media screen and (max-width: 960px) {
	.concept h2 {
		width: 74px;
		padding-right: 30px;
	}
	.concept h2+div {
		width: calc(100% - 74px);
	}
}
@media screen and (max-width: 640px) {
	.concept section {
		width: 100%;
	}
	.concept section+div {
		width: 100%;
		padding-left: 0;
		margin-top: 30px;
	}
	.concept .reverse section+div {
		padding-right: 0;
	}
}

/*-------------------------
recommend
---------------------------*/
.recommend h3 {
	max-width: 266px;
	margin: 0 auto;
}
.recommend section dt {
	font-size: 1.25rem;
	font-weight: bold;
}
.recommend section dt a {
	margin-bottom: 1rem;
}
.recommend section dd {
	text-align: justify;
}

/*-------------------------
partyplan
---------------------------*/
/* contentsA */
.partyplan #contentsA .flex > div:nth-child(1) {
	width: calc(100% - 240px);
}
.partyplan #contentsA .flex > div:nth-child(2) {
	width: 220px;
	padding-left: 20px;
}
@media screen and (max-width: 640px) {
	.partyplan #contentsA .flex > div:nth-child(1) {
		width: 100%;
	}
	.partyplan #contentsA .flex > div:nth-child(2) {
		width: 100%;
		padding-left: 0;
		margin-top: 30px;
	}
}
.partyplan #contentsA dt {
	color: #ffbe00;
	font-size: 2rem;
	font-weight: bold;
	text-align: center;
	line-height: 1;
}
.partyplan #contentsA dt span {
	display: inline-block;
	font-size: 1.2rem;
	margin-left: -.5em;
}
.partyplan #contentsA dt+dd {
	text-align: center;
	margin-top: 1rem;
}
.partyplan #contentsA dd+dd {
	text-align: justify;
	margin-top: 1em;
}

/* contentsB */
.partyplan #contentsB h3 {
	max-width: 420px;
	padding: 0 20px;
	margin: 0 auto;
}
.partyplan #contentsB dt a {
	color: #ffbe00;
	font-size: 1.28rem;
	font-weight: bold;
	text-align: center;
}
.partyplan #contentsB dt a:hover {
	opacity: .8;
}
.partyplan #contentsB dt img {
	margin-bottom: 30px;
}
.partyplan #contentsB dd {
	max-width: 460px;
	text-align: justify;
	padding: 0 20px;
	margin: 20px auto 0;
}
@media screen and (max-width: 640px) {
	.partyplan #contentsB dl+dl {
		margin-top: 80px;
	}
}

/*-------------------------
aboutus
---------------------------*/
.aboutus article {
	padding-top: 160px;
}
.aboutus h2 {
	max-width: 442px;
	padding: 0 20px;
	margin: 0 auto;
}
.aboutus h2+dl {
	text-align: center;
	padding: 0 20px;
	margin: 2rem 0;
}
.aboutus h2+dl > * {
	display: inline-block;
	font-weight: bold;
}
.aboutus h2+dl dt {
	color: #ffbe00;
	font-size: 1.3rem;
}
.aboutus h2+dl dd {
	margin-left: 1rem;
}
.aboutus h2+dl dd a {
	color: #fff;
	font-size: 1.6rem;
}
@media screen and (max-width: 640px) {
	.aboutus h2+dl dd {
		margin-left: 0;
	}
}

/* shop information */
.shop-informaiton {
	width: calc(100% - 440px);
}
.shop-photo {
	width: 400px;
	padding-left: 40px;
}
.shop-photo li:first-child {
	width: 100%;
}
@media screen and (max-width: 860px) {
	.shop-informaiton {
		width: 100%;
	}
	.shop-photo {
		width: 100%;
		padding-left: 0;
		margin-top: 60px;
	}
}
.card dt {
	color: #ffbe00;
}
.card ul {
	margin-top: 1em;
}
.card li {
	display: inline-block;
	margin: 0 10px 5px 0;
}
.card img {
	width: 60px;
}

/*-------------------------
recruit
---------------------------*/
.recruit h3 img {
	max-width: 570px;
}

/*-------------------------
footer
---------------------------*/
/* information */
#information {
	background: url("../img/bg_footer.jpg") no-repeat center center;
	background-size: cover;
	padding: 60px 20px;
}
#information img {
	display: block;
	width: 100%;
}
#information div {
	max-width: 960px;
	padding-left: 480px;
	margin: 0 auto;
}
#information div > img {
	max-width: 260px;
	margin: 0 auto;
}
#information ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
#information li {
	margin-top: 40px;
}
#information li:nth-child(2n-1) {
	width: calc(100% - 200px);
}
#information li:nth-child(2n) {
	width: 200px;
	padding-left: 20px;
}
#information dl {
	font-family: 'Noto Serif JP', serif;
	font-weight: bold;
}
#information dt {
	font-size: 1.6rem;
}
#information dt:first-letter {
	color: #d80d18;
}
#information dd a {
	color: #fff;
}
#information dd a:hover {
	text-decoration: underline;
}
#information dt+dd a {
	font-size: 1.4rem;
}
#information dt+dd a:before {
	content: "TEL";
	display: inline-block;
	color: #d80d18;
	font-size: 1.1rem;
	margin-right: .3em;
}
#information dd+dd {
	margin-top: .5em;
}
@media screen and (max-width: 960px) {
	#information div {
		padding-left: 0;
	}
}
@media screen and (max-width: 640px) {
	#information li:nth-child(2n-1) {
		width: 100%;
	}
	#information li:nth-child(2n) {
		width: 100%;
		padding-left: 0;
		margin-top: 20px;
	}
}

/* footerNavi */
#footerNavi {
	background: url("../img/bg_pattern01.jpg") fixed;
	padding: 30px 20px 20px;
}
#footerNavi div:first-child a,
#footerNavi div:first-child img {
	display: block;
	width: 100%;
}
#footerNavi div:first-child a:hover {
	-webkit-transform: scale(1.05);
	transform: scale(1.05);
}
#footerNavi div:first-child {
	max-width: 740px;
	margin: 0 auto;
}
#footerNavi div:first-child > ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
#footerNavi div:first-child > ul > li {
	width: calc(50% - 88px);
	padding: 0 30px;
	border-left: 1px solid #40220f;
}
#footerNavi div:first-child > ul > li:nth-child(1) {
	width: 176px;
	padding: 0 60px 0 0;
	border: none;
}
#footerNavi li li a {
	padding: 7px 0;
}
@media screen and (max-width: 640px) {
	#footerNavi div:first-child > ul > li {
		width: 100%;
		padding: 0 30px;
		border-left: none;
	}
	#footerNavi div:first-child > ul > li:nth-child(1) {
		width: 176px;
		padding: 0 0 0 0;
		margin: 0 auto;
	}
}
#copy {
	text-align: center;
	margin-top: 30px;
}
#copy p {
	margin-right: 1em;
}
#copy p,
#copy a {
	display: inline-block;
}
#copy a:hover {
	color: #d80d18;
	text-decoration: underline;
}
#copy small,
#copy a {
	color: #000;
	font-family: 'Noto Serif JP', serif;
	font-size: 1rem;
}

/* takeout */
#takeout {
	max-width: 120px;
	position: fixed;
	right: 10px;
	bottom: 10px;
	opacity: .8;
	transition: 400ms ease-out;
	-webkit-transform: translateY(180px);
	transform: translateY(180px);
}
#takeout:hover {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}
@media screen and (max-width: 640px) {
	#takeout {
		max-width: 80px;
		opacity: 1;
		-webkit-transform: translateY(0);
		transform: translateY(0);
	}
}
#takeout a,
#takeout img {
	display: block;
	width: 100%;
}

/* covid-19 */
#covid-19 {
	background-color: rgba(0,0,0,.7);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	backdrop-filter: saturate(180%) blur(20px);
	width: 100vw;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 20;
	cursor: pointer;
}
#covid-19 img {
	display: block;
	max-width: 80%;
	height: 80%;
	object-fit: contain;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

/*-------------------------
popup
---------------------------*/
.popup {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 9999;
	opacity: 0;
	visibility: hidden;
	transition: .6s;
}
.popup.is-show {
	opacity: 1;
	visibility: visible;
}
.popup-inner {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	width: 80vw;
	max-width: 600px;
	padding: 50px;
	z-index: 2;
}
.popup-inner img {
	width: 100%;
}
.close-btn {
	position: absolute;
	right: 0;
	top: 10px;
	width: 50px;
	height: 50px;
	line-height: 50px;
	text-align: center;
	cursor: pointer;
}
.close-btn i {
	font-size: 30px;
	color: white;
}
.black-background {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,.8);
	z-index: 1;
	cursor: pointer;
}

@media screen and (max-width: 640px) {
	.popup-inner {
		width: 95vw;
	}
}

/* 営業日カレンダー */
.top-calendar-list {
	max-width: 350px;
	width: 100%;
	position: absolute;
	top: 20px;
	right: 20px;
}

@media screen and (max-width: 640px) {
	.top-calendar-list {
		max-width: 245px;
		top: 10px;
		right: 0;
	}
}

.top-calendar-list .list-item {
	display: flex;
	align-items: center;
	font-size: 18px;
	font-weight: bold;
	width: 100%;
	min-height: 60px;
	background-color: #000;
	padding-left: 80px;
	padding-right: 20px;
	position: relative;
	cursor: pointer;
}

@media screen and (max-width: 640px) {
	.top-calendar-list .list-item {
		font-size: 15px;
		min-height: 40px;
		padding-left: 55px;
	}
}

.top-calendar-list .list-item::before {
	content: '';
	display: block;
	width: 25px;
	height: 40px;
	background: url(../img/icon_calendar.svg) center / contain no-repeat;
	position: absolute;
	left: 30px;
}

@media screen and (max-width: 640px) {
	.top-calendar-list .list-item::before {
		width: 15px;
	}
}

.top-calendar-list .list-item:hover {
	color: #000;
	background-color: #fff;
}

.top-calendar-list .list-item:hover::before {
	filter: invert(100%);
}


.top-calendar-list .list-item + .list-item {
	margin-top: 20px;
}

@media screen and (max-width: 640px) {
	.top-calendar-list .list-item + .list-item {
		margin-top: 10px;
	}
}

.top-calendar-img {
	display: block;
	width: 100%;
	max-width: 600px;
	margin-inline: auto;
}

.top-calendar-text {
	font-size: 18px;
	margin-top: 10px;
}

.top-calendar-text span {
	color: #6699FF;
}

.modal {
	display: none;
	width: 100%;
	height: 100vh;
	position: fixed;
	inset: 0 auto auto 0;
	z-index: 201;
}
.modal--recruit {
	display: block;
}
.modal-bg {
	width: 100%;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.7);
	position: absolute;
	inset: 0 auto auto 0;
	z-index: 202;
  }
  
  /* Modal Content */
  .modal-content {
	width: 600px;
	position: absolute;
	inset: 50% auto auto 50%;
	translate: -50% -50%;
	z-index: 203;
  }
  @media screen and (max-width: 640px) {
	.modal-content {
	  width: 80vw;
	}
  }
  .modal-content--recruit {
	width: 450px;
  }
   @media screen and (max-width: 640px) {
	.modal-content--recruit {
	  width: 80vw;
	}
  }
  .modal-inner {
	width: 100%;
	min-height: 100px;
	max-height: 500px;
	background: #fff;
	padding: 30px;
	position: relative;
	overflow-x: hidden;
	overflow-y: auto;
  }
  
  /* Close Button */
  .btn_close {
	display: block;
	background-color: white;
	border-radius: 50%;
	width: 40px;
	height: 40px;
	color: black;
	text-align: center;
	font-size: 30px;
	text-decoration: none;
	line-height: 35px;
	position: absolute;
	inset: -50px 0 auto auto;
	z-index: 204;
}
/* ボタン */
.c-btn01 {
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	color: #232323;
	width: 100%;
	max-width: 300px;
	min-height: 60px;
	background-color: #fff;
	padding: 5px 15px;
	margin: 20px auto 0;
	position: relative;
}