/* ----------------------------------------------------
	header
---------------------------------------------------- */
.header {
	width: 100%;
	height: 56.223vw;
	position: relative;
}

.header__kv {
	margin-left: auto;
	width: 96.779vw;
	animation: header-fade-in 1s ease-out 0s both;
}

.header__title,
.header__lead {
	position: absolute;
	z-index: 1;
	animation: header-fade-in 1s ease-out both;
}

.header__title {
	width: 34.407vw;
	bottom: 1.903vw;
	left: 8.346vw;
	animation-delay: 1s;
}

.header__lead {
	width: 25.622vw;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	animation-delay: 0.5s;
}

@keyframes header-fade-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {

	.header__kv,
	.header__title,
	.header__lead {
		animation: none;
	}
}

@media screen and (max-width: 768px) {
	.header {
		height: 174.933vw;
	}

	.header__kv {
		margin-left: 0;
		width: 100%;
	}

	.header__title {
		width: 84.267vw;
		bottom: 3.2vw;
		left: 7.2vw;
	}

	.header__lead {
		width: 64vw;
		top: 29.333vw;
		left: 50%;
		transform: translate(-50%, 0);
	}
}

/* ----------------------------------------------------
	about
---------------------------------------------------- */
.about {
	background-image: url(../img/about-bg.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 8rem 0;
	color: rgb(var(--wht));
	font-family: var(--mincho);
	text-align: center;
}

.about__title {
	margin-bottom: 3.5rem;
	font-size: 4rem;
}

.about__lead {
	font-size: 2.4rem;
}

@media screen and (max-width: 768px) {
	.about {
		background-image: url(../img/about-bg_sp.webp);
		padding: 6rem 0;
	}

	.about__title {
		margin-bottom: 2rem;
		font-size: 2.8rem;
	}

	.about__lead {
		font-size: 1.6rem;
	}
}

/* ----------------------------------------------------
	event
---------------------------------------------------- */
.event {
	padding: 8rem 0;
	font-family: var(--mincho);
}

.event__logo {
	margin: 0 auto 5rem;
	width: 45.3rem;
}

.event__title {
	margin-bottom: 1rem;
	line-height: normal;
	font-size: 4.8rem;
	text-align: center;
}

.event__date {
	margin-bottom: 6rem;
	text-align: center;
}

.event__date--title {
	margin-bottom: 1rem;
	font-size: 2.4rem;
}

.event__date--content span {
	padding: 1rem;
	color: rgb(var(--bro));
	font-size: 3.6rem;
	border-top: solid 1px rgb(var(--blk));
	border-bottom: solid 1px rgb(var(--blk));
	display: inline-flex;
	align-items: center;
}

.event__date--content span i {
	margin: 0 1rem;
	font-size: 1.8rem;
}

.event__map {
	margin: 0 auto;
	width: 89.2rem;
}

@media screen and (max-width: 768px) {
	.event {
		padding: 6rem 0;
	}

	.event__logo {
		margin-bottom: 3rem;
		width: 31.6rem;
	}

	.event__title {
		font-size: 2.8rem;
	}

	.event__date {
		margin-bottom: 3rem;
		text-align: center;
	}

	.event__date--title {
		margin-bottom: 1rem;
		font-size: 1.8rem;
	}

	.event__date--content span {
		font-size: 1.8rem;
	}

	.event__date--content span i {
		font-size: 1rem;
	}

	.event__map {
		padding: 0 1rem;
		width: 100%;
	}
}

/* ----------------------------------------------------
	sec
---------------------------------------------------- */
.sec {
	padding: 8rem 0;
}

.sec__container {
	margin: 0 auto;
	width: 114rem;
}

.sec__title {
	margin-bottom: 4rem;
	font-family: var(--mincho);
	font-size: 4.8rem;
	font-weight: 400;
	text-align: center;
}

@media screen and (max-width: 768px) {
	.sec {
		padding: 6rem 0;
	}

	.sec__container {
		width: 33.5rem;
	}

	.sec__title {
		margin-bottom: 2rem;
		font-size: 2.8rem;
	}
}

/* ----------------------------------------------------
	selection
---------------------------------------------------- */
.selection {
	background-color: rgb(var(--yel));
}

.selection .sec__title {
	color: rgb(var(--bro));
}

.selection .sec__container {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	position: relative;
}

.selection__title {
	width: calc(100% - 71rem);
	line-height: normal;
	color: rgb(var(--bro));
	font-family: var(--mincho);
	font-size: 3.6rem;
	position: relative;
}

.selection__title::before {
	background-color: rgb(var(--bro));
	width: 100%;
	height: 1px;
	position: absolute;
	top: 3.2rem;
	left: 0;
	z-index: 1;
	content: "";
}

.selection__title i {
	background-color: rgb(var(--yel));
	display: inline-block;
	position: relative;
	z-index: 2;
}

.selection__content {
	width: 71rem;
}

.selection figcaption {
	margin-top: 0.5rem;
	line-height: 1.5;
	font-size: 1.6rem;
	white-space: nowrap;
}

.selection__main {
	margin-bottom: 2rem;
	position: relative;
}

.selection__sub {
	width: 58.7rem;
	display: flex;
}

.selection__sub--image:not(:last-of-type) {
	margin-right: 0.7rem;
}

.selection__sub img {
	width: auto;
	height: 20rem;
}

.selection__position {
	width: 51.2rem;
	position: absolute;
	top: 22.6rem;
}

.selection__etc {
	margin-top: 3rem;
	width: 100%;
	display: flex;
	justify-content: space-between;
}

.selection__etc--image {
	width: 55.4rem;
}

.selection__buffet {
	background-color: rgb(var(--ora));
	margin-top: 6rem;
	padding: 5rem;
	width: 100%;
	color: rgb(var(--wht));
	display: flex;
	justify-content: space-between;
}

.selection__buffet--content {
	width: calc(100% - 48.4rem - 2rem);
	line-height: normal;
}

.selection__buffet--content .title {
	font-family: var(--mincho);
	font-size: 4rem;
}

.selection__buffet--content .title__small {
	line-height: 1;
	font-size: 2.4rem;
	display: block;
}

.selection__buffet--content .date {
	margin: 1rem 0;
	font-size: 2rem;
	display: flex;
	align-items: center;
}

.selection__buffet--content .date small {
	margin: 0 0.5rem;
	font-size: 1rem;
}

.selection__buffet--content .lead {
	margin-bottom: 2rem;
	font-family: var(--mincho);
	font-size: 2rem;
}

.selection__buffet--content .price {
	font-size: 1.6rem;
}

.selection__buffet--content .price__title {
	position: relative;
}

.selection__buffet--content .price__title::before {
	background-color: rgb(var(--wht));
	width: 100%;
	height: 1px;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	content: "";
}

.selection__buffet--content .price__title i {
	background-color: rgb(var(--ora));
	padding-right: 1rem;
	position: relative;
	z-index: 2;
}

.selection__buffet--content .price__content {
	line-height: 1.6;
	letter-spacing: -0.005em;
}

.selection__buffet--image {
	width: 48.4rem;
}

@media screen and (max-width: 768px) {
	.selection .sec__container {
		display: block;
	}

	.selection__title {
		margin-bottom: 2rem;
		width: 100%;
		font-size: 2.4rem;
		text-align: center;
	}

	.selection__title::before {
		display: none;
	}

	.selection__content {
		width: 100%;
	}

	.selection figcaption {
		font-size: 1.2rem;
		text-align: center;
		white-space: wrap;
	}

	.selection__sub {
		margin: 0 auto;
		width: 30.7rem;
		display: block;
	}

	.selection__sub--image:not(:last-of-type) {
		margin-right: 0;
		margin-bottom: 2rem;
	}

	.selection__sub img {
		width: 100%;
		height: auto;
	}

	.selection__position {
		margin-bottom: 2rem;
		width: 100%;
		position: relative;
		top: auto;
	}

	.selection__etc {
		margin-right: auto;
		margin-left: auto;
		width: 30.7rem;
		display: block;
	}

	.selection__etc--image {
		width: 100%;
	}

	.selection__etc--image:not(:first-of-type) {
		margin-top: 1rem;
		width: 100%;
	}

	.selection__buffet {
		margin-top: 3rem;
		padding: 1.4rem;
		flex-direction: column-reverse;
	}

	.selection__buffet--content {
		width: 100%;
	}

	.selection__buffet--content .title {
		font-size: 2.8rem;
	}

	.selection__buffet--content .title__small {
		font-size: 1.8rem;
	}

	.selection__buffet--content .date {
		font-size: 1.6rem;
	}

	.selection__buffet--content .date small {
		font-size: 0.8rem;
	}

	.selection__buffet--content .lead {
		margin-bottom: 2rem;
		line-height: 1.8;
		font-size: 1.8rem;
	}

	.selection__buffet--content .price {
		line-height: 1.8;
		font-size: 1.5rem;
	}

	.selection__buffet--image {
		margin-bottom: 1.5rem;
		width: 100%;
	}
}

/* 
	lunch 
------------------------------ */
.lunch {
	margin-bottom: 5rem;
	padding-bottom: 5rem;
}

.lunch::after {
	background-color: rgb(var(--blk));
	width: 100vw;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	content: "";
}

.lunch .selection__title i {
	padding-right: 1rem;
}

.lunch .selection__main {
	z-index: 2;
}

.lunch .selection__main figcaption {
	text-align: center;
}

.lunch .selection__sub {
	margin-left: auto;
}

.lunch .selection__position {
	left: 0;
	z-index: 1;
}

@media screen and (max-width: 768px) {
	.lunch .selection__main {
		left: 2rem;
	}

	.lunch .selection__position {
		right: 2rem;
		left: auto;
	}
}

/* 
	dinner 
------------------------------ */
.selection .dinner {
	flex-direction: row-reverse;
}

.dinner .selection__title {
	display: flex;
	flex-direction: row-reverse;
}

.dinner .selection__title i {
	padding-left: 1rem;
}

.dinner .selection__position {
	right: 0;
	z-index: 2;
}

@media screen and (max-width: 768px) {
	.dinner .selection__title {
		display: block;
	}

	.dinner .selection__title i {
		padding-right: 1rem;
		padding-left: 0;
	}

	.dinner .selection__main {
		left: 2rem;
		z-index: 2;
	}

	.dinner .selection__position {
		right: 2rem;
		left: auto;
		z-index: 1;
	}

}

/* ----------------------------------------------------
	information
---------------------------------------------------- */
.information {
	padding-bottom: 0;
}

.information .sec__title {
	color: rgb(var(--bro));
}

.information .sec__container {
	padding-bottom: 8rem;
}

.information__content {
	margin-bottom: 4rem;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.information__content--title {
	width: 28rem;
	line-height: normal;
	color: rgb(var(--bro));
	font-family: var(--mincho);
	font-size: 4rem;
	position: relative;
}

.information__content--title::before {
	background-color: rgb(var(--bro));
	width: 100%;
	height: 1px;
	position: absolute;
	top: 3.5rem;
	left: 0;
	z-index: 1;
	content: "";
}

.information__content--title i {
	background-color: rgb(var(--wht));
	padding-right: 1rem;
	display: inline-block;
	position: relative;
	z-index: 2;
}

.information__content--detail {
	width: calc(100% - 29rem);
	font-size: 1.6rem;
}

.information .note {
	margin-bottom: 4rem;
	text-align: center;
}

.information__link {
	display: flex;
	justify-content: center;
}

.information__link--item {
	margin: 0 2.8rem;
}

@media screen and (max-width: 768px) {
	.information .sec__container {
		padding-bottom: 6rem;
	}

	.information__content {
		margin-bottom: 2rem;
		display: block;
	}

	.information__content--title {
		margin-bottom: 2rem;
		width: 100%;
		font-size: 2.4rem;
	}

	.information__content--title::before {
		top: 2rem;
	}

	.information__content--detail {
		width: 100%;
	}

	.information__content--detail b {
		font-weight: 600;
	}

	.information .note {
		margin-bottom: 2rem;
	}

	.information__link {
		display: block;
		justify-content: center;
	}

	.information__link--item {
		margin: 0;
	}

	.information__link--item:not(:last-of-type) {
		margin-bottom: 1rem;
	}

	.information__link--item a {
		margin: 0 auto;
	}
}

/* ----------------------------------------------------
	menu
---------------------------------------------------- */
.menu {
	padding-bottom: 0;
	position: relative;
}

.menu::before {
	background-color: rgb(var(--bro));
	width: 114rem;
	height: 1px;
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 1;
	transform: translateX(-50%);
	content: "";
}

.menu .sec__title {
	color: rgb(var(--bro));
	display: flex;
	justify-content: center;
	align-items: baseline;
}

.menu .sec__title .memo {
	color: rgb(var(--blk));
	font-size: 0.5em;
}

.menu__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.menu__list--item {
	margin-bottom: 8rem;
	width: 53.4rem;
}

.menu__list--item:nth-child(even) {
	margin-left: calc(100% - 53.4rem * 2);
}

.menu__image {
	margin-bottom: 1.8rem;
}

.menu__shop {
	margin-bottom: 1.8rem;
	padding-bottom: 1.8rem;
	font-size: 1.6rem;
	font-weight: 500;
	border-bottom: solid 1px rgb(var(--blk));
}

.menu__content--name {
	margin-bottom: 1.8rem;
	line-height: normal;
	font-family: var(--mincho);
	font-size: 2.4rem;
	font-weight: 500;
}

.menu__content--detail .text {
	margin-bottom: 1.8rem;
	font-size: 1.6rem;
}

.menu__content--detail .time {
	font-size: 1.6rem;
}

@media screen and (max-width: 768px) {
	.menu {
		padding-bottom: 6rem;
	}

	.menu::before {
		width: 100%;
	}

	.menu .sec__title {
		flex-direction: column;
		align-items: center;
	}

	.menu__list {
		display: block;
	}

	.menu__list--item {
		margin-bottom: 0;
		width: 100%;
	}

	.menu__list--item:nth-child(even) {
		margin-left: 0;
	}

	.menu__list--item:not(:last-of-type) {
		margin-bottom: 3rem;
	}

	.menu__content--name {
		font-size: 2rem;
	}

	.menu__content--detail .text,
	.menu__content--detail .time {
		font-size: 1.4rem;
	}
}

/* ----------------------------------------------------
	recommend
---------------------------------------------------- */
.recommend {
	background-color: rgb(var(--blu));
	color: rgb(var(--wht));
}

.recommend+.note {
	margin: 10rem auto 0;
	width: 108rem;
}

@media screen and (max-width: 768px) {
	.recommend {
		background-color: rgb(var(--blu));
		color: rgb(var(--wht));
	}

	.recommend+.note {
		margin-top: 6rem;
		padding: 0 2rem;
		width: 100%;
	}
}

/* 
	shop 
------------------------------ */
.shop:not(:last-of-type) {
	margin-bottom: 8rem;
	padding-bottom: 8rem;
	border-bottom: solid 1px rgb(var(--wht));
}

.shop__name {
	margin-bottom: 2rem;
	line-height: normal;
	font-family: var(--mincho);
	font-size: 3.6rem;
	font-weight: 400;
	text-align: center;
}

.shop__name .place {
	font-size: 2rem;
	display: block;
}

.shop__time {
	margin-bottom: 3rem;
	font-size: 1.6rem;
	text-align: center;
}

.shop__content,
.shop__menu {
	margin-bottom: 5rem;
	display: flex;
	justify-content: space-between;
}

.shop__content--image {
	width: 69.7rem;
}

.shop__content--detail {
	width: 39.4rem;
}

.shop__menu {
	padding: 0 3.2rem;
}

.shop__menu--content {
	width: 49rem;
}

.shop__menu--content .image {
	margin-bottom: 1.5rem;
}

.shop .menu-name {
	margin-bottom: 1.5rem;
	line-height: normal;
	font-family: var(--mincho);
	font-size: 2.4rem;
	font-weight: 400;
}

.shop .menu-text {
	font-size: 1.6rem;
}

.shop .link-button {
	margin: 0 auto;
}

@media screen and (max-width: 768px) {
	.shop:not(:last-of-type) {
		margin-bottom: 4rem;
		padding-bottom: 4rem;
	}

	.shop__name {
		font-size: 2.4rem;
	}

	.shop__name .place {
		font-size: 1.6rem;
	}

	.shop__time {
		margin-bottom: 2rem;
		font-size: 1.4rem;
	}

	.shop__content,
	.shop__menu {
		margin-bottom: 3rem;
		display: block;
	}

	.shop__content--image {
		margin-bottom: 1.5rem;
		width: 100%;
	}

	.shop__content--detail {
		width: 100%;
	}

	.shop__menu {
		padding: 0;
	}

	.shop__menu--content {
		width: 100%;
	}

	.shop__menu--content:not(:last-of-type) {
		margin-bottom: 4rem;
	}

	.shop__menu--content .image {
		margin-bottom: 1.5rem;
	}

	.shop .menu-name {
		margin-bottom: 1rem;
		font-size: 2rem;
	}

	.shop .menu-text {
		font-size: 1.4rem;
	}
}

/* ----------------------------------------------------
	footer
---------------------------------------------------- */
.footer {
	padding: 5rem 0;
}

/* 
	hotels 
------------------------------ */
.hotels {
	margin-bottom: 7rem;
	text-align: center;
}

.hotels__name {
	margin-bottom: 1rem;
	font-size: 3rem;
	font-weight: 500;
}

.hotels__address {
	margin-bottom: 5rem;
	font-size: 1.8rem;
}

.hotels__address--tel {
	display: block;
}

.hotels__map {
	margin: 0 auto 5rem;
	width: 80rem;
}

.hotels__map iframe {
	width: 100%;
	height: 50rem;
}

.hotels__logo {
	margin: 0 auto;
	width: 21rem;
}

@media screen and (max-width: 768px) {
	.hotels {
		margin-bottom: 4rem;
	}

	.hotels__name {
		font-size: 2.4rem;
	}

	.hotels__address {
		margin-bottom: 3rem;
		font-size: 1.5rem;
	}

	.hotels__map {
		margin-bottom: 3rem;
		width: 100%;
	}

	.hotels__map iframe {
		height: 100vw;
	}

	.hotels__logo {
		width: 18rem;
	}
}

/* 
	hotel-nav 
------------------------------ */
.footer .hotel-nav {
	line-height: 1;
	font-size: 1.6rem;
	display: flex;
	justify-content: center;
	align-items: center;
}

.footer .hotel-nav::before,
.footer .hotel-nav__item::after {
	content: "|";
}

.footer .hotel-nav__item a {
	padding: 0 1em;
	text-decoration: none;
}

@media screen and (max-width: 768px) {
	.footer .hotel-nav {
		font-size: 4.267vw;
		text-align: center;
		display: block;
	}

	.footer .hotel-nav::before {
		content: "";
	}

	.footer .hotel-nav__item::before,
	.footer .hotel-nav__item::after {
		content: "|";
	}

	.footer .hotel-nav__item:not(:last-of-type) {
		margin-bottom: 1em;
	}

	.footer .hotel-nav__item a {
		padding: 0 1em;
		text-decoration: none;
	}
}

/* 
	copy
------------------------------ */
.footer .copy {
	margin-top: 2em;
	line-height: normal;
	font-size: 1.1rem;
	text-align: center;
}

@media screen and (max-width: 768px) {
	.footer .copy {
		font-size: 2.933vw;
	}
}