@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@400;500;700&family=Zen+Kaku+Gothic+Antique:wght@400;500;700&display=swap');

/* ---------------------------------------
  基本情報
-----------------------------------------*/
/*
html,body{
	height: 100%;
}
*/
html {
	font-size: 62.5%;
	overflow-y: scroll;
}

*,
*:after,
*:before {
	box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
address,
time,
ul,
ol,
li,
dl,
dt,
dd,
table,
th,
td,
img,
figure,
figcaption,
form,
input,
button,
textarea,
select {
	margin: 0;
	padding: 0;
	border: none;
	line-height: 100%;
	list-style-type: none;
	font-style: normal;
	font-weight: 400;
	font-family: 'Shippori Mincho B1', serif;
	letter-spacing: 0.1em;
	font-feature-settings: "palt";
	word-wrap: break-word;
	overflow-wrap: break-word;
	-webkit-text-size-adjust: 100%;
}

input,
button,
textarea,
select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	border-radius: 0;
	resize: none;
	outline: none;
	background: none;
}

select::-ms-expand {
	display: none;
}

button:hover {
	cursor: pointer;
}

img,
object {
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

@media screen and (max-width: 768px) {
	img {
		width: 100%;
	}
}


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

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

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


/* base
--------------------------------*/

body {
	background-color: #f6f6f4;
	color: #000000;
	font-size: 1.0rem;
	text-align: left;
	min-width: 1280px;
}

main {
	display: block;
}

section {
	position: relative;
}

.wrap {
	width: 1200px;
	margin: 0 auto;
	position: relative;
}

p,
th,
td,
dt,
dd,
li,
form {
	font-size: 1.6rem;
	line-height: 2;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	line-height: 1.5;
}

.fade {
	transition: opacity 0.3s ease;
}

.fade:hover {
	opacity: 0.7;
	cursor: pointer;
}

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

.flex.reverse {
	flex-direction: row-reverse;
}

.left {
	float: left;
}

.right {
	float: right;
}

.tal {
	text-align: left;
}

.tar {
	text-align: right;
}

.tac {
	text-align: center;
}

.center {
	display: block;
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.bold,
strong {
	font-weight: bold;
	font-weight: 700;
}

.link_txt {
	text-decoration: underline;
}

.fixed {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}

/*font*/
.gothic {
	font-weight: 400;
	font-family: YakuHanJP, 'Zen Kaku Gothic Antique', sans-serif;
}

@media screen and (min-width: 769px) {
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}

	.fade {
		transition: opacity 0.3s ease;
	}

	.fade:hover {
		opacity: 0.8;
		cursor: pointer;
	}
}

@media screen and (max-width: 768px) {
	body {
		min-width: inherit;
	}

	.wrap {
		width: 84%;
	}

	p,
	th,
	td,
	dt,
	dd,
	li,
	form {
		font-size: 3.2vw;
	}

	.sp_block {
		display: block;
	}
}

/* ---------------------------------------
  scroll-animation
-----------------------------------------*/
.fadein {
	opacity: 0;
	transition: opacity 1s;
}

.scroll.is-show.fadein,
.scroll.is-show .fadein {
	opacity: 1;
}

.delay1 {
	transition-delay: .5s !important;
}

.delay2 {
	transition-delay: 1s !important;
}

.delay3 {
	transition-delay: 1.5s !important;
}

.delay4 {
	transition-delay: 2s !important;
}

.delay5 {
	transition-delay: 2.5s !important;
}

.delay6 {
	transition-delay: 3s !important;
}

.delay7 {
	transition-delay: 3.5s !important;
}

.delay8 {
	transition-delay: 4s !important;
}

.delay9 {
	transition-delay: 4.5s !important;
}

.delay10 {
	transition-delay: 5s !important;
}

.delay12 {
	transition-delay: 6s !important;
}

.delay14 {
	transition-delay: 7s !important;
}


/* ---------------------------------------
  ヘッダー
-----------------------------------------*/

#header {
	width: 100%;
	height: 100px;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1000;
}

#header.is-fixed {
	background-color: rgba(255, 255, 255, .7);
	position: fixed;
	left: 0;
	top: 0;
}

#header.fixed{
	background-color: #f6f6f4;
}

#header.fixed,
#header.navOpen {
	position: fixed;
	left: 0;
	top: 0;
}

#header .wrap {
	height: 100%;
	padding: 25px 10px 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

#header .h_logo {
	width: 131px;
}

#header .btnwrap {
	display: flex;
	align-items: center;
	flex-direction: column;
	margin-top: auto;
}

