@charset "utf-8";

/*++++++++++++++++++++++++++++
l_mv
++++++++++++++++++++++++++++*/
.l_mv {
	position: relative;

	&:before {
		content: '';
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 2;
		background: url(../images/top/mv_deco_sp.png) center / 100% no-repeat;
	}
}

.l_mv_slider_item {
	position: relative;
	z-index: 1;
}

.l_mv_img {
	width: 100%;
	height: 70rem;
	margin-left: auto;
	aspect-ratio: auto;
	z-index: 1;
}

.l_mv_slider02 {
	position: absolute;
	bottom: 30.4rem;
	left: 2rem;
	z-index: 10;
	width: calc(100% - 2rem);

	.swiper-slide {
		height: auto;
	}

	.l_mv_slider_item {
		display: flex;
		align-items: flex-end;
		height: 100%;
	}
}

.l_mv_catch {
	display: flex;
	flex-direction: column;
	gap: 1.8rem;

	.txt01 {
		font-family: var(--font-en);
		color: var(--yellow_01);
		font-size: 1.6rem;
		letter-spacing: 0.04em;
		line-height: 1.2;
		font-weight: 500;
		position: relative;
		padding-left: 1.1rem;

		&::before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			left: 0;
			width: 0.5rem;
			aspect-ratio: 1/1;
			border-radius: 50%;
			background: var(--yellow_01);
			z-index: 1;
		}
	}

	.txt02 {
		font-family: var(--font-min);
		color: var(--white);
		font-size: 2.2rem;
		letter-spacing: 0.08em;
		line-height: 1.7;
		font-weight: 400;
	}
}

.l_mv_points {
	position: absolute;
	width: 34.5rem;
	left: 1.5rem;
	bottom: 5.4rem;
	display: grid;
	gap: 0.5rem;
	z-index: 10;

	.l_mv_point {
		--arrow-url: url(../images/icon_arrow.svg);
		--arrow-color: var(--white);
		--arrow-size: 1rem;
		--circle-size: 2.2rem;
		--circle-height: 1.6rem;
		--circle-bg-color: var(--brown_02);
		--circle-border-color: var(--brown_02);
		border: 1px solid var(--beige_04);
		background: rgba(255, 255, 255, 0.9);
		border-radius: 0.4rem;
		text-decoration: none;
		display: flex;
		align-items: center;
		gap: 1.2rem;
		padding: 0.9rem 1rem;
		position: relative;

		&:before {
			content: '';
			display: block;
			position: absolute;
			bottom: 0.9rem;
			right: 0.9rem;
			width: var(--circle-size);
			height: var(--circle-height);
			-webkit-mask: var(--arrow-url) center / var(--arrow-size) no-repeat;
			mask: var(--arrow-url) center / var(--arrow-size) no-repeat;
			background: var(--arrow-color);
			z-index: 2;
		}

		&:after {
			content: '';
			display: block;
			position: absolute;
			right: 0.9rem;
			bottom: 0.9rem;
			width: var(--circle-size);
			height: var(--circle-height);
			z-index: 1;
			border: 1px solid var(--circle-border-color);
			border-radius: 10rem;
			background: var(--circle-bg-color);
		}
	}

	.l_mv_point_img {
		height: 5rem;
		width: 6.5rem;
	}

	.l_mv_point_body {
		flex: 1;
		display: flex;
		flex-direction: column;
	}

	.l_mv_point_num {
		display: flex;
		align-items: center;
		gap: 0.4rem;

		span {
			font-family: var(--font-en);
			color: var(--yellow_01);
			font-size: 1.3rem;
			letter-spacing: 0.04em;
			line-height: 1.2;
			font-weight: 500;
		}

		em {
			font-family: var(--font-num);
			color: var(--yellow_01);
			font-size: 1.4rem;
			letter-spacing: 0.08em;
			line-height: 1.2;
			font-weight: 400;
		}
	}

	.l_mv_point_ttl {
		color: var(--brown_03);
		font-size: 1.4rem;
		letter-spacing: 0.08em;
		line-height: 1.6;
		font-weight: 500;
	}
}

.l_mv .swiper-pagination {
	position: absolute;
	left: auto;
	top: auto;
	right: 2rem;
	bottom: 2rem;
	display: flex;
	gap: 1rem;
	margin-top: 0;
	margin-left: auto;
	width: fit-content;
	padding-right: 0;
	z-index: 11;

	.swiper-pagination-bullet {
		background: none;
		opacity: 1;
		width: 1.4rem;
		height: auto;
		aspect-ratio: 1/1;
		margin: 0;
		border: 1px solid transparent;
		position: relative;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
			width: 0.4rem;
			aspect-ratio: 1/1;
			z-index: 1;
			opacity: 1;
			border-radius: 50%;
			background: #fff;
		}
	}

	.swiper-pagination-bullet-active {
		opacity: 1;
		border-color: #fff;
	}
}

/*++++++++++++++++++++++++++++
ttl
++++++++++++++++++++++++++++*/
.t_ttl01 {
	display: flex;
	flex-direction: column;

	.txt01 {
		font-family: var(--font-en);
		color: var(--brown_02);
		font-size: 4.4rem;
		letter-spacing: 0.04em;
		line-height: 1.2;
		font-weight: 500;
	}

	.txt02 {
		font-size: 1.8rem;
		letter-spacing: 0.08em;
		line-height: 1.8;
		font-weight: 500;
	}

	&.white {
		.txt01 {
			color: #fff
		}

		.txt02 {
			color: #fff
		}
	}
}

