@import url('https://fonts.googleapis.com/css2?family=Marcellus&display=swap');

body{
	font-family: "hiragino-kaku-gothic-pron", sans-serif;
	font-weight:300;
}

.n2-section-smartslider[data-ssid="1"]{
display:none;
}

body.home #main{
/*	background-color:#d9d5cf!important;*/
}

body.page #main{
	padding-top:7.5rem;
}

body.single #main,
body.blog #main,
body.archive #main{
	padding:0!important;
	margin-top:0!important;
	border-right:0px!important;
	border-left:0px!important;
	width:100%!important;
	flex-basis:100%!important;
	max-width:100%!important;
}

body.home main#main{
	padding:0!important;
}

body.home main#main .customify-container{
	padding-right:0!important;
	padding-left:0!important;
}

main#main > .container{
	width:465px;
	max-width:100%;
	margin: 4.5rem auto 0 auto;
	background-color:#d9d5cf!important;
	overflow-x:clip;
	padding-top:0;
	padding-bottom:0;
}

main#main > .container > div{

}

footer > .container{
	width:465px!important;
	max-width:100%!important;
	margin: 0 auto;
}

footer{

	margin-right:auto;
	margin-left:auto;
/*	margin-bottom:4.5rem;*/

}

@media screen and (max-width:768px){
	main#main > .container{
		width:100%;
		margin: 0rem auto;
	}
	footer{
		width:100%;
		margin-bottom:0;
	}
}

header{
	position:fixed!important;
	width:100%;
	z-index:1;
}

footer{
	background-color:#CCC7C0;
	padding:2.5rem 1.5rem;
}

footer .footer__copyright{
	text-align:center;
	font-family: "Marcellus", serif;
	margin:0 0 1.5rem;
}

footer .footer__nav{
	list-style:none;
	margin:0;
	padding:0;
}

footer .footer__nav li a{
	display:block;
	padding:0.5rem 0;
	font-size:0.9rem;
	color:#555;
}



/* ------------------------------------------------------------
 * Home Hero
 * ------------------------------------------------------------ */

.home#hero{
	position:relative;
}

.home#hero video{
/*	object-fit:cover;
	height:100vh;*/
	width:100%;
	display:block;
}

a.scroll-down{
  display: inline-block;
  position: absolute;
  left: 0.5rem;
  bottom: 0;
  padding: 10px 10px 110px;
  overflow: hidden;
	color:#fff;
  font-size: 14px;
	font-family: "Marcellus", serif;
  line-height: 1;
  letter-spacing: .05em;
  text-decoration: none;
  writing-mode: vertical-lr;
}


a.scroll-down::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 1px;
  height: 100px;
  background: rgba(255,255,255,0.4);
  animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes sdl {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

.hero__button-reservation{
	display:inline-block;
	position:absolute;
	bottom:2.5rem;
	right:0;
	background-color:#555;
	color:#fff;
	font-family: "Marcellus", serif;
	border-top-left-radius:100vh;
	border-bottom-left-radius:100vh;
	padding:0.75rem 1.5rem;
	line-height:1;
	text-transform:uppercase;
}



/* ------------------------------------------------------------
 * Gradient effect
 * ------------------------------------------------------------ */

.mask__animation--img {
  mask-image: linear-gradient(160deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.5) 45%, rgba(0, 0, 0, 0) 85%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-image: linear-gradient(160deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.5) 45%, rgba(0, 0, 0, 0) 85%, rgba(0, 0, 0, 0) 100%);
  mask-size: 300% 300%;
  -webkit-mask-size: 300% 300%;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: 160% 160%;
  -webkit-mask-position: 160% 160%;
}

.mask__animation--img.is-show {
animation: mask-animation 1.5s linear forwards;
}

@keyframes mask-animation {
0% {
mask-position: 160% 160%; 
-webkit-mask-position: 160% 160%;
}
100% {
mask-position: 0 0; 
-webkit-mask-position: 0 0; 
}
}

/* ------------------------------------------------------------
 * Inview
 * ------------------------------------------------------------ */

.inview{
	transition:all 0.7s cubic-bezier(0.45, 0, 0.55, 1) ;
}

