@charset "utf-8";

/* 料金表 */
.price_category {
	padding-inline: 32rem;

	h2 + & {
		margin-top: 16rem;
	}
	& h3.ttl {
		border-bottom: var(--border-green-2);
		padding: 24rem 24rem 24rem 48rem;

		&::before,
		&::after {
			background-color: var(--green-4);
			right: 0;
		}
		& > span {
			font-size: 18rem;
			line-height: 1.5;

			& span {
				font-size: 12rem;
				display: block;
			}
		}
		& img {
			width: auto;
			max-width: 40rem;
			max-height: 40rem;
			margin-block: auto;
			position: absolute;
			inset: 0;
		}
	}
	& .formen_notice {
		font-size: 12rem;
		line-height: 1.8;
		margin-top: 16rem;
		display: flex;

		&::before {
			content: '※';
			margin-right: 4rem;
		}
	}
	& .hair_copy {
		font-size: 14rem;
		font-weight: 700;
		line-height: 36rem;
		margin-top: 24rem;

		& + .price_in {
			margin-top: 24rem;
		}
	}
}
.price_in {
	& ul.notice {
		margin-top: 32rem;

		&.fc_ora {
			font-weight: 700;
			margin-top: 16rem;
		}
	}
	& figure {
		height: 386rem;
		border: var(--border-green-4);
		display: grid;
		place-content: center;

		& img {
			max-width: 326rem;
			max-height: 260rem;
		}
	}
	&:first-of-type {
		margin-top: 32rem;
	}
	&:not(:last-of-type) {
		padding-bottom: 56rem;
	}
}
.price_category:not(:last-of-type) .price_in:last-of-type {
	padding-bottom: 56rem;
}
#fullbody-hair-removal .price_in + .price_in,
#lucia-for-men .price_in + .price_in {
	border-top: var(--border-green-1);
	padding-top: 56rem;
}
.part_list {
	margin-top: 24rem;

	& + .notice {
		line-height: 1.5;
		margin-top: 6rem;

		&::before {
			content: '※';
		}

		& + * {
			margin-top: 24rem;
		}
	}
}
.plan_name {
	font-size: 14rem;
	font-weight: 700;
	line-height: 36rem;
}
.price_table {
	width: 100%;

	.plan_name + & {
		margin-top: 24rem;
	}
	.part_list + &,
	figure + & {
		margin-top: 32rem;
	}
	table + & {
		margin-top: 56rem;
	}
	& caption {
		font-size: 16rem;
		font-weight: 700;
		line-height: 1.5;

		& span {
			font-size: 12rem;
			font-weight: 400;
			line-height: 18rem;
			border: var(--border-green-4);
			margin-left: 4rem;
			padding-inline: 3rem;
		}
	}
	& tr {
		border-bottom: var(--border-green-2);
		display: flex;
		justify-content: space-between;
	}
	& th,
	& td {
		font-size: 14rem;
		line-height: 1.5;
		padding-block: 16rem;
	}
	& th {
		flex: 1;

		& span {
			font-size: 12rem;
			line-height: 1.5;
			display: block;
		}
	}
	& td {
		width: 106rem;
		flex-shrink: 0;
		display: flex;
		justify-content: flex-end;
		align-items: center;

		& span {
			font-size: 12rem;
			line-height: 18rem;
			margin-right: 6rem;
			padding-inline: 4rem;
		}
	}
}
/* アイコン色変え */
.price_icon {
	filter: invert(58%) sepia(13%) saturate(378%) hue-rotate(44deg) brightness(93%) contrast(86%);
}