.t_ttl02 {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;

	.txt01 {
		font-family: var(--font-en);
		color: var(--beige_03);
		font-size: 4rem;
		letter-spacing: 0.04em;
		line-height: 1.2;
		font-weight: 500;
	}

	.txt02 {
		font-size: 1.9rem;
		letter-spacing: 0.08em;
		line-height: 1.8;
		font-weight: 500;
		color: var(--brown_03);
		padding: 0 1.9rem;
		position: relative;
		color: #fff;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			left: 0;
			transform: translate(0, -50%);
			width: 0.6rem;
			height: 2rem;
			z-index: 1;
			border-left: var(--yellow_01) 1px solid;
			border-right: var(--yellow_01) 2px solid;
		}

		&:after {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			right: 0;
			transform: translate(0, -50%);
			width: 0.6rem;
			height: 2rem;
			z-index: 1;
			border-right: var(--yellow_01) 1px solid;
			border-left: var(--yellow_01) 2px solid;
		}
	}
}

.t_ttl03 {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;

	.txt01 {
		font-family: var(--font-en);
		color: var(--yellow_01);
		font-size: 1.4rem;
		letter-spacing: 0.04em;
		line-height: 1.2;
		font-weight: 500;
		padding-left: 1.1rem;
		position: relative;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			left: 0;
			transform: translate(0, -50%);
			width: 0.5rem;
			aspect-ratio: 1/1;
			z-index: 1;
			background: var(--yellow_01);
			border-radius: 50%;
		}
	}

	.txt02 {
		font-size: 2.6rem;
		letter-spacing: 0.08em;
		line-height: 1.8;
		font-weight: 500;
		color: var(--brown_03);
	}

	&.white {
		.txt01 {
			color: #fff;

			&:before {
				background: #fff;
			}
		}

		.txt02 {
			color: #fff;
		}
	}
}

/*++++++++++++++++++++++++++++
t_access
++++++++++++++++++++++++++++*/
.t_access {
	position: relative;
	overflow: hidden;
	padding: 6rem 0 5.1rem;
	background: url(../images/top/clinic_bg_leaf_sp.png) center top / 100% no-repeat;

	.inner {
		position: static;
	}

	.t_access_block {
		position: relative;
		isolation: isolate;
		margin-top: 3.5rem;
		padding: 3.5rem 0 4.9rem;
		z-index: 10;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 0;
			left: -2.5rem;
			width: calc(100% + 4rem);
			height: 100%;
			z-index: -1;
			background: var(--beige_02);
		}
	}

	.t_access_btns {
		display: grid;
		gap: 1rem;
		padding: 0 0.5rem;
		position: relative;
		border-left: 1px solid var(--brown_02);
		border-right: 1px solid var(--brown_02);
		grid-template-columns: repeat(2, 1fr);

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
			width: 1px;
			height: 3.9rem;
			z-index: 1;
			background: var(--brown_02);
		}
	}

	.t_access_btn {
		height: 3.9rem;
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--brown_02);
		font-size: 1.5rem;
		letter-spacing: 0.08em;
		line-height: 1.5;
		font-weight: 500;

		&.on {
			color: #fff;
			background: var(--brown_02);
		}
	}

	.t_access_imgs {
		display: grid;
		gap: 1rem;
		margin-top: 2rem;
	}

	.t_access_loop {
		overflow: hidden;
		width: auto;
		white-space: nowrap;
		display: flex;
		flex-direction: column;
		position: absolute;
		top: 0;
		bottom: auto;
		right: -6.8rem;
		font-family: var(--font-en);
		margin-top: 0;
		height: 100%;
		z-index: 5;

		ul {
			animation: flowing-y 700s linear infinite;
			transform: none;
			margin: 0;
			padding: 0;
			display: flex;
			flex-direction: column;
		}

		ul li {
			font-size: 9.6rem;
			display: inline-block;
			padding: 0 1rem;
			font-family: var(--font-en);
			font-weight: 500;
			-webkit-writing-mode: vertical-rl;
			-ms-writing-mode: tb-rl;
			writing-mode: vertical-rl;
			color: #fff;
			opacity: 1;
		}
	}
}

@keyframes flowing-y {
	0% {
		transform: translateY(-100%);
	}

	100% {
		transform: translateY(0%);
	}
}

.t_info {
	.t_info_item {
		padding: 5rem 2.5rem;
	}

	.t_info_ttl {
		display: flex;
		flex-direction: column;
		text-align: center;

		.txt01 {
			font-family: var(--font-en);
			color: var(--brown_02);
			font-size: 1.6rem;
			letter-spacing: 0.04em;
			line-height: 1.2;
			font-weight: 500;
		}

		.txt02 {
			color: var(--brown_05);
			font-size: 2.4rem;
			letter-spacing: 0.08em;
			line-height: 1.8;
			font-weight: 500;
			margin-top: 0rem;
		}
	}

	.t_info_btn {
		margin-top: 3rem;

		&:has(.m_btn01:nth-of-type(2)) {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 1rem;

			.m_btn01 {
				margin: 0;
				width: auto;
				min-height: 4.7rem;
				padding: 0.9rem 3.8rem 0.8rem 1rem;
			}
		}
	}

	.t_info_list {
		margin-top: 2.9rem;
	}

	.t_info_data {
		margin-top: 4rem;

		p {
			color: var(--white);
			line-height: 1.8;
			font-size: 1.4rem;
		}

		p+p {
			margin-top: 1em;
		}
	}

	.t_info_time {
		margin: 3rem -1.5rem 0
	}
}

