/* ---------------------------------------------------
  header
--------------------------------------------------- */
.header {
	margin-bottom: min(2.4rem, 1.875vw);
	position: relative;
}

.header__text {
	display: none;
}

@media screen and (max-width: 768px) {
	.header__text {
		margin: 0 auto;
		padding: 12vw 0;
		width: 82.767vw;
		display: block;
		position: relative;
	}
}

/* ---------------------------------------------------
  main
--------------------------------------------------- */
.main {
	margin-top: min(2.4rem, 1.875vw);
}

.top-section {
	overflow-x: hidden;
	position: relative;
}

.top-section__title {
	margin-bottom: min(6rem, 4.688vw);
	line-height: 1;
	color: rgb(var(--orn));
	font-family: var(--zain);
	font-size: min(6.5rem, 5.078vw);
	font-weight: 800;
	text-align: center;
	position: relative;
}

.top-section__title--jp {
	font-family: var(--gothic);
	font-size: min(2rem, 1.563vw);
	font-weight: 500;
	display: block;
}

@media screen and (max-width: 768px) {
	.main {
		margin-top: 0;
	}

	.top-section__title {
		margin-bottom: 9.6vw;
		font-size: 11.2vw;
	}

	.top-section__title--jp {
		font-size: 5.333vw;
	}
}

/*
	decoration - main
------------------------------ */
.decoration {
	margin: 0 auto;
	width: min(100rem, 78.125vw);
	position: relative;
}

.decoration::before {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	z-index: 2;
	content: "";
}

.decoration.ribbon01::before {
	background-image: url(../img/ribbon02.webp);
	width: min(9.7rem, 7.578vw);
	height: min(10.4rem, 8.125vw);
	top: min(7.6rem, 5.938vw);
	right: min(4.1rem, 3.203vw);
}

.decoration.ribbon02::before {
	background-image: url(../img/ribbon05.webp);
	width: min(14rem, 10.938vw);
	height: min(13.8rem, 10.781vw);
	top: max(-10.5rem, -8.203vw);
	left: max(-11.2rem, -8.75vw);
}

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

	.decoration.ribbon01::before {
		width: 15.733vw;
		height: 16.8vw;
		top: -7.733vw;
		right: 5.067vw;
	}

	.decoration.ribbon02::before {
		display: none;
	}
}

/* ---------------------------------------------------
  contents
--------------------------------------------------- */
.contents {
	background: rgb(var(--beg));
	padding: min(10rem, 7.813vw) 0;
	position: relative;
}

.contents__list {
	margin: 0 auto;
	width: min(100rem, 78.125vw);
	display: flex;
	flex-wrap: wrap;
	position: relative;
}

.contents__list--item {
	margin-bottom: min(7rem, 5.469vw);
	padding: min(0.4rem, 0.313vw) min(2rem, 1.563vw) min(1.4rem, 1.094vw);
	width: min(30rem, 23.438vw);
	position: relative;
	z-index: 2;
}

.contents__list--item:not(:nth-child(3n)) {
	margin-right: min(5rem, 3.906vw);
}