#header .btnwrap_inner {
	display: flex;
}

#header .btnwrap .english_btn a {
	font-size: 1.2rem;
	color: #fff;
	width: 195px;
	height: 28px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	right: 0;
	top: 0;
	border: 1px solid #fff;
	border-top: none;
	transition: .3s ease;
}

#header.is-fixed .btnwrap .english_btn a {
	color: #4d4d4d;
	border-color: #4d4d4d;
}

#header .btnwrap .english_btn a:hover {
	opacity: .6;
}

#header .btnwrap .reserve_btn {
	margin-right: 28px;
	margin-top: auto;
}

#header .btnwrap .reserve_btn a {
	display: block;
	width: 223px;
	text-align: center;
	color: #fff;
	font-size: 1.4rem;
	line-height: 1;
	padding: 12px 25px;
	background-color: rgba(159, 160, 160, .8);
	transition: .3s ease;
}

#header .menu-trigger {
	display: block;
	position: relative;
	width: 65px;
	height: 22px;
	height: 40px;
	cursor: pointer;
	z-index: 999;
	transition: .3s ease;
}

#header .menu-trigger span {
	display: inline-block;
	transition: all .4s;
	position: absolute;
	width: 49px;
	height: 1px;
	background-color: #9fa0a0;
}

#header .menu-trigger span:nth-of-type(1) {
	top: 10px;
	right: 0;
}

#header .menu-trigger span:nth-of-type(2) {
	top: 20px;
	left: 0;
	right: 0;
	margin: 0 auto;
}

#header .menu-trigger span:nth-of-type(3) {
	left: 0;
	top: 30px;
}

#header.navOpen .menu-trigger span:nth-of-type(1) {
	width: 59px;
	top: 20px;
	transform: rotate(-20deg) translateX(-3px);
}

#header.navOpen .menu-trigger span:nth-of-type(2) {
	opacity: 0;
}

#header.navOpen .menu-trigger span:nth-of-type(3) {
	width: 59px;
	top: 20px;
	transform: rotate(20deg) translateX(3px);
}

#header #header_menu {
	display: none;
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	max-height: 100%;
	overflow-y: auto;
	background-color: #f6f6f4;
}

#header .menuwrap {
	width: 100%;
	height: 100%;
	min-height: 100vh;
	padding: 100px 50px 70px;
}

#header .menuwrap .inner {
	width: 1200px;
	padding: 0 160px 0 0;
	margin: 0 auto;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
}

#header .menuwrap .logo {
	width: 210px;
	margin-top: auto;
	margin-bottom: auto;
}

#header .menuwrap .logo .copy {
	font-size: 1.5rem;
    letter-spacing: 0.05em;
    text-align: center;
	flex-direction: column;
	display: flex;
	margin-top: 0.2em;
}

#header .menuwrap .logo .copy span {
	margin-top: .4em;
    font-size: 1.025rem;
	letter-spacing: 0;
	font-weight: bold;
}

/*gnavi*/

#header .menuwrap .gnavi {
	width: 180px;
	margin-left: 60px;
}

#header .menuwrap .gnavi ul {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
}

#header .menuwrap .gnavi ul li {
	font-size: 1.7rem;
}

#header .menuwrap .gnavi ul li + li {
	margin-top: 26px;
}

#header .menuwrap .gnavi ul li a {
	display: inline-block;
	position: relative;
	padding-left: 30px;
	transition: .3s ease;
}

#header .menuwrap .gnavi ul li:not(.contact) a::before {
	content: "";
	width: 14px;
	height: 1px;
	background-color: #000;
	position: absolute;
	left: 0;
	top: 1em;
	transition: .3s ease;
}

#header .menuwrap .gnavi ul li.contact {
	margin-top: 38px;
}

#header .menuwrap .gnavi ul li.contact a {
	padding: 9px 22px;
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
}

#header .menuwrap .gnavi ul li.contact a::before,
#header .menuwrap .gnavi ul li.contact a::after {
	content: "";
	width: 1px;
	height: 0;
	background-color: #000;
	position: absolute;
	transition: .3s ease;
}

#header .menuwrap .gnavi ul li.contact a::before {
	left: 0;
	top: 0;
}

#header .menuwrap .gnavi ul li.contact a::after {
	right: 0;
	bottom: 0;
}

#header .menuwrap .gnavi ul li.contact a:hover::before,
#header .menuwrap .gnavi ul li.contact a:hover::after {
	height: 100%;
}

