/* ---------------------------------------------------
  plan__table
--------------------------------------------------- */
.plan__table {
	margin: min(14rem, 10.938vw) auto min(8rem, 6.25vw);
	width: min(100rem, 78.125vw);
	position: relative;
	z-index: 2;
}

.plan__table::before,
.plan__table::after {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin: 0 auto;
	width: min(100rem, 78.125vw);
	height: 1px;
	position: absolute;
	content: "";
}

.plan__table::before {
	background-image: url(../img/plan/object01.webp);
	width: 327px;
	height: 293px;
	top: max(-33.4rem, -26.094vw);
	left: max(-11.6rem, -9.063vw);
}

.plan__table::after {
	background-image: url(../img/plan/object02.webp);
	width: 326px;
	height: 234px;
	top: max(-25rem, -19.531vw);
	right: max(-8.4rem, -6.563vw);
}

.plan__table--image {
	margin-bottom: min(5.6rem, 4.375vw);
}

.plan__table .link-button {
	background: rgb(var(--nvy));
	margin: 0 auto;
	padding-top: 0;
	width: min(23.6rem, 18.438vw);
	height: min(5.5rem, 4.297vw);
	font-family: var(--gothic);
	font-size: min(1.5rem, 1.172vw);
	border-color: rgb(var(--nvy));
}

.plan__table .link-button:hover {
	background: rgb(var(--wht));
	color: rgb(var(--nvy));
}

.plan__table .link-button:hover {
	background: rgb(var(--wht));
}

.plan__table .link-button:hover::after {
	background: rgb(var(--nvy));
}

@media screen and (max-width: 768px) {
	.plan__table {
		margin: 13.333vw auto 8vw;
		width: 85.333vw;
	}

	.plan__table::before,
	.plan__table::after {
		display: none;
	}

	.plan__table--image {
		margin-bottom: 9.6vw;
	}

	.plan__table .link-button {
		width: 60vw;
		height: 11.2vw;
		font-size: 3.733vw;
	}
}

/* ---------------------------------------------------
  benefits
--------------------------------------------------- */
.benefits {
	margin: 0 auto min(6.5rem, 5.078vw);
	width: min(100rem, 78.125vw);
}

.benefits__inner {
	padding: min(2rem, 1.563vw) 0;
	border: solid 1px rgb(var(--orn));
}

.benefits__title {
	margin-bottom: min(1rem, 0.781vw);
	color: rgb(var(--orn));
	font-size: min(2rem, 1.563vw);
	text-align: center;
}