.inview.delay025{
	transition-delay:0.25s;
}
.inview.delay050{
	transition-delay:0.5s;
}
.inview.delay075{
	transition-delay:0.75s;
}
.inview.delay100{
	transition-delay:1s;
}
.inview.delay125{
	transition-delay:1.25s;
}
.inview.delay150{
	transition-delay:1.5s;
}
.inview.delay175{
	transition-delay:1.75s;
}
.inview.delay200{
	transition-delay:2s;
}
.inview.delay225{
	transition-delay:2.25s;
}
.inview.delay250{
	transition-delay:2.5s;
}
.inview.delay275{
	transition-delay:2.75s;
}
.inview.delay300{
	transition-delay:3s;
}


.inview{
	opacity:1;
}

.inview.fade-up{
	opacity:0;
	transform:translate(0, 3.5rem);
}

.inview.is-show.fade-up{
	transform:translate(0, 0);
	opacity:1;
}

.inview.fade-right{
	opacity:0;
	transform:translate(3.5rem, 0);
}

.inview.is-show.fade-right{
	opacity:1;
	transform:translate(0, 0);
}

/* ------------------------------------------------------------
 * Header
 * ------------------------------------------------------------ */

.header__container{
	padding: 1.0rem 1.5rem;
	display:flex;
	justify-content:space-between;
	align-items:center;
/*	width:1200px;*/
	max-width:100%;
	margin:0 auto;
}

.header__logo{
	width:100px;
	position:relative;
	z-index:9999;
	margin:0;
	line-height:0;
}

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

/* ------------------------------------------------------------
 * Navigation
 * ------------------------------------------------------------ */
@media screen and (min-width: 991px) {
	.hamburger{
		display:none;
	}
}



.builder-header-html-item.item--html{
	display:flex;
	align-items:center;
}

#hamburger{
	height:46px;
	width:46px;
	cursor:pointer;
	position:relative;
	z-index:9999999;
	transition:all 0.3s ease;
	opacity:1;
	background-color:transparent;
	border-radius:100vh;
}



#hamburger span{
	position:absolute;
	display:inline-block;
	width:24px;
	height:2px;
	background-color:#777;
	top:0;
	left:11px;

}

#hamburger span:nth-child(2){
	width:18px;

}

#hamburger:hover span:nth-child(2){
	width:24px;

}

body.home #hamburger span{
	background-color:#777;
}

#hamburger .hamburger__inner{
animation-name: rotateInfinite;
animation-fill-mode:backwards;
animation-duration:9s;
animation-iteration-count:infinite;
animation-timing-function:linear;
animation-delay: 0s;
animation-direction:normal;
}

@keyframes rotateInfinite{
  0% {
    transform:rotate(0);
  }

  100% {
    transform:rotate(360deg);
  }
}

#hamburger:not(.is-active) span{
	transition:left 0.3s ease 0.8s, opacity 0.3s ease 0.8s, top 0.3s ease 0.6s, transform 0.3s ease, background-color 0.3s ease 0.4s, width 0.3s ease;

}
#hamburger.is-active span{
	transition:left 0.3s ease, opacity 0.3s ease, top 0.3s ease 0.15s, transform 0.3s ease 0.6s, background-color 0.3s ease 0.4s, width 0.3s ease;
	transform:scale(1);
}

#hamburger span:nth-child(1){
	top:38%;
}

#hamburger span:nth-child(2){
	top:62%;
}

#hamburger.is-active span:nth-child(1){
	top:50%;
	transform:rotate(45deg);
}

#hamburger.is-active span:nth-child(2){
	top:50%;
	transform: rotate(-45deg);
	width:24px;
}


nav#drawer{
	position:fixed;
	opacity:0;
	pointer-events:none;
	top:0;
	left:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:flex-start;
	z-index:999;
	width:100vw;
	height:100vh;
	background-color:rgba(217, 213, 207,1);
	color:rgba(239, 25, 99,1);
	transform:scale(1.05);
	transition: all 0.25s ease 0.1s;
/*	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);*/
	padding-top:5.5rem;
}

nav#drawer.is-active{
	transform:scale(1);
	opacity:1;
	pointer-events:auto;
	transition: all 0.4s ease 0.4s;
}

nav#drawer .global-nav a{
	color:#555;
	text-decoration:none;
	font-family: "Marcellus", serif;
	font-size:1rem;
	letter-spacing:0.035em;
	transition:all 0.3s ease;
	text-align:left;
}

nav#drawer .global-nav a:hover{
	opacity:0.6;
}

nav#drawer .global-nav ul {
	list-style:none;
	margin:0 0 1.75rem;
	padding:0;
}

nav#drawer .global-nav ul li{
	padding:0.3em 0;
	display:block;
	text-align:center;
}

nav#drawer .global-nav ul li a{
	letter-spacing:0.05em;
}

