@charset "utf-8";

.img_bg_block {
	padding: 150px 0;
}

/*その他の追加変更 ここから*/
.m_ttl01_wrap {
	margin-bottom: 28px;
}

.m_ttl01 {
	padding-left: 28px;
	font-size: 3.4rem;
	line-height: 1;

	&:before {
		width: 0.8rem;
		height: 30px;
	}
}

.m_ttl01_btn {
	font-size: 1.4rem;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 30px;
	padding-top: 1px;
}

.m_txt p {
	line-height: 1.875;
}

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

.btn01 {
	--btn-height: 70px;
	--btn-width: 380px;
	--icon-right: 18px;
	--icon-size: 28px;
	font-size: 1.7rem;
	padding: 22px 64px 23px;
	width: fit-content;
}

#under {
	padding-top: 90px;
}
/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
m_mv
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.m_mv {
	padding: 80px 50px 0 0;
	display: flex;
	flex-direction: row-reverse;
	position: relative;
	align-items: flex-start;

	&:before {
		width: calc(100% - 449px);
		height: 680px;
	}
}

.m_mv_inner {
	position: relative;
	flex: 1;
	overflow: hidden;
	filter: drop-shadow(0px 0px 15px rgba(0, 0, 0, 0.12));
}

.m_mv_main {
	position: relative;
	z-index: 1;
	filter: none;

	picture {
		position: relative;
		display: block;
		height: 700px;
		overflow: hidden;
	}

	img {
		border-radius: 30px;
		border: 4px solid #fff;
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		object-fit: cover;
		object-position: center;
		-webkit-backface-visibility: visible;
		backface-visibility: visible;
	}
}

.m_mv_txt {
	bottom: 29px;
	left: 35px;
	width: 482px;
}

.m_mv_side {
	margin-top: 0;
	padding: 0 35px;
	width: 300px;
}

.m_mv_logo {
	width: 160px;
	margin: -34px auto 49px;
	display: block;
}

.m_mv_list {
	li {
		border-top: 1px solid #9fe0cc;

		&:last-of-type {
			border-bottom: 1px solid #9fe0cc;
		}
	}

	a {
		text-decoration: none;
		position: relative;
		display: block;
		padding: 8px 0 12px;
		font-weight: 500;
		font-size: 1.8rem;
		letter-spacing: 0.12em;

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			right: 3px;
			width: 10px;
			aspect-ratio: 1/1;
			z-index: 1;
			transform: translateY(-50%) rotate(45deg);
			border-top: 1px solid var(--green);
			border-right: 1px solid var(--green);
		}
	}
}

.m_mv_recruit {
	margin-top: 43px;
}

