@charset "utf-8";

:root {
	--vw: 1vw;
	--main-font-color: #545454;
	--main-color: var(--green);
	--main-color-middle: #d8f2ee;
	--main-color-light: #fadeca;
	--main-color-super-light: #fbf3ec;
	--yellow: #fedca3;
	--green: #68b69e;
	--blue: #47b2e5;
	--pink: #fbb8c6;
	--default-letter-spacing: 0.05em;
	--max-width: 1200px;
	--inner-padding: 40px;
	--inner-width: calc(var(--max-width) + var(--inner-padding) * 2);
	--over-margin: min(calc((-1 * var(--vw) * 100 + var(--max-width)) / 2),
			calc(-1 * var(--inner-padding)));
	/* noto入れるの忘れない */
	--font-main: YakuHanJPs, "Zen Kaku Gothic New", "メイリオ", "Meiryo", "Hiragino Kaku Gothic ProN",
		"ヒラギノ角ゴ ProN W3", Hiragino Sans, "Osaka", "MS PGothic", -apple-system,
		BlinkMacSystemFont, arial, helvetica, sans-serif;
	--font-min: YakuHanMPs;
	--font-maru: YakuHanRPs;
	--font-en: "Gidole", sans-serif;
}

/*共通*/
.catch_copy,
.flow_arrow_box .tl,
.flow_arrow_box .tl_block .step p,
#under .catch,
.m_col_ttl,
.reason_line_text_ttl,
#under h2,
#under h3,
#under h4,
#under h5,
#under h6 {
	font-weight: 500;
}

.img_bg_block {
	padding: 12vw 0;
}

#under {
	padding-top: 52px;
}

/*その他の追加変更 ここから*/
.m_ttl01_wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 6vw;
}

.m_ttl01 {
	position: relative;
	font-weight: 500;
	padding-left: 4.4vw;
	letter-spacing: 0.1em;
	font-size: 2.4rem;
	line-height: 1.5;
	color: #fac771;

	&:before {
		content: '';
		display: block;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		left: 0;
		width: 1vw;
		height: 5.2vw;
		z-index: 1;
		background: linear-gradient(180deg, rgba(250, 199, 113, 1) 0%, rgba(250, 199, 113, 1) 50%, rgba(254, 220, 163, 1) 50%, rgba(254, 220, 163, 1) 100%);
	}
}

.m_ttl01_btn {
	text-decoration: none;
	background: #fac771;
	padding: 1.9vw 6vw 1.4vw;
	border-radius: 10rem;
	line-height: 1;
	font-family: var(--font-en);
	color: #fff;
}

.m_ttl01 span {
	font-size: 1.6rem;
	letter-spacing: 0.1em;
	display: block;
}

.m_ttl01 em {
	font-size: 1.6rem;
	letter-spacing: 0.1em;
	display: block;
}

.m_txt p {
	line-height: 1.875;
}

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