.contents__title {
	height: min(9.6rem, 7.5vw);
	line-height: 1;
	font-family: var(--zain);
	font-size: min(3.2rem, 2.5vw);
	font-weight: 800;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

.contents__list--item .link-button {
	margin: 0 auto;
	width: min(17rem, 13.281vw);
}

@media screen and (max-width: 768px) {
	.contents {
		padding: 16vw 0;
	}

	.contents__list {
		width: 85.333vw;
		display: block;
	}

	.contents__list--item {
		margin-bottom: 13.333vw;
		padding: 1.067vw 5.333vw 3.733vw;
		width: 100%;
	}

	.contents__list--item:not(:nth-child(3n)) {
		margin-right: 0;
	}

	.contents__title {
		height: 25.6vw;
		font-size: 8.533vw;
	}

	.contents__list--item .link-button {
		width: 45.333vw;
	}
}

/*
	decoration - contents
------------------------------ */
.contents__list::before,
.contents__list::after {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	z-index: 1;
	content: "";
}

.contents__list::before {
	background-image: url(../img/decoration-w01.webp);
	width: min(45.4rem, 35.469vw);
	height: min(16.6rem, 12.969vw);
	top: max(-15rem, -11.719vw);
	left: min(77.4rem, 60.469vw);
}

.contents__list::after {
	background-image: url(../img/decoration-w02.webp);
	width: min(42.4rem, 33.125vw);
	height: min(8.2rem, 6.406vw);
	right: min(86.6rem, 67.656vw);
	bottom: min(1.7rem, 1.328vw);
}

@media screen and (max-width: 768px) {

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

/* ---------------------------------------------------
  reservations
--------------------------------------------------- */
.reservations {
	padding: min(13rem, 10.156vw) 0;
	border-bottom: solid min(0.2rem, 0.156vw) rgb(var(--orn));
}

.reservations__lead {
	margin-bottom: min(2.5rem, 1.953vw);
	font-size: min(2rem, 1.563vw);
	text-align: center;
}

.reservations__tel {
	margin-bottom: min(5rem, 3.906vw);
	line-height: 1;
	font-family: var(--zain);
	font-size: min(4rem, 3.125vw);
	font-weight: 800;
	text-align: center;
}

.reservations__tel .telephone {
	font-size: min(5.5rem, 4.297vw);
}

.reservations__order {
	margin: 0 auto min(9rem, 7.031vw);
	width: min(100rem, 78.125vw);
}

.reservations__order--title {
	margin-bottom: min(2.7rem, 2.109vw);
	color: rgb(var(--orn));
	font-size: min(2.4rem, 1.875vw);
	font-weight: 600;
	text-align: center;
}

.reservations__order--list {
	display: flex;
}

.reservations__order--item {
	margin: min(1.6rem, 1.25vw) 0 0;
	padding: min(0.4rem, 0.313vw) 0 min(2rem, 1.563vw);
	width: min(30rem, 23.438vw);
	position: relative;
	z-index: 2;
}

.reservations__order--item:not(:last-of-type) {
	margin-right: min(5rem, 3.906vw);
}

.reservations__order--item-title {
	margin-bottom: 1em;
	padding-bottom: 0.75em;
	font-size: min(1.8rem, 1.406vw);
	font-weight: 600;
	text-align: center;
	border-bottom: dotted min(0.2rem, 0.156vw) rgb(var(--orn));
}

.reservations__order--date {
	line-height: 1.5;
	font-size: min(2.2rem, 1.719vw);
	font-weight: 600;
	text-align: center;
}

.reservations__order--date .last-order {
	font-size: min(1.4rem, 1.094vw);
	display: block;
}

.reservations__order .note {
	margin-top: min(3rem, 2.344vw);
	text-align: center;
}

.reservations__cancel {
	font-size: min(1.4rem, 1.094vw);
	text-align: center;
}

.reservations__cancel--list {
	margin-bottom: min(9rem, 7.031vw);
	display: flex;
	justify-content: center;
}

.reservations__cancel--list li:not(:last-of-type) {
	margin-right: 1em;
}

.reservations__inquiry {
	margin-bottom: min(9rem, 7.031vw);
	text-align: center;
	display: flex;
	justify-content: center;
}

.reservations__inquiry--item {
	margin: 0 min(3rem, 2.344vw);
}

.reservations__inquiry--title {
	margin-bottom: min(2rem, 1.563vw);
	line-height: 1;
	color: rgb(var(--orn));
	font-size: min(2rem, 1.563vw);
}

.reservations__inquiry--tel {
	line-height: 1;
	font-family: var(--zain);
	font-size: min(4rem, 3.125vw);
	font-weight: 800;
}

.reservations__inquiry--tel .telephone {
	font-size: min(5.5rem, 4.297vw);
}

.reservations__inquiry--tel .time {
	font-family: var(--gothic);
	font-size: min(1.4rem, 1.094vw);
	font-weight: 500;
	display: block;
}

.artist {
	margin: 0 auto;
	padding: min(2rem, 1.563vw) min(3.8rem, 2.969vw);
	width: min(75rem, 58.594vw);
	position: relative;
}

.artist__title {
	margin-bottom: min(2rem, 1.563vw);
	line-height: 1;
	color: rgb(var(--orn));
	font-family: var(--zain);
	font-size: min(3.2rem, 2.5vw);
	font-weight: 800;
	text-align: center;
}

.artist__content {
	display: flex;
}

.artist__content--detail {
	width: calc(100% - min(22.6rem, 17.656vw));
}

.artist__name {
	margin-bottom: 1em;
	padding-bottom: 0.75em;
	line-height: 1.5;
	font-family: var(--zain);
	font-size: min(2.8rem, 2.188vw);
	font-weight: 600;
	border-bottom: dotted min(0.2rem, 0.156vw) rgb(var(--orn));
}

.artist__name--jp {
	line-height: 1;
	font-family: var(--gothic);
	font-size: min(1.6rem, 1.25vw);
	display: block;
}

.artist__profile {
	margin-bottom: 1em;
	padding-right: min(3.5rem, 2.734vw);
	font-size: min(1.6rem, 1.25vw);
}

.artist__link {
	color: rgb(var(--nvy));
	font-family: var(--zain);
	font-size: min(1.8rem, 1.406vw);
	font-weight: 800;
}

.artist__link::before {
	font-size: min(1.2rem, 0.938vw);
	content: "＞";
}

.artist__content--image {
	width: min(22.6rem, 17.656vw);
}

@media screen and (max-width: 768px) {
	.reservations {
		padding: 24vw 0;
		border-bottom-width: 0.533vw;
	}

	.reservations__lead {
		margin-bottom: 6.4vw;
		font-size: 4.267vw;
	}

	.reservations__tel {
		margin-bottom: 18.133vw;
		font-size: 6.933vw;
	}

	.reservations__tel .telephone {
		font-size: 10.933vw;
	}

	.reservations__order {
		margin-bottom: 14.667vw;
		width: 100%;
	}

	.reservations__order--title {
		margin-bottom: 5.867vw;
		line-height: 1.5;
		font-size: 5.333vw;
	}

	.reservations__order--list {
		display: block;
	}

	.reservations__order--item {
		margin: 6.4vw auto 13.333vw;
		padding: 2.4vw 0 6.4vw;
		width: 80vw;
	}

	.reservations__order--item:not(:last-of-type) {
		margin-right: auto;
	}

	.reservations__order--item-title {
		font-size: 4.8vw;
		border-bottom-width: 0.533vw;
	}

	.reservations__order--date {
		font-size: 5.333vw;
	}

	.reservations__order--date .last-order {
		font-size: 3.733vw;
	}

	.reservations__order .note {
		margin-top: min(3rem, 2.344vw);
		line-height: 1.5;
	}

	.reservations__cancel {
		font-size: 3.467vw;
	}

	.reservations__cancel--title {
		font-size: 3.733vw;
	}

	.reservations__cancel--list {
		margin-bottom: 14.667vw;
	}

	.reservations__cancel--list li:not(:last-of-type) {
		margin-right: 1em;
	}

	.reservations__inquiry {
		margin-bottom: 24vw;
		display: block;
	}

	.reservations__inquiry--item {
		margin: 0 0 8vw;
	}

	.reservations__inquiry--title {
		margin-bottom: 0.5em;
		font-size: 4.8vw;
	}

	.reservations__inquiry--tel {
		font-size: 6.933vw;
	}

	.reservations__inquiry--tel .telephone {
		font-size: 10.933vw;
	}

	.reservations__inquiry--tel .time {
		font-size: 3.733vw;
	}

	.artist {
		padding: 6.4vw 0 2.4vw;
		width: 80vw;
	}

	.artist__title {
		margin-bottom: 3.2vw;
		font-size: 8vw;
	}

	.artist__content {
		display: block;
	}

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

	.artist__name {
		padding: 0 6.667vw 0.751em;
		font-size: 7.467vw;
		border-bottom-width: 0.533vw;
	}

	.artist__name--jp {
		font-size: 4.267vw;
	}

	.artist__profile {
		margin: 0 auto 1em;
		padding-right: 0;
		width: 66.667vw;
		font-size: 4.267vw;
	}

	.artist__link {
		margin-bottom: 1em;
		padding: 0 6.667vw;
		font-size: 4.8vw;
		display: block;
	}

	.artist__link::before {
		font-size: 3.2vw;
	}

	.artist__content--image {
		margin: 0 auto;
		width: 66.667vw;
	}
}

/*
	decoration - reservations
------------------------------ */
.reservations .decoration {
	margin: 0 auto;
	width: min(100rem, 78.125vw);
	height: 1px;
	position: relative;
}

.reservations .decoration::before {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	content: "";
}

.reservations .decoration01::before {
	background-image: url(../img/decoration-b01.webp);
	width: min(45.4rem, 35.469vw);
	height: min(16.6rem, 12.969vw);
	top: max(-30.2rem, -23.594vw);
	left: min(96rem, 75vw);
}

.reservations .decoration02::before {
	background-image: url(../img/decoration-b02.webp);
	width: min(42.4rem, 33.125vw);
	height: min(8.2rem, 6.406vw);
	top: min(1.8rem, 1.406vw);
	right: min(76.8rem, 60vw);
}

.reservations .decoration03::before {
	background-image: url(../img/decoration-b02.webp);
	width: min(42.4rem, 33.125vw);
	height: min(8.2rem, 6.406vw);
	top: max(-5.4rem, -4.219vw);
	left: min(92.8rem, 72.5vw);
}

.artist .decoration {
	background-image: url(../img/ribbon03.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: min(11.4rem, 8.906vw);
	height: min(11.2rem, 8.75vw);
	position: absolute;
	top: max(-4rem, -3.125vw);
	right: min(6rem, 4.688vw);
	transform: rotate(40deg);
}

.artist .decoration::before {
	display: none;
}

@media screen and (max-width: 768px) {

	.reservations .decoration01::before,
	.reservations .decoration02::before,
	.reservations .decoration03::before {
		display: none;
	}

	.artist .decoration {
		width: 20.8vw;
		height: 22.4vw;
		top: -14.667vw;
		right: -3.2vw;
		transform: rotate(120deg);
	}
}