@charset "UTF-8";

#kv {
	background-image: url(/assets/img/top/hero_pc.png);
	background-size: cover;
	background-position: left center;
	background-repeat: no-repeat;
	height: min(calc(1030/1720*100vw), 1030px);
	width: 100%;
	position: relative;
	z-index: 1;
	overflow: hidden;
}

#kv .kv_wrap {
	height: auto;
	padding: min(calc(510/1720*100%), 510px) 0 0 min(calc(100/1720*100%), 100px);
	display: flex;
	flex-direction: column;
}

#kv .kv_wrap h1 {
	margin-bottom: 0;
}

/*============================
#banner_area
============================*/
#banner_area {
	background-image: url(/assets/img/top/banner-area-bg_pc.png);
	background-size: cover;
	background-position: center top;
	margin-top: -7%;
	z-index: 2;
}

#banner_area .inner .banner_aqua {
	width: calc(1246/1720*100%);
	margin: 0 auto;
	padding: min(calc(190/1720*100%), 190px) 0 min(calc(70/1720*100%), 70px);
}

#concept .concept_bg:after {
	content: "";
	display: block;
	background-image: url(/assets/img/top/concept-bg_pc.png);
	background-size: cover;
	background-position: center top;
	width: 100%;
	height: 100vh;
	top: 0;
	z-index: 1;
	position: absolute;
	top: 0;
	left: 0;
}

#concept .concept_bg.is-fixed:after {
	position: fixed;
	top: 0;
	left: 0;
}

#concept .inner {
	height: 100vh;
	min-height: 1200px;
	padding: min(calc(250/1720*100%), 250px) 0 min(calc(300/1720*100%), 300px) min(calc(1030/1720*100%), 1030px);
	z-index: 2;
}

#concept .inner .concept_head {
	font-size: clamp(24px, calc(32/1720*100vw), 32px);
	font-weight: 400;
	margin-bottom: 2em;
	line-height: calc(52/32);
}

#concept .inner .concept_text {
	font-size: clamp(12px, calc(18/1720*100vw), 18px);
	font-weight: 400;
	margin-bottom: 3em;
	line-height: 2;
}

/*============================
#trial
============================*/
#trial {
	background-image: url(/assets/img/top/trial-bg_pc.png);
	background-size: cover;
	margin-top: -6%;
	z-index: 2;
}

#trial .inner {
	padding: min(calc(170/1720*100%), 170px) 0 min(calc(170/1720*100%), 170px);
}

#trial .inner .trial_box {
	width: calc(1556/1720*100%);
	margin: 0 auto;
	border: 1px solid #FFF;
	border-top: none;
}

#trial .inner .trial_title {
	font-size: min(calc(28/1720*100vw), 28px);
	font-weight: 400;
	text-align: center;
	color: #FFF;
	top: -0.9em;
	letter-spacing: 0.2em;
}

#trial .inner .trial_title:before,
#trial .inner .trial_title:after {
	content: "";
	display: block;
	width: 40%;
	height: 1px;
	background-color: #FFF;
	position: absolute;
	top: 51%;
}

#trial .inner .trial_title:before {
	left: 0;
}

#trial .inner .trial_title:after {
	right: 0;
}

#trial .inner .trial_content {
	color: #FFF;
	display: flex;
	justify-content: center;
	align-items: center;
	padding-bottom: min(calc(60/1720*100%), 60px);
}

#trial .inner .trial_content .trial_info .trial_lead {
	font-size: min(calc(32/1720*100vw), 32px);
	line-height: 1;
	letter-spacing: 0.05em;
}

#trial .inner .trial_content .trial_info .trial_price {
	margin-top: 0.7em;
	font-size: min(calc(32/1720*100vw), 32px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.08em;
}

#trial .inner .trial_content .trial_info .trial_price .num {
	font-size: min(calc(50/1720*100vw), 50px);
}

#trial .inner .trial_content .trial_info .trial_price .num.slush {
	font-weight: 100;
}

#trial .inner .trial_content .trial_info .trial_note {
	font-size: min(calc(18/1720*100vw), 18px);
	letter-spacing: 0.12em;
	margin-top: 1.5em;
}

#trial .inner .trial_content .trial_btn {
	width: calc(618/1720*100%);
	background-color: #FFF;
	text-align: center;
	border-radius: 50px;
	margin-left: calc(150/1720*100%);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
}

#trial .inner .trial_content .trial_btnLink {
	font-size: min(calc(32/1720*100vw), 32px);
	line-height: 1;
	color: #30467d;
	font-weight: 500;
	letter-spacing: 0.1em;
	display: block;
	text-align: center;
	height: 100%;
	width: 100%;
	padding: 0.5em 0;
}

#trial .inner .trial_content .trial_btn:before {
	content: "";
	display: block;
	width: calc(89/618*100%);
	padding-top: calc(8/618*100%);
	background-image: url(/assets/img/top/btn-arrow_bl.svg);
	background-size: 100% 100%;
	position: absolute;
	top: 46%;
	right: 8%;
	transition: all 0.2s ease;
}

#trial .inner .trial_content .trial_btn:hover::before {
	right: 6%;
}

/*============================
#what
============================*/
#what {
	background-image: url(/assets/img/top/what-bg_pc.png);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	margin-top: -6%;
	z-index: 2;
}

#what .inner {
	padding-top: 320px;
	padding-bottom: min(calc(250/1720*100%), 250px);
}

#what .inner .cont_sub {
	margin-bottom: calc(190/1720*100%);
}

#what .inner .what_box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: calc(124/1720*100%);
	padding-left: 170px;
}

#what .inner .what_box .what_img {
	width: calc(600/1550*100%);
}

#what .inner .what_box .what_inner {
	width: calc(780/1550*100%);
}

#what .inner .what_box .what_inner .what_head.pc_only {
	font-weight: 400;
	font-size: min(calc(32/1720*100vw), 32px);
	color: #30467d;
	margin-bottom: 1.5em;
}

#what .inner .what_box .what_inner .what_head.pc_only .font_gar {
	font-size: min(calc(24/1720*100vw), 24px);
	display: inline-block;
	margin-left: 3em;
	font-weight: 200;
	letter-spacing: 0.1em;
}

#what .inner .what_box .what_inner .what_text {
	font-size: min(calc(18/1720*100vw), 18px);
	line-height: 2;
}

#what .inner .what_box.box02 {
	padding-left: 0;
	padding-right: 170px;
}

#what .inner .what_box.box02 .what_img {
	order: 2;
}

#what .inner .what_box.box02 .what_inner {
	margin-left: 170px;
}

#what .inner .what_box.box03 {
	margin-bottom: 0;
}

/*============================
#about
============================*/
#about {
	background-image: url(/assets/img/top/about-bg_pc.png);
	background-size: 100% 110%;
	margin-top: -6%;
	z-index: 2;
}

#about .inner {
	padding-top: calc(300/1720*100%);
	padding-bottom: calc(300/1720*100%);
}

#about .inner .cont_head {
	color: #333333;
}

#about .inner .cont_sub {
	color: #333333;
}

#about .inner .about_item {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	margin-top: calc(150/1720*100%);
}

