@charset "UTF-8";
	:root {
		--black: #0D0D0F;
		--white: #fff;
		--gray: #bbb;
		--brown-1: #786534;
		--brown-2: #D4C4A3;
		--green-1: #7F8874;
		--green-2: #DFE0D9;
		--green-3: #E7F1D9;
		--green-5: #515D42;
		--orange: #DD6E42;
		--yellow: #F2D239;
	}

	@media (min-width: 769px) {
		header,
		main,
		footer {
			width: 450rem;
			margin-inline: auto;
		}
		header {
			position: fixed;

			&.slide-up {
				translate: 0 -100%;
			}
		}
		main,
		footer {
			position: relative;
		}
		main {
			z-index: 2;
		}
		footer {
			z-index: 1;
		}
		.pc_bg {
			height: 100vh;
			object-fit: cover;
			position: fixed;
			inset: 0;
		}
		.pc_fixed_btn {
			width: calc(100vw / ( 1920 / 330 ));
			position: fixed;
			right: calc(100vw / ( 1920 / 24 ));
			bottom: calc(100vw / ( 1920 / 24 ));

			& a {
				height: calc(100vw / ( 1920 / 80 ));
				box-shadow: 0 calc(100vw / ( 1920 / 8 )) 0 #864126;
				display: flex;
				justify-content: center;
				align-items: center;
				gap: calc(100vw / ( 1920 / 10 ));

				& img {
					width: calc(100vw / ( 1920 / 40 ));
					flex-shrink: 0;
				}
				& span {
					font-size: calc(100vw / ( 1920 / 18 ));
				}
			}
		}
	}
	@media (max-width: 768px) {
		.pc_only {
			display: none;
		}
		header {
			position: absolute;
		}
		.sp_fixed_btn {
			z-index: 99;
		}
	}

	/* hover */
	@media (hover: hover) {
		.pc_fixed_btn a:hover {
			transform: translateY(calc(100vw / ( 1920 / 6 )));
			box-shadow: 0 calc(100vw / ( 1920 / 2 )) 0 #864126;
		}
		#header .cta .btn:hover {
			transform: translateY(3rem);
			box-shadow: 0 1rem 0 #864126;
		}
		#main_content .cta .btn:hover,
		.clinic_reserve .btn:hover {
			transform: translateY(6rem);
			box-shadow: 0 2rem 0 #864126 !important;
		}
	}

	/* common */
	body {
		width: 100%;
		color: var(--green-4);
		font-size: 16rem;
		line-height: 1.5;
	}
	header {
		inset: 0 0 auto;
		z-index: 99;
	}
	main {
		min-height: 100vh;
		background-color: var(--green-4);
	}

	/* テキスト */
	.en {
		font-family: "Lexend", sans-serif;
		font-optical-sizing: auto;
		font-style: normal;
	}
	.bold {
		font-weight: 700;
	}
	.semi {
		font-weight: 600;
	}
	.mid {
		font-weight: 500;
	}
	.reg {
		font-weight: 400;
	}

	/* 見出し */
	.icon {
		display: flex;
		align-items: center;

		& img {
			flex-shrink: 0;
		}
		& span {
			flex: 1;
		}
	}
	.ttl_bg {
		height: 80rem;
		padding-left: 32rem;
		gap: 8rem;

		& img {
			width: 32rem;
		}
		& span {
			font-size: 24rem;
			line-height: 1.8;
		}
	}

	/* テキスト装飾 */
	.dot {
		.fc_wht &::before {
			background-color: var(--white);
		}
		.fc_gre4 > &::before {
			background-color: var(--green-4);
		}
	}
	/* 飛び出しコピー */
	.slash::before {
		rotate: -34deg;
	}
	.slash::after {
		rotate: 34deg;
	}
	/* フキダシ */
	.tail_t,
	.tail_b {
		&.bg_wht::after {
			background-color: var(--white);
		}
		&.bg_yell::after {
			background-color: var(--yellow);
		}
		&.bg_bro2::after {
			background-color: var(--brown-2);
		}
	}

	/* 背景 */
	.bg_bla {
		background-color: var(--black);
	}
	.bg_bro2 {
		background-color: var(--brown-2);
	}
	.bg_gre1 {
		background-color: var(--green-1);
	}
	.bg_gre2 {
		background-color: var(--green-2);
	}
	.bg_gre3 {
		background-color: var(--green-3);
	}
	.bg_gre4 {
		background-color: var(--green-4);
	}
	.bg_gre5 {
		background-color: var(--green-5);
	}
	.bg_ora {
		background-color: var(--orange);
	}
	.bg_yell {
		background-color: var(--yellow);
	}

	/* 文字色 */
	.fc_gre1 {
		color: var(--green-1);
	}
	.fc_gre4 {
		color: var(--green-4);
	}
	.fc_gre5 {
		color: var(--green-5);
	}
	.fc_ora {
		color: var(--orange);
	}
	.fc_yell {
		color: var(--yellow);
	}

	/* アコーディオン */
	.acc-trigger::before,
	.acc-trigger::after {
		height: 1px;
	}

	/* ボタン */
	.btn {
		position: relative;

		&::after {
			content: '';
			margin-block: auto;
			position: absolute;
			inset: 0 auto;
		}
		&.tri::after {
			width: 10rem;
			height: 12rem;
			clip-path: polygon(0 0, 100% 50%, 0 100%);
		}
		&.arrow::after {
			width: 9rem;
			height: 4rem;
			border-right: 1px var(--green-1) solid;
			border-bottom: 1px var(--green-1) solid;
			right: 8rem;
			transform: skew(45deg);
		}
	}
	/* CVボタン */
	.cta .btn {
		display: flex;
		justify-content: center;
		align-items: center;

		& img {
			flex-shrink: 0;
		}
	}
	#header .cta {
		width: 192rem;
		display: none;

		& .btn {
			height: 48rem;
			box-shadow: 0 4rem 0 #864126;
			gap: 4rem;

			& img {
				width: 16rem;
			}
			& span {
				font-size: 12rem;
			}
		}
	}
	#main_content .cta {
		width: 386rem;
		margin-inline: auto;

		& .btn {
			height: 64rem;
			box-shadow: 0 8rem 0 #864126;
			gap: 8rem;

			& img {
				width: 32rem;
			}
			& span {
				font-size: 20rem;
			}
			&::after {
				background-color: var(--white);
				right: 16rem;
			}
		}
		& .cv_copy {
			font-size: 12rem;
			margin-top: 12rem;
		}
	}

	/* 固定背景 */
	.sticky_wrap {
		display: grid;
		grid-template-areas: "stack";
		position: relative;

		& .sticky_bg {
			height: 100vh;
			grid-area: stack;
			position: sticky;
			top: 0;
			z-index: 1;

			& img {
				height: 100%;
				object-fit: cover;
				object-position: center top;
			}
		}
		& .sticky_in {
			grid-area: stack;
			position: relative;
			z-index: 2;

			&::before {
				content: '';
				height: 106rem;
				background: linear-gradient(0deg, var(--green-4), transparent);
				position: absolute;
				inset: auto 0 -2rem;
			}
		}
	}

	/* ヘッダー */
	#header {
		height: 64rem;
		padding-inline: 16rem;
		display: flex;
		justify-content: space-between;
		align-items: center;

		& .header_logo img {
			width: 142rem;
		}
	}

	/* ファーストビュー */
	.fv {
		padding: 16rem 32rem 0;
		position: relative;

		& .fv_wrap > *:not(.main_visual) {
			position: relative;
		}
		& .main_visual {
			position: absolute;
			inset: 0;
		}
		& .fv_5th_icon {
			width: 136rem;
			margin-inline: auto -16rem;
		}
		& .fv_copy {
			width: 147rem;
			margin-top: -16rem;
		}
		& .fv_cont {
			margin-top: 48rem;

			& .ribbon {
				width: 338rem;
				height: 49rem;
				background: url('images/fv_ribbon.svg') no-repeat center top / 100% auto;
				font-size: 24rem;
				margin-inline: auto;
				padding-top: 2rem;
				position: absolute;
				inset: -28rem 0 auto;

				& .dot::before {
					width: 3rem;
					background-color: var(--green-4);
					top: 3rem;
				}
			}
		}
		& .fv_course_name {
			padding-top: 32rem;

			& em {
				font-size: 24rem;
			}
			& .count {
				font-size: 18rem;
				line-height: 26rem;
				vertical-align: 2rem;
				border: 1px var(--green-4) solid;
				margin-left: 16rem;
				padding-inline: 6rem;
			}
		}
		& .fv_price {
			width: 340rem;
			margin: 8rem auto 0;
		}
		& .fv_price_copy {
			line-height: 1;
			margin-top: 10rem;

			& span {
				font-size: 14rem;
				padding-inline: 56rem;
				display: inline-block;
				position: relative;

				&::before,
				&::after {
					content: '';
					width: 42rem;
					height: 1px;
					background-color: var(--green-4);
					position: absolute;
					top: 7rem;
				}
				&::before {
					left: 0;
				}
				&::after {
					right: 0;
				}
			}
		}
		& .sarani {
			background-color: rgba(242, 210, 57, .2);
			margin-top: 24rem;
			padding: 20rem 0 4rem 48rem;
			position: relative;

			& .copy {
				width: 50rem;
				height: 41rem;
				background: url('images/fv_balloon.svg') no-repeat center / 100% auto;
				font-size: 12rem;
				line-height: 1;
				display: grid;
				place-content: center;
				position: absolute;
				top: -16rem;
				left: -5rem;
			}
			& .txt > * {
				display: block;

				&.bold {
					font-size: 18rem;
					line-height: 1;
				}
				&.en {
					font-size: 48rem;
					margin-top: -16rem;

					& em {
						font-size: 64rem;
					}
				}
			}
			& img {
				width: 90rem;
				position: absolute;
				top: -8rem;
				right: 14rem;
			}
		}
		& .cta {
			margin-top: 40rem;
		}
		& .fv_notice {
			font-size: 12rem;
			line-height: 1.8;
			margin-top: 40rem;

			& li {
				display: flex;
				gap: 8rem;

				&::before {
					content: '';
					width: 4rem;
					height: 4rem;
					background-color: var(--white);
					border-radius: 100vmax;
					margin-top: 9rem;
					flex-shrink: 0;
				}
			}
		}
	}

	/* セカンドビュー */
	.sv {
		padding-bottom: 182rem;
		position: relative;

		& .notice {
			font-size: 10rem;
			margin-top: 16rem;
		}
	}
	.sv_ttl {
		margin-top: 64rem;

		& .bg_wht {
			font-size: 24rem;
			line-height: 38rem;
			padding-inline: 8rem;
			display: inline-block;
		}
		& .fc_yell {
			font-size: 40rem;
			display: block;

			& em {
				font-size: 72rem;
				margin-right: 6rem;
			}
		}
		& .txt {
			font-size: 64rem;
			margin-top: -16rem;
			display: block;
		}
	}
	.sv_chart {
		margin-top: 40rem;
		padding-inline: 56rem;

		& .ttl {
			font-size: 18rem;
		}
		& .chart_wrap {
			margin-top: 4rem;
			position: relative;

			& .bold {
				font-size: 9rem;
				display: block;
			}
		}
		& .chart_y {
			display: flex;
			flex-direction: column-reverse;
			gap: 24rem;

			& .graph {
				display: flex;
				justify-content: space-between;
				align-items: center;

				& span {
					width: 18rem;
				}
				&::after {
					content: '';
					width: 315rem;
					background-color: var(--green-2);
				}
				&#graph_0::after {
					height: 2rem;
				}
				&:not(#graph_0)::after {
					height: 1px;
				}
				&#graph_250 span {
					padding-top: 6rem;
					position: relative;

					&::before {
						content: '(万件)';
						font-size: 5rem;
						white-space: nowrap;
						position: absolute;
						top: 0;
						right: 0;
					}
				}
			}
		}
		& .chart_x {
			margin-top: -5rem;
			padding-left: 34rem;
			display: flex;
			gap: 14rem;

			& .year {
				padding-top: 3rem;
				position: relative;

				&::before {
					content: '';
					width: 1px;
					height: 3rem;
					background-color: var(--green-2);
					margin-inline: auto;
					position: absolute;
					inset: 0 0 auto;
				}
			}
		}
		& .chart_bar {
			width: 315rem;
			height: 190rem;
			padding-inline: 10rem;
			display: flex;
			align-items: flex-end;
			gap: 13rem;
			position: absolute;
			top: 10rem;
			left: 23rem;
			overflow: hidden;

			& .chart {
				width: 26rem;
				position: relative;
				translate: 0 100%;

				&::after {
					content: '';
					background-color: var(--orange);
					position: absolute;
					inset: 0 0 auto;
				}
				&#bar_2018 {
					height: 2rem;

					&::after {
						height: 100%;
					}
				}
				&#bar_2019 {
					height: 4rem;

					&::after {
						height: 2rem;
					}
				}
				&#bar_2020 {
					height: 9rem;

					&::after {
						height: 6rem;
					}
				}
				&#bar_2021 {
					height: 22rem;

					&::after {
						height: 14rem;
					}
				}
				&#bar_2022 {
					height: 46rem;

					&::after {
						height: 23rem;
					}
				}
				&#bar_2023 {
					height: 82rem;

					&::after {
						height: 36rem;
					}
				}
				&#bar_2024 {
					height: 120rem;

					&::after {
						height: 39rem;
					}
				}
				&#bar_2025 {
					height: 156rem;

					&::after {
						height: 36rem;
					}
				}
			}
		}
		&.active .chart {
			animation-name: chart-slide;
			animation-timing-function: cubic-bezier(.54, 0, 0, .99);
			animation-duration: .5s;
			animation-fill-mode: forwards;
		}
	}
	@keyframes chart-slide {
		0% {
			translate: 0 100%;
		}
		100% {
			translate: 0 0;
		}
	}
	.sv_graphic {
		width: 147rem;
		margin-inline: auto;
		position: absolute;
		inset: auto 0 0;
	}

	/* 特別価格 */
	.appeal {
		padding-bottom: 96rem;
		position: relative;
		z-index: 2;
	}
	.appeal_bg {
		background: url('images/appeal_bg.png') no-repeat center top / auto 100%;
		padding: 80rem 32rem;
		position: relative;

		& .ttl {
			& > span {
				display: block;
			}
			& .ribbon {
				height: 62rem;
				background: url('images/appeal_ribbon.svg') no-repeat center / auto 100%;

				& b {
					font-size: 40rem;
					line-height: 1;
				}
			}
			& .txt {
				font-size: 88rem;
				line-height: 106rem;
				-webkit-text-stroke: 8rem var(--orange);
				text-stroke: 8rem var(--orange);
				margin-top: 12rem;
			}
		}
		& .shikamo {
			width: 172rem;
			height: 111rem;
			background: url('images/appeal_balloon.svg') no-repeat center / 100% auto;
			margin: 32rem auto 0;
			display: grid;
			place-content: center;
			rotate: -5deg;

			& span {
				font-size: 32rem;
			}
		}
	}
	.appeal_cont {
		border: 2rem var(--orange) solid;
		margin-top: 48rem;
		position: relative;

		& .tail_b {
			width: 146rem;
			height: 26rem;
			margin-inline: auto;
			display: flex;
			justify-content: center;
			align-items: center;
			gap: 4rem;
			position: absolute;
			inset: -16rem 0 auto;

			&::after {
				width: 7rem;
				height: 6rem;
			}
			& img {
				width: 11rem;
				flex-shrink: 0;
			}
			& span {
				font-size: 16rem;
			}
		}
		& .bg_ora {
			padding-block: 8rem;

			& span {
				font-size: 16rem;
			}
			& b {
				font-size: 32rem;
			}
		}
		& .copy {
			margin-top: 16rem;

			& .txt {
				font-size: 14rem;
				display: block;

				& b {
					font-size: 24rem;
					margin-right: 4rem;
				}
			}
			& .txt2 {
				margin-top: -20rem;
				padding-left: 44rem;
				display: inline-block;
				position: relative;

				& .sarani {
					font-size: 12rem;
					padding-block: 2rem 4rem;
					position: absolute;
					top: 40rem;
					left: 0;

					&::before,
					&::after {
						content: '';
						height: 1px;
						background-color: var(--green-4);
						position: absolute;
						inset: auto 0;
					}
					&::before {
						top: 0;
						rotate: 7deg;
					}
					&::after {
						bottom: 0;
						rotate: -7deg;
					}
				}
				& .en {
					font-size: 48rem;

					& em {
						font-size: 64rem;
					}
				}
			}
		}
	}
	.appeal_copy {
		margin-top: 40rem;
		position: relative;

		& > span {
			padding-inline: 12rem;
			display: inline-block;
		}
		& .txt {
			font-size: 32rem;
			line-height: 45rem;
		}
		& .txt2 {
			font-size: 40rem;
			line-height: 67rem;

			& .dot::before {
				width: 3rem;
				top: 5rem;
			}
		}
		&::after {
			content: '';
			height: 20rem;
			background: url('images/icon_tri_gre.svg') no-repeat center / auto 100%;
			position: absolute;
			inset: auto 0 -48rem;
		}
	}
	.appeal_graphic {
		width: 38rem;
		position: absolute;
		bottom: 0;
		right: 24rem;
	}
	.appeal_case {
		display: grid;
		grid-template-columns: repeat(2, 1fr);

		& figcaption {
			height: 57rem;
			display: grid;
			place-content: center;

			& span {
				font-size: 14rem;
			}
			& small {
				font-size: 12rem;
			}
		}
		& img {
			object-fit: cover;
		}
		& .after {
			position: relative;

			& figcaption {
				position: relative;
				z-index: 1;
			}
			&::after {
				content: '';
				border: 5rem var(--orange) solid;
				position: absolute;
				inset: 0;
			}
		}
	}
	.case_notice {
		margin-top: 24rem;
		padding-inline: 32rem;

		& p {
			color: #333;
			font-size: 10rem;
			line-height: 1.8;
		}
	}
	.appeal_coin {
		position: absolute;
		inset: -138rem 0 auto;
	}
	.scroll {
		position: relative;
		z-index: 5;

		& .scroll_in {
			width: 106rem;
			position: absolute;
			top: -88rem;
			right: 12rem;

			& .slash {
				font-size: 12rem;
				letter-spacing: 0;
				line-height: 1.25;
				padding-inline: 6rem;

				&::before,
				&::after {
					width: 1px;
					height: 14px;
					background-color: var(--green-4);
					translate: 0 2rem;
				}
				& .dot::before {
					width: 3rem;
					background-color: var(--green-4);
					top: -2rem;
				}
			}
			& b {
				font-size: 14rem;
				display: block;
			}
			& .en {
				font-size: 12rem;
				letter-spacing: 0;
				margin-top: 2rem;
				display: block;
			}
		}
		& .scroll_graphic {
			margin-top: 8rem;
			position: relative;

			& img {
				width: 36rem;
				margin-inline: auto;
				position: relative;
				z-index: 1;
			}
			&::before {
				content: '';
				width: 1px;
				height: calc(100% - 10rem);
				background-color: var(--green-2);
				margin-inline: auto;
				position: absolute;
				inset: 0 0 auto;
			}
		}
		&.active .scroll_graphic {
			animation-name: scroll-graphic;
			animation-timing-function: cubic-bezier(.54, 0, 0, .99);
			animation-duration: .5s;
			animation-fill-mode: forwards;
		}
	}
	@keyframes scroll-graphic {
		0% {
			padding-top: 0;
		}
		100% {
			padding-top: 56rem;
		}
	}

	/* Point */
	.effective {
		margin-top: 96rem;
		position: relative;
		z-index: 1;
	}
	.effect_ttl {
		padding: 48rem 32rem 0;
		position: relative;

		&::before {
			content: '';
			height: 20rem;
			background: url('images/icon_tri_wht.svg') no-repeat center / auto 100%;
			position: absolute;
			inset: 0 0 auto;
		}
		& .slash {
			font-size: 18rem;
			padding-inline: 10rem;

			&::before,
			&::after {
				width: 1px;
				height: 28rem;
				background-color: var(--white);
				translate: 0 4rem;
			}
		}
		& .bg_wht {
			margin-top: 16rem;
			display: inline-block;
		}
		& span.bg_wht {
			font-size: 32rem;
			padding-inline: 6rem;
		}
		& em.bg_wht {
			font-size: 48rem;
			padding: 4rem 14rem 0;
		}
		& .dot::before {
			width: 6rem;
			background-color: var(--orange);
			top: 5rem;
		}
	}
	.point {
		padding-inline: 32rem;

		& .ttl {
			& .num {
				font-size: 14rem;
				padding-inline: 8rem;
				display: inline-block;
				position: relative;

				&::before,
				&::after {
					content: '';
					width: 3rem;
					height: 13rem;
					border-block-width: 1px;
					border-block-style: solid;
					margin-block: auto;
					position: absolute;
					inset: 0 auto;
				}
				&::before {
					left: 0;
				}
				&::after {
					right: 0;
				}
				.fc_wht &::before {
					border-left: 1px var(--white) solid;
				}
				.fc_wht &::after {
					border-right: 1px var(--white) solid;
				}
				.fc_gre4 &::before {
					border-left: 1px var(--green-4) solid;
				}
				.fc_gre4 &::after {
					border-right: 1px var(--green-4) solid;
				}
			}
			& .txt {
				display: block;

				& em {
					border-bottom-width: 2rem;
					border-bottom-style: solid;
					display: inline-block;
				}
				.fc_wht & em {
					border-color: var(--white);
				}
				.fc_gre4 & em {
					border-color: var(--fc_gre4);
				}
			}
			& .txt_s {
				font-size: 24rem;

				& b {
					font-size: 32rem;
				}
			}
			& .txt_l {
				font-size: 40rem;
				margin-top: -12rem;

				& b {
					font-size: 56rem;
				}
			}
		}
		& .point_txt {
			font-size: 16rem;
			line-height: 2;

			& em {
				border-bottom-width: 1px;
				border-bottom-style: solid;
			}
			.fc_gre4 & em {
				border-color: var(--fc_gre4);
			}
		}
	}
	.point1 {
		margin-top: 48rem;

		& .ttl .txt_s {
			margin-top: 6rem;
		}
		& .point_img {
			margin-top: 48rem;
			position: relative;

			& .point1_praphic1 {
				width: 64rem;
				position: absolute;
				top: -94rem;
				right: 44rem;
			}
		}
		& .tail_b {
			font-size: 14rem;
			margin-top: 56rem;
			padding-block: 19rem;

			&::after {
				width: 19rem;
				height: 17rem;
			}
			& b {
				font-size: 20rem;
			}
		}
		& .point_txt {
			margin-top: 40rem;
		}
	}
	.gentle_img {
		margin-top: 40rem;
		padding-top: 12rem;
		position: relative;

		& img {
			width: 146rem;
			margin-inline: auto;
			position: absolute;
			inset: 0 0 auto;
			z-index: 2;
		}
		& .gentle_name {
			font-size: 64rem;
			-webkit-text-stroke: 2rem var(--green-1);
			text-stroke: 2rem var(--green-1);

			& span {
				display: block;

				& + span {
					margin-top: -18rem;
				}
			}
		}
		& .gentle_list {
			margin-top: 20rem;
			padding-inline: 24rem;
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 32rem;

			& li {
				font-size: 14rem;
				aspect-ratio: 1 / 1;
				border: 2rem var(--white) solid;
				display: grid;
				place-content: center;
				position: relative;

				&:nth-last-child(n+2)::before,
				&:nth-last-child(n+2)::after {
					content: '';
					width: 1px;
					height: 10px;
					background-color: var(--white);
					margin-block: auto;
					position: absolute;
					inset: 0 auto;
					right: -18rem;
				}
				&:nth-last-child(n+2)::before {
					rotate: 45deg;
				}
				&:nth-last-child(n+2)::after {
					rotate: -45deg;
				}
			}
		}
	}
	.gentle_cont {
		margin-top: 56rem;
		padding-inline: 24rem;

		& span.fc_wht {
			font-size: 24rem;
			display: block;
			position: relative;

			&::before,
			&::after {
				content: '';
				width: 46rem;
				height: 1px;
				background-color: var(--white);
				margin-block: auto;
				position: absolute;
				inset: 0 auto;
			}
			&::before {
				left: 0;
			}
			&::after {
				right: 0;
			}
		}
		& .fc_yell {
			margin-top: 14rem;
			position: relative;
			z-index: 1;

			& span {
				font-size: 24rem;
				display: block;

				&:has(.dot) {
					margin-top: -8rem;
				}
			}
			& .dot {
				font-size: 88rem;

				&::before {
					width: 8rem;
					background-color: var(--yellow);
					top: 14rem;
				}
			}
			& img {
				position: absolute;
			}
			& .point1_praphic2 {
				width: 52rem;
				right: -11rem;
				bottom: -57rem;
			}
			& .star1 {
				width: 12rem;
				top: 35rem;
				left: 15rem;
			}
			& .star2 {
				width: 21rem;
				top: 43rem;
				right: 10rem;
			}
			& .star3 {
				width: 19rem;
				top: 120rem;
				left: 0;
			}
			& .star4 {
				width: 12rem;
				top: 136rem;
				left: 15rem;
			}
		}
		& .star1,
		& .star4 {
			animation: shining1 2s .9s linear infinite;
		}
		& .star2,
		& .star3 {
			animation: shining1 2s linear infinite;
		}
		& .gentle_list {
			counter-reset: num;
			margin-top: 32rem;
			display: grid;
			gap: 24rem;

			& li {
				padding-block: 24rem;
				position: relative;
				overflow: hidden;

				&::before {
					content: '0'counter(num);
					counter-increment: num;
					color: var(--white);
					font-size: 64rem;
					font-family: "Lexend", sans-serif;
					font-optical-sizing: auto;
					font-style: normal;
					font-weight: 600;
					-webkit-text-stroke: 2rem var(--green-2);
					text-stroke: 2rem var(--green-2);
					paint-order: stroke;
					position: absolute;
					top: -22rem;
				}
				&:nth-child(odd)::before {
					left: 2rem;
				}
				&:nth-child(even)::before {
					right: 2rem;
				}
				& p {
					font-size: 14rem;
					position: relative;
					z-index: 1;
				}
				& em {
					font-size: 20rem;
					display: block;
				}
			}
		}
	}
	.point2 {
		background: url('images/point2_bg.jpg') no-repeat center top / auto 100%;
		clip-path: polygon(0 67rem, 100% 0, 100% calc(100% - 67rem), 0 100%);
		margin-top: 48rem;
		padding-block: 112rem 104rem;

		& .in {
			padding: 56rem 24rem 32rem;
		}
		& .ttl .txt_s {
			margin-top: 11rem;
		}
		& .point_txt {
			margin-top: 32rem;
		}
		& .point_img {
			margin-top: 48rem;
			position: relative;

			&::after {
				content: '';
				height: 20rem;
				background: url(images/icon_tri_gre2.svg) no-repeat center / auto 100%;
				position: absolute;
				inset: auto 0 -54rem;
			}
		}
		& .point_diff {
			margin-top: 96rem;
			display: grid;
			gap: 32rem;

			& dt {
				height: 38rem;
				font-size: 20rem;
				padding-top: 2rem;
				display: grid;
				place-content: center;
				position: relative;
				z-index: 1;

				& img {
					position: absolute;
					bottom: -2rem;
				}
				.diff1 & img {
					width: 48rem;
					right: 16rem;
				}
				.diff2 & img {
					width: 80rem;
					right: 0;
				}
			}
			& dd {
				padding: 12rem 22rem 16rem;
				position: relative;

				.diff1 & {
					border: 2rem var(--green-1) solid;
				}
				.diff2 & {
					border: 2rem var(--orange) solid;
				}
			}
			& .slash {
				font-size: 16rem;
				line-height: 2;
				padding-inline: 10rem;

				&::before,
				&::after {
					width: 1px;
					height: 23rem;
					translate: 0 2rem;
				}
				& .dot::before {
					width: 3rem;
				}
				.diff1 &::before,
				.diff1 &::after,
				.diff1 & .dot::before {
					background-color: var(--green-5);
				}
				.diff2 &::before,
				.diff2 &::after,
				.diff2 & .dot::before {
					background-color: var(--orange);
				}
			}
			& .diff_img {
				margin-top: 8rem;
			}
			& .diff_balloon {
				width: 75rem;
				position: absolute;
				right: -11rem;
				bottom: 40rem;
			}
		}
	}
	.point3 {
		padding-block: 56rem 48rem;

		&::after {
			width: 100%;
			height: 44rem;
			background-color: var(--green-4);
		}
		& .ttl_wrap {
			display: flex;
			align-items: center;
			gap: 28rem;

			& img {
				width: 106rem;
				flex-shrink: 0;
			}
		}
		& .point_txt {
			margin-top: 40rem;
		}
		& .point_list {
			margin-top: 32rem;
			display: grid;
			gap: 40rem;

			& li {
				border: 2rem var(--white) solid;
				padding: 48rem 22rem 20rem;
				display: flex;
				align-items: center;
				gap: 16rem;
				position: relative;
			}
			& .num {
				width: 150rem;
				height: 36rem;
				font-size: 16rem;
				clip-path: polygon(0 0, 100% 0, calc(100% - 11rem) 100%, 0 100%);
				display: grid;
				place-content: center;
				position: absolute;
				top: -2rem;
				left: -2rem;
			}
			& img {
				width: 46rem;
				flex-shrink: 0;
			}
			& p {
				flex-grow: 1;

				& span {
					font-size: 14rem;
					display: block;
				}
				& b {
					font-size: 24rem;
					display: block;
				}
			}
		}
		& .notice {
			font-size: 12rem;
			margin-top: 16rem;
		}
	}

	/* おすすめプラン */
	.plan {
		padding: 88rem 32rem 48rem;
		position: relative;

		& .plan_ttl {
			position: relative;
			z-index: 5;

			& .en {
				font-size: 24rem;
			}
			& .ttl {
				font-size: 40rem;
				margin-top: -6rem;
			}
		}
		& .plan_head {
			display: flex;
			justify-content: center;
			align-items: center;
			z-index: 4;

			&::after {
				width: 18rem;
				height: 16rem;
			}

			&.bg_yell {
				margin-top: 64rem;
				padding-block: 26rem 16rem;

				& span {
					font-size: 32rem;

					& .dot::before {
						width: 4rem;
						top: 3rem;
					}
				}
				& img {
					position: absolute;
				}
				& .plan_graphic {
					inset: -162rem 0 0;
				}
				& .plan_graphic2 {
					width: 127rem;
					bottom: -58rem;

					&.left {
						left: -32rem;
					}
					&.right {
						right: -32rem;
						scale: -1 1;
					}
				}
			}
			&.bg_bro2 {
				margin-top: 48rem;
				padding-block: 20rem;
				gap: 8rem;

				& img {
					width: 28rem;
					flex-shrink: 0;
				}
				& span {
					font-size: 24rem;
				}
			}
		}
		& .plan_wrap {
			padding-block: 48rem 16rem;
			position: relative;

			.bg_yell + & {
				border: 2rem var(--yellow) solid;
			}
			.bg_bro2 + & {
				border: 2rem var(--brown-2) solid;
			}
			& .slide_btn {
				width: 41rem;
				height: 41rem;
				background-color: rgba(127, 136, 116, .8);
				border-radius: 100vmax;
				display: grid;
				place-content: center;

				&::before {
					content: '';
					width: 10rem;
					height: 10rem;
					display: block;
					rotate: 45deg;
				}
				&::after {
					display: none;
				}
				&.prev {
					left: -20rem;

					&::before {
						border-left: 2rem var(--white) solid;
						border-bottom: 2rem var(--white) solid;
					}
				}
				&.next {
					right: -20rem;

					&::before {
						border-top: 2rem var(--white) solid;
						border-right: 2rem var(--white) solid;
					}
				}
			}
		}
		& .plan_in {
			width: 338rem;
			margin-inline: auto;
		}
		& .plan_img {
			height: 270rem;
			border: 1px var(--green-4) solid;
			display: grid;
			place-content: center;

			& img {
				width: auto;
				max-width: 322rem;
				max-height: 185rem;
			}
		}
		& .plan_txt {
			margin-top: 16rem;
		}
		& .plan_part {
			display: flex;
			flex-wrap: wrap;
			gap: 6rem;

			& li {
				font-size: 12rem;
				line-height: 18rem;
				border: 1px var(--green-4) solid;
				padding-inline: 8rem;
			}
		}
		& .plan_name {
			white-space: nowrap;
			display: flex;
			justify-content: center;
			align-items: center;

			& em {
				font-size: 32rem;
			}
			& .plus {
				font-size: 18rem;
				margin-inline: 2rem;
			}
			& .count {
				font-size: 16rem;
				line-height: 26rem;
				border: 1px var(--green-4) solid;
				margin-top: 4rem;
				margin-left: 8rem;
				padding-inline: 6rem;
			}
			&:has(.slash) {
				padding-top: 16rem;
				position: relative;
			}
			& .slash {
				font-size: 16rem;
				padding-inline: 8rem;
				position: absolute;
				top: 0;
				right: calc(50% + 16rem);

				&::before,
				&::after {
					width: 1px;
					height: 24rem;
					background-color: var(--black);
					translate: 0 4rem;
				}
			}
			.plan_part + & {
				margin-top: 28rem;
			}
		}
		& .plan_normal_price {
			margin-top: -4rem;

			& .dismiss {
				padding-right: 12rem;
				display: inline-block;
				position: relative;

				&::before,
				&::after {
					content: '';
					position: absolute;
				}
				&::before {
					width: 8rem;
					height: 7rem;
					background-color: var(--brown-1);
					clip-path: polygon(0 0, 100% 0, 50% 100%);
					top: 26rem;
					right: 0;
				}
				&::after {
					width: 156rem;
					height: 3rem;
					background-color: var(--orange);
					top: 25rem;
					left: 0;
					rotate: -10deg;
				}
			}
			& em {
				font-size: 32rem;
			}
			& .yen {
				font-size: 20rem;
				margin-left: 4rem;
			}
		}
		& .plan_offer_price {
			& em {
				font-size: 72rem;
			}
			& .yen {
				font-size: 36rem;
			}
			.plan_normal_price + & {
				margin-top: -14rem;
			}
			.plan_name + & {
				margin-top: -24rem;
			}
		}
		& .plan_notice {
			font-size: 12rem;
			margin-top: 12rem;
			display: flex;
			gap: 4rem;

			&::before {
				content: '※';
			}
		}
		& .sarani {
			width: 144rem;
			height: 48rem;
			clip-path: polygon(0 0, 100% 0, 50% 100%);
			margin: 48rem auto 0;
			padding-top: 5rem;

			& span {
				font-size: 16rem;
			}
		}
		& .plan_graphic3 {
			width: 86rem;
			position: absolute;
			right: 45rem;
			bottom: 0;
		}
	}

	/* 割引を使うともっとおトクに */
	.discount {
		margin-top: 96rem;

		& .disc_ttl {
			position: relative;

			& .en {
				font-size: 72rem;
				position: absolute;
				inset: 24rem 0 auto;
				opacity: .2;
			}
			& .ttl {
				display: grid;
				gap: 16rem;
				position: relative;

				& span {
					font-size: 32rem;

					& span {
						line-height: 40rem;
						border: 2rem var(--white) solid;
						padding-inline: 4rem;
						display: inline-block;
					}
				}
				& em {
					font-size: 48rem;

					& .dot::before {
						width: 7rem;
						top: 6rem;
					}
				}
			}
		}
		& ul {
			padding-inline: 32rem;
		}
		& .discount_list {
			margin-top: 40rem;
			display: grid;
			gap: 32rem;

			& li.bg_wht {
				background-repeat: no-repeat;
				background-position: right center;
				background-size: 154rem auto;
				line-height: 1.5;
				padding: 20rem 0 8rem 24rem;

				&.change {
					background-image: url(/images/common/disc_bg1.png);
				}
				&.pair {
					background-image: url(/images/common/disc_bg2.png);
				}
			}
			& .ttl {
				font-size: 24rem;
				font-weight: 700;
			}
			& .copy {
				font-size: 12rem;
				margin-top: 4rem;
			}
			& .price {
				margin-top: -15rem;

				& em {
					font-size: 56rem;
				}
				& span {
					font-size: 24rem;
					font-weight: 700;
				}
			}
		}
		& .notice {
			margin-top: 32rem;

			& li {
				font-size: 10rem;
				line-height: 1.6;
				gap: 4rem;
			}
		}
		& .cta {
			margin-top: 40rem;
		}
	}

	/* ¥0保証 */
	.guarantee {
		margin-top: 56rem;
		padding: 64rem 32rem;
		position: relative;

		& .gua_ttl {
			& .ttl span {
				font-size: 32rem;
				line-height: 48rem;
				border: 2rem var(--white) solid;
				padding-inline: 10rem;
				display: inline-block;
			}
			& .ttl em {
				font-size: 80rem;
				margin-top: -24rem;
				display: block;

				& b {
					font-size: 120%;
					vertical-align: -5rem;
				}
			}
			& p {
				font-size: 18rem;
				line-height: 1.6;
			}
		}
		& .gua_list {
			margin-top: 32rem;
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 16rem;

			& li {
				height: 80rem;
				padding-left: 16rem;
				gap: 8rem;
				position: relative;

				& img {
					max-width: 36rem;
					max-height: 36rem;
				}
				& span {
					font-size: 14rem;

					& span {
						font-size: 10rem;
						font-weight: 400;
						position: absolute;
						top: 0;
						right: 4rem;
					}
				}
			}
		}
		& .notice {
			margin-top: 16rem;

			& li {
				font-size: 10rem;
				line-height: 1.8;
				gap: .5em;
			}
		}
	}

	/* お支払いについて */
	.payment {
		margin-top: 24rem;

		& .pay_list {
			margin-top: 24rem;
			padding-inline: 32rem;

			& > dt {
				gap: 6rem;
				border-bottom: 1px var(--white) solid;
				padding-bottom: 24rem;

				& img {
					width: 32rem;
				}
				& span {
					font-size: 18rem;
				}
			}
			& > dd {
				margin-top: 32rem;

				& p {
					font-size: 14rem;
					line-height: 2;
				}
				& + dt {
					margin-top: 48rem;
				}
			}
		}
		& figure {
			margin: 32rem 22rem 0;
			padding: 16rem 14rem;
		}
		& .loan {
			line-height: 2;
			border: 2rem var(--white) solid;
			margin-top: 40rem;
			padding: 16rem 24rem 24rem;

			& dt {
				font-size: 16rem;

				& + dd {
					margin-top: 12rem;
				}
			}
			& dd {
				font-size: 12rem;
				padding-left: 16rem;
				position: relative;

				&::before {
					content: '';
					width: 7rem;
					height: 7rem;
					background-color: var(--white);
					border-radius: 100vmax;
					margin-block: auto;
					position: absolute;
					inset: 0;
				}
			}
		}
	}

	/* 初回施術までの流れ */
	.flow {
		margin-top: 64rem;

		& .swiper {
			padding-block: 56rem 32rem;
		}
		& .swiper-slide {
			width: 386rem;
			height: auto;
			padding-inline: 24rem;
		}
		& .slide_cont {
			height: 100%;
			position: relative;

			& .num {
				font-size: 56rem;
				position: absolute;
				top: -44rem;
				left: -20rem;
			}
			& .ttl {
				margin-top: 24rem;
				padding-inline: 24rem;

				& p {
					font-size: 20rem;
				}
			}
			& .txt {
				padding: 12rem 24rem 24rem;

				& p {
					font-size: 14rem;
					line-height: 2;
				}
			}
		}
		& .slide_pager {
			display: flex;
			justify-content: center;
			gap: 6rem;
			bottom: 0 !important;

			& .swiper-pagination-bullet {
				width: 8rem;
				height: 8rem;
				margin: 0 !important;
				opacity: 1;

				&.swiper-pagination-bullet-active {
					background-color: var(--white);
				}
				&:not(.swiper-pagination-bullet-active) {
					background-color: var(--gray);
				}
			}
		}
	}

	/* カウンセリング無料 */
	.counseling {
		margin-top: 32rem;
		padding-inline: 32rem;
		position: relative;

		& .loop_wrap {
			font-size: 80rem;
			position: absolute;
			inset: 0 0 auto;
			opacity: .2;
		}
		& .cou_ttl {
			padding-top: 64rem;
			position: relative;
			z-index: 1;

			& p {
				font-size: 24rem;
				line-height: 1.8;

				& em {
					border-bottom: 1px var(--white) solid;
				}
			}
			& h2 {
				font-size: 32rem;
				line-height: 44rem;
				margin-top: 12rem;
				padding-inline: 8rem;
				display: inline-block;
			}
		}
		& figure {
			margin-top: 40rem;
		}
		& .cou_copy {
			margin-top: 40rem;
			padding-block: 3rem 10rem;
			position: relative;

			&::before,
			&::after {
				content: '';
				width: 16rem;
				border: 2rem var(--white) solid;
				position: absolute;
				inset: 0 auto;
			}
			&::before {
				border-right: none;
				left: 0;
			}
			&::after {
				border-left: none;
				right: 0;
			}
			& p {
				font-size: 18rem;
				line-height: 1.8;
			}
		}
		& .cou_txt {
			margin-top: 24rem;

			& p {
				font-size: 14rem;
				line-height: 2;
			}
		}
		& .cta {
			margin-top: 16rem;
		}
	}

	/* よくある質問 */
	.qanda {
		margin-top: 56rem;

		& .qa_wrap {
			margin-top: 48rem;
			padding-inline: 32rem;
		}
		& .qa_tab_wrap {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			border-bottom: 1px var(--white) solid;
		}
		input[name="qa_tab"] {
			display: none;
		}
		& .qa_tab {
			height: 40rem;
			font-size: 14rem;
			border-radius: 5rem 5rem 0 0;
			display: grid;
			place-content: center;
			position: relative;

			.qa_tab_wrap input:not(:checked) + & {
				color: var(--white);
			}
			.qa_tab_wrap input:checked + & {
				background: var(--white);
				color: var(--green-4);
			}
		}
		& .qa_cont {
			display: none;
		}
		& .qa_tab_wrap:has(#qa_laser:checked) ~ #qa_laser_cont,
		& .qa_tab_wrap:has(#qa_machine:checked) ~ #qa_machine_cont,
		& .qa_tab_wrap:has(#qa_reserve:checked) ~ #qa_reserve_cont {
			display: block;
		}
		& .qa_list {
			& dt,
			& dd {
				font-size: 14rem;
				display: flex;
				gap: 8rem;

				& .en {
					flex-shrink: 0;

					& + * {
						flex: 1;
					}
				}
			}
			& dt {
				padding-block: 24rem;
				padding-right: 24rem;

				&:nth-of-type(n+2) {
					border-top: 1px var(--green-1) solid;
				}
				&::before,
				&::after {
					width: 20rem;
					background-color: var(--white);
					right: 0;
				}
			}
			& dd {
				line-height: 1.8;
				padding-bottom: 32rem;
			}
		}
	}

	/* クリニック一覧 */
	.clinic {
		margin-top: 40rem;
		position: relative;

		& .loop_wrap {
			margin-top: 56rem;
		}
		& .clinic_list_wrap {
			padding-inline: 32rem;

			& .area_name {
				font-size: 16rem;

				&:first-of-type {
					margin-top: 48rem;
				}
				.clinic_list + & {
					margin-top: 32rem;
				}
			}
			& .clinic_list {
				margin-top: 8rem;
				display: grid;
				grid-template-columns: repeat(2, 1fr);
				gap: 16rem;

				& li > a {
					height: 56rem;
					padding-inline: 14rem 8rem;
					justify-content: space-between;

					& img {
						width: 29rem;
					}
					& span {
						font-size: 14rem;
					}
				}
			}
		}
	}
	/* クリニック_モーダル */
	.modal {
		& .md-overlay {
			background: #000;
			display: none;
			position: fixed;
			inset: 0;
			opacity: .1;
			z-index: 100;
		}
		& .md-contents {
			width: 402rem;
			max-height: 95vh;
			margin: auto;
			display: none;
			position: fixed;
			inset: 0;
			overflow: hidden;
			z-index: 101;
		}
		& .clinic_name {
			font-size: 24rem;
			line-height: 56rem;
			text-align: center;
		}
		& .clinic_wrap {
			height: calc(100% - (56rem * 2));
			padding: 24rem 24rem 32rem;
			overflow-y: scroll;
			overscroll-behavior: none;
			scrollbar-width: thin;
		}
		& .clinic_map {
			aspect-ratio: 16 / 9;
		}
		& .clinic_info {
			margin-top: 32rem;

			& tbody {
				display: grid;
				gap: 16rem;
			}
			& tr {
				display: flex;
				gap: 16rem;
			}
			& th {
				width: 27rem;
				flex-shrink: 0;
			}
			& td {
				font-size: 14rem;
				line-height: 1.8;
				flex-grow: 1;

				& a {
					border-bottom: 1px var(--orange) solid;
				}
			}
		}
		& .clinic_reserve {
			margin-top: 24rem;
			display: grid;
			gap: 24rem;

			& a {
				height: 48rem;
				display: flex;
				justify-content: center;
				align-items: center;
				gap: 8rem;

				& img {
					width: 28rem;
				}
				& span {
					font-size: 16rem;
				}
				&::after {
					right: 8rem;
				}
			}
			& a:not([href^="tel:"]) {
				box-shadow: 0 8rem 0 #864126;

				&::after {
					background-color: var(--white);
				}
			}
			& a[href^="tel:"] {
				border: 2rem var(--green-4) solid;
				box-shadow: 0 8rem 0 var(--green-4);

				&::after {
					background-color: var(--green-4);
				}
			}
		}
		& .close {
			height: 56rem;
			border-top: 1px var(--green-2) solid;
			display: grid;
			place-content: center;
			cursor: pointer;

			& span {
				font-size: 24rem;
				padding-left: 24rem;
				position: relative;

				&::before,
				&::after {
					content: '';
					width: 20rem;
					height: 1px;
					background-color: var(--green-4);
					margin-block: auto;
					position: absolute;
					inset: 0;
				}
				&::before {
					rotate: -45deg;
				}
				&::after {
					rotate: 45deg;
				}
			}
		}
	}

	/* 別窓リンク_オレンジ */
	a:has(.fc_ora)[target="_blank"] span {
		padding-right: 14rem;
		display: inline-block;
		position: relative;

		&::after {
			content: '';
			width: 12rem;
			height: 12rem;
			background: url('images/icon_blank.svg') no-repeat center / 100% auto;
			margin-block: auto;
			position: absolute;
			inset: 0 auto;
			right: 0;
		}
	}

	/* 予約フォーム */
	.reserve {
		margin-top: 56rem;
		padding: 48rem 32rem;

		& > .ttl {
			font-size: 40rem;
		}
		& a {
			display: block;
		}
		& .form_link {
			border: 2rem var(--green-4) solid;

			& > .btn {
				font-size: 16rem;
				line-height: 72rem;
				padding-inline: 24rem;
			}
			& .acc-trigger::before,
			& .acc-trigger::after {
				width: 17rem;
				background-color: var(--black);
				right: 24rem;
			}
			& > a.btn::after {
				background-color: var(--green-4);
				right: 24rem;
			}
			.ttl + & {
				margin-top: 32rem;
			}
			.form_link + & {
				margin-top: 24rem;
			}
		}
		& .form_link_in {
			padding: 0 24rem 32rem;

			& .ttl {
				font-size: 24rem;
				line-height: 1.8;
				border-bottom: 1px var(--green-2) solid;
				padding-bottom: 12rem;
			}
		}
		& .area_name {
			font-size: 14rem;
			margin-top: 24rem;
		}
		& .link_list {
			margin-top: 8rem;
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 24rem;

			& a {
				color: var(--black);
				font-size: 12rem;
				line-height: 48rem;
				padding-left: 8rem;
			}
		}
	}