@charset "utf-8";
/*----------------------------------------------
	section
---------------------------------------------*/
.c_section {
	padding: 40px 0;
}
/*----------------------------------------------
	ttl
---------------------------------------------*/
.c_ttl_wrap {
	margin-bottom: 15px;
	text-align: center;
}
.c_ttl_en {
	font-family: var(--ff-cormorant);
	font-weight: var(--fw-med);
	color: var(--base-color);
}
.c_ttl_sec {
	margin-top: -15px;
	font-size: 2.8rem;
	font-weight: var(--fw-reg);
}
/* option - color */
.is_ttl_wh * {
	color: #fff;
}
.is_ttl_pk .c_ttl_en {
	color: var(--main-color);
}
/*----------------------------------------------
	btn
---------------------------------------------*/
/*  .c_btn
---------------------------------------------*/
.c_btn {
	position: relative;
	border-radius: 5px;
	overflow: hidden;
}
.c_btn.is_shine::before {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	margin: auto;
	background: rgba(255, 255, 255, 0.2);
	transform: skewY(-45deg);
	animation: shine 5s backwards infinite;
}
.c_btn a {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0.3em 0.3em 0.4em;
	color: #fff;
	font-family: var(--ff-cjk);
	font-weight: var(--fw-med);
	text-align: center;
	text-decoration: none;
}
.c_btn a::before,
.c_btn a::after {
	position: absolute;
	content: "";
	display: block;
	height: 100%;
}
.c_btn a::before {
	z-index: -2;
	top: 0;
	left: 0;
	width: 100%;
	border-radius: 5px;
}
.c_btn a::after {
	z-index: -1;
	top: -50%;
	right: -100%;
	left: -100%;
	width: 140%;
	margin: auto;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
}
.c_btn_icon_circle {
	position: relative;
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-left: 0.5em;
	background: #fff;
	border-radius: 20px;
}
.c_btn_icon_circle::after {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 1px;
	content: "";
	height: 10px;
	aspect-ratio: var(--arrow-hn-60);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	margin: auto;
	background: var(--key-color);
}
.c_btn_icon {
	position: absolute;
	top: 0;
	right: 20px;
	bottom: 0;
	height: 12px;
	aspect-ratio: var(--arrow-hn-60);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	margin: auto;
	background: #fff;
}
.c_btn_before_icon img {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 20px;
	width: 40px;
	margin: auto;
}
.is_icon_mail img {
	transform: scale(0.9);
}
.c_btn_icon_tel {
	margin-right: 5px;
}
.c_btn_icon_tel img {
	width: 16px;
}
/* option - type */
.c_btn.is_type_mat {
	border-radius: 50px;
}
.c_btn.is_type_mat a {
	padding: 0.5em 0 0.6em;
	border-radius: 50px;
	font-size: 1.8rem;
}
.c_btn.is_type_mat a::before {
	border-radius: 50px;
}
.c_btn.is_type_mat a::after {
	content: none;
}
/* option - color */
.c_btn.is_color_or a::before {
	background: var(--key-color);
}
.c_btn.is_color_gr a::before {
	background: var(--em-color);
}
.c_btn.is_color_bk a::before {
	background: var(--bk-color);
}
.c_btn.is_color_line a::before {
	background: var(--line-color);
}
.c_btn.is_color_gy a::before {
	background: #f0f0f0;
}
.c_btn.is_color_gy a::after {
	background: rgba(255, 255, 255, 1);
}
.c_btn.is_color_pk a {
	border: 3px solid var(--pink-color);
	color: var(--pink-color);
}
.c_btn.is_color_pk a::before {
	background: #fff;
}
.c_btn.is_color_pk .c_btn_icon {
	background: var(--pink-color);
}
/* option - size */
.c_btn.is_large {
	border-radius: 10px;
}
.c_btn.is_large a {
	height: 86px;
	padding-left: 30px;
	color: var(--yl-color);
	font-size: 2rem;
	font-weight: var(--fw-bold);
	line-height: 1.4;
}
.c_btn.is_large .c_btn_icon {
	height: 22px;
	aspect-ratio: var(--arrow-hn-60);
}
/* option - shadow */
.c_btn.is_shadow {
	box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);
}

/* c_btn_booking
---------------------------------------------*/
.c_btn_booking {
	position: relative;
	overflow: hidden;
	transform: translateX(5px);
}
.c_btn_booking::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	width: 100%;
	height: 80px;
	background: rgba(255, 255, 255, 0.2);
	transform: skewY(-45deg);
	animation: shine 5s backwards infinite;
}