.t_news {
	background: #fff;
}

.t_clinic {
	background: var(--brown_02);

	.t_info_ttl {

		.txt01,
		.txt02 {
			color: #fff;
		}
	}
}

/*++++++++++++++++++++++++++++
.t_insurance
++++++++++++++++++++++++++++*/
.t_insurance {
	.t_insurance_head {
		padding: 6.2rem 2rem 3rem;
		background: url(../images/top/insurance_bg_sp.jpg) center / cover no-repeat;
	}

	.t_insurance_body {
		padding: 6rem 0;
		position: relative;
		isolation: isolate;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 71rem;
			left: 0;
			width: 13rem;
			aspect-ratio: 260/800;
			z-index: -1;
			background: url(../images/top/insurance_deco_sp.png) center / cover no-repeat;
		}
	}
}

.t_gas {
	.t_gas_head {
		.oft {
			height: 25rem;
			position: relative;
			margin-right: -2.5rem;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				z-index: 10;
				border: 1px solid var(--brown_02);
				border-right: 0;
			}

			img {
				position: relative;
				z-index: 1;
			}
		}
	}

	.t_gas_body {
		margin-top: 5rem;
	}

	.t_gas_txt {
		margin-top: 2rem;
	}

	.t_gas_btn {
		margin-top: 2rem;
	}
}

.t_sd {
	margin: 6rem -1rem 0;
	background: var(--beige_02);
	position: relative;
	--border-gutter: 1rem;
	padding: var(--border-gutter);
	border: 1px solid var(--brown_02);

	&:before,
	&:after {
		content: '';
		display: block;
		position: absolute;
		top: var(--border-gutter);
		width: 0.6rem;
		aspect-ratio: 1/1;
		z-index: 1;
		background: var(--beige_04);
	}

	&:before {
		left: var(--border-gutter);
	}

	&:after {
		right: var(--border-gutter);
	}

	.t_sd_in {
		border: 1px solid var(--beige_04);
		padding: 2.8rem 1.8rem 2.9rem;

		&:before,
		&:after {
			content: '';
			display: block;
			position: absolute;
			bottom: var(--border-gutter);
			width: 0.6rem;
			aspect-ratio: 1/1;
			z-index: 1;
			background: var(--beige_04);
		}

		&:before {
			left: var(--border-gutter);
		}

		&:after {
			right: var(--border-gutter);
		}
	}

	.t_sd_btns {
		display: grid;
		gap: 1rem;
		padding: 0 0.5rem;
		position: relative;
		border-left: 1px solid var(--brown_02);
		border-right: 1px solid var(--brown_02);
		grid-template-columns: repeat(2, 1fr);

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
			width: 1px;
			height: 6.2rem;
			z-index: 1;
			background: var(--brown_02);
		}
	}

	.t_sd_btn {
		height: 6.2rem;
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--brown_02);
		font-size: 1.5rem;
		letter-spacing: 0.08em;
		line-height: 1.5;
		font-weight: 500;

		&.on {
			color: #fff;
			background: var(--brown_02);
		}
	}

	.t_sd_list {
		display: grid;
		gap: 0.5rem;
		margin-top: 2rem;
		padding-right: 1rem;

		a {
			--icon-url: url(../images/icon_arrow.svg);
			--icon-color: var(--beige_03);
			--icon-size: 1.4rem;
			text-decoration: none;
			position: relative;
			padding: 1rem 3.4rem 0.8rem 1rem;
			border-radius: 0.4rem;
			display: flex;
			align-items: center;
			color: var(--brown_03);
			border: 1px solid var(--beige_03);
			background: #fff;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 50%;
				right: 0.9rem;
				transform: translate(0, -50%);
				width: var(--icon-size);
				aspect-ratio: 1/1;
				-webkit-mask: var(--icon-url) center / 100% no-repeat;
				mask: var(--icon-url) center / 100% no-repeat;
				background: var(--icon-color);
				z-index: 1;
			}
		}
	}
}

.t_exam {
	padding: 0 1.5rem;
	margin-top: 6rem;
	display: grid;
	gap: 1rem;

	.t_exam_item {
		background: url(../images/top/gastroscopy_img01_sp.jpg) center / cover no-repeat;
		--border-gutter: 1rem;
		position: relative;
		isolation: isolate;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: var(--border-gutter);
			left: var(--border-gutter);
			width: calc(100% - var(--border-gutter) * 2);
			height: calc(100% - var(--border-gutter) * 2);
			z-index: -1;
			border: 1px solid rgba(255, 255, 255, 0.5);
		}

		&.t_exam_colon {
			background-image: url(../images/top/colonoscopy_img01_sp.jpg);
		}
	}

	.t_exam_item_in {
		padding: 4rem 3rem;
	}

	.t_exam_item_txt {
		margin-top: 2rem;
		color: #fff;
	}

	.t_exam_item_btn {
		margin-top: 2rem;
	}
}