/* 3つのこだわり */
.commit_wrap {
	padding-top: 314rem;
	position: relative;

	& .pain_list {
		display: flex;
		justify-content: center;
		gap: 16rem;

		& li {
			height: 100rem;
			background-repeat: no-repeat;
			background-position: center;
			font-size: 14rem;
			line-height: 1.5;

			&:nth-child(1) {
				background-size: 68rem auto;
			}
			&:nth-child(2) {
				background-size: 60rem auto;
			}
			&:nth-child(3) {
				background-size: 30rem auto;
			}
		}
	}
}
.commit_ttl {
	width: 386rem;
	font-weight: 700;
	margin-inline: auto;
	padding-block: 64rem;
	position: absolute;
	inset: -56rem 0 auto;

	& h2 {
		font-size: 40rem;
		line-height: 1;

		& em {
			font-size: 140%;
		}
	}
	& p {
		font-size: 18rem;
		line-height: 2;
		margin-top: 24rem;
	}
}
.page_commit {
	padding-inline: 32rem;
	padding-bottom: 56rem;

	& .commit_list {
		display: grid;
		gap: 112rem;
	}
	& .ttl {
		position: relative;

		&::after {
			content: '';
			background-color: var(--green-4);
			opacity: .8;
			position: absolute;
			inset: 0;
		}
		& .num {
			font-size: 80rem;
			line-height: 1.5;
			position: absolute;
			inset: -66rem 0 auto;
			z-index: 2;
		}
		& .ttl_ja {
			display: grid;
			place-content: center;
			position: absolute;
			inset: 0;
			z-index: 1;

			& span {
				font-size: 18rem;
				line-height: 1.5;
			}
			& em {
				font-size: 32rem;
				font-weight: 700;
				line-height: 1.2;
				margin-top: 8rem;
			}
		}
		& .ttl_en {
			font-size: 64rem;
			line-height: 1.5;
			opacity: .2;
			position: absolute;
			inset: auto 0 -40rem;
			z-index: 1;
		}
		& .bg_ora {
			width: 80rem;
			font-size: 16rem;
			font-weight: 700;
			line-height: 1.2;
			padding-top: 4rem;
			position: absolute;
			top: -28rem;
			right: -14rem;
			z-index: 1;
		}
	}
	& .copy {
		font-size: 16rem;
		font-weight: 700;
		line-height: 2;
		margin-top: 48rem;
	}
	& .txt {
		font-size: 12rem;
		line-height: 2;
		margin-top: 32rem;

		& p + p {
			margin-top: 1.5em;
		}
	}
	& .laser_cont {
		margin-top: 56rem;
		padding: 32rem 24rem;
		position: relative;

		& img {
			width: 111rem;
			position: absolute;
			top: -31rem;
			right: -5rem;
		}
		& .laser_ttl {
			font-weight: 700;
			position: relative;

			& .slash {
				font-size: 16rem;
				line-height: 2;
				margin-left: 5rem;
				padding-inline: 12rem;

				&::before,
				&::after {
					width: 1px;
					height: 18rem;
					background-color: var(--white);
				}
			}
			& em {
				font-size: 32rem;
				line-height: 45rem;
				margin-top: 2rem;
				padding-inline: 8rem;
				display: inline-block;
			}
		}
		& .laser_list {
			& dt {
				font-size: 16rem;
				font-weight: 700;
				line-height: 2;
				border-bottom: var(--border-green-2);
				margin-top: 32rem;
				padding-bottom: 4rem;
			}
			& dd {
				font-size: 12rem;
				line-height: 2;
				margin-top: 16rem;
			}
		}
	}
	& .pain_list {
		margin-top: 40rem;
	}
}

/* クリニック一覧 */
.clinic_archive {
	padding-inline: 32rem;

	& .area_name {
		font-size: 18rem;
		font-weight: 700;
		line-height: 68rem;
		padding-left: 24rem;
	}
	& .list {
		& + .area_name {
			margin-top: 80rem;
		}
		& li + li {
			border-top: var(--border-green-2);
			margin-top: 40rem;
			padding-top: 32rem;
		}
	}
	& .clinic_name {
		font-size: 14rem;
		font-weight: 700;
		line-height: 1.8;
	}
	& .clinic_info {
		margin-top: 24rem;
		display: flex;
		gap: 16rem;
	}
	& .clinic_img {
		width: 128rem;
		flex-shrink: 0;
	}
	& .in {
		line-height: 1.8;
		flex: 1;
	}
	& .access {
		font-size: 12rem;
	}
	& .gmap {
		font-size: 10rem;
		margin-top: 4rem;

		& a {
			border-bottom: var(--border-green-2);
			display: inline-block;

			& span {
				background: url(/images/common/ping.svg) no-repeat left center / 10rem auto;
				padding-left: 12rem;
				display: inline-block;
			}
		}
	}
	& .tel {
		font-size: 16rem;
		margin-top: 12rem;

		& a {
			background: url(/images/common/tel_ora.svg) no-repeat left center / 13rem auto;
			padding-left: 22rem;
			display: inline-block;
		}
	}
	& .sns {
		margin-top: 16rem;

		& img {
			width: 20rem;
		}
	}
	& .btn_wrap {
		margin-top: 40rem;
	}
	& + .contact {
		margin-top: 144rem;
	}
}