/*----------------------------------------------
	box
---------------------------------------------*/
/* c_box_grad
---------------------------------------------*/
.c_box_grad {
	position: relative;
	padding: 15px 20px;
	background: #ede8de;
	background: linear-gradient(
		45deg,
		rgba(237, 232, 222, 1) 0%,
		rgba(255, 255, 255, 1) 35%,
		rgba(255, 255, 255, 1) 65%,
		rgba(237, 232, 222, 1) 100%
	);
	border: 5px solid #fff;
	border-radius: 5px;
}
.c_box_grad::before {
	position: absolute;
	top: -5px;
	left: -5px;
	content: "";
	width: calc(100% + 4px);
	height: calc(100% + 4px);
	border: 3px solid var(--base-color);
	border-radius: 5px;
}
/* c_campaign_box
---------------------------------------------*/
.c_campaign_box {
	position: relative;
}
.c_campaign_fukidashi {
	position: absolute;
	top: 10px;
	right: -15px;
	width: 140px;
}
.c_campaign_catch {
	display: inline;
	border-bottom: 3px solid var(--yl-color);
	font-size: 2rem;
	color: var(--base-color);
	font-weight: var(--fw-semi);
	line-height: 1.5;
}
.c_campaign_price {
	padding: 10px 0;
	border-bottom: 3px solid #000;
}
.c_campaign_note {
	font-family: var(--ff-cjk);
	font-size: 1.4rem;
	line-height: 1.6;
}
@media screen and (max-width: 375px) {
	.c_campaign_fukidashi {
		width: 120px;
	}
}
/* c_line_box
---------------------------------------------*/
.c_line_box {
	position: relative;
	margin-top: 10px;
	padding: 15px 15px 20px;
	background: var(--line-color);
	border: 5px solid #94dda2;
	border-radius: 5px;
}
.c_line_box::after {
	position: absolute;
	right: 0;
	bottom: -18px;
	left: 0;
	content: "";
	width: 100px;
	height: 25px;
	margin: auto;
	background: url(../images/line_arrow.png) no-repeat center bottom / auto 100%;
}
.c_line_head {
	position: relative;
	padding: 0 0 15px 60px;
	border-bottom: 3px solid #fff;
	color: #fff;
	font-family: var(--ff-cjk);
	font-size: 2rem;
	font-weight: var(--fw-med);
	text-align: center;
	line-height: 1.4;
}
.c_line_head::before {
	position: absolute;
	top: 0;
	bottom: 10px;
	left: 30px;
	display: inline-block;
	content: "";
	width: 50px;
	height: 50px;
	margin: auto;
	background: url(../images/icon_line.png) no-repeat center / 100% auto;
}
.c_line_price_box {
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1.4;
}
.c_line_price_amount {
	color: var(--yl-color);
	font-size: 6.2rem;
	font-weight: var(--fw-semi);
}
.c_line_price_unit {
	font-size: 0.5em;
}
.c_line_price_present {
	color: #fff;
	font-size: 3rem;
	font-weight: var(--fw-bold);
	line-height: 1;
}
.c_line_box_btn {
	position: relative;
	margin-top: 10px;
	border-radius: 3px;
}
.c_line_box_btn a {
	color: var(--line-color);
	font-size: 1.8rem;
	font-weight: var(--fw-bold);
}
.c_line_box_btn .c_btn_icon {
	background: var(--line-color);
}
@media screen and (max-width: 375px) {
	.c_line_head::before {
		left: 20px;
	}
}
/* c_plan_box
---------------------------------------------*/
.c_plan_box {
	position: relative;
	margin-top: 30px;
	padding: 20px 20px 0;
	border: 2px solid var(--main-color);
	border-radius: 10px;
}
.c_plan_box::before,
.c_plan_box::after {
	position: absolute;
	right: 0;
	left: 0;
	content: "";
	margin: auto;
	width: 40px;
	aspect-ratio: var(--arrow-vertical-60);
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.c_plan_box::before {
	top: -17px;
	z-index: 2;
	background: #f7f7f7;
}
.c_plan_box::after {
	top: -20px;
	z-index: 1;
	background: var(--main-color);
}
.c_plan_note {
	margin-top: 10px;
	color: #666;
	font-family: var(--ff-cjk);
	font-size: 1.4rem;
	font-weight: var(--fw-med);
}
/* option - color */
.is_box_gr {
	border-color: var(--em-color);
}
.is_box_gr::after {
	background: var(--em-color);
}
.is_box_br {
	border-color: var(--base-color);
}
.is_box_br::after {
	background: var(--base-color);
}
/* option - bg */
.is_box_bg_wh {
	background: #fff;
}
.is_box_bg_wh::before {
	background: #fff;
}
/* option - none */
.is_box_none::before,
.is_box_none::after {
	content: none;
}
