@charset "UTF-8";
/*-----------------------------------
	common
-----------------------------------*/
/* modaal */
.modaal-wrapper {
    z-index: 99999;
}
.modaal-overlay {
    z-index: 9999 !important;
}
.modaal-close:focus:after,
.modaal-close:focus:before,
.modaal-close:hover:after,
.modaal-close:hover:before{
	background:#666;
}
.modaal-video .modaal-inner-wrapper{
	padding:0;
}
.modaal-video-container {
    padding-bottom: 0;
	max-height: 80dvh;
    height: auto;
    aspect-ratio: 9 / 16;
    background: none;
}
/* link_btn */
#contents .link_btn {
  display: flex;
  align-items: center;
  gap: 15px;
  width: max-content;
}
#contents .link_btn::before {
  content: '';
  display: block;
  width: 92px;
  height: 66px;
  background: url(../img/index/icon_link.svg) no-repeat center / contain;
}
#contents .link_btn span {
	display: block;
	text-align: left;
	border: 1px solid #000;
	background: #7a62a8;
	color: #FFF;
	padding: 5px 20px;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.42;
}
@media screen and (max-width: 640px) {
  /* link_btn */
	#contents .link_btn {
		gap: 10px;
	}
	#contents .link_btn::before {
		width: 56px;
		height: 40px;
	}
	#contents .link_btn span {
		padding: 3px 10px;
		font-size: 12px;
	}
}
/*-----------------------------------
	mainvisual_block
-----------------------------------*/
#mainvisual_block {
	width: 100vw;
	height: 620px;
	margin: 63px 0 74px;
	position: relative;
}
#mainvisual_block .swiper {
	background: #000000;
	position: static;
}
#mainvisual_block .swiper img {
	width: 100%;
	height: 620px;
	object-fit: cover;
}
@media (hover: hover) {
	#mainvisual_block a:hover {
		opacity: 0.9;
	}
}
#mainvisual_block .logo {
	background: #FFF;
	padding: 30px 20px;
	position: absolute;
	top: 0;
	left: max(calc(50vw - 525px), 5vw);
	z-index: 2;
}
#mainvisual_block .logo a {
	width: 43px;
	height: 100%;
	line-height: 0;
}
#mainvisual_block .copy {
	position: absolute;
	top: 100px;
	left: max(calc((50vw - 525px) + 163px), 19.55vw);
	z-index: 1;
}
#mainvisual_block .copy p {
	color: #FFF;
	font-size: 38px;
	line-height: 1.75;
	white-space: pre-line;
	writing-mode: vertical-rl;
}
#mainvisual_block .link_movie {
	width: 222px;
	position: absolute;
	bottom: 45px;
	left: max(calc(50vw - 525px), 5vw);
	z-index: 2;
}
#mainvisual_block .link_reserve {
	width: 382px;
	position: absolute;
	bottom: -75px;
	right: max(calc(50vw - 525px), 5vw);
	z-index: 2;
}
#mainvisual_block #scroll_box {
	position: absolute;
	bottom: 17px;
	width: 100%;
	z-index: 1;
}
#mainvisual_block #scroll_box .scroll_txt {
  color: #FFF;
}
#mainvisual_block #scroll_box .scroll_line {
  background: #FFF;
  height: 58px;
}
@keyframes scroll_line_anim {
  0% {
    transform: translateY(-58px);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(58px);
  }
}
@media screen and (max-width: 840px) {
	#mainvisual_block .copy p {
		font-size: 30px;
	}
	#mainvisual_block .link_movie {
		width: 155px;
		bottom: 32px;
		left: 49px;
	}
	#mainvisual_block .link_reserve {
		width: 267px;
		bottom: -53px;
		right: 30px;
	}
}
@media screen and (max-width: 640px) {
	#mainvisual_block {
		height: 100dvh;
		margin: 0;
	}
	#mainvisual_block .swiper img {
		height: 100dvh;
	}
	#mainvisual_block .logo {
		padding: 22px 14px;
		top: 60px;
		left: 0;
	}
	#mainvisual_block .logo a {
		width: 37px;
	}
	#mainvisual_block .copy {
		width: 146px;
		top: calc(40% - 140px);
		left: calc(50% - 73px);
	}
	#mainvisual_block .link_movie {
		width: 114px;
		bottom: 60px;
		left: 15px;
	}
	#mainvisual_block .link_reserve {
		width: 222px;
		bottom: 50px;
		right: 15px;
	}
}
/*-----------------------------------
	intro_block
-----------------------------------*/
#intro_block {
	text-align: center;
	padding: 90px 0;
}
#intro_block h2 {
	width: 411px;
	margin: 0 auto 40px;
}
#intro_block h3 {
	font-size: 53px;
	font-weight: 700;
	margin-bottom: 30px;
}
#intro_block h3 br {
	display: none;
}
#intro_block .copy {
	font-size: 29px;
	font-weight: 400;
	margin-bottom: 30px;
}
#intro_block .copy br {
	display: none;
}
#intro_block p {
	font-size: 19px;
	font-weight: 400;
	line-height: 1.89;
	white-space: pre-line;
	margin-bottom: 41px;
}
#intro_block .link_btn {
	margin: 0 auto;
}
@media screen and (max-width: 840px) {
	#intro_block h2 {
		width: 288px;
	}
	#intro_block h3 {
		font-size: 47px;
	}
	#intro_block h3 br {
		display: inline;
	}
	#intro_block .copy {
		font-size: 25px;
	}
	#intro_block .copy br {
		display: inline;
	}
}
@media screen and (max-width: 640px) {
	#intro_block {
		background: url(../img/index/sp/bg_grain.jpg) no-repeat center / cover;
		padding: 70px 0;
	}
	#intro_block h2 {
		width: 202px;
		margin: 0 auto 30px;
	}
	#intro_block h3 {
		font-size: 32px;
		line-height: 1.36;
		margin-bottom: 20px;
	}
	#intro_block .copy {
		font-size: 17px;
		line-height: 1.63;
		width: max-content;
		margin: 0 auto 10px;
		padding: 0 20px 10px;
		border-bottom: 0.5px solid #000;
	}
	#intro_block p {
		font-size: 12px;
		margin-bottom: 30px;
	}
}
/*-----------------------------------
	souvenir_photo
-----------------------------------*/
#souvenir_photo {
	position: relative;
}
#souvenir_photo > img {
	width: 100%;
	height: 620px;
	object-fit: cover;
}
#souvenir_photo .copy {
	width: 133px;
	position: absolute;
	top: -60px;
	right: max(calc(50vw - 525px), 5vw);
	filter: drop-shadow(6px 6px 4px rgba(35,24,21,0.35));
}
@media screen and (max-width: 840px) {
	#souvenir_photo > img {
		height: 434px;
	}
	#souvenir_photo .copy {
		width: 93px;
		top: -42px;
	}
}
@media screen and (max-width: 640px) {
	#souvenir_photo > img {
		height: 348px;
	}
	#souvenir_photo .copy {
		width: 67px;
		top: -60px;
		right: auto;
		left: 8vw;
	}
}
/*-----------------------------------
	souvenir_block
-----------------------------------*/
#souvenir_block {
	padding: 140px 0;
	background: url(../img/index/souvenir_bg.png) no-repeat right bottom / 322px,
		url(../img/index/bg_grain.jpg) no-repeat center / cover;
}
#souvenir_block .text {
	width: min(calc(100% - 300px), 100%);
}
#souvenir_block h2 {
	font-size: min(48px,4.4vw);
	font-weight: 500;
	width: fit-content;
	border-bottom: 0.5px solid #000;
	margin-bottom: 20px;
}
#souvenir_block h2 span {
	display: block;
	font-size: min(79px, 7.98vw);
}
#souvenir_block .copy {
	font-size: 24px;
	margin-bottom: 10px;
}
#souvenir_block p {
	font-size: 19px;
	line-height: 1.89;
	white-space: pre-line;
	margin-bottom: 30px;
}
#souvenir_block .image {
	width: 267px;
}
@media screen and (max-width: 840px) {
	#souvenir_block .text {
		width: min(calc(100% - 230px), 100%);
	}
	#souvenir_block .copy {
		font-size: 19px;
	}
	#souvenir_block .image {
		width: 200px;
	}
}
@media screen and (max-width: 640px) {
	#souvenir_block {
		padding: 70px 0;
		background: url(../img/index/sp/souvenir_bg.png) no-repeat right bottom 106px / 40vw;
	}
	#souvenir_block .row_box {
		gap: 35px;
	}
	#souvenir_block .text {
		width: 100%;
	}
	#souvenir_block h2 {
		font-size: 24px;
		padding-bottom: 10px;
		margin-bottom: 15px;
	}
	#souvenir_block h2 span {
		font-size: 40px;
	}
	#souvenir_block .copy {
		font-size: 14px;
		margin-bottom: 10px;
	}
	#souvenir_block p {
		font-size: 12px;
		margin-bottom: 30px;
	}
	#souvenir_block .image {
		width: 147px;
	}
}
/*-----------------------------------
	lunchbox_photo
-----------------------------------*/
#lunchbox_photo {
	position: relative;
}
#lunchbox_photo > img {
	width: 100%;
	height: 620px;
	object-fit: cover;
}
#lunchbox_photo .copy {
	width: 133px;
	position: absolute;
	top: -60px;
	left: max(calc(50vw - 525px), 5vw);
	filter: drop-shadow(6px 6px 4px rgba(35,24,21,0.35));
}
#lunchbox_photo .link_reserve {
	width: 382px;
	position: absolute;
	right: max(calc((50vw - 525px) - 60px), 4vw);
	bottom: -75px;
}
@media screen and (max-width: 840px) {
	#lunchbox_photo > img {
		height: 434px;
	}
	#lunchbox_photo .copy {
		width: 93px;
		top: -42px;
	}
	#lunchbox_photo .link_reserve {
		width: 267px;
		bottom: -53px;
	}
}
@media screen and (max-width: 640px) {
	#lunchbox_photo > img {
		height: 348px;
	}
	#lunchbox_photo .copy {
		width: 67px;
		top: -60px;
		left: auto;
		right: 8vw;
	}
	#lunchbox_photo .link_reserve {
		display: none;
	}
}
/*-----------------------------------
	lunchbox_block
-----------------------------------*/
#lunchbox_block {
	padding: 140px 0;
	position: relative;
}
#lunchbox_block::before, #lunchbox_block::after {
	content: '';
	display: block;
	position: absolute;
}
#lunchbox_block::before {
	width: 637px;
	height: 370px;
	background: url(../img/index/lunchbox_bg.png) no-repeat center / contain;
	top: 0;
	left: 0;
	z-index: -1;
}
#lunchbox_block::after {
	width: 305px;
	height: 240px;
	background: url(../img/index/lunchbox_deco.png) no-repeat center / contain;
	bottom: -20px;
	right: max(calc((50vw - 500px) - 90px), 3.5vw);
	z-index: 10;
}
#lunchbox_block .contents_inner {
	position: relative;
	z-index: 11;
}
#lunchbox_block .row_box {
	flex-direction: row-reverse;
}
#lunchbox_block .text {
	max-width: max-content;
	width: calc(100% - 380px);
}
#lunchbox_block h2 {
	font-size: min(48px,3.65vw);
	font-weight: 500;
	width: fit-content;
	border-bottom: 0.5px solid #000;
	margin-bottom: 20px;
}
#lunchbox_block h2 span {
	display: block;
	font-size: min(79px, 7vw);
}
#lunchbox_block .copy {
	font-size: 24px;
	letter-spacing: -0.05em;
	margin-bottom: 10px;
}
#lunchbox_block p {
	font-size: 19px;
	line-height: 1.89;
	white-space: pre-line;
	margin-bottom: 30px;
}
#lunchbox_block .image {
	width: 337px;
}
@media screen and (max-width: 840px) {
	#lunchbox_block .text {
		width: min(calc(100% - 270px), 100%);
	}
	#lunchbox_block .copy {
		font-size: 19px;
	}
	#lunchbox_block .image {
		width: 230px;
	}
}
@media screen and (max-width: 640px) {
	#lunchbox_block {
		padding: 70px 0;
		background: url(../img/index/bg_grain.jpg) no-repeat center / cover;
	}
	#lunchbox_block::before {
		width: 296px;
		height: 190px;
		top: auto;
		bottom: 0;
		transform: scale(1,-1);
	}
	#lunchbox_block::after {
		content: none;
		display: none;
	}
	#lunchbox_block .row_box {
		flex-direction: row;
		position: relative;
	}
	#lunchbox_block .text {
		width: 100%;
		padding-bottom: 136px;
	}
	#lunchbox_block h2 {
		font-size: 24px;
		padding-bottom: 10px;
		margin-bottom: 15px;
	}
	#lunchbox_block h2 span {
		font-size: 40px;
	}
	#lunchbox_block .copy {
		font-size: 14px;
		margin-bottom: 10px;
	}
	#lunchbox_block p {
		font-size: 12px;
		margin-bottom: 30px;
	}
	#lunchbox_block .image {
		width: 121px;
		position: absolute;
		bottom: 0;
		left: 60%;
	}
}
/*-----------------------------------
	middle_photo
-----------------------------------*/
#middle_photo {
	position: relative;
}
#middle_photo > img {
	width: 100%;
	height: 620px;
	object-fit: cover;
}
#middle_photo .copy {
	position: absolute;
	top: 144px;
	left: max(calc(50vw - 525px), 5vw);
}
#middle_photo .copy p {
	color: #FFF;
	font-size: 38px;
	font-weight: 500;
	line-height: 1.75;
	white-space: pre-line;
	writing-mode: vertical-rl;
}
@media screen and (max-width: 840px) {
	#middle_photo > img {
		height: 434px;
	}
	#middle_photo .copy {
		top: 80px;
	}
	#middle_photo .copy p {
		font-size: 30px;
	}
}
@media screen and (max-width: 640px) {
	#middle_photo > img {
		height: 380px;
	}
	#middle_photo .copy {
		top: 30px;
	}
	#middle_photo .copy p {
		font-size: 21px;
	}
}
/*-----------------------------------
	about_block
-----------------------------------*/
#about_block {
	padding: 160px 0;
	background: url(../img/index/bg_grain.jpg) no-repeat center / cover;
}
#about_block .row_box {
	gap: 76px 0;
}
#about_block .map {
	width: 55.5%;
}
#about_block .nakata {
	width: 41%;
}
#about_block .ggmap {
	width: 100%;
	padding-bottom: 300px;
	padding-top: 30px;
	position: relative;
	height: 0;
	overflow: hidden;
}
.ggmap iframe,
.ggmap object,
.ggmap embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
@media screen and (max-width: 840px) {
	#about_block .row_box {
		gap: 50px 0;
	}
}
@media screen and (max-width: 640px) {
	#about_block {
		padding: 60px 0;
	}
	#about_block .row_box {
		gap: 40px 0;
	}
	#about_block .map {
		width: 100%;
		order: 1;
	}
	#about_block .nakata {
		width: 100%;
		order: 0;
	}
	#about_block .ggmap {
		padding-bottom: 286px;
		order: 2;
	}
}