@media screen and (max-width: 768px) {
	#header .menuwrap .logo .copy {
		margin-top: 1vw;
	}
	#header .menuwrap .logo .copy span {
		margin-top: 0;
		font-size: 1.1rem;
	}
}

/*info*/
#header .menuwrap .info {
	width: 383px;
	margin-top: 8px;
}

#header .menuwrap .info .reserve_btn a,
#header .menuwrap .info .english_btn a {
	display: block;
	width: 100%;
	color: #fff;
	text-align: center;
	font-weight: 500;
	font-size: 1.5rem;
	line-height: 1.2;
	letter-spacing: 0.24em;
	padding: 21px 25px;
	background-color: #000;
	border: 1px solid #000;
	transition: .3s ease;
}

#header .menuwrap .info .english_btn {
	margin-top: 18px;
}

#header .menuwrap .info .english_btn a {
	background: none;
	color: #000;
}

#header .menuwrap .info .reserve {
	margin-top: 48px;
	text-align: center;
	border-bottom: 1px solid #000;
}

#header .menuwrap .info .reserve dt.ttl {
	font-size: 1.8rem;
	letter-spacing: 0;
	padding: 5px 10px;
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
}

#header .menuwrap .info .reserve dd {
	padding: 8px 0 20px;
}

#header .menuwrap .info .reserve .tel {
	font-weight: 500;
	font-size: 3.74rem;
	line-height: 1;
	letter-spacing: 0.1em;
}

#header .menuwrap .info .reserve .tel a {
	background: url(../img/common/tel_num.svg) no-repeat center top;
    background-size: 67%;
    height: 0;
    padding-top: 47px;
    overflow: hidden;
    display: block;
}

#header .menuwrap .info .reserve .tel .ruby {
	position: relative;
	display: inline-block;
	line-height: 1;
	padding-top: 1.3rem;
}

#header .menuwrap .info .reserve .tel .ruby::before {
	content: "ふ～ふい～な";
	display: block;
	width: 100%;
	font-size: 1.3rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-align: center;
	text-indent: -0.2em;
	position: absolute;
	left: 0;
	top: 0;
}

#header .menuwrap .info .reserve .tel .gothic {
	display: block;
	font-size: 1.3rem;
	letter-spacing: 0.1em;
	margin-top: 10px;
}

#header .menuwrap .info .reserve .time {
	font-weight: 500;
	font-size: 1.4rem;
	line-height: 1.5;
	margin-top: 10px;
}

#header .menuwrap .info .reserve .address {
	font-size: 1.5rem;
	margin-top: .4em;
}

#header .menuwrap .info .allergy_btn {
	margin-top: 38px;
}

#header .menuwrap .info .allergy_btn a {
	display: block;
	width: 100%;
	text-align: center;
	font-weight: 500;
	font-size: 1.4rem;
	line-height: 1.2;
	letter-spacing: 0.24em;
	padding: 21px 25px;
	background-color: #fff;
	border: 1px solid #fff;
	transition: .3s ease;
}

@media screen and (min-width: 769px) {

	#header .menuwrap .logo a:hover {
		opacity: .5;
	}

	#header .reserve_btn a:hover {
		background-color: rgba(159, 160, 160, .6);
	}

	#header .menuwrap .gnavi ul li:not(.contact) a:hover {
		padding-left: 34px;
	}

	#header .menuwrap .gnavi ul li:not(.contact) a:hover::before {
		width: 18px;
	}

	#header .menuwrap .info .reserve_btn a:hover {
		background-color: #4c4948;
		border-color: #4c4948;
	}

	#header .menuwrap .info .english_btn a:hover {
		background-color: #a6a6a6;
		border-color: #a6a6a6;
		color: #fff;
	}

	#header .menuwrap .info .allergy_btn a:hover {
		border: 1px solid #000;
		background: none;
	}
}