#about .inner .about_item li {
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: calc(30/1720*100%);
}

#about .inner .about_item li:nth-of-type(1) {
	background-image: url(/assets/img/top/about-textblock01_pc.png);
	width: calc(958/1720*100%);
	height: min(calc(525/1720*100vw), 525px);
	margin-right: calc(130/1720*100%);
}

#about .inner .about_item li:nth-of-type(2) {
	background-image: url(/assets/img/top/about-textblock02_pc.png);
	width: calc(946/1720*100%);
	height: min(calc(535/1720*100vw), 535px);
	margin-right: calc(650/1720*100%);
	margin-bottom: calc(72/1720*100%);
}

#about .inner .about_item li:nth-of-type(3) {
	background-image: url(/assets/img/top/about-textblock03_pc.png);
	width: calc(999/1720*100%);
	height: min(calc(551/1720*100vw), 551px);
	margin-right: 8%;
}

#about .inner .about_item .about_img {
	position: absolute;
	width: 600px;
}

#about .inner .about_item .about_textBox:nth-of-type(1) {
	margin-left: 10%;
}

#about .inner .about_item .about_textBox .about_head {
	color: #30467d;
	font-size: min(calc(32/1720*100vw), 32px);
	line-height: calc(42/32);
	font-weight: 400;
	margin-bottom: 1.2em;
	margin-left: 3.7em;
}

#about .inner .about_item .about_textBox .about_head span {
	position: absolute;
	top: -0.5em;
	left: -2.5em;
	font-size: min(calc(46/1720*100vw), 46px);
	line-height: 1;
	font-weight: 400;
}

#about .inner .about_item .about_textBox .about_head span:after {
	content: "";
	display: block;
	width: min(calc(60/1720*100vw), 60px);
	height: 1px;
	background-color: #30467d;
	position: absolute;
	top: 100%;
	right: -100%;
	transform: rotate(-50deg);
}

#about .inner .about_item .about_textBox .about_text {
	color: #333;
	font-size: min(calc(18/1720*100vw), 18px);
	line-height: calc(36/18);
	letter-spacing: 0.1em;
}

#about .inner .about_item li:nth-of-type(1) .about_img {
	left: -485px;
	top: -8px;
}

#about .inner .about_item li:nth-of-type(2) .about_img {
	right: -458px;
	top: 50px;
}

#about .inner .about_item li:nth-of-type(3) .about_img {
	left: -485px;
	top: -8px;
}

#about .line_title {
	margin: calc(50/1720*100%) auto 0;
	font-size: min(calc(32/1720*100vw), 32px);
	font-weight: 400;
	letter-spacing: 0.1em;
	width: calc(1680/1720*100%);
}

.line_title {
	--line-color: #30467d;
	--line-width: 35%;
	/* 左右ライン全体の幅 */
	--dash-size: 110px;
	/* 破線ブロックの長さ */
	position: relative;
	display: block;
	width: 100%;
	text-align: center;
	padding: 0;
	color: var(--line-color);
}

/* 左右共通 */
.line_title::before,
.line_title::after {
	content: "";
	position: absolute;
	top: 50%;
	width: var(--line-width);
	height: 1px;
	transform: translateY(-50%);
	background-repeat: no-repeat;
}

/* ================================
左側：実線 → 破線ブロック（空白増量版）
================================ */
.line_title::before {
	left: 0;
	background-image: 
		/* 実線 */
		linear-gradient(to right, var(--line-color), var(--line-color)),
		/* 破線：外側に向かって線と空白を広げる */
		linear-gradient(to right,
			/* 実線との間の空白（広めに） */
			transparent 0, transparent 10px,
			/* 外側（長さを少し抑える） */
			var(--line-color) 10px, var(--line-color) 40px,
			transparent 40px, transparent 50px,
			/* 中間 */
			var(--line-color) 50px, var(--line-color) 70px,
			transparent 70px, transparent 80px,
			/* 内側（短め） */
			var(--line-color) 80px, var(--line-color) 90px,
			transparent 90px, transparent 100%);
	background-size: 
		calc(100% - var(--dash-size)) 1px,
		var(--dash-size) 1px;
	background-position: 
		left center,
		right center;
}

/* ================================
右側：左右反転版（破線 → 実線）
================================ */
.line_title::after {
	right: 0;
	background-image: 
		linear-gradient(to left, var(--line-color), var(--line-color)),
		linear-gradient(to left,
			/* 実線との間の空白（広めに） */
			transparent 0, transparent 10px,
			/* 外側（長さを少し抑える） */
			var(--line-color) 10px, var(--line-color) 40px,
			transparent 40px, transparent 50px,
			/* 中間 */
			var(--line-color) 50px, var(--line-color) 70px,
			transparent 70px, transparent 80px,
			/* 内側（短め） */
			var(--line-color) 80px, var(--line-color) 90px,
			transparent 90px, transparent 100%);
	background-size: 
		calc(100% - var(--dash-size)) 1px,
		var(--dash-size) 1px;
	background-position: 
		right center,
		left center;
}

#about .inner .gym_item {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 0 calc(245/1720*100%);
	margin-top: calc(60/1720*100%);
	margin-bottom: calc(50/1720*100%);
}

#about .inner .gym_item li {
	width: calc(257/1230*100%);
}

#about .inner .gym_item figcaption {
	color: #30467d;
	margin-top: calc(50/257*100%);
}

#about .inner .gym_item .item_title {
	font-size: min(calc(28/1720*100vw), 28px);
	color: #30467d;
	text-align: center;
	line-height: 1;
	letter-spacing: 0.1em;
}

#about .inner .gym_item .item_title sup {
	font-size: min(calc(14/1720*100vw), 14px);
	margin-left: 0.5em;
	line-height: 1;
}

#about .inner .gym_item .item_sub {
	font-size: min(calc(18/1720*100vw), 18px);
	color: #30467d;
	text-align: center;
	line-height: 1;
	margin-top: 1em;
	letter-spacing: 0.1em;
}

#about .inner .caution {
	font-size: min(calc(14/1720*100vw), 14px);
	line-height: 1;
	text-align: right;
	letter-spacing: 0.2em;
}

/*============================
#program
============================*/
.program-price-bgWrap {
	background-image: url(/assets/img/top/program-price-bg_pc.png);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	margin-top: -11%;
	z-index: 2;
}

#program .inner {
	padding: calc(290/1720*100%) 0 0;
}

#program .inner .cont_head {
	color: #FFF;
}

#program .inner .cont_sub {
	color: #FFF;
}

/* Slider Custom */
.slider-wrap {
	margin-top: calc(178/1720*100%);
	position: relative;
	/* 矢印やドット用に余白確保 */
	padding-bottom: 5%;
	overflow-x: hidden;
}

.program_slider {
	width: 100%;
}

.program_slider .slick-list {
	/* 左右の見切れを表示させる */
	overflow: visible;
}

.program_slider .slick-slide {
	margin: 0 15px;
	/* スライド間の余白 */
	height: auto;
	opacity: 1;
	transition: opacity 0.3s;
}