#drawer .global-nav ul li{
	margin:0 0 0.25rem;
}


#drawer .global-nav ul li a{
	position:relative;
	line-height:1.3;
	transition:all 0.4s ease;
}


#drawer .global-nav ul li.external{
	position:relative;
}


#drawer .global-nav ul li.external:after{
  position: absolute;
  content: '';
  top: 0.25rem;
  right: -1.5rem;
	font-size:1.25rem;
  transition: all .3s ease-in-out;
    content: "\e89e";
    font-family: 'Material Symbols Outlined';
	transform:translatey(0%);

}


#drawer .global-nav ul li a:after{
	content:""attr(title)"";
	display:block;
	font-size:0.7rem;
	font-weight:normal;
	font-family:sans-serif;
}

ul.drawer__nav-sns {
	display:flex;
	justify-content:center;
}

ul.drawer__nav-sns li{
	margin:0 0.5rem;
	transition:all 0.3s ease;
	opacity:1;
}

ul.drawer__nav-sns li:hover{
	opacity:0.5;
}
ul.drawer__nav-sns li img {
	width:24px;
	height:24px;
	display:inline-block;
}


ul.bogo-language-switcher{
	position:absolute;
	top:2.25rem;
	right:5.5rem;
}

ul.bogo-language-switcher li a{
	font-family: "Marcellus", serif;
	color:#555!important;
	line-height:1;
}

ul.bogo-language-switcher li span{
	font-family: "Marcellus", serif;
	color:#aaa!important;
	line-height:1;
}

ul.bogo-language-switcher {
	display:flex;
	flex-direction:row-reverse;
}

ul.bogo-language-switcher li{
	padding:0 0.75rem;
	line-height:1.1;
}

ul.bogo-language-switcher li:last-child{
	border-right:1px solid #555;	
}

.header__nav ul{
display:flex;
}

.header__nav ul li{
	margin:0 0.75rem!important;
}

.header__nav ul li a{
	display:block;
	padding:0.25rem 0.75rem;
	font-family:Montserrat, sans-serif;
	letter-spacing:0.1em;
	color:#fff;
	font-weight:500;
}

.header__logo svg#header__logo .cls-1{
/*	fill:#fff;*/
	transition:all 0.5s ease;
}
body.home .header__nav{
	opacity:0;
	pointer-events:none;
	transition:all 0.5s ease;
}


.header__nav ul li.online a{
	border:1px solid #fff;
	border-radius:100vh;
}

/*
body.home .header__logo svg#header__logo .cls-1{
	fill:#357e7b;
}


body.home .header__logo svg#header__logo .cls-1{
	fill:transparent;

}

body.home.scrolled .header__logo svg#header__logo .cls-1{
	fill:#357e7b;
	pointer-events:auto;
}
*/
body.home.scrolled .header__nav{
	opacity:1;
	pointer-events:auto;
}

body.home .header__logo svg#header__logo a{
	pointer-events:none;
}

body.home.scrolled .header__logo svg#header__logo a{
	pointer-events:auto;
}


body.home .header__nav ul li a{
	color:#357e7b;
}


body.home .header__nav ul li.online a{
	border:1px solid #357e7b;
}


@media screen and (max-width: 992px) {
	.header__nav{
		display:none;
	}

}

/* ------------------------------------------------------------
 * Global Navigation (SP)
 * ------------------------------------------------------------ */
/* ベース */
#menu-footer01,
#menu-footer01 ul { list-style: none; margin: 0; width:465px;max-width:100%;display:block; }
#menu-footer01 li { position: relative;padding:0}
#menu-footer01 a { display: block; padding: 0.75rem 1.5rem!important; text-decoration: none; }

@media screen and (max-width:768px){
	#menu-footer01,
	#menu-footer01 ul {
		width:100vw;
	}
}

/* サブメニューは初期で閉じる（JSで開閉） */
#menu-footer01 .sub-menu { display: none; }

/* フッターメニュー配下は必ず初期で閉じる（他テーマに勝つための強い指定） */
#menu-footer01 > li > .sub-menu,
#menu-footer01 .menu-item-has-children > .sub-menu {
  display: none;/* 既存テーマの display:block を無効化 */
}

/* 親メニューの「＋／－」アイコン */
#menu-footer01 .menu-item-has-children > a {
  position: relative;
  padding-right: 2rem; /* アイコン分の余白 */
}

