@charset "utf-8";

#under {
	padding-top: 146px;
}

.img_bg_block {
	padding: 150px 0;
}

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

.m_ttl01 .txt01 {
	font-size: 8.5rem;
}

.m_ttl01 .txt02 {
	font-size: 2.7rem;
	line-height: 1.6;
	margin-top: 7px;
}

.btn01 {
	--btn-height: 80px;
	--btn-width: 320px;
	--icon-right: 20px;
	--icon-size: 24px;
	font-size: 1.8rem;
	padding: 9px 52px 14px 40px;
	width: fit-content;
}

.btn01:before {
	top: calc(50% + -0.2rem);
}

.btn01:after {
	height: 16px;
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_news
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_news {}

.t_news .img_bg_block {
	padding: 0;
}

.t_news_block {
	display: flex;
}

.t_news_head {
	flex-direction: column;
	align-items: flex-start;
	width: 160px;
	min-height: 194px;
	justify-content: center;
}

.t_news_ttl {
	font-size: 3.6rem;
	line-height: 1;
}

.t_news_btn {
	width: 120px;
	margin: 12px 0 0;
}

.t_news_body {
	flex: 1;
	display: flex;
}

.m_newslist {
	margin-top: 0;
	--gap-col: 0px;
	--gap-row: 0px;
	--col: 4;
	display: flex;
	flex-wrap: wrap;
	gap: var(--gap-row) var(--gap-col);
	width: 100%;
}

.m_newslist_item {
	width: calc(100% / var(--col) - var(--gap-col) * (var(--col) - 1) / var(--col));
	border-top: 0;
	border-bottom: 0 !important;
	border-left: 1px solid #cccccc;

	&:last-of-type {
		border-right: 1px solid #cccccc;
	}
}

.m_newslist_item_in {
	padding: 0 20px 17px;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.m_newslist_item_in .date {
	font-size: 1.5rem;
	margin-bottom: 2px;
}

.m_newslist_item_in em {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-height: calc(27/16);
	min-height: 81px;

	&:before {
		bottom: 0.4em;
		right: 0;
		font-size: 1.1rem;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_message
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_message {
	background: #d6d2cf url(../images/top/message_bg.jpg) center / cover no-repeat;

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

	.t_message_block {
		--filter-opacity: 0.4;
		--shadow-size: 0.8rem;
		--shadow-color: 255, 255, 255;
		filter:
			drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity)));
		width: 670px;

		.t_message_ttl {
			padding: 21px 50px 20px 58px;
			align-items: flex-start;
			text-align: left;

			&:before {
				top: -17px;
				left: -32px;
				width: 62px;
			}

			.txt01 {
				font-size: 5rem;
			}

			.txt02 {
				margin-top: -2px;
				font-size: 2.1rem;
			}
		}

		.t_message_txt {
			margin-top: 27px;

			p {}
		}

		.t_message_btns {
			margin-top: 33px;
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 20px 0;

			.btn01 {
				--btn-height: 60px;
				padding: 7px 50px 10px 40px;
				margin: 0;
				background: rgba(255, 255, 255, 0.1);

				&:before {}
			}
		}
	}

	.t_message_name {
		left: 55%;
		bottom: -12%;

		.txt01 {
			font-size: 1.8rem;

			span {
				font-size: 2.1rem;
				letter-spacing: 0.05em;
			}
		}

		.txt02 {
			font-size: 1.4rem;
		}

		&.t_message_name02 {
			left: 80%;
			bottom: 71%;
		}
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_trouble
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_trouble {
	&:before {
		width: 410px;
	}

	&:after {
		width: 410px;
	}

	.img_bg_block {
		padding: 120px 0 154px;
	}

	.t_trouble_ttl {
		padding-top: 88px;
		background: url(../images/top/trouble_ttl_flower.png) center top / 362px no-repeat;
	}

	.t_trouble_block {
		--gap-col: 25px;
		--gap-row: 24px;
		--col: 3;
		margin-top: 63px;

		.t_trouble_item {
			&:before {
				top: -3px;
				left: -3px;
				width: 40px;
			}

			.t_trouble_list {
				padding: 20px 30px 18px;
				display: grid;
				gap: 5px;

				li {
					padding-left: 31px;
					font-size: 1.8rem;
					line-height: 1.4;

					&:before {
						top: 3px;
						width: 21px;
					}
				}
			}

			.t_trouble_more {
				padding: 0px 8px;

				span {
					padding-right: 21px;
					font-size: 1.3rem;

					&:before {
						width: 16px;
					}
				}
			}
		}
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_medical
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_medical {
	.img_bg_block {
		padding: 190px 0 0;
	}

	.t_medical_block {
		background: url(../images/top/medical_bg.png) center / 500px repeat;
		border-radius: 20px;
		width: calc(100% - 120px);
		padding: 152px 0 168px;

		&:before {
			bottom: -50px;
			left: -60px;
			width: 668px;
		}
	}

	.t_medical_ttl {
		transform: translateY(-48px);

		.txt01 {
			--leaf-position: 248px;
			--leaf-size: 368px;

			&:before,
			&:after {
				top: 55%;
			}
		}
	}

	.t_medical_list {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 24px;
	}

	.t_medical_item {
		--gutter: 9px;
		--in-radius: 15px;
		border-radius: 20px;
		overflow: hidden;

		&:after {
			width: 40px;
		}

		&:hover {
			opacity: 1;

			.t_medical_item_txt {
				opacity: 1;
			}
		}
	}

	.t_medical_item_head {
		padding-bottom: 22px;

		.t_medical_item_img {
			width: 89px;
		}

		.t_medical_item_ttl {
			font-size: 2.3rem;
			margin-top: 7px;

			span {
				font-size: 1.7rem;
			}
		}
	}

	.t_medical_item_txt {
		display: block;
		background: #f08200;
		opacity: 0;
		transition: 0.5s;
		color: #fff;
		display: flex;
		align-items: center;
		padding: 0 32px;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 5;
	}

	.t_medical_btn {
		display: block;
		margin-top: 0;
		position: absolute;
		bottom: -2px;
		right: 89px;
		width: 608px;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_feature
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_feature {
	&:before {
		top: -149px;
		right: -64px;
		width: 530px;
	}

	.img_bg_block {
		padding: 150px 0 0;
	}

	.t_feature_ttl {
		width: 630px;
		margin: 0 auto 106px;
		position: relative;
		left: -16px;
	}

	.t_feature_block {
		--gap-col: 0px;
		--gap-row: 0px;
	}

	.m_feature {
		position: relative;

		.link:hover {
			opacity: 0.85;
		}
	}

	.m_feature_head {
		position: relative;

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

		.link {
			width: 211px;
		}
	}

	.m_feature_body {
		margin-top: 0;
	}

	.m_feature_en {
		width: fit-content;
		padding: 0 0 0 47px;
		background: url(../images/icon_logo.png) left top 3px / 34px no-repeat;
		font-size: 2.5rem;
	}

	.m_feature_ttl {
		margin-top: 7px;
		font-size: 3rem;
		letter-spacing: 0.1em;
	}

	.m_feature_txt {
		margin-top: 10px;
	}

	.m_feature.m_feature01 {
		.m_feature_body {
			width: 490px;
			padding: 0px 0 40px;
		}

		.m_feature_head {
			position: absolute;
			width: 760px;
			left: 505px;
			top: -70px;
		}

		.m_feature_head .link {
			bottom: -28px;
			right: 65px;
		}
	}

	.m_feature.m_feature02 {
		padding-top: 437px;
		margin: 30px 0 118px;
		z-index: 10;

		.m_feature_body {
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			padding-left: 60px;
			position: relative;
			z-index: 10;
			--filter-opacity: 0.6;
			--shadow-size: 0.4rem;
			--shadow-color: 255, 255, 255;
			filter:
				drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity))) drop-shadow(0px 0px var(--shadow-size) rgba(var(--shadow-color), var(--filter-opacity)));
		}

		.m_feature_en {
			margin-right: 28px;
		}

		.m_feature_ttl {
			margin-top: 0;
			position: relative;
			top: -6px;
		}

		.m_feature_txt {
			margin-top: 6px;
		}

		.m_feature_head {
			position: absolute;
			width: 1206px;
			left: -177px;
			top: -32px;
			z-index: 1;
		}

		.m_feature_head .link {
			bottom: -85px;
			right: -172px;
		}

		.link {
			width: 211px;
			top: 460px;
			right: 0px;
			z-index: 13;

			&:hover {
				opacity: 0.6;
			}
		}
	}

	.m_feature.m_feature03 {
		--col: 2;
		padding-top: 306px;
		z-index: 5;

		&:before {
			top: -365px;
			left: -820px;
			width: 1330px;
		}

		.m_feature_body {
			padding-right: 111px;
		}

		.m_feature_head {
			position: absolute;
			width: 578px;
			left: 11px;
			top: -59px;
			z-index: 1;
		}

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

		.m_feature_head .link {
			bottom: -58px;
			right: 45px;
		}
	}

	.m_feature.m_feature04 {
		--col: 2;
		padding-bottom: 360px;

		&:before {
			top: -110px;
			right: -110px;
			width: 370px;
		}

		.m_feature_head {
			position: absolute;
			width: 628px;
			left: -30px;
			bottom: -42px;
			z-index: 1;
		}

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

		.m_feature_head .link {
			bottom: 32px;
			left: 70px;
		}

		.m_feature_body {
			padding-left: 38px;
			padding-right: 68px;
		}
	}

	.m_feature.m_feature05 {
		margin-top: 98px;

		.m_feature_body {
			width: 500px;
			padding: 30px 0 40px;
			margin-left: auto;
		}

		.m_feature_head {
			position: absolute;
			width: 746px;
			left: -98px;
			top: -42px;
		}
	}

	.m_feature.m_feature06 {
		margin-top: 14px;

		&:before {
			top: -127px;
			right: -850px;
			width: 1363px;
		}

		.m_feature_head {
			position: relative;
			width: 100%;
		}

		.m_feature_body {
			width: 100%;
			padding: 12px 0 40px;
			text-align: center;
			display: flex;
			flex-direction: column;
			align-items: center;
		}

		.m_feature_ttl {
			margin-top: 3px;
		}

		.m_feature_txt {
			margin-top: 17px;
		}
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
m_slider
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.m_slider {
	padding: 53px 0 100px;
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_clinic
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_clinic {
	.img_bg_block {
		padding: 0;
	}

	.t_clinic_block {
		display: flex;
	}

	.t_clinic_head {
		padding: 55px 50px 0;
		width: 550px;
	}

	.t_clinic_ttl {
		width: calc(100% + 2px);
		max-width: 452px;
		margin: 0 -1px;
	}

	.t_clinic_address {
		margin-top: 11px;
	}

	.t_clinic_tel {
		margin: 20px auto 0;
		width: 329px;
	}

	.t_clinic_time {
		border-radius: 20px;
		padding: 20px 30px;
		margin-top: 20px;

		.table_hosoku {
			margin-top: 10px;
			font-size: 1.6rem;
			line-height: 1.875;
		}
	}

	.t_clinic_points {
		margin-top: 13px;

		li {
			padding: 25px 0 25px 86px;
			background-size: 70px;
			font-size: 1.7rem;
			line-height: 1.5;
		}
	}

	.t_clinic_btn {
		margin-top: 5px;
	}

	.t_clinic_bnrs {
		margin: 37px -50px 0;
	}

	.t_clinic_body {
		flex: 1;

		.gmap {
			height: 100%;
		}
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_insta
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_insta {
	.img_bg_block {
		padding: 10px 0 127px;
	}

	.t_insta_wrap {
		position: relative;

		.t_insta_block {
			padding: 0 15px;

			#sb_instagram {
				padding-bottom: 0 !important;
			}
		}

		.t_insta_btn {
			top: calc(50% - 50px);
			width: 100px;
		}
	}

	#sbi_load {
		margin-top: 37px;
		position: absolute;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_column
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_column {
	background: url(../images/top/column_bg.png) center / 30px repeat;

	&:before {
		width: 402px;
	}

	&:after {
		width: 480px;
	}

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

	.t_column_ttl {
		margin-bottom: 68px;
	}

	.t_column_block {}

	.t_column_btn {
		margin-top: 53px;
	}
}

/*______________________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t_recruit
______________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
.t_recruit {
	background: #f2e4c0 url(../images/top/recruit_bg.jpg) right center / cover no-repeat;

	.img_bg_block {
		padding: 0;
	}

	.t_recruit_block {
		padding: 20px 0 30px;
		min-height: 500px;
		width: 490px;
		margin-left: auto;
		display: flex;
		flex-direction: column;
		justify-content: center;

		.t_recruit_ttl {
			width: 337px;
			margin: 0 auto;
		}

		.t_recruit_txt {
			text-align: center;
			margin-top: 8px;
		}

		.t_recruit_btn {
			margin-top: 21px;
		}
	}
}