/* 0円保証とサポート */
.gs_stick {
	& .sticky_in {
		& > section {
			position: relative;
		}
		&::before {
			content: '';
			height: 106rem;
			background: linear-gradient(0deg, var(--green-4), transparent);
			position: absolute;
			inset: auto 0 -2rem;
		}
	}
	& .loop_wrap {
		position: absolute;
		inset: -46rem 0 auto;
		z-index: 3;

		& img {
			width: 484rem;
		}
	}
	& .icon_list li {
		position: relative;

		& > span {
			font-weight: 700;
			line-height: 1.5;

			& span {
				font-size: 10rem;
				font-weight: 400;
				position: absolute;
			}
		}
	}
	& .last_txt {
		font-size: 16rem;
		font-weight: 700;
		line-height: 2;
		margin-top: 24rem;
	}
}
.guarantee .notice,
.support .notice {
	counter-reset: ga-notice;
	font-size: 10rem;
	margin-top: 16rem;

	& li::before {
		content: '※'counter(ga-notice);
		counter-increment: ga-notice;
		margin-right: .5em;
	}
}

/* 0円保証 */
.guarantee {
	margin-top: 64rem;
	padding-inline: 32rem;

	& .gua_ttl {
		font-weight: 700;

		& .bg_bla {
			font-size: 32rem;
			line-height: 48rem;
			padding-inline: 10rem;
			display: inline-block;

			& + span {
				font-size: 80rem;
				line-height: 1.5;
				margin-top: -23rem;
				display: block;

				& em {
					font-size: 120%;
					vertical-align: -4rem;
				}
			}
		}
		& p {
			font-size: 18rem;
			line-height: 1.5;
		}
	}
	& .gua_list {
		margin-top: 32rem;
		grid-template-columns: repeat(2, 1fr);
		gap: 16rem;

		& li {
			height: 80rem;
			padding-left: 64rem;
			display: flex;
			align-items: center;

			&:nth-child(1) {
				background-position: left 15rem center;
				background-size: 35rem auto;
			}
			&:nth-child(2) {
				background-position: left 22rem center;
				background-size: 33rem auto;
			}
			&:nth-child(3) {
				background-position: left 15rem center;
				background-size: 35rem auto;
			}
			&:nth-child(4) {
				background-position: left 26rem center;
				background-size: 26rem auto;
			}
			&:nth-child(5) {
				background-position: left 20rem center;
				background-size: 26rem auto;
			}
			&:nth-child(6) {
				background-position: left 22rem center;
				background-size: 33rem auto;
			}
			&:nth-child(7) {
				background-position: left 22rem center;
				background-size: 20rem auto;
			}
			&:nth-child(8) {
				background-position: left 27rem center;
				background-size: 24rem auto;
			}

			& > span {
				font-size: 14rem;

				& span {
					top: 2rem;
					right: 4rem;
				}
			}
		}
	}
}

/* 安心サポート */
.support {
	margin-top: 56rem;
	padding-inline: 32rem;

	& .sup_ttl {
		font-weight: 700;
		line-height: 1.5;

		& .slash {
			font-size: 24rem;
			padding-inline: 12rem;

			&::before,
			&::after {
				width: 1px;
				height: 25rem;
				background-color: var(--white);
			}
		}
		& em {
			font-size: 56rem;
			margin-top: -8rem;
			display: block;
		}
	}
	& .sup_list {
		margin-top: 16rem;
		grid-template-columns: repeat(3, 1fr);
		gap: 8rem;

		& li {
			height: 108rem;
			padding-top: 64rem;

			&:nth-child(1) {
				background-position: center top 24rem;
				background-size: 28rem auto;
			}
			&:nth-child(2) {
				background-position: center top 25rem;
				background-size: 36rem auto;
			}
			&:nth-child(3) {
				background-position: center top 21rem;
				background-size: 49rem auto;
			}
			&:nth-child(4) {
				background-position: center top 14rem;
				background-size: 32rem auto;
			}
			&:nth-child(5) {
				background-position: center top 15rem;
				background-size: 36rem auto;
			}
			&:nth-child(6) {
				background-position: center top 18rem;
				background-size: 31rem auto;
			}
			& > span {
				font-size: 12rem;
				display: block;

				& span {
					top: 0;
					right: 3rem;
				}
			}
		}
	}
}