/* アイコン本体（擬似要素で＋を描く：横線＝::before、縦線＝::after） */
#menu-footer01 .menu-item-has-children > a .acc-icon {
  position: absolute;
  right: 1.5rem;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-50%);
  pointer-events: none; /* クリックはa本体に届く */
}

/* 横線 */
#menu-footer01 .menu-item-has-children > a .acc-icon::before,
#menu-footer01 .menu-item-has-children > a .acc-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%);
  transition: transform .25s ease, opacity .25s ease;
}

/* 縦線は回転で作る（横線に対して90度） */
#menu-footer01 .menu-item-has-children > a .acc-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* 開いた状態：縦線をスケールで消して「－」に見せる */
#menu-footer01 li.is-open > a .acc-icon::after {
  transform: translate(-50%, -50%) rotate(270deg) scaleX(0);
  opacity: 0;
}

/* 微アニメ強化：開閉時に横線をほんの少しスケール */
#menu-footer01 li.is-open > a .acc-icon::before {
  transform: translate(-50%, -50%) scaleX(1.02);
}

/* （任意）階層のインデントや区切り */
#menu-footer01 > li { border-bottom: 1px solid #c8c8c8; }
#menu-footer01 .sub-menu a { padding-left: 1rem; }





ul.nav__sns{
	display:flex;
	justify-content:center;
	margin:0 0 2.5rem;
}

ul.nav__sns li{
	margin:0 0.5rem!important;
}

ul.nav__sns li img{
	width:30px;
	
}

.button__reservation{
	text-align:center;
}

.button__reservation a{
	display:inline-block;
	background-color:#555;
	color:#fff!important;
	padding:0.75rem 3rem;
	border-radius:100vh;
	min-width:280px;
	text-align:center!important;
}

/* ------------------------------------------------------------
 * Home Concept
 * ------------------------------------------------------------ */
section.home#concept{
	padding:4.5rem 0 0 0;
	line-height:1.4;
}

section.home#concept .container{
	padding-right:2.0rem;
	padding-left:2.0rem;
}

section.home#concept .concept__copy{
	font-family: "Marcellus", serif;
	text-align:center;
}

section.home#concept #concept__copy-01{
	font-size:1.75rem;
	color:#867650;
	margin:0 0 1.25rem;
}

section.home#concept #concept__copy-02{
	font-size:1.25rem;
	margin:0 0 0.5rem;
}

section.home#concept #concept__copy-03{
	font-family: "hiragino-kaku-gothic-pron", sans-serif;
	font-size:1.15rem;
	margin:0 0 1.25rem;
}

section.home#concept #concept__copy-04{
	font-size:1.25rem;
	margin:0 0 0rem;
}

section.home#concept #concept__description-en{
	font-family: "Marcellus", serif;
	margin:0 0 3.5rem;
}
section.home#concept #concept__description-en p{
	font-family: "Marcellus", serif;
	margin:0 0 0.75rem;
}

section.home#concept #concept__description-ja{
	margin:0 0 2.5rem;
}

section.home#concept #concept__description-ja p{
	margin:0 0 0.75rem;
}

section.home#concept .concept__divider#concept__divider-01{
	margin:3.5rem 0;
}


/* ------------------------------------------------------------
 * Home Restaurants
 * ------------------------------------------------------------ */
section.home#restaurants{
	padding:3.5rem 0 2.5rem 0;
	line-height:1.4;
}

section.home#restaurants h2{
	font-family: "Marcellus", serif;
	text-align:center;
}

section.home#restaurants .slider__copy-ja *{
	font-family: "hiragino-kaku-gothic-pron", sans-serif!important;
	font-size:1.0rem!important;
	color:#867650!important;
	text-align:center;
	margin:0 0 0.5rem;
}

section.home#restaurants .slider__copy-en *{
	font-family: "Marcellus", serif!important;
	color:#555!important;
	font-size:0.8rem!important;
	text-align:center;
	margin:0 0 1.5rem;
}

section.home#restaurants .slider__button{
	font-family: "Marcellus", serif;
	padding:0.75rem 4.5rem;
	font-size:1.15rem;
	line-height:1;
	letter-spacing:0.1em;
}

/* ------------------------------------------------------------
 * Home Instagram
 * ------------------------------------------------------------ */
section.home#instagram{
	padding:2.5rem 0;
	line-height:1.4;
	background-color:#000;
}

section.home#instagram h2{
	font-family: "Marcellus", serif;
	text-align:center;
	font-size:1.5rem;
	color:#fff;
}



/* ------------------------------------------------------------
 * News
 * ------------------------------------------------------------ */