/* 矢印ボタン */
.slide-arrow {
	position: absolute;
	top: 47%;
	transform: translateY(-50%);
	width: 60px;
	height: 60px;
	cursor: pointer;
	z-index: 100;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	transform: all ease 0.2s;
}

.prev-arrow {
	left: 5%;
	/* コンテンツ幅に合わせて調整 */
	background-image: url(/assets/img/top/slide-prev_pc.png);
}

.next-arrow {
	right: 5%;
	background-image: url(/assets/img/top/slide-next_pc.png);
}

.slide-arrow:hover {
	filter: brightness(1.1);
}

/* Dots */
.program_slider .slick-dots {
	bottom: -15%;
}

.program_slider .slick-dots li button:before {
	color: #172693;
	opacity: 1;
	font-size: 10px;
}

.program_slider .slick-dots li.slick-active button:before {
	color: #FFF;
	opacity: 1;
}

#program .program_slider .program_box {
	background-image: url(/assets/img/top/program-slide-textarea.png);
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: contain;
}

#program .program_slider .program_box .program_info {
	padding: calc(40/480*100%) calc(40/480*100%);
	height: min(calc(330/1720*100vw), 330px);
}

#program .program_slider .program_box .program_info .program_title {
	font-size: min(calc(24/1720*100vw), 24px);
	margin-bottom: 10px;
	font-weight: 400;
}

#program .program_slider .program_box .program_info .program_text {
	font-size: min(calc(18/1720*100vw), 18px);
	line-height: 2;
	letter-spacing: -0.05em;
}

#price .inner {
	padding: calc(130/1720*100%) 0 calc(260/1720*100%);
}

#price .inner .cont_head {
	color: #FFF;
}

#price .inner .cont_sub {
	color: #FFF;
}

#price .inner .price-box .price_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: calc(100/1720*100%);
	padding: 0 calc(90/1720*100%);
}

#price .inner .price-box .price_list li {
	width: min(calc(400/1720*100vw), 400px);
	height: min(calc(400/1720*100vw), 400px);
	background-color: #FFF;
	border-radius: 50%;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

/* 外側の欠けた円枠 */
#price .inner .price-box .price_list li::after {
	content: "";
	position: absolute;
	top: -15px;
	left: -15px;
	right: -15px;
	bottom: -15px;
	/* 本体より大きく */
	border-radius: 50%;
	border: 1px solid #FFF;
	/* 左上と右下を欠けさせるマスク */
	-webkit-mask: conic-gradient(from 0deg,
			#000 0deg 132.5deg,
			transparent 132.5deg 137.5deg,
			/* 右下の欠け（さらに短く） */
			#000 137.5deg 312.5deg,
			transparent 312.5deg 317.5deg,
			/* 左上の欠け（さらに短く） */
			#000 317.5deg 360deg);
	mask: conic-gradient(from 0deg,
			#000 0deg 132.5deg,
			transparent 132.5deg 137.5deg,
			#000 137.5deg 312.5deg,
			transparent 312.5deg 317.5deg,
			#000 317.5deg 360deg);
	pointer-events: none;
}

#price .inner .price-box .price_list .circle_wrap {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: center;
	padding-bottom: 10%;
}

#price .inner .price-box .price_list .circle_wrap .monthly_en {
	font-size: min(calc(24/1720*100vw), 24px);
	line-height: 1;
	letter-spacing: 0.2em;
}

#price .inner .price-box .price_list .circle_wrap .monthly_en .num {
	font-size: min(calc(64/1720*100vw), 64px);
	line-height: 1;
	font-weight: 600;
	bottom: -0.15em;
	letter-spacing: 0;
}

#price .inner .price-box .price_list .circle_wrap .course_name {
	background-color: #30467d;
	color: #FFF;
	display: inline-block;
	font-size: min(calc(24/1720*100vw), 24px);
	line-height: 1;
	letter-spacing: 0.2em;
	padding: 0.4em 2em;
	border-radius: 50px;
	margin: calc(60/400*100%) 0;
}

#price .inner .price-box .price_list .circle_wrap .price_val {
	color: #30467d;
	font-size: min(calc(32/1720*100vw), 32px);
	line-height: 1;
}

#price .inner .price-box .price_list .circle_wrap .price_once {
	color: #30467d;
	font-size: min(calc(20/1720*100vw), 20px);
	line-height: 1;
	margin-top: 0.8em;
}

#price .inner .price-box .price_list .circle_wrap .price_val .num {
	font-size: min(calc(46/1720*100vw), 46px);
	letter-spacing: 0.1em;
}

#price .inner .price-box .price_list .circle_wrap .price_val .tax {
	font-size: min(calc(20/1720*100vw), 20px);
}

#price .inner .line_title {
	--line-width: 30%;
	color: #FFF;
	font-size: min(calc(32/1720*100vw), 32px);
	line-height: 1;
	font-weight: 400;
	letter-spacing: 0.1em;
	margin-top: calc(160/1720*100%);
	--line-color: #FFF;
}

#price .inner .line_title_sub {
	font-size: min(calc(24/1720*100vw), 24px);
	line-height: 1;
	text-align: center;
	font-weight: 300;
	color: #FFF;
	letter-spacing: 0.1em;
	margin-top: calc(40/1720*100%);
}

#price .inner .price-box .price_additionBox .additional_price {
	display: flex;
	justify-content: space-between;
	margin-top: calc(50/1720*100%);
	padding: 0 calc(30/1720*100%);
}

#price .inner .price-box .price_additionBox .additional_price .additional_box {
	width: calc(805/1660*100%);
	border: 1px solid #FFF;
	/* 内枠（メインの枠） */
	position: relative;
	/* padding は削除して内側で調整、あるいは box_inner で調整 */
}

/* 外側の線（右と下のみ） */
#price .inner .price-box .price_additionBox .additional_price .additional_box::after {
	content: "";
	position: absolute;
	top: 6px;
	/* 上はずらす */
	left: 6px;
	/* 左はずらす */
	width: 100%;
	/* 親と同じ幅 */
	height: 100%;
	/* 親と同じ高さ */
	border-right: 1px solid #FFF;
	border-bottom: 1px solid #FFF;
	pointer-events: none;
}

#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner {
	font-weight: 400;
	padding: min(calc(45/1720*100vw), 45px) min(calc(65/1720*100vw), 65px);
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	height: 100%;
}

/* 中央の点線 */
#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner::after {
	content: "";
	position: absolute;
	top: 20%;
	bottom: 20%;
	left: 55%;
	/* 少し右寄りに配置（テキスト幅考慮） */
	border-left: 1px dashed #FFF;
}

#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner .member_type {
	color: #FFF;
	font-size: min(calc(30/1720*100vw), 30px);
	line-height: calc(44/30);
	letter-spacing: 0.1em;
	width: 50%;
}

#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner .price_val {
	color: #FFF;
	font-size: min(calc(32/1720*100vw), 32px);
	line-height: 1;
	width: 40%;
	text-align: right;
}

#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner .price_val .num {
	font-size: min(calc(46/1720*100vw), 46px);
	letter-spacing: 0.05em;
}

#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner .price_val .tax {
	font-size: min(calc(20/1720*100vw), 20px);
	margin-left: 0.2em;
}