/*++++++++++++++++++++++++++++
.t_self
++++++++++++++++++++++++++++*/
.t_self {
	.t_self_head {
		padding: 6.2rem 2rem 3rem;
		background: url(../images/top/self_bg_sp.jpg) center / cover no-repeat;
	}
}

.t_mc {
	padding: 6rem 0;
	background: var(--brown_04);

	.t_ttl03 {
		.txt01 {
			color: var(--beige_04);

			&::before {
				background: var(--beige_04);
			}
		}

		.txt02 {
			color: #fff;
		}
	}

	.t_mc_slider_wrap {
		margin-top: 3.4rem;

		.swiper {
			overflow: visible;
		}
	}

	.t_mc_btns {
		display: grid;
		gap: 1.4rem 1rem;
		padding: 0 0.5rem;
		position: relative;
		grid-template-columns: repeat(6, 1fr);
		margin-top: 4rem;
	}

	.t_mc_btn {
		height: 6.2rem;
		display: flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		color: var(--beige_03);
		font-size: 1.4rem;
		letter-spacing: 0.06em;
		line-height: 1.5;
		font-weight: 500;
		position: relative;
		grid-column: span 2;
		

		&:before,
		&:after {
			content: '';
			display: block;
			position: absolute;
			top: 0;
			width: 1px;
			height: 6.6rem;
			z-index: 1;
			background: var(--beige_03);
		}

		&:before {
			left: -0.5rem;
			opacity: 0;
		}

		&:after {
			right: -0.5rem;
		}

		&:nth-of-type(1)::before {
			opacity: 1;
		}

		&:nth-of-type(4)::before {
			opacity: 1;
		}

		&:nth-of-type(6)::before {
			opacity: 1;
		}

		&.on {
			color: var(--brown_05);
			background: var(--beige_03);
		}

		&.col02 {
		grid-column: span 3;

		}
	}

	.swiper-slide {
		height: auto;
	}

	.t_mc_item {
		height: 100%;
		text-decoration: none;
		display: flex;
		flex-direction: column;
		border-radius: 0.4rem;
		background: #fff;
		padding: 1.6rem;
	}

	.t_mc_item_img {
		height: 14rem;
	}

	.t_mc_item_ttl {
		display: flex;
		flex-direction: column;
		margin-top: 1.6rem;
		border-bottom: 1px solid var(--beige_04);
		min-height: 6.6rem;
		padding-bottom: 1.2rem;

		.txt01 {
			font-family: var(--font-num);
			color: var(--brown_02);
			font-size: 1.4rem;
			letter-spacing: 0.08em;
			line-height: 1.2;
		}

		.txt02 {
			color: var(--brown_05);
			font-size: 1.7rem;
			letter-spacing: 0.05em;
			line-height: 1.8;
			font-weight: 500;
			display: flex;
			flex-wrap: wrap;
			gap: 0 1rem;
			align-items: center;

			span {
				padding: 0 0.5rem;
				line-height: 1.8;
				border-radius: 0.4rem;
				font-size: 1.2rem;
				letter-spacing: 0.08em;
				color: #fff;
				display: inline-block;
				vertical-align: baseline;

				&.men {
					background: var(--blue_man);
				}

				&.lady {
					background: var(--red_woman);
				}

				&.pair {
					background: var(--yellow_01);
				}
			}
		}
	}

	.t_mc_item_list {
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem;
		margin-top: 1.2rem;

		li {
			padding: 0 0.5rem;
			font-size: 1.2rem;
			line-height: 1.8;
			color: var(--brown_03);
			background: var(--beige_01);
			border-radius: 0.4rem;
			letter-spacing: 0.04em;
			font-family: var(--font-gothic);
		}
	}

	.t_mc_item_time {
		margin-top: 1.2rem;
		background: #EBE6DD99;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.5rem;
		color: var(--orange_00);
		border-radius: 0.4rem;
		padding: 0.5rem 1rem;

		span {
			letter-spacing: 0.08em;
			vertical-align: baseline;
			font-size: 1.3rem;
			line-height: 1.8;
			font-family: var(--font-gothic);
		}

		.time {
			&:before {
				content: '';
				display: inline-block;
				width: 1.8rem;
				aspect-ratio: 18/23;
				z-index: 1;
				-webkit-mask: url(../images/icon_clock02.svg) center / 100% no-repeat;
				mask: url(../images/icon_clock02.svg) center / 100% no-repeat;
				background: var(--orange_00);
				margin-right: 0.5rem;
			}
		}
	}

	.t_mc_item_fee {
		margin-top: 1.2rem;
		display: grid;
		gap: 0.6rem;

		li {
			display: flex;
			align-items: center;
			gap: 0.5rem;
			flex-wrap: wrap;
			color: var(--brown_03);
			font-family: var(--font-gothic);

			span {
				font-size: 1.4rem;
				line-height: 1.8;
				letter-spacing: 0.08em;
			}

			em {
				color: var(--orange_00);
				font-family: var(--font-num);
				font-size: 2rem;
				line-height: 1.2;
				letter-spacing: 0.08em;
			}
		}
	}

	.t_mc_item_btn {
		margin-top: 1.2rem;
	}

	.t_mc_nav {
		display: flex;
		align-items: center;
		gap: 3rem;
		margin-top: 3rem;

		.swiper-pagination {
			position: relative;
			--swiper-pagination-progressbar-size: 2px;
			--swiper-pagination-color: var(--beige_03);
			--swiper-pagination-progressbar-bg-color: #D5C8AE33;
		}

		.t_mc_nav_btns {
			display: flex;
			justify-content: space-between;
			gap: 1rem;
		}

		.swiper-button {
			position: relative;
			width: 6.5rem;
			height: 5rem;
			border-radius: 4rem;
			border: 1px solid var(--beige_03);
			inset: auto;
			margin: 0;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
				-webkit-mask: url(../images/icon_arrow.svg) center / 100% no-repeat;
				mask: url(../images/icon_arrow.svg) center / 100% no-repeat;
				background: var(--beige_03);
				width: 1.8rem;
				aspect-ratio: 14/8;
				z-index: 1;
			}

			&:after {
				display: none;
			}

			&.swiper-button-prev {
				&:before {
					transform: translate(-50%, -50%) rotate(180deg);
				}
			}
		}
	}
}