.benefits__list {
	font-size: min(1.8rem, 1.406vw);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.benefits__list--item:not(:last-of-type)::after {
	content: "／";
}

.benefits .note {
	margin-top: min(1.6rem, 1.25vw);
}

@media screen and (max-width: 768px) {
	.benefits {
		margin-bottom: 13.333vw;
		width: 85.333vw;
	}

	.benefits__inner {
		padding: 5.333vw 0;
	}

	.benefits__title {
		margin-bottom: 2.667vw;
		font-size: 4.8vw;
	}

	.benefits__list {
		font-size: 3.733vw;
		text-align: center;
		display: block;
	}

	.benefits__list--item:not(:last-of-type)::after {
		display: none;
	}
}

/* ---------------------------------------------------
  offer
--------------------------------------------------- */
.offer {
	background: url(../img/plan/offer-bg.webp) center top repeat-y;
	background-size: 100% auto;
	margin: 0 auto min(12rem, 9.375vw);
	padding: min(3rem, 2.344vw) 0;
	width: min(100rem, 78.125vw);
	text-align: center;
	position: relative;
}

.offer::before,
.offer::after {
	background-repeat: no-repeat;
	background-size: 100% auto;
	width: 100%;
	height: min(2rem, 1.563vw);
	position: absolute;
	left: 0;
	content: "";
}

.offer::before {
	background-image: url(../img/plan/offer-bg-top.webp);
	background-position: center bottom;
	top: max(-1.6rem, -1.25vw);
}

.offer::after {
	background-image: url(../img/plan/offer-bg-bottom.webp);
	background-position: center top;
	bottom: max(-1.6rem, -1.25vw);
}

.offer__title {
	line-height: 1;
	color: rgb(var(--orn));
	font-size: min(3.3rem, 2.578vw);
	font-weight: 800;
}

.offer__title--en {
	font-family: var(--zain);
	font-size: min(4.5rem, 3.516vw);
}

.offer__text {
	margin: 1em 0;
	font-size: min(1.8rem, 1.406vw);
}

.offer .decoration::before {
	width: min(8.1rem, 6.328vw);
	height: min(8.1rem, 6.328vw);
	z-index: 5;
}

.offer .ribbon01 {
	top: -280px;
	right: 50px;
}

.offer .ribbon02::before {
	background-image: url(../img/ribbon02.webp);
	left: 30px;
	transform: rotate(-90deg);
}

@media screen and (max-width: 768px) {
	.offer {
		background-image: url(../img/plan/offer-bg_sp.webp);
		margin-bottom: 16vw;
		padding: 5.333vw 8vw;
		width: 85.333vw;
	}

	.offer::before,
	.offer::after {
		height: 5.333vw;
	}

	.offer::before {
		background-image: url(../img/plan/offer-bg-top_sp.webp);
		top: -5.333vw;
	}

	.offer::after {
		background-image: url(../img/plan/offer-bg-bottom_sp.webp);
		bottom: -5.333vw;
	}

	.offer__title {
		font-size: 4.8vw;
	}

	.offer__title--en {
		font-size: 6.933vw;
	}

	.offer__text {
		font-size: 3.733vw;
		text-align: left;
	}

	.offer .note {
		text-align: left;
	}
}

/* ---------------------------------------------------
  meal
--------------------------------------------------- */
.meal {
	margin: 0 auto;
	width: min(100rem, 78.125vw);
	text-align: center;
}

.meal__title {
	margin-bottom: min(6rem, 4.688vw);
	font-size: min(2.4rem, 1.875vw);
	position: relative;
}

.meal__title::before {
	background: rgb(var(--blk));
	width: 100%;
	height: 1px;
	position: absolute;
	top: 50%;
	left: 0;
	z-index: 1;
	transform: translateY(-50%);
	content: "";
}

.meal__title--inner {
	background: rgb(var(--wht));
	padding: 0 0.5em;
	display: inline-block;
	position: relative;
	z-index: 2;
}

.meal__content {
	font-size: min(1.8rem, 1.406vw);
}

.meal__content--title {
	margin-bottom: min(1rem, 0.781vw);
	color: rgb(var(--orn));
	font-size: min(2.4rem, 1.875vw);
}

.meal__content--detail {
	margin-bottom: min(3rem, 2.344vw);
}

.meal__text--note {
	margin-bottom: 2em;
}

.mark {
	color: rgb(var(--nvy));
}

.marker {
	background: rgb(var(--beg));
	padding: 0 0.5em;
	display: inline-block;
}

.meal__date {
	margin-bottom: min(1rem, 0.781vw);
	line-height: 1;
}

.meal__date--inner {
	background: rgb(var(--nvy));
	padding: 0.5em 1em;
	color: rgb(var(--wht));
	display: inline-block;
}

@media screen and (max-width: 768px) {
	.meal {
		width: 85.333vw;
	}

	.meal__title {
		margin-bottom: 8vw;
		font-size: 4.8vw;
	}

	.meal__content {
		font-size: 3.733vw;
	}

	.meal__content--title {
		margin-bottom: 2.667vw;
		font-size: 4.8vw;
	}

	.meal__content--detail {
		margin-bottom: 8vw;
	}

	.meal__text {
		margin-bottom: 0.5em;
	}

	.meal__text--note {
		display: inline-block;
		position: relative;
	}

	.meal__text--note::before,
	.meal__text--note::after {
		background-position: center;
		background-repeat: no-repeat;
		background-size: auto 100%;
		width: 4vw;
		height: 100%;
		position: absolute;
		top: 0;
		content: "";
	}

	.meal__text--note::before {
		background-image: url(../img/parentheses-left.webp);
		left: -5.333vw;
	}

	.meal__text--note::after {
		background-image: url(../img/parentheses-right.webp);
		right: -5.333vw;
	}

	.meal__text--note.half::before {
		background-image: url(../img/parentheses-half-left.webp);
		left: -5.333vw;
	}

	.meal__text--note.half::after {
		background-image: url(../img/parentheses-half-right.webp);
		right: -5.333vw;
	}

	.meal__text--note.sp-left {
		text-align: left;
	}

	.meal__date {
		margin-bottom: min(1rem, 0.781vw);
	}
}

/* ---------------------------------------------------
  decoration
--------------------------------------------------- */
.plan .decoration02::before {
	top: min(5rem, 3.906vw);
}