@charset "utf-8";

/*=============== 全体にかかわる設定 ===============*/
html *,
::before,
::after {
	box-sizing: border-box;
}

html {
	font-size: 15px;
}

@media (max-width: 768px) {
	html {
	}
}

body {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.09em;
	color: #7AA4BB;
	line-height: 1.8;
	background-color: #EEF6F6;
}


a {
	color:#ff1717;
	text-decoration: none;
}

a:hover {
	text-decoration: none;
	opacity: 0.8;
}

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


.container {
	max-width: 1200px;
	margin: 0 auto 100px;
	padding: 0 3%;
/*	text-align: center;*/
}

@media (max-width: 768px) {
}


/*見出し*/
.level2-heading {
	font-size: 22px;
	line-height: 35px;

	padding: 20px 0 12px;
	font-weight: normal;
	text-align: center;
}

.level2-heading {
    display: inline-block;
    position: relative;
	margin: 100px 0 60px;
    line-height: 1;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.level2-heading::before {
    position: absolute;
    bottom: calc(-1.5em / 4);
    left: calc(-3.5em / 2);
    z-index: -1;
    width: 3em;
    height: 3em;
    border-radius: 50%;
    background: #E6F2F9;
    content: '';
}


.level3-heading {
	font-size: 18px;
	font-weight: normal;
	margin: 0;
	padding: 5px 0;
}

h3 {
	font-weight: normal;
}



/*=============== header + 背景動画設定 ===============*/

.header {
	height: 764px;
	position: relative;
}

.kv {
	position: absolute;
	left: 0;
	width: 85%;
	height: 764px;
	object-fit: cover;
	padding: 5px 10px 0;
	border-radius: 69% 31% 42% 58% / 68% 58% 42% 32%;
	filter: grayscale(.10);
}

.header__logo {
	position: absolute;
	top: 0%;
	left: 0%;	
	width: 180px;
	margin: 0;
}

.header__text {
  position: absolute;	
	top: 50%;
	right: 3%;
	font-size: 30px;
	letter-spacing: 0.6rem;
	line-height: 2;
}

@media (max-width: 1150px) {
	.header__logo {
		width: 150px;
	}
}


@media (max-width: 800px) {
	.kv {
		width: 100%;
	}
	.header__text {
		font-size: 26px;
		top: 70%;
	}
}





@media (max-width: 700px) {
	.header {
		height: 600px;
	}
	.kv {
		height: 600px;
	}
	.header__logo {
		width: 120px;
	}
	.header__text {
	}
}


@media (max-width: 560px) {

	.header__text {
		font-size: 24px;
	}
}


@media (max-width: 459px) {

	.header__text {
		font-size: 20px;
	}
}






/*=============== ナビゲーション ===============*/

#g-nav{
    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
    position:fixed;
    z-index: 999;
    /*ナビのスタート位置と形状*/
    right: 0;
    top: 0;
	width:100%;
    height: 100vh;/*ナビの高さ*/
	background:#fff;
    /*動き*/
	transition: all 0.35s;
	opacity: 0;
	z-index: -999;
}

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

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

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

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

.header-nav__item {
	list-style: none;
    text-align: center;
}

.header-nav__link {
	color: #7AA4BB;
	text-decoration: none;
	padding:20px 0;
	display: block;
	text-transform: uppercase;
	font-size: 16px;
}

/*ボタンのためのCSS*/
.header__openbtn{
	position:fixed;
    z-index: 9999;/*ボタンを最前面に*/
	top:20px;
	right: 10px;
	cursor: pointer;
    width: 80px;
    height:50px;
}
	
/*×に変化*/	
.header__openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 1px;
	background-color: #7AA4BB;
  	width: 55%;

  }


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

.header__openbtn span:nth-of-type(2) {
	top:30px;
}


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

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


.header__openbtn span:nth-of-type(2)::after {
	content:"Menu";/*3つ目の要素のafterにMenu表示を指定*/
	position: absolute;
	top:10px;
	left: 7px;
	font-size: 8px;
	text-transform: uppercase;
}

/*activeクラスが付与されると線が回転して×になり、Menu⇒Closeに変更*/

	.header__openbtn.active span:nth-of-type(2)::after {
		content:"Close";
	    transform: translateY(0) rotate(-45deg);
		top:10px;
		left:15px;
	}