.t_hc {
	background: var(--brown_05);
	padding: 6rem 0;

	.t_ttl03 {
		.txt01 {
			color: var(--beige_04);

			&:before {
				background: var(--beige_04);
			}
		}

		.txt02 {
			color: #fff;
		}
	}

	.t_hc_list {
		margin-top: 4rem;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 3rem 0.9rem;

		a {
			display: flex;
			flex-direction: column;
		}

		figure {
			height: 11rem;
		}

		p {
			--arrow-url: url(../images/icon_arrow.svg);
			--arrow-color: var(--beige_03);
			--arrow-size: 1.1rem;
			--circle-right: 0rem;
			--circle-size: 2.4rem;
			--circle-height: 1.8rem;
			--circle-bg-color: transparent;
			--circle-border-color: var(--beige_03);
			position: relative;
			font-size: 1.4rem;
			line-height: 1.8;
			font-weight: 500;
			color: #fff;
			margin-top: 1rem;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 0.3rem;
				right: var(--circle-right);
				width: var(--circle-size);
				height: var(--circle-height);
				-webkit-mask: var(--arrow-url) center / var(--arrow-size) no-repeat;
				mask: var(--arrow-url) center / var(--arrow-size) no-repeat;
				background: var(--arrow-color);
				z-index: 2;
			}

			&:after {
				content: '';
				display: block;
				position: absolute;
				top: 0.3rem;
				right: var(--circle-right);
				width: var(--circle-size);
				height: var(--circle-height);
				z-index: 1;
				border: 1px solid var(--circle-border-color);
				border-radius: 10rem;
				background: var(--circle-bg-color);
			}
		}
	}

	.t_hc_bnr {
		margin-top: 6rem;

		a {
			display: block;
		}
	}
}

/*++++++++++++++++++++++++++++
t_slider
++++++++++++++++++++++++++++*/
.t_slider {
	display: flex;
	width: 100vw;
	max-width: 100%;
	overflow: hidden;
	position: relative;
	z-index: 10;
	margin: 0 auto;
	--speed: 200s;
	--gap: 0rem;
	margin-top: 0;

	.t_slider_item:first-child {
		animation: loop var(--speed) calc(-1 * var(--speed) / 2) linear infinite;
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
		will-change: transform;
	}

	.t_slider_item {
		animation: loop2 var(--speed) linear infinite;
		display: flex;
		width: auto;
		gap: var(--gap);
		padding: 0 calc(var(--gap) / 2);
	}

	.t_slider_item figure {
		width: 26.6rem;
		overflow: hidden;
		aspect-ratio: 266/200;
	}

	.t_slider_item figure img {
		display: block;
	}
}