#price .inner .price-box .price_additionBox .price_note {
	color: #FFF;
	text-align: right;
	margin-top: calc(65/1720*100%);
	padding-right: calc(30/1720*100%);
	font-size: min(calc(14/1720*100vw), 14px);
	letter-spacing: 0.1em;
}

#price .inner .price-box .price_additionBox .price_cloudWrap {
	display: flex;
	justify-content: space-between;
	margin-top: calc(80/1720*100vw);
	margin-bottom: calc(120/1720*100vw);
	padding: 0 calc(70/1720*100%);
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox {
	width: calc(740/1580*100%);
	position: relative;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #002a68;
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox:nth-of-type(1) {
	aspect-ratio: 760/387;
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox:nth-of-type(2) {
	aspect-ratio: 760/396;
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox:nth-child(1) {
	background-image: url(/assets/img/top/price-item-bg01_pc.png);
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox:nth-child(2) {
	background-image: url(/assets/img/top/price-item-bg02_pc.png);
	padding-left: 5%;
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudText {
	font-size: min(calc(32/1720*100vw), 32px);
	text-align: center;
	font-weight: 200;
	margin-bottom: 0.3em;
	line-height: 1.6;
	letter-spacing: 0.2em;
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudText span {
	letter-spacing: 0;
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudPrice {
	font-size: min(calc(32/1720*100vw), 32px);
	font-weight: 200;
	letter-spacing: 0.05em;
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudPrice .num {
	font-size: min(calc(46/1720*100vw), 46px);
	font-weight: 400;
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudPrice .tax {
	font-size: min(calc(20/1720*100vw), 20px);
}

#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudImg {
	position: absolute;
	bottom: -7%;
	left: 0;
	width: calc(199/740*100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

/*============================
#Review
============================*/
#review {
	background-image: linear-gradient(to bottom,
			rgba(217, 217, 217, 0) 0%,
			rgba(217, 217, 217, 0) 20%,
			#F8F8F8 20%,
			#F8F8F8 100%), url(/assets/img/top/review-bg_pc.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center top;
	z-index: 2;
	margin-top: -5%;
}

#review .inner {
	padding: calc(265/1720*100%) 0;
}

#review .inner .cont_head {
	color: #333;
}

#review .inner .cont_sub {
	color: #333;
}

/*============================
#faq
============================*/
#faq {
	background-image: url(/assets/img/top/faq-bg_pc.png);
	background-image:
		linear-gradient(to bottom,
			rgba(217, 217, 217, 0) 0%,
			rgba(217, 217, 217, 0) 70%,
			#D9D9D9 70%,
			#D9D9D9 100%),
		url(/assets/img/top/faq-bg_pc.png);
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: center top;
	padding: calc(278/1720*100%) 0;
	z-index: 2;
	margin-top: -5%;
}

#faq .inner .cont_head {
	color: #333;
}

#faq .inner .cont_sub {
	color: #333;
	margin-bottom: 60px;
}

#faq .inner .accordion {
	width: 1130px;
	margin: 0 auto;
}

#faq .inner .accordion .accordion_head {
	display: flex;
	align-items: center;
	padding: min(calc(30/1720*100vw), 30px) 0 min(calc(30/1720*100vw), 30px) min(calc(30/1720*100vw), 30px);
	border-bottom: 1px solid #333;
	cursor: pointer;
	position: relative;
	transition: background-color 0.3s;
}

#faq .inner .accordion .accordion_head .q_mark {
	font-size: min(calc(30/1720*100vw), 30px);
	margin-right: calc(40/1720*100%);
	margin-left: calc(20/1720*100%);
}

#faq .inner .accordion .accordion_head .q_text {
	font-size: min(calc(24/1720*100vw), 24px);
	line-height: 1.6;
	flex: 1;
	letter-spacing: 0.1em;
}

#faq .inner .accordion .accordion_head .toggle_icon {
	width: 20px;
	height: 20px;
	margin-right: 20px;
	position: relative;
}

#faq .inner .accordion .accordion_head .toggle_icon::before,
#faq .inner .accordion .accordion_head .toggle_icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #333;
	transition: transform 0.3s;
}

/* 初期状態は「＋」にするため、縦棒を追加 */
#faq .inner .accordion .accordion_head .toggle_icon::after {
	transform: rotate(90deg);
}

/* 開いたとき（is-openクラスがつくと想定）は「－」にするため、縦棒を回転 */
#faq .inner .accordion .accordion_head.is-open .toggle_icon::after {
	transform: rotate(0deg);
}

#faq .inner .accordion .accordion_body {
	display: none;
	/* JSで制御 */
}

#faq .inner .accordion .accordion_body p {
	font-size: min(calc(18/1720*100vw), 18px);
	line-height: 2;
}

#faq .inner .accordion .accordion_body .a_inner {
	padding: min(calc(30/1720*100vw), 30px) min(calc(40/1720*100vw), 40px) min(calc(30/1720*100vw), 30px) min(calc(50/1720*100vw), 50px);
	/* インデント調整 */
	font-size: min(calc(15/1720*100vw), 15px);
	line-height: 2;
	letter-spacing: 0.05em;
}

/*============================
#reservation
============================*/
#reservation {
	background-image: url(/assets/img/top/reservation-bg_pc.png);
	background-size: cover;
	background-position: center;
	margin-top: -5%;
	position: relative;
	z-index: 1;
}

#reservation .inner {
	padding: calc(200/1720*100%) 0 calc(265/1720*100%);
}

#reservation .inner .contact_wrap {
	display: flex;
	justify-content: center;
	gap: calc(40/1720*100%);
}

#reservation .inner .contact_wrap .contact_link {
	width: min(calc(560/1720*100vw), 560px);
}

#reservation .inner .contact_wrap .contact_link .box_link {
	display: block;
	background-color: #fff;
	padding: calc(75/1720*100vw) 0;
	text-align: center;
	box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
	transition: opacity 0.3s;
	position: relative;
}

#reservation .inner .contact_wrap .contact_link .box_link::after {
	content: "";
	position: absolute;
	top: 10px;
	left: 10px;
	width: 100%;
	height: 100%;
	border-right: 1px solid #FFF;
	border-bottom: 1px solid #FFF;
	pointer-events: none;
	z-index: -1;
}

#reservation .inner .contact_wrap .contact_link .box_link:hover {
	opacity: 0.7;
}

#reservation .inner .contact_wrap .contact_link .box_link .en_ttl {
	display: block;
	text-align: center;
	font-size: min(calc(24/1720*100vw), 24px);
	color: #30467d;
	letter-spacing: 0.1em;
	margin-bottom: 1em;
}

#reservation .inner .contact_wrap .contact_link .box_link .jp_ttl {
	font-family: "Shippori Mincho", serif;
	font-size: min(calc(15/1720*100vw), 15px);
	letter-spacing: 0.2em;
	color: #333;
	display: flex;
	align-items: center;
	justify-content: center;
}

#reservation .inner .contact_wrap .contact_link .box_link .jp_ttl::after {
	content: "";
	display: inline-block;
	width: 60px;
	height: 10px;
	background-image: url(/assets/img/top/btn-arrow_bl.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	margin-left: 2em;
	transition: transform 0.3s;
}