/*================LULURへようこそ================*/
.greet__heading {
	font-size: 24px;
	text-align: center;
	font-weight: normal;
	margin-bottom: 80px;
}

.greet__inner {
	max-width: 480px;
	padding: 160px 3%;
	margin: 0 auto;
}

.greet__inner p {
}

.greet__inner p:not(:last-of-type) {
	margin-bottom: 44px;
}

.greet__inner p:last-of-type {
	margin-bottom: 14.5px;
}

.greet__img-wrapper {
	text-align: right;
}

@media (max-width: 768px) {
	.greet__inner {
	}
}




/* ==================== コンセプト ==================== */

.concept {
	background-color: var(--color_sub);
}

.concept-contents {
	margin-bottom: 120px;
}

.concept__body-wrapper {
	display: flex;
	justify-content: space-around;
}

.concept__body-wrapper:not(:last-of-type) {
	margin-bottom: 120px;
}

.concept__img-wrapper {
	width: 40%;
	max-width: 370px;
		filter: grayscale(.25);
}

.concept__img {
	border-radius: 10px;
}


.concept__body {
	width: 50%;
    position: relative;
    padding: 0 0 0 60px;
}


.concept__body::before {
    content: attr(data-number);
    position: absolute;
    top: 0;
    left: -10px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    font-size: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}


.concept__heading {
	font-size: 20px;
	margin-bottom: 40px;
}

.concept__text {
	width: 100%;
	max-width: 400px;
}

@media (max-width: 1000px) {
	.concept__heading {
		font-size: 22px;
	}
	.concept__body::before {
	    left: -10px;
	    width: 60px;
	    height: 50px;
	    font-size: 70px;
	}

}


@media (max-width: 830px) {
 
 	.concept__body {
    padding: 0 0 0 40px; 		
 	}
	.concept__body::before {
	    width: 42px;
	    height: 50px;
	    font-size: 60px;
	}	
	.concept__body-wrapper {
		flex-direction: column;
		align-items: center;
	}
	.concept__body-wrapper:not(:last-of-type) {
		margin-bottom: 60px;		
	}
	
	.concept-contents {
		margin-bottom: 60px;
	}

	.concept__body-wrapper:nth-of-type(2) {
		flex-direction: column-reverse;
	}
	.concept__img-wrapper {
		max-width: 450px;
		width: 100%;
		margin-bottom: 40px;
	}
	.concept__body {
		max-width: 420px;
		width: 100%;
	}
}



@media (max-width: 480px) {
/*	.concept__body::before {
	    width: 60px;
	    height: 50px;
	    font-size: 60px;
	}*/


	.concept__heading {
		font-size: 19px;
		margin-bottom: 40px;
	}

}





/*================メニュー================*/

.menu-item-wrapper {
	max-width: 580px;
	margin: 0 auto;
}

.menu-item {
	padding: 28px 2%;

	width: 100%;
	margin: 0 auto;
}

.menu-item__heading {
	font-size: 18px;
	font-weight: normal;
	margin-bottom: 20px;
	border-bottom: 1px solid #7AA4BB;
	padding-bottom: 8px;
}

.menu-item__heading span {
	font-size: 18px;
	margin-left: 12px;

}

.menu-item__tax {
	text-align: right;
	font-size: 14px;
}

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

.menu-item__data dt {
   flex-basis: calc(100% - 70px);
}

.menu-item__data dt:not(:last-of-type) {
	margin-bottom: 20px;
}

.menu-item__data dd {
	width: 70px;
	text-align: right;
}

.menu-sp {
	display: none;
}


@media (max-width: 540px) {
	.menu-sp {
		display: block;
	}
}


/*=============== プロフィール ===============*/


.about__container {
	display: flex;
	text-align: left;
	align-items: center;
	justify-content: space-around;
}