/*++++++++++++++++++++++++++++
t_feature
++++++++++++++++++++++++++++*/
.t_feature {
	padding: 6rem 0 10rem;
	position: relative;
	isolation: isolate;

	&:before {
		content: '';
		display: block;
		position: absolute;
		top: 4rem;
		left: 0;
		width: 13rem;
		aspect-ratio: 260/800;
		z-index: -1;
		background: url(../images/top/feature_deco_sp.png) center / cover no-repeat;
	}

	.t_feature_ttl {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;

		.txt01 {
			font-family: var(--font-en);
			color: var(--brown_02);
			font-size: 6rem;
			letter-spacing: 0.04em;
			line-height: 1.2;
			font-weight: 500;
		}

		.txt02 {
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 0 5.9rem;
			font-size: 2rem;
			letter-spacing: 0.08em;
			line-height: 1.8;
			position: relative;
			margin-top: 0.3rem;

			&:before,
			&:after {
				content: '';
				display: block;
				position: absolute;
				top: 50%;
				left: 0;
				transform: translateY(-50%);
				width: 4.9rem;
				height: 1px;
				z-index: 1;
				background: var(--beige_04);
			}

			&:after {
				right: 0;
				left: auto;
			}

			span {
				font-family: var(--font-num);
				color: var(--brown_02);
				font-size: 4rem;
				letter-spacing: 0.08em;
				line-height: 1.2;
				margin: 0 1rem;
			}
		}
	}

	.t_feature_block {
		margin-top: 5rem;
		position: relative;
		isolation: isolate;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 4rem;
			left: -2.5rem;
			width: 100vw;
			height: 100%;
			z-index: -1;
			background: var(--beige_02);
		}
	}

	.t_feature_head {
		margin-right: -2.5rem;

		.oft {
			height: 24rem;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				z-index: 10;
				border: 1px solid var(--brown_02);
				border-right: 0;
			}

			img {
				z-index: 1;
			}
		}

		.swiper-pagination {
			position: relative;
			inset: 0;
			--swiper-pagination-progressbar-size: 2px;
			--swiper-pagination-color: var(--brown_02);
			--swiper-pagination-progressbar-bg-color: #7f674533;
			margin-top: 2rem;
		}
	}

	.t_feature_body {
		margin-top: 3.2rem;

		.t_feature_navs {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 1rem;
			margin-top: 4rem;
		}

		.swiper-pagination {
			position: relative;
			display: flex;
			align-items: center;
			gap: 0.8rem;
			width: auto;
			margin: 0;
			inset: auto;
			color: var(--brown_02);

			span {
				font-family: var(--font-num);
				font-size: 1.4rem;
				letter-spacing: 0.08em;
				line-height: 1.2;
			}
		}

		.swiper-button {
			position: relative;
			width: 6.5rem;
			height: 5rem;
			border-radius: 4rem;
			border: 1px solid var(--brown_03);
			inset: auto;
			margin: 0;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
				-webkit-mask: url(../images/icon_arrow.svg) center / 100% no-repeat;
				mask: url(../images/icon_arrow.svg) center / 100% no-repeat;
				background: var(--brown_03);
				width: 1.8rem;
				aspect-ratio: 14/8;
				z-index: 1;
			}

			&:after {
				display: none;
			}

			&.swiper-button-prev {
				&:before {
					transform: translate(-50%, -50%) rotate(180deg);
				}
			}
		}
	}

	.t_feature_item_num {
		display: flex;
		align-items: center;
		gap: 1rem;

		.txt01 {
			font-family: var(--font-en);
			color: var(--brown_02);
			font-size: 1.4rem;
			letter-spacing: 0.04em;
			line-height: 1.2;
			font-weight: 500;
		}

		.txt02 {
			font-family: var(--font-num);
			color: var(--brown_02);
			font-size: 4.4rem;
			letter-spacing: 0.08em;
			line-height: 1.2;
		}
	}

	.t_feature_item_ttl {
		color: var(--brown_03);
		font-size: 2.1rem;
		letter-spacing: 0.08em;
		line-height: 1.8;
		font-weight: 500;
		margin-top: 1.5rem;
	}

	.t_feature_item_txt {
		margin-top: 1.5rem;
	}

	.t_feature_item_btn {
		margin-top: 3.5rem;
	}
}