@media screen and (max-width: 768px) {
	#header {
		height: 50px;
	}
	
	#header.is-fixed{
		background-color: #fff;
	}

	#header .wrap {
		width: 100%;
		padding: 0 3vw;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	#header .h_logo {
		width: 72px;
	}

	#header .btnwrap {
		margin-top: initial;
	}

	#header .btnwrap .reserve_btn {
		margin-right: 14px;
	}

	#header .btnwrap .reserve_btn a {
		width: 149px;
		font-size: 1rem;
		padding: 8px 10px;
	}

	#header .menu-trigger {
		width: 36px;
		height: 26px;
	}

	#header .menu-trigger span {
		width: 27px;
	}

	#header .menu-trigger span:nth-of-type(1) {
		top: 7px;
	}

	#header .menu-trigger span:nth-of-type(2) {
		top: 13px;
	}

	#header .menu-trigger span:nth-of-type(3) {
		top: 19px;
	}

	#header.navOpen .menu-trigger span:nth-of-type(1) {
		width: 30px;
		top: 13px;
		transform: rotate(-20deg) translateX(-3px);
	}

	#header.navOpen .menu-trigger span:nth-of-type(3) {
		width: 30px;
		top: 13px;
		transform: rotate(20deg) translateX(3px);
	}

	#header .menuwrap {
		padding: 50px 8% 12vw;
	}

	#header .menuwrap .inner {
		width: 100%;
		padding: 5vw 0 0;
		display: block;
	}

	#header .menuwrap .logo {
		width: 55.8vw;
		margin: 0 auto 18vw;
	}

	/*gnavi*/

	#header .menuwrap .gnavi {
		width: 100%;
		margin-left: 0;
	}

	#header .menuwrap .gnavi ul {
		display: flex;
		flex-wrap: wrap;
		flex-direction: row;
		justify-content: space-between;
	}

	#header .menuwrap .gnavi ul li {
		min-width: 45%;
		font-size: 4vw;
		margin: 0 0 5.6vw;
	}

	#header .menuwrap .gnavi ul li:nth-child(1) {
		order: 1;
	}

	#header .menuwrap .gnavi ul li:nth-child(2) {
		order: 3;
	}

	#header .menuwrap .gnavi ul li:nth-child(3) {
		order: 5;
	}

	#header .menuwrap .gnavi ul li:nth-child(4) {
		order: 7;
	}

	#header .menuwrap .gnavi ul li:nth-child(5) {
		order: 2;
	}

	#header .menuwrap .gnavi ul li:nth-child(6) {
		order: 4;
	}

	#header .menuwrap .gnavi ul li:nth-child(7) {
		order: 6;
	}

	#header .menuwrap .gnavi ul li:nth-child(8) {
		order: 8;
	}

	#header .menuwrap .gnavi ul li + li {
		margin-top: 0;
	}

	#header .menuwrap .gnavi ul li a {
		padding-left: 7vw;
	}

	#header .menuwrap .gnavi ul li:not(.contact) a::before {
		width: 3.33vw;
	}

	#header .menuwrap .gnavi ul li.contact {
		margin-top: 4vw;
		width: 100%;
	}

	#header .menuwrap .gnavi ul li.contact a {
		display: block;
		text-align: center;
		padding: 1.8vw 4.4vw;
	}

	/*info*/
	#header .menuwrap .info {
		width: 100%;
		margin-top: 10vw;
	}

	#header .menuwrap .info .reserve_btn a {
		font-size: 3.47vw;
		padding: 6.25vw 3vw;
	}

	#header .menuwrap .info .reserve {
		margin-top: 12vw;
	}

	#header .menuwrap .info .reserve dt.ttl {
		font-size: 3.73vw;
		padding: 2vw;
	}

	#header .menuwrap .info .reserve dd {
		padding: 7vw 0 6vw;
	}

	#header .menuwrap .info .reserve .tel {
		font-size: 8.23vw;
	}

	#header .menuwrap .info .reserve .tel .ruby {
		padding-top: 2.93vw;
	}

	#header .menuwrap .info .reserve .tel .ruby::before {
		font-size: 2.93vw;
	}

	#header .menuwrap .info .reserve .tel .gothic {
		font-size: 2.93vw;
		margin-top: 3vw;
	}

	#header .menuwrap .info .reserve .time {
		font-size: 3.2vw;
		margin-top: 2vw;
	}

	#header .menuwrap .info .reserve .address {
		font-size: 3.2vw;
	}

	#header .menuwrap .info .allergy_btn {
		margin-top: 12vw;
	}

	#header .menuwrap .info .allergy_btn a {
		font-size: 3.47vw;
		padding: 6vw 3vw;
	}
}


/* ---------------------------------------
  common
-----------------------------------------*/


/*btn*/
.btn a {
	position: relative;
	display: inline-block;
	font-size: 1.4rem;
	line-height: 1;
	padding: 0 4.5em 1.2em 1.2em;
	background: url(../img/common/btn_bg.svg) no-repeat left bottom;
}

.btn a::before {
	content: "";
	width: 2em;
	height: .4em;
	border-right: 1px solid #000;
	border-bottom: 1px solid #000;
	position: absolute;
	top: .3em;
	right: 1.2em;
	transform: skewx(45deg);
}