/* 割引リスト */
.discount {
	& ul {
		padding-inline: 32rem;
	}
	& .notice {
		font-size: 10rem;
		margin-top: 24rem;
	}
	& .btn_wrap {
		margin-top: 32rem;
		padding-inline: 56rem;
	}
}
.discount_list {
	margin-top: 24rem;
	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;
		}
	}
}

/* 施術までの流れスライダー */
.flow {
	margin-top: 72rem;
	padding-left: 32rem;

	& .cont_ttl {
		padding-top: 64rem;
	}
	& .btn_wrap {
		padding-bottom: 40rem;
	}
}
.flow_list {
	padding-block: 48rem 64rem !important;

	& .swiper-slide {
		width: 386rem;
		height: auto;
		padding-inline: 24rem;
	}
	& .flow_in {
		height: 100%;
		position: relative;

		& .num {
			font-size: 56rem;
			line-height: 1.5;
			position: absolute;
			top: -44rem;
			left: -20rem;
		}
		& .ttl {
			font-size: 18rem;
			font-weight: 700;
			line-height: 1.5;
			margin-top: 24rem;
			padding-inline: 24rem;
		}
		& .txt {
			font-size: 14rem;
			line-height: 2;
			margin-top: 8rem;
			padding-inline: 24rem;
			padding-bottom: 24rem;
		}
	}
	& .swiper-pagination {
		bottom: 40rem !important;
	}
}

/* 症例 */
.case .ttl {
	line-height: 1.5;
	padding-top: 72rem;
	position: relative;

	& .en {
		font-size: 88rem;
		opacity: .2;
		position: absolute;
		inset: 0;
	}
	& h2 {
		font-weight: 700;
		position: relative;

		& .txt {
			display: block;

			&:nth-of-type(1) {
				font-size: 30rem;
			}
			&:nth-of-type(2) {
				font-size: 48rem;
				line-height: 1.4;
				margin-top: 4rem;

				& em {
					font-size: 133%;
				}
				& .dot::before {
					width: 6rem;
					background-color: var(--brown-2);
					top: 8rem;
				}
			}
		}
	}
}
.case_wrap {
	margin-top: 32rem;

	& .tab_wrap:has(input[type="radio"]:checked) {
		color: var(--white);
		border-bottom: 1px var(--white) solid;
	}
	& .tab_wrap:not(:has(input[type="radio"]:checked)) {
		color: var(--green-1);
		border-bottom: 1px var(--green-1) solid;
	}
	& .tab_wrap:nth-of-type(1) {
		order: 2;
	}
	& .tab_wrap:nth-of-type(2) {
		order: 1;
	}
	& .tab_wrap:nth-of-type(3) {
		order: 3;
	}
	&:has(.cese_tab) .tab_content {
		margin-top: 32rem;
	}
	& .case_img {
		display: grid;
		grid-template-columns: repeat(2, 1fr);

		& figure {
			position: relative;
		}
		& .after::after {
			content: '';
			border: 3rem var(--orange) solid;
			position: absolute;
			inset: 0;
		}
		& img {
			height: 224rem;
			object-fit: cover;
		}
		& .en {
			font-size: 12rem;
			line-height: 24rem;
			display: block;
		}
		& p {
			height: 56rem;
			font-size: 14rem;
			font-weight: 700;
			line-height: 1.5;
			display: grid;
			place-content: center;

			& span {
				font-size: 72%;
			}
		}
	}
}
.case_notice {
	font-size: 10rem;
	line-height: 1.8;
	margin-top: 16rem;
}