/*++++++++++++++++++++++++++++
t_greeting
++++++++++++++++++++++++++++*/
.t_greeting {
	background: var(--brown_02) url(../images/top/greeting_bg_leaf_sp.png) center top / 100% no-repeat;
	padding: 6rem 0;
	position: relative;
	isolation: isolate;

	&:before {
		content: '';
		display: block;
		position: absolute;
		right: 0;
		bottom: 0;
		width: 29.5rem;
		aspect-ratio: 590/800;
		z-index: -1;
		background: url(../images/top/greeting_bg_sp.png) center / cover no-repeat;
	}

	.t_greeting_ttl {
		.txt02 {
			margin-top: 0.5rem;
		}
	}

	.t_greeting_block {
		margin-top: 6rem;
	}

	.t_greeting_head {
		position: relative;

		.oft {
			height: 40rem;
			z-index: 1;
		}
	}

	.t_greeting_head_name {
		position: absolute;
		width: 100%;
		background: linear-gradient(270deg, rgba(235, 230, 221, 0.3) 0%, rgba(235, 230, 221, 0.9) 50%, #EBE6DD 100%);
		isolation: isolate;
		padding: 1.6rem 2rem 1.6rem;
		color: var(--brown_03);
		bottom: 0;
		left: 0;
		z-index: 10;

		&:before {
			content: '';
			display: block;
			position: absolute;
			bottom: 0;
			right: 0;
			width: 10.6rem;
			aspect-ratio: 106/90;
			z-index: -1;
			background: url(../images/icon_symbol.svg) center / 100% no-repeat;
		}

		.txt01 {
			font-size: 1.3rem;
			line-height: 1.5;
			letter-spacing: 0.08em;
			font-weight: 500;
		}

		.txt02 {
			font-size: 2.2rem;
			line-height: 1.5;
			letter-spacing: 0.08em;
			font-weight: 500;
			margin-top: 0.6rem;

			span {
				margin-right: 0.8rem;
				font-size: 1.5rem;
				line-height: 1.5;
				letter-spacing: 0.08em;
			}
		}
	}

	.t_greeting_body {
		padding: 2.5rem 2.5rem 2.5rem;
		background: #fff;
	}

	.t_greeting_body_txt {
		letter-spacing: 0.07em;
	}

	.t_greeting_body_btn {
		margin-top: 3rem;
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}
}

/*++++++++++++++++++++++++++++
t_recruit
++++++++++++++++++++++++++++*/
.t_recruit {
	padding: 6rem 0;
	background: url(../images/top/recruit_bg_leaf_sp.png) right bottom / 25.6rem no-repeat;

	.t_recruit_head {
		margin-left: -2.5rem;
		height: 20rem;
		position: relative;
	}

	.t_recruit_slider {
		display: flex;
		width: 100%;
		max-width: 100%;
		overflow: hidden;
		position: absolute;
		top: 0;
		right: 0;
		z-index: 10;
		margin: 0 auto;
		--speed: 200s;
		--gap: 0rem;
		margin-top: 0;

		.t_recruit_slider_item:first-child {
			animation: loop var(--speed) calc(-1 * var(--speed) / 2) linear infinite;
			-webkit-backface-visibility: hidden;
			backface-visibility: hidden;
			will-change: transform;
		}

		.t_recruit_slider_item {
			animation: loop2 var(--speed) linear infinite;
			display: flex;
			width: auto;
			gap: var(--gap);
			padding: 0 calc(var(--gap) / 2);
		}

		.t_recruit_slider_item figure {
			width: 26.6rem;
			overflow: hidden;
			aspect-ratio: 1066/800;
		}

		.t_recruit_slider_item figure img {
			display: block;
		}
	}

	.t_recruit_ttl {
		position: relative;
		margin-top: 6rem;

		.txt01 {
			font-family: var(--font-en);
			color: var(--white);
			font-size: 8rem;
			letter-spacing: 0.04em;
			line-height: 1.2;
			font-weight: 500;
			z-index: 1;
			position: absolute;
			top: -5rem;
			right: -4rem;
		}

		.txt02 {
			position: relative;
			z-index: 10;
			font-size: 2.1rem;
			letter-spacing: 0.08em;
			line-height: 1.8;
			font-weight: 500;
			color: var(--brown_03);
		}
	}

	.t_recruit_txt {
		margin-top: 3rem;
	}

	.t_recruit_btn {
		margin-top: 3rem;
	}
}

/*++++++++++++++++++++++++++++
.t_group 
++++++++++++++++++++++++++++*/
.t_group {
	padding: 6rem 0;
	background: url(../images/top/group_bg_sp.jpg) center / cover no-repeat;

	.t_group_ttl {
		.txt02 {
			margin-top: 0.5rem;
		}
	}

	.t_group_body {
		margin-top: 4rem;
	}

	.t_group_body_img {
		.oft {
			height: 18rem;
		}
	}

	.t_group_body_content {
		padding: 2rem;
		background: #fff;
	}

	.t_group_access {
		padding: 0.2rem 1rem;
		color: var(--brown_03);
		font-size: 1.3rem;
		letter-spacing: 0.08em;
		line-height: 1.8;
		background: var(--beige_01);
		border-radius: 0.4rem;
		width: fit-content;
	}

	.t_group_name {
		margin-top: 1rem;
		padding-bottom: 1.3rem;
		border-bottom: 1px solid var(--beige_04);
		color: var(--brown_03);
		font-size: 1.6rem;
		letter-spacing: 0.08em;
		line-height: 1.8;
		font-weight: 500;
	}

	.t_group_address {
		color: var(--brown_03);
		margin-top: 1rem;
	}

	.t_group_btns {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 0 1.5rem;
		margin-top: 1.1rem;
	}

	.t_group_btn {
		position: relative;
		text-decoration: none;
		display: flex;
		align-items: center;
		padding: 0 0 0 2.8rem;
		min-height: 4.6rem;
		border-bottom: 1px dashed var(--beige_04);
		--icon-url: url(../images/icon_clock.svg);
		--icon-size: 2rem;
		--icon-left: 0rem;
		--icon-color: var(--yellow_01);
		/* アロー */
		--arrow-url: url(../images/icon_arrowup02.svg);
		--arrow-color: var(--beige_04);
		--arrow-size: 1.4rem;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			right: 0;
			width: var(--arrow-size);
			height: var(--arrow-size);
			-webkit-mask: var(--arrow-url) center / var(--arrow-size) no-repeat;
			mask: var(--arrow-url) center / var(--arrow-size) no-repeat;
			background: var(--arrow-color);
			z-index: 2;
		}

		&:after {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			left: var(--icon-left);
			width: var(--icon-size);
			aspect-ratio: 1/1;
			z-index: 1;
			-webkit-mask: var(--icon-url) center / 100% no-repeat;
			mask: var(--icon-url) center / 100% no-repeat;
			background: var(--icon-color);
		}

		&.access {
			--icon-url: url(../images/icon_pin.svg);
		}

		&.clinic {
			--icon-url: url(../images/icon_buildings.svg);
		}
	}

	.t_group_cta {
		margin-top: 2.5rem;
		background: var(--beige_01);
		position: relative;
		--border-gutter: 1rem;
		padding: var(--border-gutter);

		&:before,
		&:after {
			content: '';
			display: block;
			position: absolute;
			top: var(--border-gutter);
			width: 0.6rem;
			aspect-ratio: 1/1;
			z-index: 1;
			background: var(--beige_04);
		}

		&:before {
			left: var(--border-gutter);
		}

		&:after {
			right: var(--border-gutter);
		}

		.t_group_cta_in {
			border: 1px solid var(--beige_04);
			padding: 2rem 1.9rem;

			&:before,
			&:after {
				content: '';
				display: block;
				position: absolute;
				bottom: var(--border-gutter);
				width: 0.6rem;
				aspect-ratio: 1/1;
				z-index: 1;
				background: var(--beige_04);
			}

			&:before {
				left: var(--border-gutter);
			}

			&:after {
				right: var(--border-gutter);
			}
		}

		.t_group_cta_ttl {
			color: var(--brown_03);
			font-size: 1.4rem;
			font-weight: 500;
			text-align: center;
			margin-bottom: 1.7rem;
		}

		.m_btn04 {
			margin-top: 1rem;
		}
	}
}