@media screen and (min-width: 769px) {

	.btn a::before {
		animation: btn_arw_anime1 0.6s ease-in-out forwards;
	}

	.btn a:hover::before {
		animation: btn_arw_anime2 0.6s ease-in-out forwards;
	}
}

@media screen and (max-width: 768px) {
	.btn a {
		font-size: 3.2vw;
		background-size: auto .72vw;
	}
}


@keyframes btn_arw_anime1 {
	30% {
		transform: translateX(-80%) skewx(45deg);
		opacity: 0;
	}

	50% {
		transform: translateX(50%) skewx(45deg);
		opacity: 0;
	}

	70% {
		opacity: 1;
	}
}


@keyframes btn_arw_anime2 {
	30% {
		opacity: 1;
	}

	50% {
		transform: translateX(50%) skewx(45deg);
		opacity: 0;
	}

	70% {
		transform: translateX(-80%) skewx(45deg);
		opacity: 0;
	}
}

/* mv
--------------------------------*/
#sec_mv {
	padding-bottom: 75px;
	margin-bottom: 25px;
}

#sec_mv .mv_img {
	height: 650px;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center bottom;
}

#sec_mv .mv_img a {
	display: block;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

#sec_mv .pagescroll {
	width: 1px;
	height: 150px;
	background-color: #9fa0a0;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0 auto;
	overflow: hidden;
	z-index: 3;
}

#sec_mv .pagescroll::before {
	content: "";
	width: 100%;
	height: 56px;
	background-color: #cccccc;
	position: absolute;
	left: 0;
	top: 0;
	animation: pagescroll_anime 2s ease infinite;
}

#sec_mv .pagettl,
#sec_pagettl .pagettl {
	writing-mode: vertical-rl;
	font-size: 3rem;
	letter-spacing: 0.06em;
	margin: 0 auto;
}

#sec_mv .mv_img .pagettl {
	color: #fff;
}

#sec_pagettl {
	height: 350px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 100px 0 40px;
}

@media screen and (min-width: 769px) {}

@media screen and (max-width: 768px) {
	#sec_mv {
		padding-bottom: 10vw;
		margin-bottom: 0;
	}

	#sec_mv .mv_img {
		height: 133.333vw;
		padding-bottom: 18vw;
	}

	#sec_mv .pagescroll {
		height: 20vw;
	}

	#sec_mv .pagescroll::before {
		height: 7.4vw;
		animation: pagescroll_anime_sp 2s ease infinite;
	}

	#sec_mv .pagettl,
	#sec_pagettl .pagettl {
		font-size: 5.333vw;
	}

	#sec_pagettl {
		height: 75vw;
		padding: 50px 0 0;
	}
}

@keyframes pagescroll_anime {
	0% {
		top: -56px;
	}

	100% {
		top: 100%;
	}
}


@keyframes pagescroll_anime_sp {
	0% {
		top: -7.4vw;
	}

	100% {
		top: 100%;
	}
}


/* reserve
--------------------------------*/

#sec_reserve {
	padding: 0 0 150px;
}

#sec_reserve .wrap {
	width: 870px;
}

#sec_reserve .secttl {
	position: relative;
	text-align: center;
	font-size: 2.2rem;
	letter-spacing: 0.16em;
	margin-bottom: 45px;
}

#sec_reserve .secttl .line {
	position: relative;
	display: block;
	width: 40px;
	height: 1px;
	background-color: #000;
	margin: 30px auto 5px;
}

#sec_reserve .secttl .line::before,
#sec_reserve .secttl .line::after {
	content: "";
	width: 40px;
	height: 1px;
	background-color: #000;
	display: inline-block;
	position: absolute;
}

#sec_reserve .secttl .line::before {
	bottom: -5px;
	left: -50px;
}

#sec_reserve .secttl .line::after {
	top: -5px;
	right: -50px;
}

#sec_reserve .reservation {
	padding: 50px 185px;
	background: #fff;
}

#sec_reserve .reservation form *,
#ui-datepicker-div * {
	font-weight: 500;
	font-family: 'Zen Kaku Gothic Antique', sans-serif;
}

#sec_reserve .reservation .txt_label {
	font-size: 1.4rem;
	margin-bottom: .5em;
}

#sec_reserve .reservation .box_reserve01 {
	margin-bottom: 32px;
}

#sec_reserve .reservation .box_reserve01 .box_input {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	justify-content: space-between;
}