#reservation .inner .contact_wrap .contact_link .box_link:hover .jp_ttl::after {
	transform: translateX(10px);
}

/*============================
Liquid
============================*/

@media (max-width:1750px) {
	/*============================
	#wWhat
	============================*/
	#what .inner .what_box {
		padding-left: calc(170/1720*100vw);
	}

	/*============================
	#about
	============================*/
	#about .inner .about_item li .about_img {
		width: calc(600/1720*100vw);
	}

	#about .inner .about_item li:nth-of-type(1) .about_img {
		left: -51%;
		top: -1%;
	}

	#about .inner .about_item li:nth-of-type(2) .about_img {
		right: -54%;
		top: 8%;
	}

	#about .inner .about_item li:nth-of-type(3) .about_img {
		left: -48%;
		top: -1%;
	}

	#about .inner .caution {
		padding-right: 2%;
	}

}

@media (max-width:1200px) {
	#faq .inner .accordion {
		width: calc(1130/1200*100%);
	}
}

/*============================
Smartphone
============================*/
@media (max-width:1000px) {
	#kv {
		background-image: url(/assets/img/top/hero_sp.png);
		height: min(calc(1100/750*100vw), 1100px);
	}

	#kv .kv_wrap {
		height: auto;
		padding: min(calc(490/750*100%), 490px) 0 0 min(calc(40/750*100%), 40px);
		display: flex;
		flex-direction: column;
	}

	#kv .kv_wrap h1 {
		margin-bottom: 0;
	}

	/*============================
	#banner_area
	============================*/
	#banner_area {
		background-image: url(/assets/img/top/banner-area-bg_sp.png);
		background-size: cover;
		background-position: center top;
		margin-top: -38%;
		z-index: 2;
	}

	#banner_area .inner .banner_aqua {
		width: calc(686/750*100%);
		margin: 0 auto;
		padding: min(calc(150/750*100%), 150px) 0 min(calc(80/750*100%), 80px);
	}

	#concept .concept_bg:after {
		content: "";
		display: block;
		background-image: url(/assets/img/top/concept-bg_sp.png);
		background-size: cover;
		background-position: center top;
		background-repeat: no-repeat;
		width: 100%;
		height: 110vh;
		top: 0;
		z-index: 1;
		position: absolute;
		top: 0;
		left: 0;
	}

	#concept .inner {
		height: 160vh;
		padding: min(calc(800/750*100%), 800px) 0 0 min(calc(30/750*100%), 30px);
		z-index: 2;
	}

	@media (max-height:1000px) {
		#concept .inner {
			height: 200vh;
		}
	}

	@media (max-height:850px) {
		#concept .inner {
			height: 200vh;
		}
	}

	@media (max-height:600px) {
		#concept .inner {
			height: 300vh;
		}
	}

	#concept .inner .concept_head {
		font-size: min(calc(36/750*100vw), 36px);
		font-weight: 400;
		margin-bottom: 3em;
		line-height: calc(52/32);
		color: #FFF;
		letter-spacing: 0.1em;
		text-shadow: 0 2px 3px rgba(0, 0, 0, 0.75);
	}

	#concept .inner .concept_text {
		font-size: min(calc(22/750*100vw), 22px);
		margin-bottom: 3em;
		letter-spacing: 0.15em;
		line-height: calc(36/22);
		color: #FFF;
		text-shadow: 0 2px 3px rgba(0, 0, 0, 0.75);
	}

	/*============================
	#trial
	============================*/
	#trial {
		background-image: url(/assets/img/top/trial-bg_sp.png);
		margin-top: -0%;
		z-index: 2;
	}

	#trial .inner {
		padding: min(calc(190/750*100%), 190px) 0 min(calc(560/750*100%), 560px);
	}

	#trial .inner .trial_box {
		width: calc(690/750*100%);
	}

	#trial .inner .trial_title {
		font-size: min(calc(32/750*100vw), 32px);
		top: -0.9em;
		letter-spacing: 0.2em;
	}

	#trial .inner .trial_title:before,
	#trial .inner .trial_title:after {
		width: 30%;
		top: 51%;
	}

	#trial .inner .trial_content {
		color: #FFF;
		display: block;
		padding-bottom: min(calc(90/750*100%), 90px);
	}

	#trial .inner .trial_content .trial_info {
		display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		align-items: center;
	}

	#trial .inner .trial_content .trial_info .trial_lead {
		font-size: min(calc(40/750*100vw), 40px);
	}

	#trial .inner .trial_content .trial_info .trial_price {
		margin-top: 1em;
		font-size: min(calc(40/750*100vw), 40px);
		letter-spacing: 0em;
	}

	#trial .inner .trial_content .trial_info .trial_price .num {
		font-size: min(calc(60/750*100vw), 60px);
	}

	#trial .inner .trial_content .trial_info .trial_price .num.slush {
		font-weight: 100;
	}

	#trial .inner .trial_content .trial_info .trial_note {
		font-size: min(calc(22/750*100vw), 22px);
		letter-spacing: 0.15em;
		margin-top: 1.5em;
		margin-bottom: 12%;
	}

	#trial .inner .trial_content .trial_btn {
		width: calc(618/750*100%);
		margin: 0 auto;
	}

	#trial .inner .trial_content .trial_btnLink {
		font-size: min(calc(32/750*100vw), 32px);
		line-height: 1;
		color: #30467d;
		font-weight: 500;
		letter-spacing: 0.1em;
		display: block;
		text-align: center;
		height: 100%;
		width: 100%;
		padding: 0.7em 0;
	}

	#trial .inner .trial_content .trial_btn:before {
		content: "";
		display: block;
		width: calc(89/618*100%);
		padding-top: calc(8/618*100%);
		background-image: url(/assets/img/top/btn-arrow_bl.svg);
		background-size: 100% 100%;
		position: absolute;
		top: 46%;
		right: 8%;
		transition: all 0.2s ease;
	}

	#trial .inner .trial_content .trial_btn:hover::before {
		right: 6%;
	}

	/*============================
	#what
	============================*/
	#what {
		background-image: url(/assets/img/top/what-bg_sp.png);
		margin-top: -10%;
		z-index: 2;
	}

	#what .inner {
		padding-top: calc(300/750*100%);
		padding-bottom: min(calc(250/750*100%), 250px);
	}

	#what .inner .cont_head {
		font-size: min(calc(80/750*100vw), 80px);
	}

	#what .inner .cont_sub {
		margin-bottom: calc(120/750*100%);
	}

	#what .inner .what_box {
		display: block;
		width: calc(690/750*100%);
		margin: 0 auto calc(150/690*100%);
		padding-left: 0;
	}

	#what .inner .what_box .what_head.sp_only {
		color: #30467d;
		font-size: min(calc(32/750*100vw), 32px);
		font-weight: 400;
		margin-bottom: calc(55/690*100%);
		letter-spacing: 0.1em;
	}

	#what .inner .what_box .what_head.sp_only span {
		font-size: min(calc(26/750*100vw), 26px);
		font-weight: 100;
		display: inline-block;
		margin-left: 3em;
	}

	#what .inner .what_box .what_img {
		width: 100%;
		margin-bottom: calc(55/690*100%);
	}

	#what .inner .what_box .what_inner {
		width: 100%;
	}

	#what .inner .what_box.box02 .what_inner {
		margin-left: 0;
	}

	#what .inner .what_box .what_inner .what_text {
		font-size: min(calc(22/750*100vw), 22px);
		line-height: calc(40/22);
	}

	#what .inner .what_box.box02 {
		padding-right: 0;
	}

	#what .inner .what_box.box03 .what_head {
		letter-spacing: 0;
		text-align: left;
	}

	#what .inner .what_box.box03 .what_head span {
		margin-left: 0;
		display: block;
		margin-top: 0.3em;
	}

	/*============================
	#about
	============================*/
	#about {
		background-image: url(/assets/img/top/about-bg_sp.png);
		background-size: cover;
		margin-top: -10%;
		z-index: 2;
	}

	#about .inner {
		padding-top: calc(250/750*100%);
		padding-bottom: calc(250/750*100%);
	}

	#about .inner .cont_head {
		color: #333333;
		font-size: min(calc(86/750*100vw), 86px);
	}

	#about .inner .cont_sub {
		font-size: min(calc(36/750*100vw), 36px);
		color: #333333;
	}

	#about .inner .about_item {
		display: block;
		margin-top: calc(430/750*100%);
	}

	#about .inner .about_item li {
		background-size: cover;
		background-position: center top;
		background-repeat: no-repeat;
		display: flex;
		align-items: center;
		justify-content: center;
		margin-bottom: calc(30/1720*100%);
	}

	#about .inner .about_item li:nth-of-type(1) {
		background-image: url(/assets/img/top/about-textblock01_sp.png);
		width: 100%;
		height: calc(578/750*100vw);
		margin-right: 0;
		margin-bottom: calc(400/750*100%);
	}

	#about .inner .about_item li:nth-of-type(2) {
		background-image: url(/assets/img/top/about-textblock02_sp.png);
		width: 100%;
		height: calc(590/750*100vw);
		margin-right: 0;
		margin-bottom: calc(400/750*100%);
	}

	#about .inner .about_item li:nth-of-type(3) {
		background-image: url(/assets/img/top/about-textblock03_sp.png);
		width: 100%;
		height: calc(591/750*100vw);
		margin-bottom: calc(60/750*100%);
	}

	#about .inner .about_item li:nth-of-type(1) .about_textBox {
		margin-left: 0;
		padding-bottom: 10%;
	}

	#about .inner .about_item li:nth-of-type(2) .about_textBox {
		margin-left: 0;
		padding-bottom: 0;
	}

	#about .inner .about_item li:nth-of-type(3) .about_textBox {
		margin-left: 0;
	}

	#about .inner .about_item .about_textBox .about_head {
		color: #30467d;
		font-size: min(calc(32/750*100vw), 32px);
		line-height: calc(42/32);
		margin-bottom: 1.2em;
		margin-left: 3em;
	}

	#about .inner .about_item .about_textBox .about_head span {
		position: absolute;
		top: -0.5em;
		left: -2.4em;
		font-size: min(calc(46/750*100vw), 46px);
		line-height: 1;
		font-weight: 400;
	}

	#about .inner .about_item .about_textBox .about_head span:after {
		content: "";
		display: block;
		width: min(calc(60/750*100vw), 60px);
		height: 1px;
		background-color: #30467d;
		position: absolute;
		top: 100%;
		right: -100%;
		transform: rotate(-50deg);
	}

	#about .inner .about_item .about_textBox .about_text {
		font-size: min(calc(22/750*100vw), 22px);
		line-height: calc(40/22);
		letter-spacing: 0.1em;
	}

	#about .inner .about_item li .about_img {
		width: calc(600/750*100%);
	}

	#about .inner .about_item li:nth-of-type(1) .about_img {
		left: calc(108/750*100%);
		top: -55%;
	}

	#about .inner .about_item li:nth-of-type(2) .about_img {
		left: calc(108/750*100%);
		top: -47%;
	}

	#about .inner .about_item li:nth-of-type(3) .about_img {
		left: calc(108/750*100%);
		top: -50%;
	}

	#about .line_title {
		margin: calc(50/1720*100%) auto 0;
		font-size: min(calc(36/750*100vw), 36px);
		font-weight: 400;
		letter-spacing: 0.1em;
		width: 100%;
	}

	.line_title {
		--line-color: #30467d;
		--line-width: 22%;
		/* 左右ライン全体の幅 */
		--dash-size: 40px;
		/* 破線ブロックの長さ */
		position: relative;
		display: block;
		width: 100%;
		text-align: center;
		padding: 0;
		color: var(--line-color);
	}

	/* 左右共通 */
	.line_title::before,
	.line_title::after {
		content: "";
		position: absolute;
		top: 50%;
		width: var(--line-width);
		height: 1px;
		transform: translateY(-50%);
		background-repeat: no-repeat;
	}

	/* ================================
	左側：実線 → 破線ブロック（空白増量版）
	================================ */
	.line_title::before {
		left: 0;
		background-image:
			/* 実線 */
			linear-gradient(to right, var(--line-color), var(--line-color)),
			/* 破線：外側に向かって線と空白を広げる */
			linear-gradient(to right,
				/* 実線との間の空白（広めに） */
				transparent 0, transparent 4px,
				/* 外側（長さを少し抑える） */
				var(--line-color) 4px, var(--line-color) 16px,
				transparent 16px, transparent 20px,
				/* 中間 */
				var(--line-color) 20px, var(--line-color) 28px,
				transparent 28px, transparent 32px,
				/* 内側（短め） */
				var(--line-color) 32px, var(--line-color) 36px,
				transparent 36px, transparent 100%);
		background-size:
			calc(100% - var(--dash-size)) 1px,
			var(--dash-size) 1px;
		background-position:
			left center,
			right center;
	}

	/* ================================
	右側：左右反転版（破線 → 実線）
	================================ */
	.line_title::after {
		right: 0;
		background-image:
			linear-gradient(to left, var(--line-color), var(--line-color)),
			linear-gradient(to left,
				/* 実線との間の空白（広めに） */
				transparent 0, transparent 4px,
				/* 外側（長さを少し抑える） */
				var(--line-color) 4px, var(--line-color) 16px,
				transparent 16px, transparent 20px,
				/* 中間 */
				var(--line-color) 20px, var(--line-color) 28px,
				transparent 28px, transparent 32px,
				/* 内側（短め） */
				var(--line-color) 32px, var(--line-color) 36px,
				transparent 36px, transparent 100%);
		background-size:
			calc(100% - var(--dash-size)) 1px,
			var(--dash-size) 1px;
		background-position:
			right center,
			left center;
	}

	#about .inner .gym_item {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		padding: 0 calc(75/750*100%);
		margin-top: calc(90/750*100%);
		margin-bottom: calc(50/1720*100%);
	}

	#about .inner .gym_item li {
		width: calc(257/600*100%);
		margin-bottom: 5%;
	}

	#about .inner .gym_item .item_title {
		font-size: min(calc(28/750*100vw), 28px);
	}

	#about .inner .gym_item .item_title sup {
		font-size: min(calc(14/750*100vw), 14px);
	}

	#about .inner .gym_item .item_sub {
		font-size: min(calc(18/750*100vw), 18px);
		color: #30467d;
		text-align: center;
		line-height: 1;
		margin-top: 1em;
		letter-spacing: 0.1em;
	}

	#about .inner .caution_wrap {
		display: flex;
		justify-content: flex-end;
		padding-right: calc(30/750*100%);
	}

	#about .inner .caution {
		font-size: min(calc(18/750*100vw), 18px);
		line-height: calc(22/18);
		text-align: left;
	}

	/*============================
	#program
	============================*/
	.program-price-bgWrap {
		background-image: url(/assets/img/top/program-price-bg_sp.png);
		background-size: cover;
		background-position: center top;
		background-repeat: no-repeat;
		margin-top: -31%;
		z-index: 2;
	}

	#program .inner {
		padding: calc(250/750*100%) 0 0;
	}

	#program .inner .cont_head {
		color: #FFF;
		margin-bottom: 0.4em;
	}

	/* Slider Custom */
	.slider-wrap {
		margin-top: calc(85/750*100%);
		position: relative;
		padding-bottom: 0;
		overflow-x: hidden;
		overflow-y: visible;
	}

	.program_slider {
		width: 100%;
		z-index: 10;
	}

	.program_slider .slick-list {
		/* 左右の見切れを表示させる */
		overflow: visible;
	}

	.program_slider .slick-slide {
		margin: 0 20px;
		/* スライド間の余白 */
	}

	.slick-dotted.slick-slider {
		margin-bottom: 0;
		padding-bottom: 10%;
	}

	/* 矢印ボタン */
	.slide-arrow {
		width: 30px;
		height: 30px;
	}

	.prev-arrow {
		left: 0%;
		/* コンテンツ幅に合わせて調整 */
		background-image: url(/assets/img/top/slide-prev_sp.png);
	}

	.next-arrow {
		right: 0;
		background-image: url(/assets/img/top/slide-next_sp.png);
	}

	/* Dots */
	.program_slider .slick-dots {
		bottom: -0;
	}

	.program_slider .slick-dots li button:before {
		color: #172693;
		opacity: 1;
		font-size: 10px;
	}

	.program_slider .slick-dots li.slick-active button:before {
		color: #FFF;
		opacity: 1;
	}

	#program .program_slider .program_box {
		background-image: none;
		background-position: center bottom;
		background-repeat: no-repeat;
		background-size: cover;
	}

	#program .program_slider .program_box .program_info {
		background-image: url(/assets/img/top/program-slide-textarea.png);
		background-position: center bottom;
		background-repeat: no-repeat;
		background-size: cover;
		width: 100%;
		padding: calc(40/480*100%) calc(40/480*100%);
		height: calc(400/750*100vw);
	}

	#program .program_slider .program_box .program_info .program_title {
		font-size: calc(30/750*100vw);
		margin-bottom: 10px;
	}

	#program .program_slider .program_box .program_info .program_text {
		font-size: calc(23/750*100vw);
		line-height: 2;
	}

	/*============================
	#price
	============================*/
	#price {
		margin-top: -15%;
		padding-top: 15%;
	}

	#price .inner {
		padding: calc(100/750*100%) 0 calc(260/750*100%);
	}

	#price .inner .cont_head {
		color: #FFF;
		margin-bottom: 0.4em;
	}

	#price .inner .cont_sub {
		color: #FFF;
		font-size: min(calc(36/750*100vw), 36px);
	}

	#price .inner .price-box .price_list {
		margin-top: calc(50/750*100%);
		padding: 0 calc(20/750*100%);
	}

	#price .inner .price-box .price_list li {
		width: calc(202/750*100vw);
		height: calc(202/750*100vw);
		margin: 0 auto calc(30/750*100%);
	}

	/* 外側の欠けた円枠 */
	#price .inner .price-box .price_list li::after {
		top: -5px;
		left: -5px;
		right: -5px;
		bottom: -5px;
	}

	#price .inner .price-box .price_list .circle_wrap .monthly_en {
		font-size: min(calc(12/750*100vw), 12px);
	}

	#price .inner .price-box .price_list .circle_wrap .monthly_en .num {
		font-size: min(calc(32/750*100vw), 32px);
	}

	#price .inner .price-box .price_list .circle_wrap .course_name {
		font-size: min(calc(14/750*100vw), 14px);
		line-height: 1;
		letter-spacing: 0.2em;
		padding: 0.4em 2em;
		border-radius: min(calc(20/750*100vw), 20px);
		margin: calc(20/220*100%) 0;
	}

	#price .inner .price-box .price_list .circle_wrap .price_once {
		font-size: min(calc(18/750*100vw), 18px);
		margin-top: 0.5em;
	}

	#price .inner .price-box .price_list .circle_wrap .price_val {
		color: #30467d;
		font-size: min(calc(16/750*100vw), 16px);
		line-height: 1;
	}

	#price .inner .price-box .price_list .circle_wrap .price_val .num {
		font-size: min(calc(23/750*100vw), 23px);
		letter-spacing: 0.1em;
	}

	#price .inner .price-box .price_list .circle_wrap .price_val .tax {
		font-size: min(calc(10/750*100vw), 10px);
	}

	#price .inner .line_title {
		--line-width: 12%;
		color: #FFF;
		font-size: min(calc(32/750*100vw), 32px);
		line-height: calc(50/36);
		font-weight: 400;
		letter-spacing: 0.2em;
		margin-top: calc(100/750*100%);
		--line-color: #FFF;
	}

	#price .inner .line_title.narrow {
		--line-width: 5%;
	}

	#price .inner .line_title.wide {
		--line-width: 30%;
	}

	#price .inner .line_title_sub {
		font-size: min(calc(24/750*100vw), 24px);
		margin-top: calc(30/750*100%);
	}

	#price .inner .price-box .price_additionBox .additional_price {
		display: flex;
		margin-top: calc(30/750*100%);
		padding: 0 calc(40/750*100%);
	}

	#price .inner .price-box .price_additionBox .additional_price .additional_box {
		display: flex;
		width: calc(307/670*100%);
		margin-bottom: 0;
	}

	#price .inner .price-box .price_additionBox .additional_price .additional_box:nth-of-type(2) .member_type {
		padding-top: 1.1em !important;
		padding-bottom: 1.5em !important;
	}

	/* 外側の線（右と下のみ） */
	#price .inner .price-box .price_additionBox .additional_price .additional_box::after {
		content: "";
		position: absolute;
		top: 6px;
		/* 上はずらす */
		left: 6px;
		/* 左はずらす */
		width: 100%;
		/* 親と同じ幅 */
		height: 100%;
		/* 親と同じ高さ */
		border-right: 1px solid #FFF;
		border-bottom: 1px solid #FFF;
		pointer-events: none;
	}

	#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner {
		font-weight: 400;
		width: 100%;
		padding: calc(40/750*100vw) calc(22/750*100vw) calc(50/750*100vw);
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		align-items: center;
		position: relative;
		height: 100%;
	}

	/* 中央の点線 */
	#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner::after {
		content: "";
		position: absolute;
		top: 20%;
		bottom: 20%;
		left: 55%;
		/* 少し右寄りに配置（テキスト幅考慮） */
		border-left: none;
	}

	#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner .member_type {
		color: #FFF;
		font-size: min(calc(21/750*100vw), 21px);
		line-height: calc(36/24);
		letter-spacing: 0.25em;
		padding-bottom: 1.2em;
		width: 100%;
		border-bottom: 1px dashed #FFF;
	}

	#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner .price_val {
		font-size: min(calc(26/750*100vw), 26px);
		text-align: center;
		width: 100%;
		padding-top: 1.5em;
	}

	#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner .price_val .num {
		font-size: min(calc(32/750*100vw), 32px);
	}

	#price .inner .price-box .price_additionBox .additional_price .additional_box .box_inner .price_val .tax {
		font-size: min(calc(14/750*100vw), 14px);
		margin-left: 0.2em;
	}

	#price .inner .price-box .price_additionBox .price_note {
		color: #FFF;
		text-align: left;
		margin-top: calc(65/750*100%);
		padding-left: calc(30/750*100%);
		padding-right: 0;
		font-size: min(calc(18/750*100vw), 18px);
		letter-spacing: 0.2em;
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap {
		display: flex;
		margin-top: 0;
		padding: 0 calc(25/750*100%);
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox {
		width: 40%;
		margin-bottom: 0;
		color: #0c224e;
		margin-top: calc(100/750*100%);
		aspect-ratio: auto;
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox:nth-child(1) {
		background-image: url(/assets/img/top/price-item-bg01_sp.png);
		width: calc(345/750*100vw);
		height: calc(199/750*100vw);
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox:nth-child(2) {
		background-image: url(/assets/img/top/price-item-bg02_sp.png);
		width: calc(326/750*100vw);
		height: calc(220/750*100vw);
		padding-left: 0;
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudText {
		font-size: min(calc(18/750*100vw), 18px);
		text-align: center;
		margin-bottom: 0.2em;
		line-height: 1.6;
		letter-spacing: 0.1em;
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudPrice {
		font-size: min(calc(21/750*100vw), 21px);
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudPrice .num {
		font-size: min(calc(32/750*100vw), 32px);
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudPrice .tax {
		font-size: min(calc(13/750*100vw), 13px);
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudImg {
		position: absolute;
		width: calc(109/750*100vw);
		bottom: auto;
		top: -31%;
		left: 32%;
	}

	#price .inner .price-box .price_additionBox .price_cloudWrap .price_cloudBox .price_cloudImg img {
		width: 100%;
		height: auto;
	}

	/*============================
	#Review
	============================*/
	#review {
		background-image: linear-gradient(to bottom,
				rgba(217, 217, 217, 0) 0%,
				rgba(217, 217, 217, 0) 40%,
				#F8F8F8 40%,
				#F8F8F8 100%), url(/assets/img/top/review-bg_sp.png);
		margin-top: -10%;
	}

	#review .inner {
		padding: calc(265/750*100%) 0;
	}

	#review .inner .cont_head {
		color: #333;
	}

	#review .inner .cont_sub {
		color: #333;
	}

	/*============================
	#faq
	============================*/
	#faq {
		background:
			linear-gradient(to bottom,
				rgba(217, 217, 217, 0) 0%,
				rgba(217, 217, 217, 0) 70%,
				#dfdfdf 70%,
				#dfdfdf 100%),
			url(/assets/img/top/faq-bg_sp.png);
		background-size: 100% auto;
		background-repeat: no-repeat;
		background-position: center top;
		padding: calc(278/750*100%) 0 calc(100/750*100%);
		z-index: 2;
		margin-top: -11%;
	}

	#faq .inner .cont_head {
		margin-bottom: 0.4em;
	}

	#faq .inner .cont_sub {
		color: #333;
		font-size: min(calc(36/750*100vw), 36px);
		margin-bottom: calc(145/750*100%);
	}

	#faq .inner .accordion {
		width: calc(690/750*100%);
		margin: 0 auto;
	}

	#faq .inner .accordion .accordion_head {
		padding: min(calc(30/750*100vw), 30px) 0;
	}

	#faq .inner .accordion .accordion_head .q_mark {
		font-size: min(calc(36/750*100vw), 36px);
		margin-right: calc(40/750*100%);
		margin-left: calc(20/750*100%);
	}

	#faq .inner .accordion .accordion_head .q_text {
		font-size: min(calc(28/750*100vw), 28px);
		line-height: 1.6;
		flex: 1;
		letter-spacing: 0.1em;
	}

	#faq .inner .accordion .accordion_head .toggle_icon {
		width: 15px;
		height: 15px;
		margin-right: 10px;
		position: relative;
	}

	#faq .inner .accordion .accordion_body p {
		font-size: min(calc(22/750*100vw), 22px);
		line-height: 2;
		letter-spacing: 0.07em;
	}

	#faq .inner .accordion .accordion_body .a_inner {
		padding: min(calc(30/750*100vw), 30px) 0 min(calc(30/750*100vw), 30px) 0;
		/* インデント調整 */
		font-size: min(calc(15/750*100vw), 15px);
		line-height: 2;
		letter-spacing: 0.05em;
	}

	/*============================
	#reservation
	============================*/
	#reservation {
		background-image: url(/assets/img/top/reservation-bg_sp.png);
		background-size: cover;
		background-position: center;
		margin-top: -1%;
		position: relative;
		z-index: 1;
	}

	#reservation .inner {
		padding: calc(150/750*100%) 0 calc(200/750*100%);
	}

	#reservation .inner .contact_wrap {
		display: block;
		justify-content: center;
		gap: calc(40/1720*100%);
	}

	#reservation .inner .contact_wrap .contact_link {
		width: min(calc(670/750*100vw), 670px);
		margin: 0 auto 7%;
	}

	#reservation .inner .contact_wrap .contact_link .box_link {
		display: block;
		background-color: #fff;
		padding: calc(70/750*100vw) 0;
		text-align: center;
		box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
		transition: opacity 0.3s;
	}

	#reservation .inner .contact_wrap .contact_link .box_link::after {
		top: 5px;
		left: 5px;
	}

	#reservation .inner .contact_wrap .contact_link .box_link:hover {
		opacity: 0.7;
	}

	#reservation .inner .contact_wrap .contact_link .box_link .en_ttl {
		display: block;
		text-align: center;
		font-size: min(calc(35/750*100vw), 35px);
		color: #30467d;
		letter-spacing: 0.1em;
		margin-bottom: 1em;
	}

	#reservation .inner .contact_wrap .contact_link .box_link .jp_ttl {
		font-size: min(calc(27/750*100vw), 27px);
	}

	#reservation .inner .contact_wrap .contact_link .box_link .jp_ttl::after {
		width: calc(102/750*100vw);
		height: calc(9/750*100vw);
		background-image: url(/assets/img/top/btn-arrow_bl.svg);
	}

}