.about__icon {
	width: 20%;
    filter: drop-shadow(1px 1px 1px #fff);
}

.about__icon img {
    border-radius: 100px 20px 100px 20px;

}

.about__contents {
	border-radius: 10px;
	padding: 30px 50px;
 	border-radius: 71px;
 	width: 60%;
 }

.about__name {
	font-size: 18px;
	margin: 20px 0 0;
	text-align: center;
	line-height: 1.4;
}

.about__name span {
	font-size: 10px;
}



.about__text {
	margin: 32px 0;
}

@media (max-width: 768px) {
	.about__container {
		flex-direction: column;
	}
	.about__icon {
		margin: 0 auto;
		width: 60%;
	}
	.about__name {
		text-align: center;
	}
	.about__contents {
	margin-top: 20px;
	width: 100%;
	}
}

@media (max-width: 500px) {
.about__contents {
	padding: 30px 0px;
 }
}





/*================店舗情報================*/

.info {
}

.info__item {
	display: flex;
	align-items: center;
	margin-bottom: 56px;
}

.info__map-wrapper {
	width: 50%;
	height: 360px;
	margin-right: 80px;
}

.info__map-wrapper iframe {
	width: 100%;
	height: 100%;
	filter: grayscale(.25);
}

.info__data {
	display: flex;
	flex-wrap: wrap;
	width: 50%;
}

.info__data dt {
	width: 100%;
}

.info__data dd {
   width: 100%;
   margin-bottom: 24px;
   margin-left: 0;
}

@media (max-width: 768px) {
	.info__item {
		display: flex;
		flex-direction: column;
	}
	.info__map-wrapper {
		width: 100%;
		height: 300px;
		margin-right: 0px;
		margin-bottom: 20px;
	}
	.info__data {
		width: 100%;
	}
}

/*予約*/

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

.reservation__item {
	width: 48%;
	height: 68px;
	background-color: none;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 18px;
	border: 1px solid #7AA4BB;
	color: #7AA4BB;
}

@media (max-width: 768px) {
	.reservation {
		flex-direction: column;
	}
	.reservation__item {
		width: 100%;
		height: 72px;
	}
	.reservation__item:first-child {
		margin-bottom: 20px;
	}
}












/*=============== フッター ===============*/
.footer {
	height: 83px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 100px;
	text-align: center;
}

.footer__copyright {
	font-size: 12px;
}


@media (max-width: 768px) {
	.footer__copyright {
		font-size: 12px;
	}
}








/*=============== アニメーション ===============*/





/* ぼかしから出現 */
.blur{
	animation-name:blurAnime;
	animation-duration:1.0s;
	animation-fill-mode:forwards;
}

@keyframes blurAnime{
  from {
	filter: blur(8px);
	transform: scale(1.02);
	transform: translateX(-50px);
  }

  to {
	filter: blur(0);
	transform: scale(1);
	transform: translateX(0);
  }
}


/* ぼかしから出現 */
.blur2{
	animation-name:blur2Anime;
	animation-duration:1.0s;
	animation-fill-mode:forwards;
}

@keyframes blur2Anime{
  from {
	filter: blur(8px);
	transform: scale(1.02);
	transform: translateX(50px);
  }

  to {
	filter: blur(0);
	transform: scale(1);
	transform: translateX(0);
  }
}


/* その場で */
.fadeIn{
animation-name:fadeInAnime;
animation-duration:2s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeInAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}




/*========= 流れるテキスト ===============*/

/*全共通*/

.slide-in {
	overflow: hidden;
    display: inline-block;
}

.slide-in_inner {
	display: inline-block;

}

/*左右のアニメーション*/
.leftAnime{
    opacity: 0;/*事前に透過0にして消しておく*/
}

.slideAnimeLeftRight {
	animation-name:slideTextX100;
	animation-duration:1.3s;
	animation-fill-mode:forwards;
    opacity: 0;
}

@keyframes slideTextX100 {
  from {
	transform: translateX(-100%); /*要素を左の枠外に移動*/
        opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

.slideAnimeRightLeft {
	animation-name:slideTextX-100;
	animation-duration:1.3s;
	animation-fill-mode:forwards;
    opacity: 0;
}


@keyframes slideTextX-100 {
  from {
	transform: translateX(100%);/*要素を右の枠外に移動*/
    opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}


/*遅延*/

.delay-time1{
animation-delay: 0.3s;
}
.delay-time2{
animation-delay: 0.5s;
}
.delay-time3{
animation-delay: 0.7s;
}
.delay-time4{
animation-delay: 0.9s;
}

.delay-time-title{
animation-delay: 0.8s;
}