#sec_reserve .reservation .box_reserve01 .box_input input[type="text"] {
	width: 400px;
	height: 50px;
	line-height: 50px;
	padding: 0 18px;
	font-size: 2.0rem;
	color: #330014;
	background-color: #fff;
	border: 1px solid #C9CACA;
}

#sec_reserve .reservation .box_reserve01 .box_input .ui-datepicker-trigger {
	width: 94px;
	height: 50px;
	border: 1px solid #C9CACA;
	background: #000 url(../img/common/btn_calendar.svg) no-repeat center;
	cursor: pointer;
	transition: .3s ease;
}

#sec_reserve .reservation .box_reserve02 {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	justify-content: space-between;
	width: 100%;
	margin: 0 auto 53px;
}

#sec_reserve .reservation .box_reserve02 .item_reserve {
	width: 156px;
}

#sec_reserve .reservation .box_reserve02 .cover_select {
	position: relative;
	height: 50px;
	background-color: #fff;
	border: 1px solid #C9CACA;
}

#sec_reserve .reservation .box_reserve02 .cover_select select {
	width: 100%;
	height: 50px;
	padding: 0 1em;
	line-height: 50px;
	font-size: 1.4rem;
	color: #000;
	cursor: pointer;
	text-overflow: ellipsis;
}


#sec_reserve .reservation .box_reserve02 .cover_select option {
	font-size: 2.0rem;
	color: #000;
}

#sec_reserve .reservation .box_reserve02 .cover_select:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 12px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 5px 0 5px;
	border-color: #808080 transparent transparent transparent;
	transform: translateY(-50%);
}

#sec_reserve .reservation .box_btn {
	width: 500px;
	margin: 0 auto 20px;
}

#sec_reserve .reservation .box_btn .btn_search {
	width: 100%;
	height: 64px;
	color: #fff;
	font-size: 1.8rem;
	letter-spacing: 0.24em;
	white-space: nowrap;
	overflow: hidden;
	background-color: #000;
	transition: .3s ease;
	cursor: pointer;
}

#sec_reserve .reservation .txt_att02 {
	text-align: center;
}

#sec_reserve .reservation .txt_att02 a {
	font-size: 1.5rem;
	transition: .3s ease;
}

#sec_reserve .plan_btn {
	margin-top: 54px;
}

#sec_reserve .plan_btn a {
	width: 100%;
	height: 80px;
	font-weight: 500;
	color: #fff;
	font-size: 1.8rem;
	letter-spacing: 0.24em;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	background: url(../img/common/ico_blank.svg) no-repeat right 36px center / 18px auto;
	background-color: #000;
	padding: 0 90px;
	transition: .3s ease;
}

#ui-datepicker-div {
	width: 480px;
}

#sec_reserve .movie {
	margin: 145px auto 0;
}

#sec_reserve .movie_wrap {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

#sec_reserve .movie_wrap iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
}

@media screen and (min-width: 769px) {

	#sec_reserve .reservation .box_reserve01 .box_input .ui-datepicker-trigger:hover,
	#sec_reserve .reservation .box_btn .btn_search:hover {
		background-color: #4c4948;
	}

	#sec_reserve .reservation .txt_att02 a:hover {
		color: #9fa0a0;
	}

	#sec_reserve .plan_btn a:hover {
		background-color: #4c4948;
	}
}