/* おすすめメニュー */
.rank_in {
	position: relative;

	& .num {
		font-size: 120rem;
		line-height: 1.5;
		position: absolute;
		top: -104rem;
	}
	&:nth-of-type(odd) .num {
		left: 10rem;
	}
	&:nth-of-type(even) .num {
		right: 16rem;
	}
	& .ttl {
		font-size: 20rem;
		font-weight: 700;
		line-height: 1.5;
		padding-block: 12rem;
	}
	& .in {
		padding-inline: 32rem;
	}
	& .rank_tab {
		margin-top: 18rem;

		& .tab_wrap {
			font-size: 18rem;

			&:has(input[type="radio"]:checked) {
				color: var(--green-4);
				border-bottom: 1px var(--green-4) solid;
			}
			&:not(:has(input[type="radio"]:checked)) {
				color: var(--green-2);
				border-bottom: 1px var(--green-2) solid;
			}
			& .tab_in span {
				font-size: 12rem;
			}
		}
	}
	& .tab_price {
		height: 108rem;

		& em {
			font-size: 72rem;
		}
		& span {
			font-size: 24rem;
			font-weight: 700;
		}
	}
}
.recommend {
	padding-inline: 32rem;

	& .reco_wrap {
		margin-top: 32rem;
	}
	& .rank_in {
		border: 2rem var(--brown-2) solid;
	}
	& .btn_wrap {
		margin-top: 40rem;
	}
}

/* よくある質問 */
.qa {
	padding-inline: 32rem;

	& .btn_wrap {
		margin-top: 40rem;
	}
}
.qa_list {
	margin-top: 40rem;

	& .en {
		font-size: 14rem;
		line-height: 1.5;
		position: absolute;
	}
	& dt {
		font-size: 14rem;
		font-weight: 700;
		line-height: 1.5;
		border-top: var(--border-green-1);
		padding: 24rem 48rem 24rem 24rem;

		&:last-of-type {
			border-bottom: var(--border-green-1);
		}
		&::before,
		&::after {
			background-color: var(--white);
			right: 0;
		}
		& .en {
			top: auto;
			left: 0;
		}
	}
	& dd {
		padding-bottom: 24rem;

		& .txt {
			font-size: 14rem;
			line-height: 1.8;
			padding: 16rem 16rem 16rem 40rem;
			position: relative;

			& p + p,
			& ul,
			& ol {
				margin-top: 1em;
			}
			& small {
				font-size: 12rem;
			}
			& b {
				font-weight: 700;
			}
			& a {
				text-decoration: underline;
			}
		}
		& .en {
			top: 16rem;
			left: 16rem;
		}
	}
}

/* お気軽にお問い合わせください */
.contact {
	position: relative;

	& .loop_wrap {
		position: absolute;
		inset: -56rem 0 auto;

		& img {
			width: 486rem;
		}
	}
	& .contact_wrap {
		background: url(/images/common/contact_bg.jpg) no-repeat center top / 100% auto;
		padding: 72rem 56rem 48rem;
	}
	& .ttl {
		font-weight: 700;
		line-height: 1.5;

		& .border_side {
			font-size: 14rem;
			padding-inline: 24rem;

			&::before,
			&::after {
				width: 16rem;
				height: 1px;
				background-color: var(--white);
			}
		}
		& em {
			font-size: 32rem;
			margin-top: 10rem;
			display: block;
		}
	}
	& .txt {
		font-size: 16rem;
		line-height: 1.8;
		margin-top: 22rem;
	}
	& .btns {
		margin-top: 22rem;
	}
}