.m_mv_info {
	position: absolute;
	top: 14px;
	right: 50px;
	z-index: 10;
	display: flex;
	align-items: center;
	gap: 20px;

	.m_mv_info_list {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: 2px;
	}

	li {
		font-size: 1.7rem;
		letter-spacing: 0.08em;
		padding-left: 21px;
		background: url(../images/header_access.png) left top 1px / auto 20px no-repeat;
		line-height: 1.3;
		text-align: right;
	}

	.parking {
		background-image: url(../images/header_parking.png);
		padding-left: 30px;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_clinic
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_clinic {
	.img_bg_block {
		padding-bottom: 206px;
	}

	.t_clinic_block {
		gap: 100px;
		grid-template-columns: repeat(2, 1fr);
	}

	.t_clinic_btn {
		margin-top: 44px;
	}
}

.t_news {
	.t_news_head {}

	.t_news_ttl {}

	.t_news_btn {}

	.t_news_list {}
}

.m_newslist {
	gap: 13px;

	.m_newslist_item {}

	.m_newslist_item_in {
		border-radius: 20px;
		gap: 27px;
		padding: 10px 30px;
		min-height: 100px;
	}

	.m_newslist_item_in .date {
		font-size: 1.5rem;
	}

	.m_newslist_item_in em {
		font-size: 1.6rem;
		line-height: calc(25/16);
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_concept
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_concept {
	border-top: 6px #f8ddd5 solid;
	border-bottom: 6px #f8ddd5 solid;
	--img-radius: 30px;
	--shadow-size: 14px;

	.img_bg_block {
		padding: 0;
	}

	.inner {
		padding: 96px 40px 108px;
	}

	.t_concept_ttl {
		width: 535px;
		transform: translate(-50%, calc(-50% - 3.5px));
	}

	.t_concept_block {
		padding-top: 370px;
	}

	.t_concept_img01 {
		position: absolute;
		top: 50px;
		left: -100px;
		width: 850px;

		.img01 {
			&:before {
				top: -28px;
				left: -29px;
				width: 200px;
				border-radius: 40px;
			}
		}
	}

	.t_concept_img02 {
		width: 350px;
		top: 10px;
		right: 0;
		float: none;
		padding-bottom: 30px;
		margin-left: 0;
		position: absolute;

		.img01 {}

		.img02 {
			bottom: -201px;
			right: 203px;
			width: 300px;
		}
	}

	.t_concept_img03 {
		padding-top: 0;
		margin-top: 61px;

		.wrap01 {
			display: flex;
			gap: 60px;
		}

		.img01 {
			width: 300px;
		}

		.img02 {
			width: 230px;

			img {
				box-shadow: 20px 20px 0 #f9e6e1;
			}
		}

		.img03 {
			top: 0px;
			right: -122px;
			width: 440px;
		}
	}

	.t_concept_box {
		margin-top: 0;
	}

	.t_concept_txt {
		width: 700px;

		p {
			font-size: 1.6rem;
		}
	}

	.t_concept_btn {
		margin-top: 30px;
		width: 700px;

		.btn01 {
			margin: 0;
		}
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_trouble
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_trouble {
	.img_bg_block {
		padding: 128px 0 150px;
	}

	.t_trouble_ttl {
		width: 684px;
		margin: 0 auto 50px;
	}

	.t_trouble_block {
		--gap-col: 67px;
		--gap-row: 3px;
		--col: 4;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0 var(--gap-col);

		&:before {
			content: '';
			display: block;
			width: 100%;
			height: 1px;
			z-index: 1;
			order: 4;
		}
	}

	.t_trouble_item {
		width: calc(100% / var(--col) - var(--gap-col) * (var(--col) - 1) / var(--col));
		filter: drop-shadow(0px 0px 12px rgba(0, 0, 0, 0.15));
		margin-top: var(--gap-row);

		&:nth-of-type(n+4) {
			order: 5;
		}
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_menu
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_menu {
	.img_bg_block {
		padding: 124px 0 150px;
	}

	.t_menu_ttl {
		gap: 24px;
		font-size: 4.2rem;
		margin-bottom: 57px;

		&::before,
		&::after {
			width: 100px;
			height: 12px;
			border-top: 2px solid #66c8b7;
			border-bottom: 2px solid #66c8b7;
		}
	}

	.t_menu_block {}

	.t_menu_block+.t_menu_block {
		margin-top: 75px;
	}

	.t_menu_sub_ttl {
		margin-bottom: 47px;

		.txt01 {
			font-size: 5.2rem;
		}

		.txt02 {
			font-size: 1.4rem;
			margin-top: 19px;
		}
	}

	.t_menu_list {
		--gap-col: 30px;
		--gap-row: 30px;
		--col: 2;
	}

	.t_menu_item {
		.ttl {
			top: 25px;
			font-size: 2rem;
			padding: 6px 0vw 7px 10px;
			width: 360px;

			&:before {
				left: -7px;
			}

			&:after {
				left: -7px;
				width: 7px;
			}
		}
	}

	.t_menu_item_mini {
		--col: 3;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_feature
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_feature {
	--img-radius: 30px;
	--deco-radius: 10px;

	.img_bg_block {
		padding: 117px 0 150px;
	}

	.t_feature_ttl {
		font-size: 4.1rem;
		margin-bottom: 81px;

		.txt01 {
			&::before {
				bottom: 1px;
				height: 22px;
			}

			strong {
				font-size: 5.5rem;
			}
		}
	}

	.t_feature_block {}

	.t_feature_item {
		display: flex;
		gap: 70px;

		&:nth-of-type(2n) {
			flex-direction: row-reverse;
		}
	}

	.t_feature_item_body {
		flex: 1;
		padding-top: 34px;
	}

	.t_feature_item_en {
		padding-left: 43px;

		&:before {
			width: 30px;
			transform: translateY(-1px);
		}

		span {
			font-size: 1.4rem;
			margin-right: 10px;
		}

		em {
			font-size: 2.6rem;
			position: relative;
			top: -2px;
		}
	}

	.t_feature_item_ttl {
		margin-top: 19px;
		font-size: 3rem;
	}

	.t_feature_item_catch {
		margin-top: 28px;
		font-size: 2.2rem;
	}

	.t_feature_txt {
		margin-top: 11px;
	}

	.t_feature_item_imgs {
		margin-top: 0;
		width: 470px;

		/* flex: 1; */
		&:before {
			border-radius: 10px;
		}

		&:after {
			border-radius: 10px;
		}
	}

	.t_feature_item.item01 {
		.t_feature_item_imgs {
			&:before {
				width: max(730px,100vw);
				inset: auto auto -71px 49px;
				height: 350px;
				aspect-ratio: auto;
			}

			&:after {
				width: 150px;
				inset: -30px auto auto -114px;
			}

			.img01 {
				width: 100%;
			}

			.img02 {
				width: 200px;
				inset: auto auto -32px 308px;
			}

			.img03 {
				width: 200px;
				inset: auto auto -32px 106px;
			}
		}
	}

	.t_feature_item.item02 {
		margin-top: 183px;

		.t_feature_item_body {
			padding-top: 6px;
		}

		.t_feature_item_imgs {
			&:before {
				width: 470px;
				inset: -54px auto auto -70px;
			}

			&:after {
				width: 380px;
				inset: auto -26px 179px auto;
				aspect-ratio: 380 / 243;
			}

			.img01 {
				width: 100%;
				margin-left: 0;
			}

			.img02 {
				width: 200px;
				inset: 24px auto 0 999px;
			}

			.img03 {
				width: 300px;
				inset: 302px auto auto -30px;
			}
		}
	}

	.t_feature_item.item03 {
		margin-top: 80px;

		.t_feature_item_body {
			padding-top: 198px;
		}

		.t_feature_item_imgs {
			&:before {
				width: max(950px,100vw);
				aspect-ratio: 950/180;
				inset: 140px 649px auto auto;
				height: 180px;
				aspect-ratio: auto;
			}

			&:after {
				display: none;
			}

			.img01 {
				width: 100%;
			}

			.img02 {
				width: 200px;
				inset: 523px auto auto -30px;
			}

			.img03 {
				width: 250px;
				inset: 476px auto auto 179px;
			}
		}
	}

	.t_feature_item.item04 {
		margin-top: 155px;

		.t_feature_item_body {
			padding-top: 30px;
		}

		.t_feature_item_imgs {
			&:before {
				width: 310px;
				aspect-ratio: 310/180;
				inset: 410px auto auto 350px;
			}

			&:after {
				width: 360px;
				aspect-ratio: 360/320;
				inset: 165px -511px auto auto;
			}

			.img01 {
				width: 100%;
				margin-left: 0;
				margin-right: 0;
			}

			.img02 {
				width: 254px;
				inset: -16px auto auto 952px;
			}
		}
	}

	.t_feature_item.item05 {
		margin-top: 252px;

		.t_feature_item_body {
			padding-top: 0;
		}

		.t_feature_item_imgs {
			padding-top: 87px;

			&:before {
				width: max(830px,100vw);
				inset: -25px 880px auto auto;
				height: 450px;
				aspect-ratio: auto;
			}

			&:after {
				display: none;
			}

			.img01 {
				width: 100%;
			}

			.img02 {
				width: 300px;
				inset: -91px auto auto -178px;
			}

			.img03 {
				width: 210px;
				inset: -45px 131px auto auto;
			}
		}
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_greeting
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_greeting {
	background: #efefe8 url(../images/top/greeting_bg.jpg) center / cover no-repeat;
	position: relative;
	isolation: isolate;

	&:before {
		content: '';
		display: block;
		position: absolute;
		bottom: 0;
		left: calc(50% + 143px);
		width: 516px;
		aspect-ratio: 516/714;
		z-index: -1;
		background: url(../images/top/greeting_img01.png) center bottom / 100% no-repeat;
	}

	.img_bg_block {
		padding: 152px 0 150px;
	}

	.t_greeting_block {
		width: 730px;
	}

	.t_greeting_ttl {
		padding: 0 0px 2px 3px;
		font-size: 2rem;
		width: 200px;
		height: 50px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.t_greeting_txt {
		margin-top: 30px;
	}

	.t_greeting_btn {
		margin-top: 40px;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 30px;
	}

	.t_greeting_btn .btn {
		min-width: auto;
		width: auto;
		margin: 0;
	}
}

.m_slider {
	margin-top: 100px;
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_other
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_other {
	.img_bg_block {
        padding: 119px 0 150px;
    }
	.t_other_block {
		display: grid;
		gap: 100px;
		grid-template-columns: repeat(2, 1fr);
	}

	.t_other_item {}

	.t_other_ttl {}

	.t_other_column {
		margin-top: 37px;
	}

	.m_scroll_list {
		height: 402px;
	}

	.t_other_img {
		img {
			border-radius: 30px;
		}
	}

	.t_other_catch {
		margin-top: 20px;
		font-size: 3.4rem;
	}

	.t_other_btn {
		margin-top: 25px;
	}
}