@media screen and (max-width: 768px) {
	#sec_reserve {
		padding: 0 0 20vw;
	}

	#sec_reserve .wrap {
		width: 100%;
	}

	#sec_reserve .secttl {
		font-size: 4.27vw;
		margin-bottom: 10vw;
	}

	#sec_reserve .secttl .line {
		width: 8vw;
		margin: 6vw auto 1vw;
	}

	#sec_reserve .secttl .line::before,
	#sec_reserve .secttl .line::after {
		width: 8vw;
	}

	#sec_reserve .secttl .line::before {
		bottom: -1vw;
		left: -10vw;
	}

	#sec_reserve .secttl .line::after {
		top: -1vw;
		right: -10vw;
	}

	#sec_reserve .reservation {
		padding: 10vw 8vw;
	}

	#sec_reserve .reservation .txt_label {
		font-size: 3.2vw;
	}

	#sec_reserve .reservation .box_reserve01 {
		margin-bottom: 6vw;
	}

	#sec_reserve .reservation .box_reserve01 .box_input input[type="text"] {
		width: 65.33vw;
		height: 9.33vw;
		line-height: 9.33vw;
		padding: 0 3vw;
		font-size: 4vw;
	}

	#sec_reserve .reservation .box_reserve01 .box_input .ui-datepicker-trigger {
		width: 17.33vw;
		height: 9.33vw;
		background-size: 4.8vw auto;
	}

	#sec_reserve .reservation .box_reserve02 {
		margin: 0 auto 10vw;
	}

	#sec_reserve .reservation .box_reserve02 .item_reserve {
		width: 26vw;
	}

	#sec_reserve .reservation .box_reserve02 .cover_select {
		height: 9.33vw;
	}

	#sec_reserve .reservation .box_reserve02 .cover_select select {
		width: 100%;
		height: 9.33vw;
		padding: 0 3vw;
		line-height: 9.33vw;
		font-size: 2.93vw;
	}


	#sec_reserve .reservation .box_reserve02 .cover_select option {
		font-size: 4vw;
	}

	#sec_reserve .reservation .box_reserve02 .cover_select:after {
		right: 2vw;
		border-width: 1.6vw 1vw 0 1vw;
	}

	#sec_reserve .reservation .box_btn {
		width: 100%;
		margin: 0 auto 9vw;
	}

	#sec_reserve .reservation .box_btn .btn_search {
		width: 100%;
		height: 16.67vw;
		font-size: 3.47vw;
	}

	#sec_reserve .reservation .txt_att02 a {
		font-size: 3.2vw;
	}

	#sec_reserve .plan_btn {
		width: 84vw;
		margin: 10vw auto 0;
	}

	#sec_reserve .plan_btn a {
		height: 16.67vw;
		font-size: 3.47vw;
		background: url(../img/common/ico_blank.svg) no-repeat right 5vw center / 3.6vw auto;
		background-color: #000;
		padding: 0 12vw;
	}

	#ui-datepicker-div {
		width: 84vw;
	}

	#sec_reserve .movie {
		margin: 20vw auto 0;
	}
}


/*pagetop*/
#pagetop {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 10;
}

#pagetop a {
	position: relative;
	display: block;
	writing-mode: vertical-rl;
	color: #9fa0a0;
	font-size: 1.4rem;
	line-height: 1;
	letter-spacing: 0.15em;
	padding: 3.2em 0 .5em 1.15em;
	background: url(../img/common/pagetop_bg.svg) no-repeat left top;
}

#pagetop a::before {
	content: "";
	width: .4em;
	height: 2em;
	border-left: 1px solid #9fa0a0;
	border-top: 1px solid #9fa0a0;
	position: absolute;
	top: .5em;
	right: .3em;
	transform: skewY(45deg);
}

@media screen and (min-width: 769px) {
	#pagetop a::before {
		animation: pagetop_arw_anime1 0.6s ease-in-out forwards;
	}

	#pagetop a:hover::before {
		animation: pagetop_arw_anime2 0.6s ease-in-out forwards;
	}
}

@media screen and (max-width: 768px) {
	#pagetop {
		width: 6vw;
		right: 1vw;
		bottom: 3vw;
	}

	#pagetop a {
		font-size: 2.8vw;
		background-size: .72vw auto;
	}
}

@keyframes pagetop_arw_anime1 {
	30% {
		transform: translateY(-50%) skewY(45deg);
		opacity: 0;
	}

	50% {
		transform: translateY(30%) skewY(45deg);
		opacity: 0;
	}

	70% {
		opacity: 1;
	}
}

@keyframes pagetop_arw_anime2 {
	30% {
		opacity: 1;
	}

	50% {
		transform: translateY(30%) skewY(45deg);
		opacity: 0;
	}

	70% {
		transform: translateY(-50%) skewY(45deg);
		opacity: 0;
	}
}

/* ---------------------------------------
  フッター
-----------------------------------------*/

#footer .wrap {
	padding: 40px 0 60px;
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: center;
	background: url(../img/common/footer_bg.svg) no-repeat left top;
}

#footer .logowrap {
	padding: 0 48px;
	display: flex;
    flex-direction: column;
    align-items: center;
}

#footer .logo {
	margin-left: -10px;
	margin-bottom: .5em;
}

#footer .logo a {
	height: 0;
    background: url(../img/common/logo_footer.svg) no-repeat center top;
    overflow: hidden;
	background-size: contain;
    padding-top: 160px;
    display: block;
    width: 208px;
}

#footer .copy {
	font-weight: bold;
	text-align: center;
    font-size: 1.1rem;
    letter-spacing: 0.1em;
}

#footer .copy strong {
	font-size: 1.85rem;
	line-height: 1.1;
	font-weight: 500;
}