/* お知らせ */
.news {
	padding-inline: 32rem;
}
.news_tab {
	& .tab_wrap:has(input[type="radio"]:checked) {
		color: var(--green-4);
		border-bottom: 1px var(--green-4) solid;
	}
	& .tab_wrap:not(:has(input[type="radio"]:checked)) {
		color: var(--green-2);
		border-bottom: 1px var(--green-2) solid;
	}
}
.news_list {
	& li + li {
		border-top: 1px var(--green-2) solid;
	}
	& a {
		line-height: 1.5;
		padding: 32rem 48rem 32rem 0;
		display: block;
		position: relative;
	}
	& .news_category {
		font-size: 10rem;
	}
	& .news_ttl {
		font-size: 14rem;
		font-weight: 700;
		margin-top: 4rem;
	}
	& .news_date {
		font-size: 10rem;
		margin-top: 12rem;
	}
}
.news_category {
	padding-left: 10rem;
	position: relative;

	&::before {
		content: '';
		width: 5rem;
		height: 5rem;
		background-color: var(--green-1);
		border-radius: 100vmax;
		margin-block: auto;
		position: absolute;
		inset: 0;
	}
}
/* 一覧ページ */
.archive_news {
	margin-top: 48rem;
	padding-bottom: 72rem;

	& .news_tab {
		margin-top: 48rem;
	}
	& .pagination {
		margin-top: 24rem;
	}
}
/* 記事ページ */
.page_news {
	padding-block: 48rem 88rem;

	& .news_category {
		font-size: 12rem;
	}
	& .ttl {
		font-size: 20rem;
		font-weight: 700;
		line-height: 1.5;
		margin-top: 4rem;
	}
	& .news_date {
		font-size: 12rem;
		line-height: 1.5;
		margin-top: 8rem;
	}
	& .btn_wrap {
		margin-top: 64rem;
	}
}
.news_cont {
	border-top: var(--border-green-2);
	margin-top: 24rem;
	padding-top: 32rem;

	& .thumbnail + .article_content {
		margin-top: 32rem;
	}
}

/* ページネーション */
.pagination {
	display: flex;
	justify-content: center;
	gap: 8rem;

	& li {
		width: 40rem;

		& span,
		& a {
			height: 40rem;
			font-size: 16rem;
			display: grid;
			place-content: center;
		}
		& .current {
			background-color: var(--green-4);
			color: var(--white);
		}
		& .larger,
		& .last {
			background-color: var(--white);
			color: var(--green-4);
		}
		& .extend {
			color: var(--green-4);
			padding-bottom: 8rem;
		}
	}
}

/* 記事装飾（記事ページ・コラム共通） */
.article_content {
	& h2 {
		background-color: var(--green-4);
		color: var(--white);
		font-size: 16rem;
		font-weight: 700;
		line-height: 1.5;
		padding: 8rem 12rem;
	}
	& * + h2 {
		margin-top: 56rem;
	}
	& h3 {
		font-size: 14rem;
		font-weight: 700;
		line-height: 2;
		border-block: var(--border-green-2);
		padding-block: 4rem;
	}
	& * + h3 {
		margin-top: 48rem;
	}
	& *:not(p) + p {
		margin-top: 24rem;
	}
	& p {
		font-size: 14rem;
		line-height: 2;

		& + p {
			margin-top: 1.5em;
		}
		& a {
			color: var(--orange);
			font-weight: 700;
			text-decoration: underline;

			&[target="_blank"]::after {
				content: '';
				width: 24rem;
				height: 24rem;
				background: url(/images/common/blank_col.svg) no-repeat right center / 100% auto;
				vertical-align: -7rem;
				margin-left: 4rem;
				display: inline-block;
			}
		}
		&:has(cite) {
			display: flex;

			& span {
				flex-shrink: 0;
			}
		}
	}
	& li {
		font-size: 12rem;
		font-weight: 700;
		line-height: 2;
		padding-left: 14rem;
		position: relative;

		&::before {
			content: '';
			width: 8rem;
			height: 8rem;
			background-color: var(--orange);
			border-radius: 100vmax;
			position: absolute;
			top: 8rem;
			left: 0;
		}
	}
	& table {
		width: 100%;
		border: 1px var(--brown-1) solid;

		& th,
		& td {
			min-width: 168rem;
			color: var(--black);
			font-size: 12rem;
			vertical-align: middle;
		}
		& .midashi th {
			background-color: var(--brown-1);
			color: var(--white);
			font-weight: 700;
			line-height: 2;
			text-align: center;
			padding-block: 12rem;

			&:nth-child(n+2) {
				border-left: var(--border-white);
			}
		}
		& tr:not(.midashi) th {
			background-color: var(--beige);
			line-height: 1.5;
			padding: 18rem 16rem;
		}
		& td {
			line-height: 2;
			padding: 24rem 16rem;

			&:nth-of-type(n+2) {
				border-left: var(--border-green-2);
			}
		}
		& tr:nth-child(n+3) th,
		& tr:nth-child(n+3) td {
			border-top: var(--border-green-2);
		}
		& tr:not(td) th {
			text-align: center;

			&:nth-child(2) {
				border-left: var(--border-green-2);
			}
		}
	}
	& table:not(.midashi) tr:nth-child(2) th,
	& table:not(.midashi) tr:nth-child(2) td {
		border-top: var(--border-green-2);
	}
	& * + table {
		margin-top: 16rem;
	}
	& .scroll_wrap {
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		margin-top: 16rem;

		& .scroll_in {
			min-width: 100%;

			& th,
			& td {
				white-space: nowrap;
			}
		}
	}
	& * + ul,
	& * + img {
		margin-top: 24rem;
	}
	& .txt_box {
		background-color: var(--green-3);
		padding: 24rem;
	}
	& .txt_bold {
		font-weight: 700;
	}
	& .txt_emphasis {
		color: var(--orange);
	}
	& blockquote {
		background-color: var(--green-3);
		padding: 32rem 24rem 24rem;
		position: relative;
		overflow: hidden;

		&::before,
		&::after {
			content: '“';
			color: var(--white);
			font-size: 160rem;
			font-family: "Lexend", sans-serif;
			font-optical-sizing: auto;
			font-weight: 400;
			font-style: normal;
			line-height: 2;
			position: absolute;
		}
		&::before {
			top: -94rem;
			left: 0;
		}
		&::after {
			bottom: -96rem;
			right: 0;
			scale: -1 -1;
		}
		& * {
			position: relative;
			z-index: 1;
		}
		& p {
			font-size: 12rem;
			font-weight: 700;
		}
	}
	& * + blockquote {
		margin-top: 32rem;
	}
}

