@charset "utf-8";
	:root {
		--black: #333;
		--gray: #CACDCD;
		--pink: #FF9DAD;
		--pink-2: #FFEDF0;
		--azuki: #A36D6A;
		--blue: #28C9D0;
		--purple: #8283B6;
		--red: #FF2626;
		--orange: #FC972F;
		--yellow: #FFF000;
		--green: #99D43B;
		--purple-opa20: rgba(130, 131, 182, .2);
		--border-white-1: 1px var(--white) solid;
	}

	/* PC背景 */
	@media (min-width: 769px) {
		.pc_bg {
			background-image: url('images/pc_bg.png');
			background-repeat: repeat;
			position: fixed;
			inset: 0;
			z-index: -1;
			animation: bgLoop 20s linear infinite;
		}
		@keyframes bgLoop {
			0% { background-position: center 251px center 284px; }
			100% { background-position: left -251px top -284px; }
		}
	}

	/* hover */
	@media (any-hover: hover) {
		header .btn:hover,
		.clinic_list a.ani_over:hover {
			transform: translateY(3rem);
			box-shadow: 0 1px 0 var(--black);
		}
		.cv_btn .btn:hover {
			transform: translateY(6rem);
			box-shadow: 0 2rem 0 var(--black);
		}
	}

	/* 基本 */
	body {
		color: var(--black);
		font-size: 14rem;
		font-family: "Zen Kaku Gothic New", sans-serif;
		font-weight: 900;
		font-style: normal;
	}
	a {
		color: var(--black);
	}
	h2, h3, h4, b {
		font-weight: 900;
	}

	/* フォント */
	.oleo {
		font-family: "Oleo Script Swash Caps", system-ui;
		font-weight: 700;
	}
	.fig {
		font-weight: 800;
	}
	.mid {
		font-weight: 500;
	}
	.bold {
		font-weight: 700;
	}

	/* フォントカラー */
	.fc_wht {
		color: var(--white);
	}
	.fc_bla {
		color: var(--black);
	}
	.fc_gray {
		color: var(--gray);
	}
	.fc_blue {
		color: var(--blue);
	}
	.fc_pink {
		color: var(--pink);
	}
	.fc_azu {
		color: var(--azuki);
	}
	.fc_pur {
		color: var(--purple);
	}
	.fc_red {
		color: var(--red);
	}
	.fc_ora {
		color: var(--orange);
	}
	.fc_yell {
		color: var(--yellow);
	}

	/* 背景色 */
	.bg_wht {
		background-color: var(--white);
	}
	.bg_bla {
		background-color: var(--black);
	}
	.bg_pink {
		background-color: var(--pink);
	}
	.bg_azu {
		background-color: var(--azuki);
	}
	.bg_blue {
		background-color: var(--blue);
	}
	.bg_pur {
		background-color: var(--purple);
	}
	.bg_red {
		background-color: var(--red);
	}
	.bg_ora {
		background-color: var(--orange);
	}
	.bg_yell {
		background-color: var(--yellow);
	}
	.bg_gre {
		background-color: var(--green);
	}

	/* ルシアシカシルエット背景 */
	.bg_luciashica {
		position: relative;

		&::before {
			content: '';
			height: 130rem;
			background-color: var(--azuki);
			mask: url('images/luciashica_head.svg') no-repeat center top / 100% auto;
			position: absolute;
			inset: -129rem 0 auto;
		}
	}

	/* 波形背景 */
	.bg_wave::before {
		content: '';
		height: 17rem;
		mask: url('images/bg_wave.svg') no-repeat center top / 100% auto;
		position: absolute;
		inset: auto 0;
	}

	/* テキストループ */
	.loop-wrap {
		overflow: hidden;

		& span {
			white-space: nowrap;
		}
		& .loop-track {
			width: max-content;
			display: flex;
			gap: 0;
			animation-name: ani-loop;
			animation-timing-function: linear;
			animation-iteration-count: infinite;
			will-change: transform;
			backface-visibility: hidden;
			perspective: 1000;
			transform: translateZ(0);
			transform-style: preserve-3d;
			backface-visibility: hidden;
		}
		& .loop-in {
			display: flex;
			flex-shrink: 0;
		}
		/* 白背景帯 */
		&.strip {
			font-size: 40rem;
			line-height: 68rem;
			border-block: 2rem var(--black) solid;

			& span {
				padding-left: 44rem;
				position: relative;

				&::before {
					content: '';
					width: 44rem;
					background: url('images/icon_luciashica.svg') no-repeat center / 15rem auto;
					position: absolute;
					inset: 0;
				}
			}
		}
		&.txt_opa20 {
			font-size: 80rem;
			line-height: 2;
			opacity: .2;
			position: absolute;
			inset: auto 0;

			& span {
				padding-left: .5em;
			}
		}
	}
	/* PC_アニメーションスピード */
	@media (min-width: 769px) {
		.loop-track {
			animation-duration: 35s;
		}
	}
	/* SP_アニメーションスピード */
	@media (max-width: 768px) {
		.loop-track {
			animation-duration: 20s;
		}
	}
	@keyframes ani-loop {
		0% {
			transform: translate3d(0, 0, 0);
		}
		100% {
			transform: translate3d(-50%, 0, 0);
		}
	}

	/* 汎用 */
	.pi_32 {
		padding-inline: 32rem;
	}
	.opa_10 {
		opacity: .1;
	}
	.border {
		border-width: 2rem;
		border-style: solid;

		&.black {
			border-color: var(--black);
		}
		&.blue {
			border-color: var(--blue);
		}
		&.orange {
			border-color: var(--orange);
		}
	}
	.dot {
		.fc_wht &::before {
			background-color: var(--white);
		}
		.fc_pur &::before {
			background-color: var(--purple);
		}
		.fc_red &::before {
			background-color: var(--red);
		}
	}
	.slash {
		&::before,
		&::after {
			border-radius: 100vmax;
		}
		&::before {
			rotate: 62deg;
		}
		&::after {
			rotate: -62deg;
		}
		&.fc_wht::before,
		&.fc_wht::after,
		.fc_wht &::before,
		.fc_wht &::after {
			background-color: var(--white);
		}
	}
	.shadow_4 {
		box-shadow: 0 4rem 0 var(--black);
	}
	.shadow_8 {
		box-shadow: 0 8rem 0 var(--black);
	}
	/* フキダシ */
	.tail_t,
	.tail_b {
		position: relative;

		&::after,
		&.border::before {
			content: '';
			margin-inline: auto;
			position: absolute;
		}
		&.border::before {
			scale: 110% 110%;
		}
		&.bg_wht::after {
			background-color: var(--white);
		}
		&.bg_pink::after {
			background-color: var(--pink);
		}
		&.bg_pur::after {
			background-color: var(--purple);
		}
		&.bg_ora::after {
			background-color: var(--orange);
		}
		&.black::before {
			background-color: var(--black);
		}
		&.blue::before {
			background-color: var(--blue);
		}
	}
	.tail_t::after,
	.tail_t.border::before {
		clip-path: polygon(50% 0, 100% 100%, 0 100%);
		inset: auto 0 calc(100% - 1rem);
	}
	.tail_t.border::before {
		translate: 0 -3rem;
	}
	.tail_b::after,
	.tail_b.border::before {
		clip-path: polygon(0 0, 100% 0, 50% 100%);
		inset: calc(100% - 1rem) 0 auto;
	}
	.tail_b.border::before {
		translate: 0 3rem;
	}
	/* アイコン付き見出し */
	.icon {
		background-repeat: no-repeat;
		background-position: left center;

		&.ping {
			background-image: url('images/icon_ping.svg');
			background-size: 20rem auto;
		}
		&.cal {
			background-image: url('images/icon_cal.svg');
		}
		header &.cal {
			background-size: 17rem auto;
		}
		&.tel {
			background-image: url('images/icon_tel.svg');
		}
		main &.cal,
		main &.tel {
			background-size: 24rem auto;
		}
	}
	/* アコーディオン */
	.acc-trigger::before,
	.acc-trigger::after {
		background-color: var(--black);
	}
	/* 英字付き写真 */
	.photo_en {
		position: relative;

		& .photo {
			overflow: hidden;
		}
		& .oleo {
			font-size: 40rem;
			line-height: 2;
			-webkit-text-stroke: 4rem var(--black);
			position: absolute;
			rotate: -5deg;
		}
	}
	/* アイコン付きリスト */
	.icon_list {
		display: grid;
		grid-template-columns: repeat(3, 1fr);

		& img {
			margin-inline: auto;
		}
		& span {
			font-size: 12rem;
			line-height: 1.5;
			display: block;
		}
	}
	/* 注釈リスト */
	.notice_list {
		font-size: 12rem;
		line-height: 1.5;
	}

	/* 見出し */
	.sec_ttl {
		padding: 16rem 0 16rem 32rem;

		& .icon {
			background-size: 32rem auto;
			font-size: 24rem;
			line-height: 2;
			padding-left: 42rem;
			display: block;
		}
		#flow & .icon {
			background-image: url('images/icon_machine.svg');
		}
		#qa & .icon {
			background-image: url('images/icon_qa.svg');
		}
		#clinic & .icon {
			background-image: url('images/icon_clinic.svg');
		}
	}

	/* ボタン */
	main .btn span {
		padding-left: 32rem;
	}
	/* CVボタン */
	.cv_btn {
		width: 386rem;
		text-align: center;
		margin-inline: auto;

		& .cv_copy {
			line-height: 26rem;
			padding-inline: 16rem;
			display: inline-block;
			z-index: 1;

			&:has(em) {
				font-size: 14rem;
			}
			&:not(:has(em)) {
				font-size: 16rem;
			}
			&::before,
			&::after {
				width: 9rem;
				height: 7rem;
			}
			& em {
				font-size: 18rem;
			}
			& .dot::before {
				width: 3rem;
				background-color: var(--black);
			}
		}
		& .btn {
			height: 72rem;
			margin-top: -12rem;
			position: relative;

			& span {
				font-size: 20rem;

				& .dot::before {
					width: 4rem;
				}
			}
			&::before,
			&::after {
				content: '';
				height: 24rem;
				aspect-ratio: 1 / 1;
				margin-block: auto;
				position: absolute;
				inset: 0 auto;
				right: 16rem;
			}
			&::before {
				background-color: var(--white);
				border-radius: 100vmax;
			}
			&::after {
				background: url('images/icon_arrow.svg') no-repeat center / 10rem auto;
			}
		}
	}

	/* ヘッダー */
	header {
		height: 78rem;
		justify-content: space-between;
		padding-right: 16rem;

		& .logo {
			width: 78rem;

			& img {
				width: 100%;
				height: auto;
			}
		}
		& nav {
			display: flex;
			gap: 8rem;
		}
		& .btn {
			height: 48rem;
			padding-inline: 8rem;

			& span {
				padding-left: 20rem;
				display: inline-block;
			}
		}
	}

	/* フッター */
	footer {
		& .pagetop {
			width: 386rem;
			padding-block: 22rem;
			border-bottom: var(--border-white-1);
			margin-inline: auto;
			display: block;

			& span {
				font-size: 18rem;
				padding-left: 14rem;
				position: relative;

				&::before {
					content: '';
					width: 5rem;
					height: 5rem;
					border-top: var(--border-white-1);
					border-left: var(--border-white-1);
					position: absolute;
					top: 13rem;
					left: 0;
					rotate: 45deg;
				}
			}
		}
		& .logo {
			margin-top: 20rem;

			& img {
				width: 124rem;
				margin-inline: auto;
			}
		}
		& .copyright {
			font-size: 12rem;
			margin-top: 14rem;
			padding-block: 16rem;
		}
	}

	/* FV */
	#fv {
		padding-block: 106rem 80rem;
		position: relative;
		overflow: hidden;

		& .cv_btn {
			margin-top: 24rem;
			position: relative;
		}
		& .notice_list {
			margin-top: 16rem;
			position: relative;
		}
	}
	.fv_bg_azu {
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 56rem), 50% 100%, 0 calc(100% - 56rem));
		position: absolute;
		inset: 320rem 0 0;

		&::after {
			content: '';
			height: 58rem;
			background-color: var(--pink);
			mask: url('images/bg_round.svg') no-repeat center / 100% auto;
			position: absolute;
			inset: -1rem 0 0;
			scale: 1 -1;
		}
	}
	.main_visual {
		position: relative;
	}
	.fv_h1 {
		width: 428rem;
		margin-inline: auto;
	}
	.fv_bg_window {
		width: 386rem;
		background: var(--white) url('images/fv_bg.jpg') no-repeat center / 100% auto;
		border-radius: 255rem 255rem 10rem 10rem;
		margin-top: -18rem;
		margin-inline: auto;
		position: relative;

		#normal_lp & {
			padding-top: 10rem;
		}
		#td_lp & {
			padding-top: 26rem;
		}
	}
	.fv_luciashica {
		width: 408rem;
		max-width: max-content;
		margin-left: 10rem;
	}

	/* 症例件数スタンプ */
	.fv_stamp {
		width: 122rem;
		background: url('images/fv_stamp.svg') no-repeat center / 100% auto;
		filter: drop-shadow(0 6rem 0 #000);
		padding-top: 4rem;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		position: absolute;
		right: -16rem;

		#normal_lp & {
			top: 40rem;
			transform-origin: right top;
			scale: .75 .75;
		}
		#td_lp & {
			top: 22rem;
		}
		& .copy {
			width: 92rem;
			font-size: 16rem;
			line-height: 26rem;
			margin-inline: auto;
			position: absolute;
			inset: 0 0 auto;
		}
		& .outline {
			-webkit-text-stroke: 4rem var(--black);
		}
		& .num {
			line-height: 1.2;

			& em {
				font-size: 57rem;

				&:nth-of-type(2) {
					margin-inline: 2rem -4rem;
				}
			}
			& span {
				font-size: 16rem;
				margin-left: 3rem;
				display: inline-block;
			}
		}
		& .txt {
			font-size: 24rem;
			line-height: 1.2;
			margin-top: -6rem;
		}
		& small {
			font-size: 10rem;
			line-height: 1.2;
			position: absolute;
			top: 82rem;
			right: 23rem;
		}
	}
	.fv_offer {
		padding-inline: 24rem;
	}

	/* オファー価格 */
	.offer_balloon {
		font-size: 18rem;
		line-height: 36rem;
		margin-top: -18rem;
		z-index: 1;

		& .outline {
			-webkit-text-stroke: 3rem var(--black);
		}
		& small {
			font-size: 14rem;
		}
		& .dot::before {
			width: 4rem;
			border: 1px var(--black) solid;
		}
		&::before,
		&::after {
			width: 13rem;
			height: 10rem;
			background-color: var(--orange);
		}
		&:has(small),
		#plan &:not(:has(small)) {
			width: 402rem;
			margin-left: -32rem;
		}
		#fv &:not(:has(small)) {
			width: 354rem;
			margin-left: -8rem;
		}
	}
	.offer_list {
		display: grid;
		gap: 16rem;

		.offer_balloon + & {
			margin-top: 4rem;
		}
		#td_lp #fv & {
			margin-top: 16rem;
		}
		#fv & {
			padding-bottom: 32rem;
		}
		#gen_cont2 & {
			margin-top: 64rem;
			padding-inline: 56rem;
		}
		& li {
			position: relative;
		}
	}
	.course_name {
		height: 56rem;
		border-radius: 10rem 10rem 0 0;
		display: grid;
		place-content: center;

		&:has(.slash) {
			padding-top: 3rem;
		}
		& p {
			line-height: 2;
			position: relative;
		}
		& em {
			font-size: 24rem;
		}
		& small {
			font-size: 12rem;
			vertical-align: 3rem;
			margin-inline: -3rem -5rem;
			display: inline-block;
		}
		& .slash {
			font-size: 10rem;
			padding-inline: 10rem;
			position: absolute;
			top: -4rem;
			left: -22rem;
			rotate: -5deg;

			&::before,
			&::after {
				width: 12rem;
				height: 1px;
			}
		}
		& .plus {
			width: 16rem;
			font-size: 12rem;
			line-height: 15rem;
			vertical-align: 4rem;
			margin-inline: 10rem;
			display: inline-block;
		}
		& .or {
			font-size: 14rem;
			vertical-align: 4rem;
			margin-inline: 10rem;
		}
		& .count {
			font-size: 12rem;
			line-height: 24rem;
			margin-left: 8rem;
			padding-inline: 8rem;
			display: inline-block;

			& b {
				font-size: 21rem;
				margin-right: 2rem;
			}
			&:has(b) {
				vertical-align: 2rem;
			}
			&:not(:has(b)) {
				vertical-align: 4rem;
			}
		}
	}
	.price_txt {
		border-radius: 0 0 10rem 10rem;

		&:has(.normal_price + .price) {
			padding-top: 6rem;
		}
		&:has(.normal_price):has(.price) {
			height: 110rem;
		}
		#td_lp #plan & {
			padding-block: 3rem 6rem;
		}
	}
	.normal_price {
		font-size: 14rem;
		line-height: 1.2;

		.price + & {
			margin-top: -6rem;
		}
		& .txt {
			font-size: 10rem;
			line-height: 14rem;
			vertical-align: 4rem;
			border: 1px var(--black) solid;
			margin-right: 8rem;
			padding-inline: 2rem;
			display: inline-block;
		}
		& em {
			font-size: 24rem;
			letter-spacing: 0;
			margin-right: 4rem;
		}
		& .dismiss {
			padding-inline: 2rem 10rem;
			display: inline-block;
			position: relative;

			&::before,
			&::after {
				content: '';
				position: absolute;
			}
			&::before {
				width: 4rem;
				height: 3rem;
				background-color: var(--black);
				clip-path: polygon(0 0, 100% 0, 50% 100%);
				top: 14rem;
				right: 3rem;
			}
			&::after {
				height: 2rem;
				background-color: var(--red);
				border-radius: 100vmax;
				margin-block: auto;
				inset: 0;
				rotate: -7deg;
			}
		}
		& + .price {
			margin-top: -5rem;
		}
	}
	.price {
		font-size: 32rem;
		line-height: 1.2;

		& em {
			font-size: 64rem;
			margin-right: 2rem;
		}
	}
	.yen {
		position: relative;

		#td_lp #fv:has(.normal_price) .price &::after {
			content: '税抜';
			font-size: 10rem;
			font-weight: 500;
			white-space: nowrap;
			position: absolute;
			inset: -4rem 0 auto;
		}
	}
	.off_badge {
		height: 79rem;
		margin-block: auto;
		padding-top: 8rem;
		position: absolute;
		inset: 0 auto;
		right: -36rem;

		& > span {
			font-size: 14rem;
			line-height: 1.2;
			display: block;

			&:nth-of-type(2) {
				margin-block: -7rem -5rem;
			}
		}
		& .outline {
			-webkit-text-stroke: 3rem var(--black);
		}
		& em {
			font-size: 32rem;
			vertical-align: -2rem;

			& + em {
				margin-right: 2rem;
			}
		}
	}

	/* 国内でルシアだけ! */
	#appeal {
		margin-top: 24rem;

		& .cv_btn {
			margin-top: 26rem;
		}
	}
	.app_ttl {
		& span {
			font-size: 48rem;
			line-height: 85rem;
			padding-inline: 20rem;
			display: inline-block;

			& + span {
				margin-top: 12rem;
			}
		}
		& p {
			font-size: 20rem;
			line-height: 1.8;
			margin-top: 14rem;
			position: relative;

			& u {
				border-bottom: 2rem var(--white) solid;
			}
			& small {
				font-size: 10rem;
				position: absolute;
				top: 40rem;
				right: 2rem;
			}
		}
	}
	.app_img {
		margin-top: 32rem;
		position: relative;
		overflow: hidden;

		& figcaption {
			padding-right: 12rem;
			position: absolute;
			inset: 173rem 0 auto;

			& > span:nth-of-type(1) .bg_wht {
				font-size: 10rem;
			}
			& > span:nth-of-type(2) .bg_wht {
				font-size: 12rem;
				margin-top: 5rem;
			}
		}
		& .bg_wht {
			line-height: 21rem;
			border-radius: 2rem;
			padding-inline: 5rem;
			display: inline-block;
		}
		& + .notice {
			font-size: 12rem;
			line-height: 2;
			margin-top: 8rem;
		}
	}
	.app_copy {
		margin-top: 64rem;

		& .copy {
			position: relative;

			& .slash {
				font-size: 24rem;
				line-height: 2;
				padding-inline: 24rem 20rem;
				position: absolute;
				top: -39rem;
				left: 11rem;
				rotate: -5deg;

				&::before,
				&::after {
					width: 22rem;
					height: 1px;
					translate: 0 4rem;
				}
			}
			& em {
				font-size: 56rem;
				line-height: 1.5;
				-webkit-text-stroke: 5rem var(--black);
				display: block;

				& + em {
					margin-top: -8rem;
				}
				& .dot::before {
					width: 7rem;
					background-color: var(--black);
				}
			}
		}
		& .txt {
			height: 153rem;
			margin-top: 24rem;

			&::before,
			&::after {
				width: 12rem;
				height: 12rem;
			}
			& img {
				width: 118rem;
				position: absolute;
				top: 24rem;
				left: -16rem;
			}
			& p {
				line-height: 1.5;
				padding: 22rem 0 0 110rem;

				& em {
					font-size: 24rem;
					display: block;
				}
				& > span {
					font-size: 18rem;
					margin-top: 6rem;
					display: block;
				}
			}
		}
	}

	/* 熱破壊式と蓄熱式の違い */
	#diff {
		margin-top: 72rem;
		padding-bottom: 72rem;
	}
	.diff_ttl {
		height: 150rem;
		background-image: url('images/luciashica_img2.png');
		background-repeat: no-repeat;
		background-position: right center;
		background-size: auto 100%;
		padding: 19rem 0 18rem 32rem;

		& .fukidashi {
			width: 62rem;
			height: 38rem;
			background: url('images/bg_fukidashi_w3.svg') no-repeat center / 100% auto;
			padding-bottom: 6rem;
			display: grid;
			place-content: center;
			position: absolute;
			top: -14rem;
			left: 16rem;
			rotate: -5deg;
		}
		& h2 {
			font-size: 24rem;
			line-height: 1.5;

			& span {
				display: block;

				& + span {
					margin-top: -8rem;
				}
			}
			& em {
				font-size: 40rem;
			}
		}
		&::after {
			width: 22rem;
			height: 16rem;
		}
	}
	.diff_copy {
		margin-top: 58rem;

		& em {
			font-size: 40rem;
			display: block;

			& .dot::before {
				width: 6rem;
			}
		}
		& span {
			font-size: 24rem;
			margin-top: 2rem;
			display: block;
		}
	}
	.diff_wrap {
		margin-top: 28rem;

		& .ttl {
			height: 80rem;
			font-size: 24rem;
			padding-top: 16rem;

			& span {
				font-size: 32rem;
			}
			& .dot::before {
				width: 5rem;
			}
		}
	}
	.diff_cont {
		width: 100%;
		margin-top: 40rem;

		& tr {
			display: flex;
		}
		& tbody tr:first-child {
			border-top-left-radius: 10rem;
		}
		& tbody tr:last-child {
			border-radius: 0 0 10rem 10rem;

			& th + td {
				border-bottom: 4rem var(--red) solid;
			}
		}
		& tbody tr + tr {
			border-top: 1px var(--black) dotted;
		}
		& th + td {
			background-color: rgba(255, 38, 38, .1);
			position: relative;

			&::before,
			&::after {
				content: '';
				width: 4rem;
				height: 101%;
				background-color: var(--red);
				position: absolute;
				inset: 0 auto;
			}
			&::before {
				left: 0;
			}
			&::after {
				right: 0;
			}
		}
		& thead th:nth-child(1),
		& tbody th {
			width: 48rem;
		}
		& thead th:nth-child(n+2),
		& tbody td {
			width: calc((100% - 48rem) / 2);
			text-align: center;
		}
		& th {
			display: grid;
			place-content: center;
		}
		& thead th {
			height: 57rem;
			font-size: 20rem;

			&:nth-child(2) {
				border-top-left-radius: 10rem;
			}
			&:nth-child(3) {
				border-top-right-radius: 10rem;
			}
		}
		& tbody th {
			font-size: 12rem;
		}
		& td {
			padding-block: 24rem;

			& figure {
				height: 32rem;

				& img {
					margin-inline: auto;
				}
				&.icon_double img,
				&.icon_circle img {
					width: 24rem;
				}
				&.icon_cross img {
					width: 28rem;
				}
				&.icon_tri img {
					width: 32rem;
				}
			}
			& p {
				font-size: 12rem;
				line-height: 1.5;
			}
		}
	}

	/* ジェントルシリーズ */
	#gentle {
		& .photo_en {
			margin-top: 28rem;

			& .oleo {
				right: 18rem;
				bottom: -30rem;
			}
		}
		& > .cv_btn {
			margin-top: 64rem;
		}
		& .strip_btm {
			margin-top: 56rem;
		}
	}
	.gen_ttl {
		margin-top: 64rem;

		& .slash {
			font-size: 24rem;
			line-height: 1.5;
			padding-inline: 32rem;

			&::before,
			&::after {
				width: 31rem;
				height: 2rem;
			}
			& .dot::before {
				width: 3rem;
			}
		}
		& em {
			font-size: 48rem;
			line-height: 76rem;
			margin-top: 12rem;
			padding-inline: 20rem;
			display: inline-block;
		}
		& .txt {
			font-size: 32rem;
			line-height: 1.5;
			margin-top: 10rem;
			display: block;
		}
	}
	.gen_wrap {
		margin-top: 28rem;
		padding-top: 180rem;
		position: relative;

		& .txt_opa20 {
			top: 0;
		}
	}
	.gen_cont {
		background-color: var(--pink-2);
		padding: 40rem 24rem 20rem;

		& .gen_img {
			width: 238rem;
			margin-inline: auto;
			position: absolute;
			inset: 10rem 0 auto;
		}
		& .cont_ttl {
			line-height: 1.5;

			& .square {
				width: 84rem;
				background: url('images/bg_fukidashi_y3.svg') no-repeat center / 100% auto;
				font-size: 14rem;
				display: grid;
				place-content: center;
				position: absolute;
				top: 130rem;
				left: 16rem;
			}
			& .ttl {
				font-size: 24rem;

				& small {
					font-size: 12rem;
					vertical-align: 8rem;
					margin-left: 2rem;
				}
			}
			& .txt {
				font-size: 14rem;

				& u {
					border-bottom: 1px var(--black) solid;
				}
			}
		}
		& .list {
			margin-top: 24rem;
			display: grid;
			gap: 20rem;

			& li {
				padding: 16rem 0 16rem 24rem;
				display: flex;
				align-items: center;
				gap: 12rem;
			}
			& img {
				width: 70rem;
				flex-shrink: 0;
			}
			& .in {
				flex: 1;

				& > span {
					font-size: 12rem;
					line-height: 20rem;
					padding-inline: 8rem 7rem;
					display: inline-block;
				}
				& p {
					font-size: 16rem;
					line-height: 1.5;
					margin-top: 4rem;
				}
			}
		}
		& .notice {
			font-size: 12rem;
			line-height: 1.5;
			margin-top: 12rem;
			display: flex;

			&::before {
				content: '※';
				margin-right: 4rem;
			}
		}
		& .so {
			width: 118rem;
			height: 43rem;
			margin-inline: auto;
			position: absolute;
			inset: auto 0 -40rem;

			& span {
				font-size: 14rem;
				line-height: 1.5;
				position: relative;
				z-index: 1;
			}
			&::before,
			&::after {
				content: '';
				clip-path: polygon(0 0, 100% 0, 50% 100%);
				position: absolute;
			}

			&::before {
				height: 100%;
				background-color: var(--black);
				inset: auto 0 -2.5rem;
			}
			&::after {
				background-color: var(--pink-2);
				inset: 0;
			}
		}
	}
	.gen_copy {
		margin-top: 64rem;

		& .copy1 {
			& .round {
				font-size: 16rem;
				line-height: 40rem;
				padding-inline: 16rem;
				display: inline-block;

				& .dot::before {
					width: 3rem;
					background-color: var(--black);
				}
			}
			& em {
				font-size: 48rem;
				-webkit-text-stroke: 4rem var(--black);
				display: block;

				& i {
					font-size: 67%;
				}
			}
		}
		& .list {
			margin-top: 48rem;
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 16rem;

			& li {
				height: 70rem;
				display: flex;
				justify-content: center;
				align-items: center;
				gap: 8rem;

				&::before,
				&::after {
					width: 16rem;
					height: 10rem;
				}
			}
			& img {
				width: 40rem;
			}
			& span {
				font-size: 14rem;
				line-height: 1.5;
			}
		}
		& .copy2 {
			line-height: 1.5;
			margin-top: 24rem;

			& .slash {
				font-size: 24rem;
				padding-inline: 28rem;

				&::before,
				&::after {
					width: 31rem;
					height: 1px;
				}
			}
			& .txt {
				font-size: 32rem;
				margin-top: 10rem;
				display: block;
			}
			& em {
				font-size: 40rem;
				margin-top: -8rem;
				display: block;
			}
		}
	}

	/* ジェントル推しコンテンツ */
	#gen_cont1 {
		padding-block: 52rem;
		position: relative;
		z-index: 1;

		&::before {
			background-color: var(--purple);
			bottom: -16rem;
			scale: 1 -1;
		}
		& .ttl {
			line-height: 1.5;
			position: relative;

			& .slash {
				font-size: 14rem;
				padding-inline: 20rem;
				position: absolute;
				top: -19rem;
				left: 60rem;
				rotate: -3deg;

				&::before,
				&::after {
					width: 21rem;
					height: 1px;
					translate: 0 2rem;
				}
			}
			& .txt {
				font-size: 32rem;
				display: block;

				& u {
					border-bottom: 2rem var(--white) solid;
				}
				& + .txt {
					margin-top: -3rem;
				}
			}
		}
		& .fukidashi {
			width: 420rem;
			height: 302rem;
			background: url('images/bg_fukidashi_w5.svg') no-repeat center / auto 100%;
			margin: 4rem auto 0;
			padding-top: 64rem;
			position: relative;

			& > span {
				display: block;
			}
			& .txt {
				width: 69rem;
				height: 46rem;
				background: url('images/bg_fukidashi_y4.svg') no-repeat center / 100% auto;
				font-size: 18rem;
				padding-top: 7rem;
				position: absolute;
				top: 25rem;
				left: 80rem;
				rotate: -5deg;
			}
			& .txt2 {
				font-size: 24rem;
			}
			& .txt3 {
				font-size: 32rem;
				line-height: 1.2;

				& em {
					font-size: 40rem;
				}
			}
			& .txt4 {
				font-size: 14rem;
				line-height: 1.6;
				margin-top: 8rem;
			}
		}
		& .luciashica {
			width: 251rem;
			margin: -62rem auto 0;
			position: relative;
			animation: shake-loop .1s linear infinite;
		}
		& .copy {
			font-size: 10rem;
			line-height: 1.4;
			text-align: left;
			position: absolute;
			left: 340rem;
			bottom: 140rem;
		}
	}
	@keyframes shake-loop {
		0%, 100% {
			transform: translateX(0);
		}
		25% {
			transform: translateX(-1rem);
		}
		75% {
			transform: translateX(1rem);
		}
	}
	#gen_cont2 {
		padding-block: 65rem 76rem;
		position: relative;

		&::before {
			content: '';
			background-color: var(--yellow);
			clip-path: polygon(0 0, 100% 0, 100% calc(100% - 50rem), 50% 100%, 0 calc(100% - 50rem));
			position: absolute;
			inset: 0;
		}
		& .fukidashi {
			width: 254rem;
			font-size: 24rem;
			line-height: 50rem;
			margin-inline: auto;
			position: absolute;
			inset: -18rem 0 auto;
			z-index: 1;

			&::after {
				width: 11rem;
				height: 8rem;
			}
		}
		& .ttl {
			& span,
			& em {
				display: inline-block;
			}
			& span {
				font-size: 32rem;

				& + em {
					margin-top: 14rem;
				}
			}
			& em {
				font-size: 40rem;
				line-height: 58rem;
				padding-inline: 3rem;

				& + em,
				& + span {
					margin-top: 16rem;

					& + span {
						margin-top: 10rem;
					}
				}
			}
		}
		& .off_txt {
			margin-top: 32rem;
			padding-block: 50rem 26rem;
			position: relative;
			z-index: 1;

			& .txt {
				font-size: 18rem;
				display: inline-block;
				position: relative;

				& .slash {
					font-size: 12rem;
					padding-inline: 14rem;
					position: absolute;
					top: -20rem;
					left: -18rem;
					rotate: -5deg;

					&::before,
					&::after {
						width: 16rem;
						height: 1px;
						background-color: var(--black);
						translate: 0 2rem;
					}
				}
				& b {
					font-size: 24rem;
				}
				& u {
					border-bottom: 1.5rem var(--black) solid;
				}
				& .dot::before {
					width: 4rem;
					background-color: var(--black);
					top: 2rem;
				}
			}
			& em {
				font-size: 96rem;
				line-height: 1.2;
				margin-top: -8rem;
				display: block;
			}
		}
		& .luciashica {
			position: absolute;
			top: 188rem;
			right: 32rem;

			& p {
				background: url('images/bg_fukidashi_p2.svg') no-repeat center / 100% auto;
				font-size: 18rem;
				line-height: 1.2;
				margin-right: 80rem;
				rotate: -5deg;
			}
			.okayama_cp & p {
				width: 116rem;
				height: 70rem;
				padding-top: 8rem;
			}
			.normal_cp & p {
				width: 124rem;
				height: 74rem;
				padding-top: 12rem;
			}
			& img {
				width: 107rem;
				margin-top: -56rem;
				margin-inline: auto 0;
				animation: buruburu-loop .1s linear infinite;
			}
		}
		& .cv_btn {
			margin-top: 24rem;
		}
		& .notice_list {
			margin-top: 24rem;
		}
	}
	@keyframes buruburu-loop {
		0%, 100% {
			transform: translate(0, 0);
		}
		25% {
			transform: translate(-2px, 2px);
		}
		50% {
			transform: translate(2px, -2px);
		}
		75% {
			transform: translate(2px, 2px);
		}
	}

	/* ルシアクリニックはここまでする */
	#reason {
		padding-top: 148rem;
		position: relative;

		& .luciashica {
			width: 258rem;
			height: 164rem;
			background: url('images/bg_kirakira.svg') no-repeat center top 72rem / 100% auto;
			margin-inline: auto;
			position: absolute;
			inset: -16rem 0 auto;
			overflow: hidden;

			& img {
				width: 212rem;
				margin-inline: auto;
				position: absolute;
				inset: 0;
				transform: translateY(100%);
				transition: transform .3s ease-out;
			}
			&.active img {
				transform: translateY(0);
			}
		}
	}
	.reason_ttl {
		line-height: 1.5;

		& .tail_b {
			font-size: 24rem;
			padding-inline: 21rem;

			&::after {
				width: 17rem;
				height: 15rem;
			}
		}
		& .outline {
			font-size: 48rem;
			-webkit-text-stroke: 5rem var(--black);
			margin-top: 10rem;
			display: block;

			& em {
				font-size: 64rem;
			}
		}
		& + .copy {
			font-size: 24rem;
			line-height: 1.5;
			position: relative;

			& span {
				font-size: 56rem;
			}
			&::before,
			&::after {
				content: '';
				height: 2rem;
				background-color: var(--white);
				border-radius: 100vmax;
				position: absolute;
				inset: auto 0;
			}
			&::before {
				top: 10rem;
			}
			&::after {
				bottom: -3rem;
			}
		}
	}
	.reason_list {
		margin-top: 40rem;
		display: grid;
		gap: 16rem;

		& .wrap {
			padding-inline: 24rem;
		}
		& dt {
			line-height: 1.5;
			padding-block: 32rem 24rem;
			position: relative;

			& .num {
				font-size: 80rem;
				position: absolute;
				top: -8rem;
				right: 36rem;
				opacity: .1;
			}
			& .in {
				font-size: 20rem;
				position: relative;
			}
		}
		& dd {
			padding-block: 20rem 32rem;
			border-top: 1px var(--gray) dotted;

			& p {
				font-size: 14rem;
				line-height: 2;
			}
			& figure {
				margin-top: 24rem;
				overflow: hidden;
			}
		}
	}

	/* おトクなプラン */
	#plan {
		margin-top: 294rem;
		padding-block: 94rem 180rem;

		& .txt_opa20 {
			top: -285rem;
		}
		& .cv_btn {
			margin-top: 88rem;
		}
		& .offer_price {
			margin-top: 16rem;
			padding-inline: 24rem;
		}
		& .notice_list {
			margin-top: 12rem;
		}
	}
	.plan_ttl {
		position: absolute;
		inset: -178rem 0 auto;

		& .luciachica {
			width: 172rem;
			height: 113rem;
			background-size: contain;
			background-repeat: no-repeat;
			margin-inline: auto;
			animation: parapara-loop 1s step-end infinite;
		}
		& h2 {
			line-height: 1.5;
			margin-top: 16rem;

			& .slash {
				font-size: 32rem;
				padding-inline: 36rem;

				&::before,
				&::after {
					width: 32rem;
					height: 2rem;
					translate: 0 3rem;
				}
			}
			& em {
				font-size: 48rem;
				margin-top: -8rem;
				display: block;
			}
		}
	}
	@keyframes parapara-loop {
		0% {
			background-image: url('images/luciashica_img4_1.png');
		}
		50% {
			background-image: url('images/luciashica_img4_2.png');
		}
		100% {
			background-image: url('images/luciashica_img4_1.png');
		}
	}
	.plan_more {
		margin-top: 56rem;
		position: relative;

		& .luciashica {
			width: 155rem;
			position: absolute;
			top: -43rem;
			right: -9rem;
			transform: translate(-100%, 100%);
		}
		&.active .luciashica {
			transform: translate(0, 0);
		}
		& .wrap {
			padding: 56rem 22rem 24rem;
			border-radius: 193rem 193rem 10rem 10rem;
			position: relative;
			z-index: 1;
		}
		& .more_ttl {
			line-height: 1.5;

			& .copy {
				width: 120rem;
				height: 50rem;
				font-size: 24rem;
				margin-inline: auto;
				padding-top: 6rem;
				position: absolute;
				inset: -24rem 0 auto;

				&::before,
				&::after {
					width: 10rem;
					height: 7rem;
				}
			}
			& .ttl {
				font-size: 32rem;

				& em {
					font-size: 56rem;
					line-height: 1.2;

					& .dot::before {
						width: 6rem;
						background-color: var(--black);
						transform: translateY(5rem);
					}
				}
				& span {
					margin-top: 8rem;
					display: block;
				}
			}
			& p {
				font-size: 14rem;
				margin-top: 8rem;
			}
		}
		.list {
			margin-top: 24rem;

			& dt {
				height: 42rem;
				border-radius: 10rem 10rem 0 0;
				display: flex;
				justify-content: center;
				align-items: center;

				& img {
					width: 24rem;
				}
				& span {
					font-size: 24rem;
					margin-left: 8rem;
				}
			}
			& dd {
				padding-block: 16rem 8rem;
				border-radius: 0 0 10rem 10rem;

				& .mid {
					font-size: 16rem;
					line-height: 1.5
				}
				& p + p {
					font-size: 32rem;
					margin-top: -10rem;

					& em {
						font-size: 56rem;
						margin-right: 4rem;
					}
				}
				& + dt {
					margin-top: 16rem;
				}
			}
		}
		& .notice {
			font-size: 12rem;
			line-height: 1.5;
			margin-top: 16rem;
		}
		& .plan_img {
			position: absolute;
			z-index: 2;
		}
		& .bg_plan_more1 {
			width: 81rem;
			top: 117rem;
			left: -16rem;
		}
		& .bg_plan_more2 {
			width: 74rem;
			top: 64rem;
			right: -14rem;
		}
		& .bg_plan_more3 {
			width: 97rem;
			bottom: -40rem;
			right: 32rem;
		}
	}

	/* 0円サポート */
	#support {
		padding-block: 124rem 88rem;
		position: relative;

		&::before {
			content: '';
			height: 58rem;
			background-color: var(--orange);
			mask: url('images/bg_round.svg') no-repeat center top / 100% auto;
			position: absolute;
			inset: -57rem 0 auto;
		}
		& .icon_list {
			gap: 10rem 14rem;

			& li:nth-last-child(n+2) {
				padding-block: 28rem 16rem;
				position: relative;

				& img {
					width: 50rem;
				}
				& span {
					margin-top: 8rem;
				}
				& small {
					font-size: 10rem;
					line-height: 1.5;
					position: absolute;
					top: 4rem;
					right: 6rem;
				}
			}
			& li:last-child {
				display: grid;
				place-content: center;

				& img {
					width: 82rem;
				}
			}
		}
		& .notice {
			counter-reset: notice;
			margin-top: 16rem;
			display: flex;
			flex-wrap: wrap;

			& li {
				font-size: 10rem;
				line-height: 1.8;

				&:nth-child(odd) {
					width: 138rem;
				}
				&:nth-child(even) {
					width: 246rem;
				}
				&::before {
					content: '※'counter(notice);
					counter-increment: notice;
					margin-right: .5em;
				}
			}
		}
	}
	.sup_ttl {
		position: absolute;
		inset: -140rem 0 auto;

		& .copy {
			display: flex;
			align-items: flex-start;

			& p {
				width: 234rem;
				height: 78rem;
				background: url('images/bg_fukidashi_w.svg') no-repeat center / 100% auto;
				line-height: 1.5;
				margin-top: 20rem;
				padding-block: 14rem;
				flex-shrink: 0;

				& span {
					font-size: 14rem;
					display: block;
				}
				& em {
					font-size: 18rem;
					display: block;
				}
			}
			& img {
				width: 170rem;
				margin-left: -9rem;
			}
		}
		& h2 {
			margin-top: -120rem;
			display: flex;

			& .square {
				height: 80rem;
				font-size: 24rem;
				line-height: 1.2;
				margin-top: 80rem;
				display: grid;
				place-content: center;
			}
			& .outline {
				line-height: 1.5;
				-webkit-text-stroke: 5rem var(--black);
				margin-left: 10rem;

				& span {
					font-size: 40rem;
				}
				& em {
					font-size: 136rem;
				}
			}
		}
	}

	/* 全国どこの院でも */
	#more {
		padding-top: 108rem;
		position: relative;

		&::before {
			background-color: var(--pink);
			top: -16rem;
		}
		.more_copy {
			width: 194rem;
			height: 90rem;
			background: url('images/bg_more.png') no-repeat center / 100% auto;
			filter: drop-shadow(0 4rem 0 var(--black));
			margin-inline: auto;
			padding-top: 10rem;
			position: absolute;
			inset: -49rem 0 auto;

			& span {
				font-size: 16rem;
				display: block;
			}
			& em {
				font-size: 24rem;
				margin-top: -4rem;
				display: block;
			}
		}
		& + #flow {
			margin-top: 56rem;
		}
	}
	.more_cont {
		padding: 50rem 24rem 24rem;
		position: relative;

		& .copy {
			width: 300rem;
			height: 50rem;
			font-size: 18rem;
			line-height: 1.5;
			margin-inline: auto;
			padding-top: 10rem;
			position: absolute;
			inset: -26rem 0 auto;

			&::before,
			&::after {
				width: 10rem;
				height: 8rem;
			}
		}
		& h2 {
			line-height: 1.5;

			& em {
				font-size: 40rem;
				display: block;
			}
			& span {
				font-size: 24rem;
				margin-top: 3rem;
				display: block;
			}
		}
		& .txt {
			background-color: var(--purple-opa20);
			margin-top: 24rem;
			padding-block: 14rem;

			& p {
				font-size: 12rem;
				line-height: 2;
			}
		}
		& .photo_en {
			margin-top: 32rem;

			& span {
				right: -38rem;
				bottom: -46rem;
			}
		}
		& .list {
			margin-top: 40rem;

			& li {
				background: url('images/icon_check2.svg') no-repeat left center / 29rem auto;
				font-size: 18rem;
				line-height: 1.5;
				padding: 24rem 0 24rem 40rem;

				& + li {
					border-top: 1px var(--black) dotted;
				}
			}
		}
		& .icon_list {
			margin-top: 16rem;
			gap: 8rem;

			& li {
				padding-block: 12rem 10rem;
			}
			& img {
				width: 41rem;
			}
			& span {
				margin-top: 4rem;
			}
		}
	}

	/* 施術までの流れ */
	#flow-slide {
		margin-top: 40rem;

		& .swiper-slide {
			width: 362rem;
			height: auto;
		}
		& .slide_in {
			height: 100%;
			overflow: hidden;
		}
		& .ttl {
			border-top: 2rem var(--black) solid;
			padding: 32rem 24rem 0;
			display: flex;
			align-items: center;

			& .fc_azu {
				display: flex;
				flex-direction: column;
				flex-shrink: 0;

				& span {
					font-size: 14rem;
				}
				& b {
					font-size: 32rem;
					margin-top: -13rem;
				}
			}
			& .ttl_in {
				font-size: 24rem;
				margin-left: 16rem;
			}
		}
		& .txt {
			padding: 16rem 24rem 24rem;

			& p {
				font-size: 14rem;
				line-height: 2;
			}
		}
	}

	/* まずは無料カウンセリング */
	#counseling {
		margin-top: 40rem;
		position: relative;

		& h2 {
			position: relative;
			z-index: 1;

			& .copy {
				font-size: 24rem;
				line-height: 2;
			}
			& img {
				width: 81rem;
				margin-top: -7rem;
				margin-inline: auto;

				& + em {
					padding-top: 4rem;
					margin-top: 34rem;
				}
			}
			& em {
				height: 80rem;
				font-size: 48rem;
				padding-inline: 20rem;
				display: inline-block;

				& + em {
					margin-top: 16rem;
				}
			}
			& .dot::before {
				width: 8rem;
				top: 4rem;
			}
		}
		& .txt_opa20 {
			top: -40rem;
		}
		& .photo_en {
			margin-top: -45rem;

			& .oleo {
				font-size: 80rem;
				inset: auto 0 -64rem;
			}
		}
		& > .copy {
			margin-top: 56rem;
			display: flex;
			justify-content: center;
			align-items: flex-start;

			& p {
				background-repeat: no-repeat;
				background-position: center;
				background-size: 100% auto;
				font-size: 12rem;
				line-height: 1.5;

				&:nth-of-type(1) {
					width: 114rem;
					height: 69rem;
					background-image: url('images/bg_fukidashi_y.svg');
					margin-top: 22rem;
					padding-top: 13rem;
					order: 1;
					rotate: -10deg;
				}
				&:nth-of-type(2) {
					width: 116rem;
					height: 72rem;
					background-image: url('images/bg_fukidashi_y2.svg');
					margin-top: 58rem;
					padding-top: 22rem;
					order: 3;
					rotate: 5deg;
				}
			}
			& .img {
				width: 154rem;
				margin-inline: -7rem -14rem;
				order: 2;
				position: relative;
				z-index: 1;

				& img {
					animation: kyoro-kyoro .6s infinite;
				}
			}
		}
		& .list {
			border-radius: 30rem 5rem;
			margin: 34rem 32rem 0;
			padding: 6rem 24rem;

			& li {
				font-size: 14rem;
				line-height: 2;
				background: url('images/icon_check.svg') no-repeat left center / 24rem auto;
				padding: 14rem 0 14rem 32rem;

				& span {
					line-height: 21rem;
					padding-inline: 4rem;
					display: inline-block;
				}
				&:nth-child(-n+2) span {
					margin-right: 4rem;
				}
				&:nth-last-child(-n+2) span {
					margin-left: 2rem;
				}
				& + li {
					border-top: 1px var(--gray) dotted;
				}
			}
		}
		& .txt {
			line-height: 2;
			margin-top: 24rem;

			& span {
				font-size: 20rem;
				padding-inline: 16rem;
				display: inline-block;
				position: relative;

				&::before,
				&::after {
					content: '';
					width: 11rem;
					height: 1px;
					background-color: var(--white);
					border-radius: 100vmax;
					margin-block: auto;
					position: absolute;
					inset: 0 auto;
				}
				&::before {
					left: 0;
				}
				&::after {
					right: 0;
				}
			}
			& em {
				font-size: 32rem;
				margin-top: -8rem;
				display: block;
			}
		}
		& .cv_btn {
			margin-top: 24rem;
		}
	}
	@keyframes kyoro-kyoro {
		0%, 49.9%, 100% {
			scale: 1 1;
		}
		50%, 99.9% {
			scale: -1 1;
		}
	}

	/* よくある質問 */
	#qa {
		margin-top: 78rem;

		& .photo_en {
			border-top: 2rem var(--black) solid;

			& .oleo {
				top: -40rem;
				left: 16rem;
			}
		}
	}
	.qa_list {
		margin-top: 24rem;
		display: grid;
		gap: 24rem;

		& .wrap {
			line-height: 2;
			padding-inline: 24rem;

			& .in {
				padding-left: 36rem;
				position: relative;

				&::before {
					width: 28rem;
					height: 28rem;
					color: var(--white);
					font-size: 16rem;
					font-weight: 700;
					line-height: 26rem;
					text-align: center;
					border-radius: 100vmax;
					position: absolute;
					inset: 0;
				}
			}
			& dt .in::before {
				content: 'Q';
				background-color: var(--black);
				margin-block: auto;
			}
			& dd .in::before {
				content: 'A';
				background-color: var(--pink);
			}
		}
		& dt {
			padding-block: 20rem;

			& span {
				font-size: 14rem;
				padding-right: 24rem;
				display: block;
			}
		}
		& dd {
			border-top: 1px var(--gray) dotted;
			padding-block: 16rem 20rem;
		}
	}

	/* クリニックリスト */
	.area_name {
		font-size: 24rem;
		line-height: 2;
	}
	.clinic_list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 16rem;

		& li > a {
			padding: 14rem 0 14rem 16rem;
			display: block;
			position: relative;

			&::after {
				content: '';
				margin-block: auto;
				position: absolute;
				inset: 0 auto;
			}
		}
		#clinic & li > a::after {
			width: 29rem;
			height: 29rem;
			background: url('images/icon_i.svg') no-repeat center / 100% auto;
			right: 8rem;
		}
		#form & li > a::after {
			width: 6rem;
			height: 6rem;
			border-top: 1px var(--pink) solid;
			border-right: 1px var(--pink) solid;
			right: 16rem;
			rotate: 45deg;
		}
	}

	/* クリニック */
	#clinic {
		margin-top: 48rem;

		& .area_name {
			margin-top: 40rem;
		}
		& .clinic_list {
			margin-top: 12rem;
		}

		&:has(.fc_map) th img {
			filter: brightness(0) invert(1);
		}
		& .photo_en {
			margin-top: 56rem;

			& .oleo {
				bottom: -28rem;
				right: 18rem;
			}
		}
	}
	/* モーダル */
	.md-overlay {
		background-color: var(--black);
		display: none;
		position: fixed;
		inset: 0;
		opacity: .2;
		z-index: 9999;
	}
	.md-contents {
		width: 386rem;
		height: 680rem;
		max-height: 680px;
		margin: auto;
		display: none;
		position: fixed;
		inset: 0;
		overflow: hidden;
		z-index: 10000;
	}
	.modal_ttl {
		height: 68rem;
		font-size: 24rem;
		line-height: 68rem;
		border-radius: 10rem 10rem 0 0;
	}
	.modal_close {
		border-top: 2rem var(--gray) dotted;
		border-radius: 0 0 10rem 10rem;

		& a {
			height: 62rem;
			display: grid;
			place-content: center;
			cursor: pointer;
		}
		& span {
			font-size: 18rem;
			padding-left: 32rem;
			position: relative;

			&::before,
			&::after {
				content: '';
				width: 20rem;
				height: 1px;
				background-color: var(--black);
				margin-block: auto;
				position: absolute;
				inset: 0;
			}
			&::before {
				rotate: 45deg;
			}
			&::after {
				rotate: -45deg;
			}
		}
	}
	.modal_scroll {
		height: calc(100% - (68rem + 62rem));
		background: var(--white);
		padding: 24rem 24rem 32rem;
		overflow-y: scroll;
		overscroll-behavior: none;
	}
	.modal_info {
		margin-top: 24rem;

		& tr {
			display: flex;
			gap: 14rem;

			& + tr {
				margin-top: 14rem;
			}
		}
		& th {
			width: 27rem;
			flex-shrink: 0;
		}
		& td {
			font-size: 12rem;
			line-height: 1.8;
			flex: 1;
		}
		& + .btn {
			margin-top: 24rem;
		}
	}
	#clinic .btn {
		height: 64rem;

		&:has(.cal) span {
			font-size: 18rem;

			& .dot::before {
				width: 4rem;
			}
		}
		&:has(.tel) span {
			font-size: 24rem;
		}
		& + .btn {
			margin-top: 16rem;
		}
	}
	.fc_map {
		aspect-ratio: 16 / 9;
		margin-top: 24rem;
		overflow: hidden;

		& iframe {
			width: 100%;
			height: 100%;
		}
	}
	.modal_doctor {
		margin-top: 40rem;

		& .modal_photo {
			position: relative;

			& figcaption {
				line-height: 2;
				margin-block: auto;
				display: flex;
				flex-direction: column;
				justify-content: center;
				position: absolute;
				inset: 0 auto;
				right: 24rem;
			}
			& .name_ja {
				font-size: 16rem;
			}
			& .name_en {
				font-size: 12rem;
				margin-top: -5rem;
			}
		}
		& .doctor_career {
			margin-top: 16rem;

			& dt {
				font-size: 14rem;
				line-height: 2;

				& + dd {
					margin-top: 4rem;
				}
			}
			& dd {
				font-size: 12rem;
				line-height: 1.8;
			}
		}
	}

	/* フォーム */
	#form {
		margin-top: 200rem;
		padding-top: 110rem;

		& .area_name {
			position: relative;

			&::before {
				content: '';
				height: 1px;
				background-color: var(--white);
				margin-block: auto;
				position: absolute;
				inset: 0;
			}
			& span {
				background-color: var(--azuki);
				padding-inline: 6rem;
				position: relative;
			}
			& + .clinic_list {
				margin-top: 8rem;
			}
		}
		& .clinic_list {
			padding-bottom: 48rem;
		}
		&:has(iframe) {
			padding-bottom: 48rem;
		}
	}
	.form_ttl {
		position: absolute;
		inset: -52rem 0 auto;

		& .square {
			width: 73rem;
			font-size: 32rem;
			line-height: 73rem;
			display: inline-block;

			& + .square {
				margin-left: -20rem;
			}
		}
		& .ttl {
			font-size: 40rem;
			margin-top: 4rem;
			position: relative;
			z-index: 1;
		}
		& .oleo {
			font-size: 96rem;
			line-height: 2;
			position: absolute;
			inset: -13rem 0 auto;
		}
	}
	.form_copy {
		font-size: 18rem;
		line-height: 2;
		padding-top: 16rem;
		position: relative;

		&::before {
			content: '';
			width: 24rem;
			height: 1px;
			background-color: var(--white);
			margin-inline: auto;
			position: absolute;
			inset: 0;
		}
	}
	.form_notice {
		margin-top: 24rem;
		padding: 24rem;

		& p {
			font-size: 12rem;
			line-height: 2;
		}
		& .form_link {
			border-bottom: 2rem var(--red) solid;
			margin-top: 8rem;
			padding-left: 2rem;
			display: inline-block;

			& span {
				font-size: 18rem;
				line-height: 2;
				padding-right: 14rem;
				display: block;
				position: relative;

				&::before,
				&::after {
					content: '';
					margin-block: auto;
					position: absolute;
					inset: 0 auto;
				}
				&::before {
					width: 10rem;
					height: 10rem;
					background-color: var(--red);
					border-radius: 100vmax;
					right: 0;
				}
				&::after {
					width: 4rem;
					height: 4rem;
					border-top: var(--border-white-1);
					border-right: var(--border-white-1);
					right: 4rem;
					rotate: 45deg;
				}
			}
		}
		& + .area_name,
		& + .clinic_list {
			margin-top: 32rem;
		}
	}
	.ac_wrap {
		margin-top: 40rem;

		& + .notice {
			margin-top: 32rem;

			& li {
				font-size: 12rem;
				display: flex;
				gap: 4rem;

				&::before {
					content: '※';
				}
			}
		}
	}