#footer .copy strong small {
    font-size:1.33rem;
    /* letter-spacing: 0.3em; */
}

#footer .info {
	display: flex;
	flex-direction: row-reverse;
}

#footer .info > * {
	position: relative;
}

#footer .info .reserve {
    text-align: center;
    padding: 0px 0px 0 50px;
    margin-left: 64px;
    border-left: 1px solid #000;
}

#footer .info .reserve dt.ttl {
	font-size: 1.8rem;
	letter-spacing: 0;
	margin-top: -.5em;
}

#footer .info .reserve dd {
	padding: 12px 0 0;
}

#footer .info .reserve .tel {
	font-weight: 500;
	font-size: 3.74rem;
	line-height: 1;
	letter-spacing: 0.1em;
}

#footer .info .reserve .tel a {
	display: block;
	height: 0;
	overflow: hidden;
	background: url(../img/common/tel_num.svg) no-repeat center top;
	padding-top: 46px;
}

#footer .info .reserve .tel .ruby {
	position: relative;
	display: inline-block;
	line-height: 1;
	padding-top: 1.3rem;
}

#footer .info .reserve .tel .ruby::before {
	content: "ふ～ふい～な";
	display: block;
	width: 100%;
	font-size: 1.3rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-align: center;
	text-indent: -0.2em;
	position: absolute;
	left: 0;
	top: 0;
}

#footer .info .reserve .tel .gothic {
	display: block;
	font-size: 1.3rem;
	letter-spacing: 0.1em;
	margin-top: 10px;
}

#footer .info .reserve .time {
	font-weight: 500;
	font-size: 1.4rem;
	line-height: 1.5;
	margin-top: 10px;
}

#footer .info .address {
	font-size: 1.5rem;
	margin-top: -.5em;
}

#footer .info .address a {
	font-size: 1.3rem;
	transition: .3s ease;
}

#footer .copyright {
	font-size: 1.1rem;
	line-height: 1;
	position: absolute;
	left: 0;
	bottom: 0;
}

#footer .link_corp a {
	font-size: 1.3rem;
}

@media screen and (min-width: 769px) {
	#footer .info .address a:hover {
		color: #9fa0a0;
	}
}

@media screen and (max-width: 768px) {
	#footer .wrap {
		padding: 9vw 0 0;
		display: block;
		background-size: auto .8vw;
	}

	#footer .logowrap {
		padding: 0;
		margin-top: auto;
		margin-bottom: 8vw;
	}

	#footer .logo a {
		width: 48.8vw;
		margin: 10vw auto 0;
		padding-top: 33vw;
	}

	#footer .copy {
		font-size: 2.4vw;
	}

	#footer .info {
		display: block;
	}

	#footer .info .reserve {
		padding: 0 0 10vw;
		margin-left: 0;
		border-left: none;
		border-bottom: 1px solid #000;
	}

	#footer .info .reserve dt.ttl {
		font-size: 3.73vw;
		margin-top: 0;
	}

	#footer .info .reserve dd {
		padding: 2vw 0 0;
	}

	#footer .info .reserve .tel {
		font-size: 8.23vw;
	}

	#footer .info .reserve .tel .ruby {
		padding-top: 2.93vw;
	}

	#footer .info .reserve .tel .ruby::before {
		font-size: 2.93vw;
	}

	#footer .info .reserve .tel .gothic {
		font-size: 2.93vw;
		margin-top: 3vw;
	}

	#footer .info .reserve .time {
		font-size: 3.2vw;
		margin-top: 2vw;
	}

	#footer .info .address {
		font-size: 3.2vw;
		text-align: center;
		margin-top: 10vw;
	}

	#footer .link_corp a,
	#footer .info .address a {
		font-size: 3.2vw;
	}

	#footer .link_corp {
		text-align: center;
		margin-top: 3vw;
	}

	#footer .link_corp a {
		text-decoration: underline;
	}

	#footer .copyright {
		position: static;
		text-align: center;
		font-size: 2.4vw;
		padding: 2vw 0 4vw;
	}
	#footer .info .reserve .tel a {
		padding-top: 12vw;
    	background-size: contain;
	}
}


/* ---------------------------------------
  clearfix
-----------------------------------------*/

.cf:after {
	content: ".";
	display: block;
	height: 0;
	font-size: 0;
	clear: both;
	visibility: hidden;
}

.cf {
	display: inline-block;
}


/* Hides from IE Mac */

* html .cf {
	height: 1%;
}

.cf {
	display: block;
}


/* End Hack */