/* SNS埋め込み */
.sns_embed {
	& .txt_loop {
		padding-block: 24rem;

		& img {
			width: 414rem;
		}
	}
	& .sns_wrap {
		margin-top: 24rem;
		padding-inline: 32rem;
	}
	& .sns_account {
		margin-top: 32rem;

		& span {
			background: url(/images/common/instagram.svg) no-repeat left center / 32rem auto;
			font-size: 18rem;
			line-height: 32rem;
			padding-left: 40rem;
			display: inline-block;
		}
	}
}

/* プラポリ */
.privacy_wrap {
	padding: 56rem 32rem 140rem;
}
.privacy_cont {
	font-size: 14rem;
	line-height: 2;

	& .read_txt p + p {
		margin-top: 28rem;
	}
}
.privacy_ttl {
	font-size: 20rem;
	font-weight: 700;
	line-height: 1.5;
	border-bottom: var(--border-green-2);
	margin-top: 64rem;
	padding-bottom: 16rem;
	display: flex;

	& .en {
		font-size: 24rem;
		margin-top: -3rem;
		margin-right: 8rem;
		flex-shrink: 0;
	}
}
.privacy_txt {
	margin-top: 32rem;

	& + * {
		margin-top: 40rem;
	}
	& p + p {
		margin-top: 28rem;
	}
}
.privacy_list_s li {
	display: flex;

	&::before {
		content: '※';
		margin-right: 8rem;
	}
}
.privacy_list_s_other {
	counter-reset: privacy_list_s_other;

	& li {
		display: flex;

		&::before {
			content: '（'counter(privacy_list_s_other)'）';
			counter-increment: privacy_list_s_other;
			margin-right: 4rem;
		}
	}
}
.privacy_info {
	line-height: 1.8;
	padding: 24rem;

	& .privacy_name,
	& .privacy_tel a {
		font-size: 18rem;
		font-weight: 700;
	}
	& address {
		margin-top: 4rem;
	}
	& .privacy_add {
		font-size: 12rem;
	}
	& .privacy_tel a {
		padding-left: 18rem;
		display: block;
		position: relative;

		&::before {
			content: '';
			width: 16rem;
			height: 16rem;
			background: var(--green-4);
			mask: url(/images/common/tel.svg) no-repeat center / 100% auto;
			margin-block: auto;
			position: absolute;
			inset: 0;
			translate: 0 1rem;
		}
	}
}