/*++++++++++++++++++++++++++++
t_news02
++++++++++++++++++++++++++++*/
.t_news02 {
	padding: 5rem 0;
	background: var(--beige_02);

	.t_news02_block {
		padding: 4rem 3rem;
		margin: 0;
		border: 1px solid var(--brown_02);
		--border-gutter: 0.9rem;
		position: relative;
		isolation: isolate;
		display: flex;
		flex-direction: column;
		gap: 3.5rem;
		background: var(--beige_01);

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: var(--border-gutter);
			left: var(--border-gutter);
			width: calc(100% - var(--border-gutter) * 2);
			height: calc(100% - var(--border-gutter) * 2);
			z-index: -1;
			border: 1px solid var(--beige_04);
			--bg-url: url(../images/rect.svg);
			--bg-size: 0.6rem;
			--bg-offset: 0px;
			background: var(--bg-url) var(--bg-offset) var(--bg-offset) / var(--bg-size) no-repeat,
				var(--bg-url) right var(--bg-offset) top var(--bg-offset) / var(--bg-size) no-repeat,
				var(--bg-url) left var(--bg-offset) bottom var(--bg-offset) / var(--bg-size) no-repeat,
				var(--bg-url) right var(--bg-offset) bottom var(--bg-offset) / var(--bg-size) no-repeat;
		}
	}

	.t_news02_head {
		position: relative;
		/* padding: 4rem 0; */
	}

	.t_news02_head_list {
		display: flex;
		flex-direction: column;
		gap: 3.5rem;
	}

	.t_news02_head_item {
		text-decoration: none;
		border-radius: 0;
		padding: 0;
		position: relative;
	}

	.t_news02_head_item_ttl {
		color: var(--brown_03);
		background: var(--white);
		padding: 1rem;
		border-radius: 0.4rem;
		display: flex;
		text-align: center;
		justify-content: center;
		margin-bottom: 1.5rem;
		font-size: 1.6rem;
		line-height: 1.8;
		font-weight: 500;

		span {
			position: relative;
			letter-spacing: 0.08em;
			padding: 0 2.6rem;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
				left: 0;
				width: 0.6rem;
				height: 100%;
				z-index: 1;
				border-left: 2px solid var(--yellow_01);
				border-right: 1px solid var(--yellow_01);
			}

			&:after {
				content: '';
				display: block;
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
				right: 0;
				width: 0.6rem;
				height: 100%;
				z-index: 1;
				border-left: 2px solid var(--yellow_01);
				border-right: 1px solid var(--yellow_01);
			}
		}
	}

	.t_news02_head_item_txt {
	}

	.t_news02_body {
		position: relative;
		padding: 0;
	}

	.t_news02_body_col {
		display: flex;
		flex-direction: column;
		gap: 2rem;
	}

	.t_news02_body_item {
		text-decoration: none;
		background: #fff;
		border-radius: 0.4rem;
		padding: 1.5rem;
	}

	.t_news02_body_item_ttl {
		color: var(--white);
		background: var(--brown_02);
		padding: 1rem;
		border-radius: 0.4rem;
		display: flex;
		text-align: center;
		justify-content: center;
		margin-bottom: 1.5rem;
		font-size: 1.6rem;
		line-height: 1.8;
		font-weight: 500;

		span {
			position: relative;
			letter-spacing: 0.08em;
			padding: 0 2.6rem;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
				left: 0;
				width: 0.6rem;
				height: 100%;
				z-index: 1;
				border-left: 2px solid var(--yellow_01);
				border-right: 1px solid var(--yellow_01);
			}

			&:after {
				content: '';
				display: block;
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
				right: 0;
				width: 0.6rem;
				height: 100%;
				z-index: 1;
				border-left: 2px solid var(--yellow_01);
				border-right: 1px solid var(--yellow_01);
			}
		}
	}

	.t_news02_body_item_list {
		display: grid;
	}

	.t_news02_body_item_list li {
		position: relative;
		padding: 1rem 0 1rem 2.2rem;
		border-bottom: 1px solid var(--beige_04);
		font-size: 1.5rem;
		line-height: 1.9;

		&:first-of-type {
		border-top: 1px solid var(--beige_04);

		}
	}

	.t_news02_body_item_list li:before {
		content: "";
		display: block;
		position: absolute;
		top:2.1rem;
		left: 0.8rem;
		width: 0.6rem;
		aspect-ratio: 1/1;
		z-index: 1;
		border-radius: 50%;
		background: var(--yellow_01);
	}

	.t_news02_body_item_table :is(td, th) {
		font-size: 1.5rem;
		line-height: 1.9;
		padding: 1rem 0;
		vertical-align: top;

	}

	.t_news02_body_item_table tr {
		border-top: 1px solid var(--beige_04);
	}

	.t_news02_body_item_table tr:last-of-type {
		border-bottom: 1px solid var(--beige_04);
	}

	.t_news02_body_item_table th {
		width: 7.9rem;
		padding-right: 1rem;
		color: var(--yellow_01);
	}
}