.btn01 {
	--btn-height: 13vw;
	--btn-width: auto;
	--icon-right: 3vw;
	--icon-size: 5vw;
	--icon-url: url(../images/icon_arrow.png);
	--border-color: #73d9ba;
	--border-radius: calc(var(--btn-height) / 2);
	--border-width: 2px;
	font-size: 1.6rem;
	padding: 3vw 9vw 3.2vw;
	background: #fff;
	letter-spacing: 0.12em;
	line-height: 1.4;
	border-radius: var(--border-radius);
	border: var(--border-width) solid var(--border-color);
	min-width: var(--btn-width);
	min-height: var(--btn-height);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-inline: auto;
	font-weight: 700;
	
	
	
	
	
	

	&:before {
		content: "";
		position: absolute;
		border: 0;
		top: 50%;
		right: var(--icon-right);
		width: var(--icon-size);
		height: auto;
		aspect-ratio: 1/1;
		transform: translateY(-50%);
		background: var(--icon-url) center / 100% no-repeat;
	}

	&:after {
		display: none;
	}

	& span:before {
		border-radius: var(--border-radius);
		content: '';
		display: block;
		position: absolute;
		top: calc(var(--border-width) * -1);
		left: calc(var(--border-width) * -1);
		width: calc(100% + var(--border-width) * 2);
		height: calc(100% + var(--border-width) * 2);
		z-index: 10;
		background: #fff;
		opacity: 0;
		pointer-events: none;
		border-radius: var(--border-radius);
		transition: 0.5s;
	}

	&.pink {
		--icon-url: url(../images/icon_arrow_pink.png);
		--border-color: #fbb8c6;
	}

	&.gray {
		--icon-url: url(../images/icon_arrow_gray.png);
		--border-color: #d1d1c5;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
m_mv
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.m_mv {
	position: relative;
	isolation: isolate;
	padding: 4.7vw 2.5vw 0;

	&:before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		right: 0;
		width: 73vw;
		height: 80vw;
		z-index: -1;
		background: #cbf4ed;
	}
}

.m_mv img {
	width: 100%;
}

.m_mv_inner {
	position: relative;
}

.m_mv_main {
	position: relative;
	z-index: 1;
	filter: drop-shadow(0px 0px 3vw rgba(0, 0, 0, 0.12));

	img {
		border-radius: 5vw;
		border: 3px solid #fff;
	}
}

.m_mv_txt {
	position: absolute;
	bottom: 3vw;
	left: 3.6vw;
	z-index: 10;
	width: 75vw;
}

.m_mv_side {
	margin-top: 5vw;
}

.m_mv_recruit {
	display: block;
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_clinic
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_clinic {
	.img_bg_block {
		padding-bottom: 20vw;
	}

	.t_clinic_block {
		display: grid;
		gap: 8vw;
	}

	.t_clinic_box {}

	.t_clinic_btn {
		margin-top: 8vw;
	}
}

.m_newslist {
	display: grid;
	gap: 2vw;

	.m_newslist_item {}

	.m_newslist_item_in {
		display: flex;
		overflow: hidden;
		text-decoration: none;
		background: #fff6e6;
		border-radius: 2.7vw;
		align-items: center;
		gap: 2vw;
		padding: 4vw 5vw;
	}

	.m_newslist_item_in .date {
		letter-spacing: 0.14em;
		font-family: var(--font-en);
		font-size: 1.4rem;
	}

	.m_newslist_item_in em {
		font-size: 1.4rem;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		overflow: hidden;
		letter-spacing: 0.1em;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_concept
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_concept {
	background: #fff7f5;
	border-top: 1vw #f8ddd5 solid;
	border-bottom: 1vw #f8ddd5 solid;
	position: relative;
	--img-radius: 2.4vw;
	--shadow-size: 2vw;

	.img_bg_block {
		padding: 0;
	}

	.inner {
		padding: 19vw 5vw 13vw;
	}

	.t_concept_ttl {
		position: absolute;
		left: 50%;
		top: 0;
		transform: translate(-50%, calc(-50% - 0.5vw));
		width: 75vw;
	}

	.t_concept_block {
		position: relative;

		img {
			position: relative;
			border-radius: var(--img-radius);
		}
	}

	.t_concept_img01 {
		.img01 {
			position: relative;
			z-index: 10;
			isolation: isolate;

			img {
				box-shadow: var(--shadow-size) var(--shadow-size) 0 #fff;
			}

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: -3vw;
				left: -3vw;
				width: 30vw;
				aspect-ratio: 1/1;
				border-radius: 2vw;
				z-index: -1;
				background: #f8ddd5;
				opacity: 0.3;
			}
		}
	}

	.t_concept_img02 {
		position: relative;
		/* top: 30vw; */
		width: 29vw;
		right: 0;
		float: right;
		padding-bottom: 11vw;
		margin-left: 5vw;
		
		
		
		
		
		
		

		.img01 {
			z-index: 1;

			img {
				box-shadow: var(--shadow-size) var(--shadow-size) 0 #fff;
			}
		}

		.img02 {
			position: absolute;
			bottom: -1vw;
			right: -3vw;
			width: 19vw;
			z-index: 10;
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			

			img {
				border-radius: 0;
			}
		}
	}

	.t_concept_img03 {
		position: relative;
		padding-top: 10vw;
		margin-top: 8vw;

		.wrap01 {
			display: flex;
			gap: 3vw;
		}

		.img01 {
			width: 25vw;
		}

		.img02 {
			width: 15vw;

			img {
				box-shadow: var(--shadow-size) var(--shadow-size) 0 #f9e6e1;
			}
		}

		.img03 {
			position: absolute;
			top: 0;
			right: 0;
			width: 38vw;
		}
	}

	.t_concept_box {
		margin-top: 10vw;
	}

	.t_concept_txt {
		p {
			font-size: 1.4rem;
		}
	}

	.t_concept_btn {
		margin-top: 8vw;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_trouble
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_trouble {
	.t_trouble_ttl {
		width: 80vw;
		margin: 0 auto 8vw;
	}

	.t_trouble_block {
		--gap-col: 5vw;
		--gap-row: 5vw;
		--col: 2;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: var(--gap-row) var(--gap-col);
	}

	.t_trouble_item {
		width: calc(100% / var(--col) - var(--gap-col) * (var(--col) - 1) / var(--col));
		filter: drop-shadow(0px 0px 1.7vw rgba(0, 0, 0, 0.15));
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_menu
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_menu {
	background: #d8f2ee;

	.t_menu_ttl {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 3vw;
		font-weight: 500;
		color: #66c8b7;
		font-size: 2.5rem;
		margin-bottom: 6vw;
		letter-spacing: 0.085em;

		&::before,
		&::after {
			content: '';
			display: block;
			width: 10vw;
			height: 6px;
			z-index: 1;
			border-top: 1px solid #66c8b7;
			border-bottom: 1px solid #66c8b7;
		}
	}

	.t_menu_block+.t_menu_block {
		margin-top: 13vw;
	}

	.t_menu_sub_ttl {
		display: flex;
		flex-direction: column;
		text-align: center;
		margin-bottom: 8vw;

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

		.txt02 {
			line-height: 1;
			font-family: var(--font-en);
			letter-spacing: 0.3em;
			font-size: 1.2rem;
			margin-top: 2.6vw;
		}
	}

	.t_menu_list {
		--gap-col: 3vw;
		--gap-row: 3vw;
		--col: 2;
		display: flex;
		flex-wrap: wrap;
		gap: var(--gap-row) var(--gap-col);
		justify-content: center;
	}

	.t_menu_item {
		width: calc(100% / var(--col) - var(--gap-col) * (var(--col) - 1) / var(--col));
		position: relative;

		.ttl {
			position: absolute;
			top: 3vw;
			left: 0;
			isolation: isolate;
			font-weight: 700;
			font-size: 1.3rem;
			padding: 0.6vw 0vw 0.6vw 2vw;
			z-index: 10;
			width: 93%;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 0;
				left: -0.8vw;
				width: 100%;
				height: 100%;
				background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.9) 20%, rgba(255, 255, 255, 0.9) 100%);
				border-radius: 0 10rem 10rem 0;
				z-index: -1;
			}

			&:after {
				content: '';
				display: block;
				position: absolute;
				bottom: 0;
				left: -0.8vw;
				z-index: -2;
				width: 0.8vw;
				transform: translateY(50%);
				aspect-ratio: 1 / 2;
				background: #bfbfbf;
				-webkit-clip-path: polygon(100% 100%, 0 50%, 100% 0);
				clip-path: polygon(100% 100%, 0 50%, 100% 0);
			}
		}

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

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_feature
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_feature {
	--img-radius: 1.4rem;
	--deco-radius: 0.7rem;

	img {
		border-radius: var(--img-radius);
	}

	.t_feature_ttl {
		font-size: 2.2rem;
		letter-spacing: 0.08em;
		text-align: center;
		margin-bottom: 8vw;
			font-weight: 500;

		.txt01 {
			position: relative;
			isolation: isolate;
			letter-spacing: 0.08em;
			font-weight: 500;

			&::before {
				content: '';
				display: block;
				position: absolute;
				bottom: 0.4vw;
				left: 0;
				width: 100%;
				height: 2vw;
				z-index: -1;
				background: #fff600;
				opacity: 0.6;
			}

			strong {
				font-size: 2.8rem;
				font-weight: 500;
			}
		}
	}

	.t_feature_item_body {
		position: relative;
		z-index: 10;
	}

	.t_feature_item_en {
		position: relative;
		padding-left: 12vw;
		display: flex;
		align-items: center;
		font-family: var(--font-en);

		&:before {
			content: '';
			display: block;
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			left: 0;
			width: 8vw;
			height: 1px;
			z-index: 1;
			background: var(--blue);
		}

		span {
			letter-spacing: 0.12em;
			font-size: 1.5rem;
			margin-right: 2vw;
		}

		em {
			font-size: 2.3rem;
			letter-spacing: 0.08em;
			line-height: 1;
		}
	}

	.t_feature_item_ttl {
		margin-top: 1vw;
		font-weight: 500;
		font-size: 2.2rem;
		letter-spacing: 0.08em;
		line-height: calc(47/30);
	}

	.t_feature_item_catch {
		margin-top: 4vw;
		font-weight: 500;
		font-size: 1.9rem;
		letter-spacing: 0.08em;
		color: var(--blue);
		line-height: 1.7;
	}

	.t_feature_txt {
		margin-top: 3vw;
	}

	.t_feature_item_imgs {
		position: relative;
		z-index: 1;
		margin-top: 10vw;

		&:before {
			content: '';
			display: block;
			position: absolute;
			z-index: -1;
			background: #e9f8ff;
			border-radius: 2vw;
		}

		&:after {
			content: '';
			display: block;
			position: absolute;
			z-index: -2;
			border: 1px solid #c0ece5;
			border-radius: 2vw;
		}

		.t_feature_item:nth-of-type(2n) & {
			&:before {
				background: #cde9f6;
			}
		}

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

		.img02 {
			position: absolute;
			z-index: 10;
		}

		.img03 {
			position: absolute;
			z-index: 10;
		}
	}

	.t_feature_item.item01 {
		.t_feature_item_imgs {
			&:before {
				width: 70vw;
				aspect-ratio: 730/350;
				inset: auto auto -9vw 28vw;
			}

			&:after {
				width: 15vw;
				aspect-ratio: 1/1;
				inset: -7vw auto auto 36vw;
			}

			.img01 {
				width: 44vw;
			}

			.img02 {
				width: 23vw;
				inset: auto auto -5vw 63vw;
			}

			.img03 {
				width: 23vw;
				inset: auto auto -5vw 37vw;
			}
		}
	}

	.t_feature_item.item02 {
		margin-top: 18vw;

		.t_feature_item_imgs {
			&:before {
				width: 50vw;
				aspect-ratio: 470/370;
				inset: -8vw auto auto 26vw;
			}

			&:after {
				width: 38vw;
				aspect-ratio: 380/204;
				inset: auto -3vw -7vw auto;
			}

			.img01 {
				width: 46vw;
				margin-left: auto;
			}

			.img02 {
				width: 17vw;
				inset: auto auto -3vw 7vw;
			}

			.img03 {
				width: 25vw;
				inset: auto auto -7vw 29vw;
			}
		}
	}

	.t_feature_item.item03 {
		margin-top: 20vw;

		.t_feature_item_imgs {
			&:before {
				width: 70vw;
				aspect-ratio: 950/310;
				inset: -128vw auto auto -8vw;
			}

			&:after {
				display: none;
			}

			.img01 {
				width: 44vw;
			}

			.img02 {
				width: 15vw;
				inset: auto auto 4vw 59.3vw;
			}

			.img03 {
				width: 28vw;
				inset: auto auto 23vw 52vw;
			}
		}
	}

	.t_feature_item.item04 {
		margin-top: 14vw;

		.t_feature_item_imgs {
			&:before {
				width: 40vw;
				aspect-ratio: 310/180;
				inset: -5vw auto auto 19vw;
			}

			&:after {
				width: 37vw;
				aspect-ratio: 360/320;
				inset: -24vw -2vw auto auto;
			}

			.img01 {
				width: 51vw;
				margin-left: auto;
				margin-right: 5vw;
			}

			.img02 {
				width: 28.7vw;
				inset: auto auto -10vw 12vw;
			}
		}
	}

	.t_feature_item.item05 {
		margin-top: 20vw;

		.t_feature_item_imgs {
			&:before {
				width: 63vw;
				aspect-ratio: 830/450;
				inset: -69vw auto auto 36vw;
			}

			&:after {
				display: none;
			}

			.img01 {
				width: 48vw;
			}

			.img02 {
				width: 29vw;
				inset: -9vw auto auto 40vw;
			}

			.img03 {
				width: 18vw;
				inset: 26vw 4vw auto auto;
			}
		}
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_greeting
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_greeting {
	background: #efefe8 url(../images/top/greeting_img01_sp.jpg) center bottom / 100% no-repeat;

	.img_bg_block {
		padding-bottom: 58vw;
	}

	.t_greeting_ttl {
		border: 1px solid var(--main-font-color);
		width: fit-content;
		padding: 0.9vw 8vw;
		font-size: 2rem;
		letter-spacing: 0.22em;
		font-weight: 500;
	}

	.t_greeting_txt {
		margin-top: 7vw;
	}

	.t_greeting_btn {
		margin-top: 8vw;
	}
}

.m_slider {
	margin-top: 13vw;
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_other
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_other {
	.t_other_block {
		display: grid;
		gap: 12vw;
	}

	.t_other_column {
		margin-top: 5vw;
	}

	.m_scroll_list {
		height: 60vw;
	}

	.t_other_img {
		img {
			border-radius: 3vw;
		}
	}

	.t_other_catch {
		color: var(--green);
		font-weight: 500;
		text-align: center;
		line-height: calc(52/34);
		margin-top: 5vw;
		font-size: 2.6rem;
		letter-spacing: 0.1em;
	}

	.t_other_btn {
		margin-top: 5vw;
	}
}