/* 医療広告ガイドライン */
.cont_guideline {
	padding-inline: 32rem;

	&.cont1 {
		margin-top: 56rem;
	}
	&.cont2 {
		margin-top: 88rem;
		padding-block: 64rem 130rem;

		& .ttl {
			font-size: 32rem;
			font-weight: 700;
			line-height: 1.5;
		}
	}
	& p {
		font-size: 14rem;
		line-height: 2;

		& + p {
			margin-top: 1.5em;
		}
	}
}
.gl_list {
	margin-top: 40rem;
	display: grid;
	gap: 24rem;

	& li {
		font-size: 18rem;
		font-weight: 700;
		line-height: 1.5;
		padding: 24rem;
		display: flex;

		& .en {
			margin-right: 10rem;
			flex-shrink: 0;
		}
	}
	& + p {
		margin-top: 32rem;
	}
}
.gl_txt {
	margin-top: 32rem;
}
.gl_ttl {
	font-size: 24rem;
	font-weight: 700;
	line-height: 1.5;
	border-top: var(--border-white);
	margin-top: 40rem;
	padding-top: 48rem;
}
.guideline_list {
	margin-top: 72rem;
	display: grid;
	gap: 64rem;

	& .list_ttl {
		font-size: 20rem;
		font-weight: 700;
		line-height: 1.5;
		padding: 20rem 24rem;
		display: block;
	}
	& .bg_wht {
		margin-top: 24rem;
		padding: 24rem;

		& p,
		& li {
			font-size: 12rem;
			line-height: 1.8;
		}
	}
	& .list_low_1 {
		margin-top: 32rem;
		display: grid;
		gap: 48rem;
	}
	& .list_low_2 {
		margin-top: 8rem;
		display: grid;
		gap: 56rem;
	}
	& .low1_ttl {
		font-size: 16rem;
		font-weight: 700;
		line-height: 2;
		display: block;
	}
	& .row1_txt,
	& .low2_ttl {
		font-size: 14rem;
		line-height: 2;
	}
	& .row1_txt {
		margin-top: 24rem;
	}
	& .low2_ttl {
		display: block;

		.low1_ttl + & {
			margin-top: 8rem;
		}
	}
	& .list_low_3 {
		counter-reset: list_low_3;

		& li {
			display: flex;

			&::before {
				content: counter(list_low_3)'.';
				counter-increment: list_low_3;
				margin-right: 2rem;
			}
		}
	}
}

/* サイトマップ */
.sitemap {
	margin-top: 40rem;
	padding-inline: 32rem;

	& li {
		font-weight: 700;
	}
	& a[target="_blank"] {
		position: relative;

		&::after {
			content: '';
			width: 24rem;
			height: 24rem;
			background-color: var(--green-4);
			mask: url(/images/common/blank.svg) no-repeat right center / 100% auto;
			margin-block: auto;
			position: absolute;
			inset: 0 auto;
		}
	}
	& .menus a,
	& .sub_menu_list a {
		font-size: 12rem;
		line-height: 1.5;
		display: flex;
		align-items: center;
		position: relative;
	}
	& + .contact {
		margin-top: 120rem;
	}
}
.main_menu_list {
	& > li > a {
		color: var(--green-4);
		font-size: 16rem;
		line-height: 1.8;
		border-bottom: var(--border-green-2);
		padding-block: 16rem;
		display: block;
	}
	& .menus {
		display: grid;
		gap: 16rem;

		& a {
			height: 48rem;
			background-color: var(--green-2);
			padding-inline: 8rem 24rem;

			&::after {
				width: 9rem;
				height: 3rem;
				right: 8rem !important;
			}
		}
	}
	& > li > .menus {
		margin-top: 28rem;
		padding-bottom: 32rem;
		grid-template-columns: repeat(2, 1fr);
	}
	& .list_wrap {
		margin-top: 16rem;
		padding-bottom: 32rem;

		& .area_name {
			font-size: 14rem;
		}
		& .menus {
			margin-top: 8rem;
			display: flex;

			& li {
				width: 185rem;
				flex: 1;
			}
		}
	}
}
.sub_menu_list {
	margin-top: 56rem;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16rem;

	& li {
		border-bottom: var(--border-green-2);
		padding-bottom: 16rem;

		& a {
			height: 100%;
			padding-right: 28rem;

			&::after {
				width: 15rem;
				height: 4rem;
				right: 0 !important;
			}
		}
	}
}

/* ドクター経歴 */
.career_list {
	margin-top: 8rem;

	& li {
		font-size: 14rem;
		line-height: 2;
		padding-left: 16rem;
		position: relative;

		&::before {
			background-color: var(--white);
			top: 10rem;
		}
	}
}