body.blog main > div,
body.category main > div,
body.single main > div{
	background-color:#d9d5cf!important;
}

.page__title.news{
	font-family: "Marcellus", serif;
	text-align:center;
}

.news-nav{
	display:flex;
	gap:0.75rem;
	margin:0 0 1.5rem;
}

.news-nav a{
	flex-grow: 1;
  flex-basis: auto;
	display:block;
	text-align:center;
	font-family: "Marcellus", serif;
	color:#555;
	border-bottom:1px solid #aaa;
	transition:all 0.3s ease;
} 

a.news-nav__item.topics:hover,
a.news-nav__item.topics.is-active{
	background-color:#800000;
	color:#fff;
	border-color:#800000;
}

a.news-nav__item.all:hover,
a.news-nav__item.all.is-active{
	background-color:#222;
	color:#fff;
	border-color:#222;
}

a.news-nav__item.press-release:hover,
a.news-nav__item.press-release.is-active{
	background-color:#AA8D2F;
	color:#fff;
	border-color:#AA8D2F;
}

a.news-nav__item.media:hover,
a.news-nav__item.media.is-active{
	background-color:#AB9A86;
	color:#fff;
	border-color:#AB9A86;
}

.news-item__cat,
.news-item__cat a{
	display:inline-block;
	font-family: "Marcellus", serif;
	font-size:0.8rem;
	padding:0.1rem 0.5rem;
	line-height:1;
	color:#fff;
}

.news-item__cat--topics{
	background-color:#800000;
		color:#fff;
}

.news-item__cat--press-release{
	background-color:#AA8D2F;
		color:#fff;
}


.news-item__cat--media{
	background-color:#AB9A86;
		color:#fff;
}


.news-item__meta {
	display:flex;
	align-items:center;
	gap:1rem;
	font-size:1.25rem;
	margin:0 0 0.5rem;
}

.news-item__meta .news-item__subcat a{
	color:#555;
	font-size:0.8rem;

}

.news-item{
	padding:1.5rem 0;
	border-bottom:1px solid #bbb;
}

.news-item__title{
	line-height:1.3;
	font-size:1.1rem;
	color:#222;
}

.news-item__title span,
.news-item__title a{
	line-height:1.3;
	display:inline-block;
	font-size:1.1rem;
	color:#222;
}


.link-newsletter__container{
	text-align:right;
	margin:0 0 1.5rem;
}
a.link-newsletter{
	display:inline-block;
}

a.link-newsletter span{
	display:flex;
	flex: 0 auto;
	display:flex;
	gap:0.25rem;
	align-items:center;
	border-bottom:1px solid #999;
	font-size:0.9rem;
	font-family: "Marcellus", serif;
	color:#555;

}


.pagination.news{
	display:flex;
	justify-content:center;
	align-items:center;
}

.pagination.news a,
.pagination.news span{
	color:#555;
	line-height:1;
}

.pagination.news a.page-numbers{
	padding:0.15rem 0.5rem;
	border-right:1px solid #bbb;
	margin:0;
}

.pagination.news span.page-numbers.current,
.pagination.news span.page-numbers.dots{
	padding:0.15rem 0.5rem;
	border-right:1px solid #bbb;
	margin:0;
}

.pagination.news a.next.page-numbers{
	border:0px;
}

.news-item__content{
	position:relative;
	text-align:right;
}

.news-item__content p{
	position:relative;
	display:inline-block;
	font-size:0.9rem;
}

.news-item__content p:before{
	content:'';
	width:3rem;
	height:1px;
	background-color:#bbb;
	left:-3.5rem;
	top:50%;
	display:block;
	position:absolute;
}

.news-subcat-title{
	font-family: "Marcellus", serif;
	font-size:1.25rem;
}

.breadcrumbs,
.breadcrumbs a,
.breadcrumbs span{
		font-family: "Marcellus", serif;
	font-size:1.25rem;
	color:#555;
}

body.single .breadcrumbs span:last-of-type + * {
    display: none!important;
}

body.single .breadcrumbs > span:last-of-type ~ * {
    display: none!important;
}

.single-article__cat a{
	display:inline-block;
	font-family: "Marcellus", serif;
	font-size:1rem;
	padding:0.1rem 0.5rem;
	line-height:1;
	color:#fff;
}

.single-article__cat--topics a{
	background-color:#800000;
		color:#fff;
}

body.single .single-article__meta{
	margin:0 0 0.5rem;
}

body.single .single-article__title{
	font-size:1.35rem;
	line-height:1.4;
}