@charset "utf-8";
/*	===============================================================
	● サイトCSSファイル
	---------------------------------------------------------------
	Release 2024.10.15                               Powerd by TDR
	=============================================================== */

	/*============================
		Webフォント
	============================*/
	@import url('https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;800&family=M+PLUS+1p:wght@700&display=swap');
	/*
		font-family: "BIZ UDPGothic", sans-serif; font-weight: 400;
		font-family: "BIZ UDPGothic", sans-serif; font-weight: 800;
		font-family: "M PLUS 1p", sans-serif; font-optical-sizing: auto;
	*/
	:root {
		--font_awesome:"Font Awesome 6 Free";
		--link_color:#0f88bc;
		--btn_color:#7bcadd;
		--aside_color:#999;
		--mb_xsmall:21px;
		--mb_small:28px;
		--mb_middle:40px;
		--mb_large:65px;
	}
	@media screen and (max-width: 768px)
	{
		:root {
			--mb_xsmall:8px;
			--mb_small:13px;
			--mb_middle:25px;
			--mb_large:40px;
		}
	}

	/*============================
		レイアウト
	============================*/
	html
	{
		overflow: auto;
		font-size: 62.5%;
		margin: auto;
		padding:0;
		scroll-behavior: smooth;
		scroll-padding-top: 120px;
	}

	body
	{
		font-family: "BIZ UDPGothic", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', 'Meiryo', 'MS Ｐゴシック', 'MS PGothic', sans-serif;
		font-size: 1.7rem;
		font-weight: 400;
		background: #fff;
		color:#222;
		font-weight: 400;
		margin: auto;
		padding:0;
		position: relative;
		line-height: 1.8;
		letter-spacing: 0.05em;
	}
	main
	{
		display:block;
		width: 100%;
		position: relative;
		z-index: 0;
		margin-bottom: 0;
	}
	main > article,
	main > section
	{
		display:block;
		width: 100%;
		background:#fff;
	}
	.container
	{
		max-width:1200px;
		width:100%;
		margin:0 auto;
		padding:70px 30px 0px;
		position: relative;
		z-index: 0;
	}
	article > .container
	{
		padding-top: 0px;
	}
	header > .container
	{
		max-width:100%;
	}
	section.contents_wrap
	{
		width: 100%;
	}
	section.contents_wrap.member
	{
		background:#f0f1f1;
		padding-bottom:var(--mb_large);
	}
	figure img
	{
		width:100%;
		height:auto;
	}
	figure.obfit_contain img
	{
		object-fit: contain!important;
	}

	p
	{
		text-align: justify;
		word-break: break-all;
	}
	a,
	a *
	{
		color:#222;
		/* transition: 0.3s; */
		transition: 0.1s;
		text-decoration: none;
	}
	a:hover
	{
		color:#0f88bc;
		/* opacity: 0.8; */
		opacity: 1;
	}
	a.p_link
	{
		color:#0f88bc;
	}
	a.p_link:hover
	{
		opacity: 0.6;
	}

	.mb_x{margin-bottom:var(--mb_xsmall)!important}
	.mb_s{margin-bottom:var(--mb_small)!important}
	.mb_m{margin-bottom:var(--mb_middle)!important}
	.mb_l{margin-bottom:var(--mb_large)!important}

	.m_auto{margin:auto}

	:is(.txt,.txt_wrap,.kome,.flow_inner ) a
	{
		text-decoration: underline;
		text-underline-offset: .3em;
		text-decoration-color: #0f88bc;
		transition: 0.1s;
		color:#0f88bc;
	}
	:is(.txt,.txt_wrap,.kome,.flow_inner) a:hover
	{
		text-decoration: none;
		opacity: 0.8;
	}
	.btn_wrap a
	{
		display: block;
		width: fit-content;
		min-width: 330px;
		margin:0 auto;
		text-decoration: none;
		color:#fff;
		background:var(--btn_color);
		padding: 10px 20px 10px 20px;
		border: 2px solid var(--btn_color);
		border-radius: 8px;
		font-weight: bold;
		letter-spacing: 0.1em;
		text-align: center;
	}
	.btn_wrap a:hover
	{
		transition: 0.5s;
		color:var(--btn_color);
		background: #fff;
	}
	.btn_wrap.top_btn a
	{
		min-width: auto;
		border:2px solid;
		background: #fff;
	}
	.btn_wrap.top_btn a i
	{
		color:#cdcdcd;
		padding-right:0.5em;
	}
	.btn_wrap.top_btn a:hover
	{
		color:#fff;
	}
	.resource .btn_wrap.top_btn a
	{
		border-color:var(--btn_color);
		color: var(--link_color);
	}
	.resource .btn_wrap.top_btn a:hover
	{
		color:#fff;
		background:var(--btn_color);
	}

	.brain_bank .btn_wrap.top_btn a
	{
		border-color:#f9bf2b;
		color: #f9a038;
	}
	.brain_bank .btn_wrap.top_btn a:hover
	{
		color:#fff;
		background:#f9bf2b;
	}


	a.arw
	{
		display: flex;
		width:fit-content;
		align-items: baseline;
		gap:10px;
		line-height: 1.3;
		padding-bottom: .1em;
		background: linear-gradient(#38ade0, #38ade0) 0 100% / 0 1px no-repeat;
		transition: background 0s;
		text-decoration: none;
	}
	a.arw:hover
	{
		color:#0f88bc;
		background-size: 100% 1px;
	}
	a.arw::before
	{
		content:"";
		display: inline-block;
		min-width:1em;
		height:1em;
		position: relative;
		top:0.2em;
		background-color: #70a5ff;
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: 100%;
		mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"/></svg>');
	}

	a.download
	{
		display: flex;
		width:fit-content;
		/* align-items: center; */
		align-items: baseline;
		gap:10px;
		padding-bottom: .1em;
		background: linear-gradient(#38ade0, #38ade0) 0 100% / 0 1px no-repeat;
		transition: background 0s;
		text-decoration: none;
		line-height: 2;
	}

	a.download:hover
	{
		color:#0f88bc;
		background-size: 100% 1px;
	}
	a.download::before
	{
		content:"";
		display: inline-block;
		width:1em;
		height:1em;
		background-color: #70a5ff;
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: 100%;
		mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"/></svg>');
	}

	a.page_back
	{
		width:fit-content;
		display: flex;
		justify-content: center;
		align-items: center;
		gap:10px;
		padding:0.1em 0.3em;
		margin:0 auto 0.5em;
		transition: 0.3s;
		text-decoration: none;
		border-bottom:1px solid #38ade0;
	}
	a.page_back:hover
	{
		color:#0f88bc;
		border-color:transparent;
	}
	a.page_back::before
	{
		content:"";
		display: inline-block;
		width:1em;
		height:1em;
		background-color: #70a5ff;
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: 100%;
		mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z"/></svg>');
	}

	input[type="text"],
	input[type="search"],
	input[type="date"],
	input[type="tel"],
	input[type="mail"],
	input[type="password"],
	select
	{
		padding: 10px;
		border: #999 solid 1px;
		border-radius: 4px;
		background: #fff;
		font-size: 1.6rem;
		width:100%;
	}
	select
	{
		padding: 10px 30px 10px 10px;
    	background: url(../images/cmn/select_down.svg) no-repeat top 50% right 8px / 14px auto #fff;
	}
	textarea
	{
		padding: 10px;
		border: #999 solid 1px;
		border-radius: 4px;
		background: #fff;
		font-size: 1.6rem;
		width:100%;
		height:100%;
	}
	::placeholder
	{
		color:#ccc;
	}

	.radio_wrap ul
	{
		display: flex;
		flex-flow: row nowrap;
		align-items: center;
		gap:20px;
	}
	.radio_wrap.contact_category ul
	{
		flex-flow: row wrap;
		gap:10px 20px;
	}
	.radio_wrap ul li label span
	{
		position: relative;
		padding:5px 5px 5px 30px;
		cursor: pointer;
	}
	.radio_wrap ul li label span::before,
	.radio_wrap ul li label span::after
	{
		content: "";
		display: block;
		border-radius: 50%;
		position: absolute;
		transform: translateY(-50%);
		top: 50%;
	}
	.radio_wrap ul li label span::before
	{
		background-color: #fff;
		border: 1px solid #999;
		border-radius: 50%;
		width: 18px;
		height: 18px;
		left: 5px;
	}
	.radio_wrap ul li label span:hover::before
	{
		border: 1px solid var(--btn_color);
	}
	.radio_wrap ul li label span::after
	{
		background-color: var(--btn_color);
		border-radius: 50%;
		opacity: 0;
		width: 14px;
		height: 14px;
		left: 7px;
		transition: 0.1s;
	}
	.radio_wrap ul li label input[type=radio]:checked + span::before
	{
		border: 1px solid var(--btn_color);
	}
	.radio_wrap ul li label input[type=radio]:checked + span::after
	{
		opacity: 1;
	}


	.check_wrap ul
	{
		display: flex;
		flex-flow: row nowrap;
		align-items: center;
		gap:20px;
	}
	.check_wrap.contact_category ul
	{
		flex-flow: row wrap;
		gap:10px 20px;
	}
	.check_wrap ul li label span
	{
		position: relative;
		padding:5px 5px 5px 30px;
		cursor: pointer;
	}
	.check_wrap ul li label span::before,
	.check_wrap ul li label span::after
	{
		content: "";
		display: block;
		border-radius: 0;
		position: absolute;
		transform: translateY(-50%);
		top: 50%;
	}
	.check_wrap ul li label span::before
	{
		background-color: #fff;
		border: 1px solid #999;
		border-radius: 0%;
		width: 18px;
		height: 18px;
		left: 5px;
	}
	.check_wrap ul li label span:hover::before
	{
		border: 1px solid var(--btn_color);
	}
	.check_wrap ul li label span::after
	{
		background-color: var(--btn_color);
		border-radius: 0%;
		opacity: 0;
		width: 14px;
		height: 14px;
		left: 7px;
		transition: 0.1s;
	}
	.check_wrap ul li label input[type=checkbox]:checked + span::before
	{
		border: 1px solid var(--btn_color);
	}
	.check_wrap ul li label input[type=checkbox]:checked + span::after
	{
		opacity: 1;
	}
	.flex-normal-wrap
	{
		width:fit-content;
		margin:auto
	}

	.alc
	{
		text-align: center;
	}
	.alr
	{
		text-align: right;
	}

	.pc_only{display:block;}
	.sp_only{display:none;}

	.fs_s
	{
		font-size:1.3rem
	}
	.color_gray
	{
		color:var(--aside_color);
	}

	@media screen and (max-width: 1024px)
	{
		body
		{
			font-size: 1.6rem;
		}
	}
	@media screen and (max-width: 768px)
	{
		body
		{
			font-size: 1.5rem;
		}
		.container
		{
			padding:30px 15px 0px;
		}
		article > .container
		{
			padding-top: 0px;
		}

		.radio_wrap ul
		{
			gap:10px;
		}
		section.contents_wrap .contents
		{
			max-width: 100%;
			width: 100%;
			padding:30px 20px;
		}
		.pc_only{display:none;}
		.sp_only{display:inline-block;}

		.btn_wrap a
		{
			min-width: auto;
			padding: 10px;
		}
	}

	/*============================
		ブランディング
	============================*/
	.branding
	{
		width: 100%;
		position: relative;
		background-size: cover;
		margin-bottom:60px;
	}
	.branding.main_kv
	{
		aspect-ratio: 950 / 333;
		max-height:550px;
	}
	.branding.main_kv .kv_slide
	{
		width:100%;
		height:100%;
		position: relative;
		z-index: 0;
	}
	.branding.main_kv .kv_slide img
	{
		width:100%;
		height:100%;
		object-position:center top;
	}
	.branding .kv_copy
	{
		width: 90%;
		max-width: 800px;
		margin: auto;
		position: absolute;
		left:50%;
		transform:translate(-50%, 0);
		bottom:-30px;
		z-index: 10;
	}
	.branding.main_kv .kv_copy
	{
		/* padding-top:5%; */
		text-align: center;
	}
	.branding.main_kv .kv_copy span
	{
		display: block;
		max-width: 550px;
		width: 70%;
		margin:0 auto 30px;
		position: relative;
	}
	.branding.main_kv .kv_copy img
	{
		width: 100%;
		height:auto;
		filter: drop-shadow(0px 0px 8px #000);
	}
	.branding.main_kv .kv_copy span img
	{
		filter: drop-shadow(3px 5px 5px #000);
	}
	.branding.main_kv .kv_copy span::after
	{
		content:"";
		position: absolute;
		left:50%;
		transform:translate(-50%, 0);
		bottom:-20px;
		width:115%;
		height:3px;
		background: #fff;
	}

	/* sub_kv */
	.branding.sub_kv
	{
		height:150px;
/*
		background-image:url(../images/cmn/kv01.jpg);
*/
		background-image:url(../images/cmn/kv02.jpg);
		background-repeat: no-repeat;
		background-position: top 40% center;
		position: relative;
	}
	.branding.sub_kv::after
	{
		content:"";
		width:100%;
		height:150px;
		background: #000;
		position: absolute;
		top:0;
		left:0;
		filter: opacity(40%);
	}
	.branding.sub_kv .kv_copy
	{
		width: 100%;
		max-width: 950px;
		margin: auto;
		text-align: center;
		position: absolute;
		left:50%;
		transform:translate(-50%, -50%);
		top:50%;
		z-index: 10;
		filter: brightness(100%);
	}
	.branding.sub_kv .kv_copy h1
	{
		color:#fff;
		font-size:3.3rem;
	}


	@media screen and (max-width: 768px)
	{
		.branding
		{
			margin-bottom:50px;
		}
		.branding.main_kv .kv_copy span
		{
			margin:0 auto 10px;
			width: 30%;
		}
		.branding.main_kv .kv_copy span::after
		{
			width:130%;
			bottom:0px;
			height:2px;
		}
		.branding.sub_kv
		{
			height:100px;
		}
		.branding.sub_kv::after
		{
			height:100px;
		}
		.branding.sub_kv .kv_copy
		{
			top:60%;
		}
		.branding.sub_kv .kv_copy h1
		{
			font-size:2.5rem;
		}
	}


	/*============================
		read
	============================*/
	.top_aboutus
	{
		width:100%;
		padding-bottom:70px;
	}
	.top_aboutus h3
	{
		font-size:4rem;
		font-weight: normal;
		padding-bottom: 10px;
		border-bottom: 5px solid#f9bf2b;
		margin-bottom: 50px;
		position: relative;
	}
	.top_aboutus h3::before,
	.top_aboutus h3::after
	{
		position: absolute;
		top: 100%;
		left: 50%;
		content: "";
		height: 0;
		width: 0;
	}
	.top_aboutus h3:before
	{
		border: 25px solid;
		border-color: transparent;
		border-top-color: #f9bf2b;
		margin-left: -25px;
	}
	.top_aboutus h3:after {
		border: 18px solid;
		border-color: transparent;
		border-top-color: white;
		margin-left: -18px;
	}
	.important_wrap
	{
		background: #fff;
		border:2px solid #ff1f54;
		padding:15px 30px;
		border-radius: 0 10px 10px 0;
		width:calc(100% - 45px);
		position: relative;
		left:45px;
	}
	.top_category .important_wrap
	{
		margin-bottom:60px;
	}
	.important_wrap:before
	{
		content:"\f05a";
		font-family: var(--font_awesome);
		font-weight: 800;
		font-size:2rem;
		width:45px;
		color:#fff;
		background: #ff1f54;
		border:2px solid #ff1f54;
		border-radius: 10px 0 0 10px;
		position: absolute;
		top:-2px;
		left:-45px;
		height:calc( 100% + 4px );
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.contents .important_wrap
	{
		background: #fff;
		border:2px solid #ff1f54;
		padding:15px 20px;
		border-radius: 8px;
		width:100%;
		position: relative;
		left:0;
		/* margin-bottom:60px; */
	}
	.contents .important_wrap:before
	{
		content:none;
	}
	.contents .important_wrap h4
	{
		color:#ff1f54;
		margin-bottom:10px;
	}
	.important_wrap ul li
	{
		margin-bottom:15px;
		display: flex;
		gap:30px;
		color: #ff1f54;
		font-weight: 800;
	}
	.important_wrap ul li:last-child
	{
		margin-bottom:0;
	}
	.important_wrap ul li div.time
	{
		width:106px;
		white-space: nowrap;
		letter-spacing: 0;
	}
	.important_wrap ul li div.ttl
	{
		width:calc(100% - 30px - 106px);
	}
	.important_wrap ul li div.ttl a
	{
		color: #222;
		padding-bottom: .3em;
		background: linear-gradient(#38ade0, #38ade0) 0 100% / 0 3px no-repeat;
		transition: background 0s;
		text-decoration: none;
	}
	.important_wrap ul li div.ttl a:hover
	{
		color: #0f88bc;
    	background-size: 100% 1px;
	}
	@media screen and (max-width: 768px)
	{
		.top_aboutus
		{
			padding-bottom:30px;
		}
		.top_aboutus h3
		{
			font-size:2.3rem;
			line-height: 1.5;
			text-align: justify;
		}
	}

	/*============================
		message
	============================*/
	.top_message
	{
		background: #f0f1f1;
		padding-bottom:70px;
	}
	.top_message h3
	{
		font-size:3rem;
		text-align: center;
		text-shadow: 2px 2px 1px #fff;
		font-weight: normal;
		margin-bottom:40px;
	}
	.message_flex
	{
		display: flex;
		justify-content: space-between;
		gap:55px;
	}
	.message_flex > div
	{
		width:calc((100% - 55px) / 2);
		display: flex;
		flex-direction: column;
		justify-content: space-between;
	}
	.message_flex > div figure
	{
		margin-bottom:35px;
		position: relative;
		z-index: 1;
	}
	.message_flex > div figure img
	{
		width:100%;
		aspect-ratio: 6 / 4;
		object-fit: cover;
		border-radius: 15px;
	}
	.message_flex > div figure:after
	{
		content:"";
		position: absolute;
		z-index: -1;
		top: 97%;
		left: 50%;
		height: 0;
		width: 0;
		border: 25px solid;
		border-color: transparent;
		margin-left: -25px;
	}
	.message_flex > div.resource figure:after
	{
		border-top-color: #9dd5e2;
	}
	.message_flex > div.brain_bank figure:after
	{
		border-top-color: #f5d175;
	}
	.message_flex > div h4
	{
		font-size: 2.8rem;
		text-align: center;
		margin-bottom: 10px;
	}
	.message_flex > div > p
	{
		flex-grow: 2;
		margin-bottom: 25px;
	}
	.message_flex > div .btn_wrap
	{
		width: 100%;
		display: flex;
		justify-content: center;
		gap:55px;
	}
	.message_flex > div .btn_wrap a
	{
		width:calc((100% - 55px) / 2);
	}
	@media screen and (max-width: 768px)
	{
		.top_message
		{
			padding-bottom:30px;
		}
		.top_message h3
		{
			font-size:2.3rem;
			margin-bottom:40px;
		}
		.message_flex
		{
			display: flex;
			flex-direction: column;
			gap:20px;
		}
		.message_flex > div
		{
			width:100%;
			display: flex;
			flex-direction: column;
			justify-content: space-between;
		}
		.message_flex > div > p
		{
			margin-bottom: 15px;
		}
		.message_flex > div h4
		{
			font-size: 2.3rem;
			margin-bottom: 10px;
		}
		.message_flex > div figure:after
		{
			top: 93%;
		}
		.message_flex > div.resource figure img
		{
			border:5px solid #9dd5e2;
		}
		.message_flex > div.brain_bank figure img
		{
			border:5px solid #f5d175;
		}
		.message_flex > div figure img
		{
			width:100%;
			margin: auto;
			aspect-ratio: 6 / 3;
		}
		.message_flex > div .btn_wrap
		{
			flex-direction: column;
			gap:10px;
		}
		.message_flex > div .btn_wrap a
		{
			width: 80%;
			margin:auto;
		}
	}

	/*============================
		information
	============================*/
	.top_information
	{
		padding-bottom:70px;
	}
	.top_information h3
	{
		font-size:3rem;
		text-align: center;
		text-shadow: 2px 2px 1px #fff;
		font-weight: normal;
		margin-bottom:40px;
	}

	ul.news_list
	{
		border-top:2px dotted #999999;
		margin-bottom: 40px;
	}
	ul.news_list li
	{
		padding:0 0;
		border-bottom:2px dotted #999999;
		display: flex;
		justify-content: flex-start;
		align-items: stretch;
		gap:30px;
		line-height: 1.5;
	}
	ul.news_list li > div time,
	.detail_hd > div time
	{
		width:10em;
		height:100%;
		text-align: center;
		padding:15px 0;
		background: #f6f7f7;
		display: block;
	}
	ul.news_list li > a,
	ul.news_list li > span
	{
		padding:15px 0;
	}
	ul.news_list li > a
	{
		color: var(--link_color);
		display: inline-block;
		text-decoration: underline;
		text-decoration-color: var(--link_color);
		text-underline-offset: 4px;
		text-decoration-thickness: 0.05em;
	}

	ul.news_list li > a:hover
	{
		text-decoration-color: #fff;
		text-decoration-thickness: 0;
		transition: 0.3s;
	}

	.detail_hd
	{
		margin-bottom: 50px;
	}

	@media screen and (max-width: 768px)
	{
		.top_information
		{
			padding-bottom:40px;
		}
		.top_information h3
		{
			font-size:2.3rem;
			margin-bottom:20px;
		}
		ul.news_list li
		{
			padding:10px 5px;
			display: block;
			line-height: 1.5;
		}
		ul.news_list li > div time,
		.detail_hd > div time
		{
			width:100%;
			padding:5px 5px;
			font-size: 1.2rem;
			text-align: left;
		}
		ul.news_list li > div time::before,
		.detail_hd > div time::before
		{
			content:"\f017";
			font-family: var(--font_awesome);
			font-weight: 400;
			display: inline-block;
			margin-right:0.3em;
			color:#999;
		}
		ul.news_list li > a,
		ul.news_list li > span
		{
			padding:8px 5px;
			display: block;
		}
	}
	.pager
	{
		margin: 0 auto 0;
		max-width: 1200px;
		width: 80%;
	}
	.pager .page_button
	{
		display: flex;
		align-items: stretch;
		justify-content: center;
		gap: 15px;
	}

	.pager .page_button li a,
	.pager .page_button li.active
	{
		height:25px;
		line-height: 25px;
		display: flex;
		justify-content: center;
		align-items: center;
		border: 1px solid #999;
		text-align: center;
		padding: 0 5px;
		min-width: 25px;
		color: #999;
		font-size:1.3rem;
		letter-spacing: 0;
	}
	.pager .page_button li a:has(i)
	{
		border: none;
	}

	.pager .page_button li a:has(i) i
	{
		color:#999;
	}
	.pager .page_button li a:has(i):hover i
	{
		color:#fff;
		border: 1px solid #999;
	}

	.pager .page_button li a:hover,
	.pager .page_button li.active
	{
		background: #999;
		color: #fff;
	}

	/*============================
		NCNP病院の取り組み
	============================*/
	.attempt
	{
		background: #f7f5f2;
	}
	.attempt_wrap
	{
		margin-top:30px;
		padding-bottom: 60px;
	}
	.attempt_wrap ul
	{
		display: flex;
		justify-content: space-between;
    	gap: 40px;
	}
	.attempt_wrap ul li
	{
		width: calc( ( 100% - 160px ) / 5 );
	}
	.attempt_wrap ul li a
	{
		width:100%;
		height:100%;
		border-radius: 10px;
		display: block;
		text-decoration: none;
		color:#222;
		box-shadow: 3px 3px 10px rgba(0, 0, 0, .5);
		display: flex;
		flex-direction: column;
	}
	.attempt_wrap ul li a figure
	{
		width:100%;
		height:130px;
		border-radius: 10px 10px 0 0;
	}
	.attempt_wrap ul li a figure img
	{
		width:100%;
		height:100%;
		object-fit: cover;
		object-position: 50% 0%;
		border-radius: 8px 8px 0 0;
	}
	.attempt_wrap ul li a.safe figure img
	{
		object-position: 50% 10%;
	}
	.attempt_wrap ul li a.pediatric figure img
	{
		object-position: 50% 30%;
	}
	.attempt_wrap ul li a.research figure img
	{
		object-position: 50% 80%;
	}
	.attempt_wrap ul li a > div
	{
		width: 100%;
		height:100%;
		min-height: 80px;
		background: #fff;
		border-radius: 0 0 8px 8px;
		padding:20px 15px 25px;
		position: relative;
	}
	.attempt_wrap ul li a:hover,
	.attempt_wrap ul li a:hover *
	{
		opacity: 1;
	}
	.attempt_wrap ul li a:hover > div
	{
		background: #e8f4bc;
	}
	.attempt_wrap ul li a > div h4 p
	{
		position: relative;
		z-index: 10;
		text-align: center;
		font-weight: 800;
		display: flex;
		align-items: center;
		justify-content: center;
		height:3em;
		line-height: 1.3;
		flex-wrap: wrap;
	}
	.attempt_wrap ul li a > div h4 span
	{
		display: block;
		text-align: center;
		width:100%;
		color:#808080;
		font-weight: 400;
		font-size:1.1rem;
		letter-spacing: 0;
		margin-top: 5px;
		line-height: 1.3;
	}
	@media screen and (max-width: 768px)
	{
		.attempt_wrap
		{
			padding-bottom: 30px;
		}
		.attempt_wrap ul
		{
			flex-wrap: wrap;
			gap: 20px;
		}
		.attempt_wrap ul li
		{
			width: calc( ( 100% - 20px ) / 2 );
		}
		.attempt_wrap ul li a figure
		{
			width:100%;
			height:100px;
			border-radius: 10px 10px 0 0;
		}
		.attempt_wrap ul li a > div
		{
			min-height: 50px;
			padding:10px 5px 15px;
			position: relative;
		}
		.attempt_wrap ul li a > div h4 p
		{
			font-size:1.4rem;
		}
		.attempt_wrap ul li a > div h4 span
		{
			font-size:1rem;
		}
	}
	/*============================
		施設のご案内
	============================*/
	.floor_wrap
	{
		margin-top: 30px;
		padding-bottom: 60px;
	}
	.floor_wrap ul
	{
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
    	gap: 40px 75px;
	}
	.floor_wrap ul li
	{
		width:calc( ( 100% - 75px ) / 2 );
	}
	.floor_wrap ul li a
	{
		display: flex;
		text-decoration: none;
		border-radius: 10px;
	}
	.floor_wrap ul li a:hover
	{
		opacity: 0.8;
		box-shadow: 1px 1px 8px rgba(0, 0, 0, .3);
	}
	.floor_wrap ul li a figure
	{
		width:50%;
	}
	.floor_wrap ul li a figure img
	{
		width:100%;
		height:100%;
		object-fit: cover;
		border-radius: 8px 0 0 8px;
	}
	.floor_wrap ul li a > div
	{
		width:50%;
		border-radius: 0 8px 8px 0;
		padding:20px;
		background: #f7f5f2;
		text-align: center;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
	.floor_wrap ul li a > div div
	{
		font-size: 2.8rem;
		color:#999;
		margin-bottom:10px;
	}
	.floor_wrap ul li a > div figure img
	{
		width: 2.8rem;
		height: 2.8rem;
		object-fit: contain;
		margin-bottom:10px;
	}
	.floor_wrap ul li a > div h4
	{
		font-weight: 800;
		color:#222;
		margin-bottom:20px;
	}
	.floor_wrap ul li a > div p
	{
		text-align: center;
		font-size: 1.3rem;
		color: #808080;
	}
	@media screen and (max-width: 768px)
	{
		.floor_wrap
		{
			padding-bottom: 30px;
		}
		.floor_wrap ul
		{
			display: block;
		}
		.floor_wrap ul li
		{
			width:100%;
		}
		.floor_wrap ul li:not(:last-child)
		{
			margin-bottom:20px;
		}
		.floor_wrap ul li a figure
		{
			width:30%;
		}
		.floor_wrap ul li a > div
		{
			width:70%;
			padding:20px 30px;
		}
	}


	/*============================
		コンテンツページ
	============================*/
	.contents_wrap.member h2
	{
		font-size:3rem;
	    font-weight: 400;
		text-align: center;
		margin-bottom:45px;
		text-shadow: 1px 1px 1px #fff;
	}

	.contents h3
	{
		font-size:3rem;
	    font-weight: 400;
		padding-bottom:21px;
		margin-bottom:28px;
		border-bottom: 5px solid #f9bf2b;
		position: relative;
		display: flex;
		flex-wrap: wrap;
		gap:10px;
		align-items: center;
		line-height: 1;
	}

	.contents .detail_hd h3
	{
		font-size: 2.2rem;
	    font-weight: 800;
		padding-bottom:0px;
		margin-bottom:10px;
		border-bottom:none;
		position: relative;
		display:block;
	}

	.contents h4
	{
		font-size:2rem;
		line-height: 1.1;
		margin-bottom: 13px;
	}
	.contents h4.border_blue
	{
		padding-bottom:var(--mb_xsmall);
		border-bottom: 5px solid #e4edf9;
		position: relative;
	}
	.contents h4.border_blue:after
	{
		content:"";
		width:95px;
		border-bottom: 5px solid #bfd7fc;
		position: absolute;
		bottom:-5px;
		left:0;
	}
	.contents h4.border_gray
	{
		padding-bottom:var(--mb_xsmall);
		border-bottom: 2px solid #ccc;
		position: relative;
	}
	.contents .read
	{
		margin: 0 auto 0px;
	}
	.contents .txt
	{
		margin: 0 auto 0px;
	}
	.contents .flex
	{
		display: flex;
		gap:45px;
		justify-content: space-between;
	}
	.contents .flex .flex_inner
	{
		width:55%;
	}
	.contents .flex figure
	{
		width:calc(45% - 45px);
		text-align: center;
	}
	.contents .flex figure img[ data-lity="data-lity" ]
	{
		cursor: pointer;
	}
	.contents .flex figure figcaption
	{
		font-size: 1.5rem;
		color:gray;
		text-align: center;
	}
	.contents ul.base
	{
		display: flex;
		justify-content: flex-start;
		gap:55px 20px;
		flex-wrap: wrap;
		/* padding-bottom:130px; */
	}
	.contents ul.base li
	{
		width:calc((100% - 20px * 4) / 5);
		margin-left:0;
	}
	.contents ul.base li figure
	{
		width:100%;
		aspect-ratio: 55 / 46;
	}
	.contents ul.base li figure img
	{
		width:100%;
		height:100%;
		border-radius: 8px;
		object-fit: cover;
	}
	.contents ul.base li div
	{
		margin-top: 10px;
		padding:15px 5px;
		background:#eaebeb;
		border-radius: 8px;
		text-align: center;
	}
	.contents ul.base li div p
	{
		color:#878787;
		font-size:1.0rem;
		text-align: center;
	}
	.contents ul.base li div h5
	{
		min-height:2.8em;
		font-weight: 400;
		line-height: 1.3;
		font-size:1.2rem;
		letter-spacing: 0;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.contents ul.base li a:hover figure
	{
		filter: saturate(200%);
		transition: 0.3s;
	}
	.contents ul.base li a:hover div
	{
		opacity: 0.8;
		transition: 0.3s;
	}

	@media screen and (max-width: 768px)
	{
		.contents_wrap.member h2
		{
			font-size:2.3rem;
			margin-bottom:20px;
		}

		.contents h3
		{
			font-size:2.3rem;
			font-weight: 400;
			padding-bottom:11px;
			margin-bottom:18px;
			line-height: 1.3;
			gap:10px;
		}

		.contents .flex
		{
			display: block;
		}
		.contents .flex .flex_inner
		{
			width:100%;
		}
		.contents .flex figure
		{
			width:100%;
			margin-top:var(--mb_xsmall)
		}
		.contents .flex figure figcaption
		{
			font-size: 1.2rem;
			text-align: left;
		}
		.contents h4
		{
			font-size:1.7rem;
		}
		.contents ul.base
		{
			gap:35px 10px;
		}
		.contents ul.base li
		{
			width:calc((100% - 10px) / 2);
			margin-left:0;
		}
		.contents ul.base li div
		{
			margin-top:0px;
			padding:5px 5px;
			background:#eaebeb;
			border-radius: 8px;
			text-align: center;
		}
		.contents ul.base li div p
		{
			font-size:1.1rem;
		}
		.contents ul.base li div h5
		{
			font-size:1.3rem;
		}

	}

	/* table */
	.contents table
	{
		width:100%;
		border-collapse: collapse;
		border-top: 1px solid #ccc;
		table-layout: fixed;
	}
	.contents table table
	{
		width:100%;
	}
	.contents table :is( th, td )
	{
		border-bottom: 1px solid #ccc;
		padding: 0.8em 1em;
		font-weight: 400;
	}
	.contents .tbl1 th
	{
		background: #f6f4f2;
		color: #222;
		text-align: left;
		width: 260px;
	}

	.tbl_wrap h4
	{
		font-size: 2rem;
		line-height: 1.1;
		margin-bottom: 13px;
	}
	.tbl_wrap table
	{
		width:100%;
		border-collapse: collapse;
		border-bottom: 3px dotted #ccc;
		background:#fff;
		table-layout: fixed;
	}
	.tbl_wrap table tr
	{
		border-top: 3px dotted #ccc;
	}
	.tbl_wrap table :is( th, td )
	{
		padding: 0.8em 1em;
		font-weight: 400;
	}
	.tbl_wrap.member_list table :is( th, td )
	{
		padding: 0.4em 0.6em;
	}
	.tbl_wrap table.tbl1 th
	{
		text-align: left;
		background:#f5f5f5;
	}
	.tbl_wrap table.tbl1.brainbank th
	{
		width: 500px;
	}
	.tbl_wrap table.tbl1.main th
	{
		width:165px;
		background:#ffeedb;
	}
	.tbl_wrap table.tbl1.sub th
	{
		width:165px;
		background:#dcfdf8;
	}
	.tbl_wrap table.tbl1.resource th
	{
		width:220px;
		vertical-align: top;
	}
	.tbl_wrap table.tbl1 a
	{
		color: var(--link_color);
		display: inline-block;
		text-decoration: underline;
		text-decoration-color: var(--link_color);
		text-underline-offset: 4px;
		text-decoration-thickness: 0.05em;
	}
	.tbl_wrap table.tbl1 a:hover
	{
		text-decoration-color: #fff;
		text-decoration-thickness: 0;
		transition: 0.3s;
	}



	@media screen and (max-width: 768px)
	{
		.contents table
		{
			/* display: block; */
			border-top: none;
		}
		.contents table :is( th, td )
		{
			display: block;
			width: 100%;
			border-bottom: none;
		}
		.tbl_wrap h4
		{
			font-size: 1.7rem;
			margin-bottom: 8px;
		}

		.tbl_wrap table
		{
			width:100%;
			border-bottom: 2px dotted #ccc;
		}
		.tbl_wrap table tr
		{
			border-top: 2px dotted #ccc;
		}
		.tbl_wrap table :is( tr, th, td ),
		.tbl_wrap table :is( tr, th, td )
		{
			display: block;
			width:100%;
		}
		.tbl_wrap table.tbl1.main th,
		.tbl_wrap table.tbl1.sub th
		{
			font-size: 1.5rem;
			width: 100%;
			/* font-weight: bold; */
			padding:0.3em 1em 0.3em;
		}
		.tbl_wrap table.tbl1.main td,
		.tbl_wrap table.tbl1.sub td
		{
			font-size: 1.3rem;
			padding:0.3em 1em 0.8em;
		}
		.tbl_wrap table.tbl1.main
		{
			margin-bottom: var(--mb_middle);
		}
		.tbl_wrap table.tbl1.resource th
		{
			width: 100%;
			/* font-weight: bold; */
			padding:0.3em 1em 0.3em;
			color:#000;
		}
		.tbl_wrap table.tbl1.resource td
		{
			width: 100%;
			padding:0.3em 1em 0.8em;
		}
		.tbl_wrap table.tbl1.brainbank th
		{
			width: 100%;
			font-weight: bold;
			padding:0.8em 1em 0.3em;
		}
		.tbl_wrap table.tbl1.brainbank td
		{
			width: 100%;
			padding:0.3em 1em 0.8em;
		}
	}

	/* form table */
	p > .fix
	{
		display: inline;
		margin-right: 0.3em;
		color: #fff;
		background: #CC0000;
		padding: 0.2em 0.3em 0.2em;
		font-size: 0.8em;
		border-radius: 3px;
	}
	.contents .tbl1.form tr
	{
		height: 65px;
	}
	.contents .tbl1.form th
	{
		width: 260px;
		padding-right:65px;
		vertical-align: top;
		position: relative;
	}
	.contents .tbl1.form th .fix
	{
		position: absolute;
		top: calc(1.6rem * 1.0);
		right: 2em;
		color: #fff;
		background: #CC0000;
		padding: 0.1em 0.3em;
		font-size: 1.1rem;
		border-radius: 3px;
	}

	.contents .tbl1.form .flex
	{
	    width: 100%;
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		align-items: first baseline;
		gap:10px 30px;
	}
	.contents .tbl1.form .zip_wrap
	{
		position: relative;
	}
	.contents .tbl1.form .zip_wrap i
	{
		position: absolute;
		top:8px;
		left:8px;
		font-style:normal;
	}
	.contents .tbl1.form .zip_wrap input
	{
		padding-left:30px;
	}
	.contents .tbl1.form .zip_wrap button
	{
		width: fit-content;
		display: block;
		padding: 5px 10px;
		text-align: center;
		background-color: #eee;
		color: #222;
		border: 1px solid #999;
		border-radius:1.5em;
		cursor: pointer;
		transition: 0.1s;
	}

	.contents .tbl1.form .flex + aside
	{
		margin-top:5px;
		color:var(--aside_color)
	}
	.contents .tbl1.form .w18p
	{
		width:180px;
	}
	.contents .tbl1.form .w25
	{
		width:25%;
	}
	.contents .tbl1.form .w30
	{
		width:30%;
	}
	.contents .tbl1.form .w50
	{
		width:calc(50% + 30px);
	}
	.contents .tbl1.form .w75
	{
		width:calc(75% + 30px);
	}
	.contents .tbl1.form .w100
	{
		width:100%;
	}
	.contents .tbl1.form .h100p
	{
		height:auto;
		position:relative;
	}
	.contents .tbl1.form .h100p textarea
	{
		padding-bottom:1em;
		min-height: 100px;
		field-sizing: content;
	}
	.contents .tbl1.form .h100p .input_count
	{
		position:absolute;
		right:15px;
		bottom:8px;
		font-size:0.8em;
		color:var(--aside_color)
	}
	.contents .tbl1.form .h100p .error_form_message + .input_count
	{
		bottom:60px;
	}

	@media screen and (max-width: 768px)
	{
		.contents .tbl1.form th
		{
			width: 100%;
			padding:0.3em 65px 0.3em 0.3em;
			font-size:1.3rem;
			font-weight: bold;

		}
		.contents .tbl1.form td
		{
			width: 100%;
		}

		.contents .tbl1.form :is( .w18p, .w25, .w30, .w50, .w75, .w100)
		{
			width:100%!important;
		}

		.contents .tbl1.form th .fix
		{
			top: 0.5em;
			right: 2em;
			color: #fff;
			background: #CC0000;
			padding: 0.1em 0.3em;
			font-size: 1.1rem;
			border-radius: 3px;
		}
	}

	#message
	{
		min-height:70px;
		margin-bottom:30px;
		text-align: left;
		display: flex;
	}
	#message > message_title
	{
		display: none;
	}
	#message p
	{
		width: calc(100% - 40px);
		border-top:3px solid #ccc;
		border-right:3px solid #ccc;
		border-bottom:3px solid #ccc;
		padding: 20px 20px 15px;
		border-radius:0 8px 8px 0;

	}
	#message::before
	{
		content:"\f06a";
		width: 35px;
		min-height:70px;
		color:#fff;
		font-family: var(--font_awesome);
		font-weight: 900;
		border-top:3px solid #ccc;
		border-left:3px solid #ccc;
		border-bottom:3px solid #ccc;
		outline-offset: 1px;
		border-radius:8px 0 0 8px;
		background: #ccc;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	#message > p
	{
		text-align:left;
	}

	#message.success p
	{
		border-color:#40b06c;
		color:#40b06c;
	}
	#message.error p
	{
		border-color:#ff1f54;
		color:#ff1f54;
	}
	#message.success::before
	{
		border-top:3px solid #40b06c;
		border-left:3px solid #40b06c;
		border-bottom:3px solid #40b06c;
		background: #40b06c;
	}
	#message.error::before
	{
		border-top:3px solid #ff1f54;
		border-left:3px solid #ff1f54;
		border-bottom:3px solid #ff1f54;
		background: #ff1f54;
	}

	.error_form_message
	{
		display: inline-block;
		background: #ff1f54;
		padding: 0.5em 1em;
		margin-bottom: 1em;
		color: #fff;
		margin-top: 1em;
		border-radius: 4px;
		position: relative;
		font-size: 1.2rem;
		line-height: 1.3;
		text-align: left;
	}
	.error_form_message:after
	{
		content: "";
		position: absolute;
		top: -10px;
		left: 1em;
		border-right: 7px solid transparent;
		border-bottom: 10px solid #ff1f54;
		border-left: 7px solid transparent;
	}
	.contents .tbl1.form aside
	{
	    font-size: 0.8em;
    	line-height: 1.5;
	}

	@media screen and (max-width: 768px)
	{
	}

	.contents .txt_wrap
	{
		/* margin-bottom: 60px; */
	}
	.contents .read .txt_wrap
	{
		/* margin-bottom: 30px; */
	}
	/* .contents .txt_wrap > p
	{
		margin-bottom: 30px;
	} */
	.contents .txt_wrap .column
	{
		display: flex;
		justify-content: space-between;
		gap:50px;
	}

	@media screen and (max-width: 768px)
	{

	}

	:is(.lnk_wrap, .dl_wrap, .btn_wrap) li
	{
		margin-left:0;
	}
	.btn_wrap
	{
		display: flex;
		width: 100%;
		/* justify-content: space-between; */
		/* justify-content: center; */
		justify-content: flex-start;
		/* align-items: center; */
		gap:40px
	}
	.btn_wrap.jfc
	{
		justify-content: center;
	}
	.btn_wrap.jfsb
	{
		justify-content: space-between;
	}
	.btn_wrap.jfsa
	{
		justify-content: space-around;
	}
	.btn_wrap
	{
		display: flex;
		width: fit-content;
		margin:auto;
		justify-content: flex-start;
		gap:40px;
	}


	.btn_wrap > button
	{
		display: block;
		width: fit-content;
		min-width: 330px;
		margin: 0 auto;
		text-decoration: none;
		color: #fff;
		background: var(--btn_color);
		padding: 10px 20px 10px 20px;
		border: 2px solid var(--btn_color);
		border-radius: 8px;
		font-weight: bold;
		letter-spacing: 0.1em;
		text-align: center;
		font-size:1.7rem;
	}
	.box.btn_wrap > button.web
	{
		background: #fff;
		padding:15px 20px 15px 20px;
		border:1px solid var(--btn_color);
	}
	.box.btn_wrap > button.web::before
	{
		content: "";
		display: block;
		width:25px;
		height:25px;
		position: absolute;
		top:50%;
		left:20px;
		transform:translate(0, -50%);
		margin-right:18px;
		z-index: 3;
		background-color: var(--btn_color);
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: contain;
		mask-image:url(../images/cmn/icon/input.svg);
	}
	.box.btn_wrap > button.web:hover
	{
		background: var(--btn_color);
		color:#fff;
	}
	.box.btn_wrap > button.web:hover::before
	{
		background-color: #fff;
	}
	.box.btn_wrap > button.web:disabled
	{
		filter: grayscale(1);
		cursor:not-allowed ;
	}

	.btn_wrap > button.entry
	{
		background: var(--btn_color);
		padding:15px 0px 15px 0px;
		border:1px solid var(--btn_color);
		color:#fff;
	}
	.btn_wrap > button.back
	{
		background: #fff;
		padding:15px 0px 15px 0px;
		border:1px solid #999;
		color:#222;
		box-shadow: 3px 3px 7px rgba(190, 190, 190, .4);
	}
	.btn_wrap > button:is(.entry,.back):hover
	{
		opacity: 0.6;
	}
	@media screen and (max-width: 768px)
	{
		.contents .txt_wrap .column.access
		{
			gap:20px;
		}

		.btn_wrap
		{
			width: 100%;
		}
		.btn_wrap > button
		{
			width:85%;
			padding:10px;
			min-width: auto;
			margin-left:auto;
			margin-right:auto;
			margin-bottom:18px;
			font-size: 1.5rem;
		}
		.box.btn_wrap > button.web
		{
			padding:15px 0px 15px 10px;
		}

		.btn_wrap > button.entry
		{
			padding:10px;
		}
		.btn_wrap > button.back
		{
			padding:10px;
		}
	}

	.contents .column figure
	{
		width: 330px;
		height:auto;
	}
	.contents .column figure:has(figcaption)
	{
		padding-bottom:1.5em;
	}
	.contents .column figure figcaption
	{
		display: block;
		text-align: center;
		font-size:1rem;
		color:#666;
		letter-spacing: 0;
	}
	.contents .column.row3 figure
	{
		width: 200px;
		height:auto;
	}
	.contents .column figure img
	{
		width: 100%;
		height:100%;
		object-fit: cover;
		border-radius: 8px;
	}
	.box
	{
		/* margin:0.8em auto; */
		margin:0em auto;
		padding:1em 1.5em;
		background:#f2f3f3;
		border-radius: 8px;
	}
	.box.address
	{
		background:#f7f3ec;
	}
	.box strong
	{
		color:#666;
	}
	.box p
	{
		text-align: left;
	}
	.box span
	{
		display: inline-block;
	}
	.txt_wrap .signature
	{
		display: block;
		width:fit-content;
		margin:1em 0 0 auto;
		text-align: right;
	}
	.txt_wrap .signature span
	{
		text-align: left;
		display: block;
	}
	ul.kome
	{
		list-style: none;
		/* margin:10px 0 10px 0.5em; */
		margin:0px 0 0px 0.5em;
		padding-left: 1.0em;
	}
	ul.kome li
	{
		text-indent: -1.5em;
		margin-bottom: 0.2em;
		line-height: 1.5;
	}
	ul.kome li:before
	{
		content: "※";
		margin-right: 0.3em;
	}

	ul.check
	{
		list-style: none;
		/* margin:10px 15px 10px 15px; */
		margin:0px 15px 0px 15px;
		padding-left: .5em;
	}
	ul.check li
	{
		/* text-indent: -1.5em; */
		margin-left: -1.5em;
		margin-bottom: 0.3em;
		line-height: 1.5;
		display: flex;
		justify-content: flex-start;
		/* align-items: center; */
	}
	ul.check li:before
	{
		content:"";
		display: inline-block;
		position: relative;
		left:0rem;
		width:1em;
		height:1em;
		margin-top: 0.3em;
		background-color: #70a5ff;
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: contain;
		mask-image:url(../images/cmn/icon/check.svg);
		margin-right: 0.6em;
	}

	ul.dot
	{
		list-style: none;
		margin:10px 0px 10px 0px;
		padding-left: 0;
	}
	ul.dot li
	{
		text-indent:0em;
		margin-bottom: 0.3em;
		line-height: 1.5;
		display: flex;
		justify-content: flex-start;
		align-items: flex-start;
	}
	ul.dot li:before
	{
		content:"●";
		display: inline-block;
		position: relative;
		left:0;
		font-size:0.3em;
		/* color: #70a5ff; */
		color: gray;
		padding-top: 10px;
		margin-left:5px;
		margin-right:10px;
	}

	ol.number
	{
		list-style: none;
		margin:10px 0px 10px 0px;
		padding-left: 0;
  		counter-reset: number;
	}
	ol.number > li
	{
		text-indent:0em;
		margin-bottom: 0.3em;
		line-height: 1.5;
		display: flex;
		justify-content: flex-start;
		align-items: flex-start;
		margin-left: 0.5em;
  		padding-left: 0.5em;
	}
	ol.number > li:before
	{
		counter-increment: number;
  		content: counter(number);
		display: inline-block;
		font-weight: 800;
		position: relative;
		left: -10px;
		color: #70a5ff;
		width: 1em;
	}
	:is(ul, ol).space li
	{
		margin-bottom:1em;
	}

	.department_wrap > p:not(:last-child)
	{
		/* margin-bottom: 30px; */
	}
	.flow_wrap
	{
		/* margin-bottom:30px; */
	}
	.flow_inner
	{
		/* margin-bottom:40px; */
	}
	.flow_inner dl
	{
		display:flex;
		margin:0 auto;
	}
	.flow_inner dt
	{
		font-size:3rem;
		width:40px;
		text-align: center;
		line-height: 1;
		padding-right: 15px;
		margin-right: 15px;
		border-right:2px solid #97b6f0;
		color:#97b6f0;
	}
	.flow_inner dd
	{
		width: calc(100% - 40px - 15px - 15px);
	}
	.flow_inner dd strong
	{
		display: block;
		/* margin-bottom:0.3em; */
	}
	.flow_inner dl + .dl_wrap
	{
		/* margin-top:20px; */
		margin-left:55px;
	}
	.flow_inner div.choice
	{
		display:flex;
		align-items: center;
		gap:45px;
		margin-top:0.8em;
		margin-left:55px;
	}
	.flow_inner div.choice p
	{
		width:40%;
		max-width:150px;
	}
	.flow_inner div.choice p input
	{
		display: none;
	}
	.flow_inner div.choice p label
	{
		display:block;
		padding:3px 0;
		text-align: center;
		color:#999;
		border:1px solid #999;
		border-radius: 8px;
		cursor: pointer;
		transition: 0.1s;
	}
	.flow_inner div.choice p:first-child label:hover
	{
		color:var(--btn_color);
		border:1px solid var(--btn_color);
	}
	.flow_inner div.choice p:last-child label:hover
	{
		color:#f74b4b;
		border:1px solid #f74b4b;
	}
	.flow_inner div.choice p:first-child input[type="radio"]:checked + label
	{
		color:#fff;
		background-color:var(--btn_color);
		border:1px solid var(--btn_color);
	}
	.flow_inner div.choice p:last-child input[type="radio"]:checked + label
	{
		color:#fff;
		background-color:#f74b4b;
		border:1px solid #f74b4b;
	}

	.flow_flex
	{
		/* margin-bottom:60px; */
	}
	.flow_flex ul
	{
		display:flex;
		justify-content:flex-start;
		gap:40px;
	}
	.flow_flex ul li
	{
		width:calc(( 100% - 120px ) / 4);
	}
	.flow_flex ul li figure
	{
		line-height: 1;
		margin-bottom:15px;
	}
	.flow_flex ul li figure img
	{
		aspect-ratio: 3 / 2;
		object-fit: cover;
		border-radius: 8px;
	}
	.flow_flex ul li h5
	{
		font-size:1.8rem;
		display: flex;
		align-items: center;
		justify-content: center;
		margin-bottom:10px;
	}
	.flow_flex ul li h5 span
	{
		font-size:2.8rem;
		padding-right:10px;
		color:#97b6f0;
		font-weight: 400;
	}

	@media screen and (max-width: 768px)
	{
		.contents .txt_wrap > p
		{
			margin-bottom: 20px;
		}
		.contents .txt
		{
			margin: 0 auto 20px;
		}
		.contents .visit_info_wrap
		{
			display: block;
			margin-bottom: 30px;
		}
		.contents .visit_info_wrap div
		{
			width: 100%;
			margin-bottom:20px;
		}
		.contents .txt_wrap
		{
			margin-bottom: 30px;
		}
		.contents .txt_wrap .column
		{
			flex-wrap: wrap;
			gap:20px;
		}
		.contents .txt_wrap .column.row3 figure
		{
			width:calc((100% - 20px) / 2);
		}
		.contents .column .flex_inner
		{
			width: 100%;
		}
		.contents .column figure
		{
			width: 100%;
		}
		.btn_wrap
		{
			display: block;
		}
		.btn_wrap > a
		{
			width:100%;
			margin-bottom:18px;
		}

		ul.check
		{
			margin:0 10px;
		}
		ul.check li:last-child
		{
			margin-bottom: 0;
		}

		.flow_inner
		{
			margin-bottom:20px;
		}
		.flow_inner dl
		{
			margin-bottom: 0;
		}
		.flow_inner dt
		{
			font-size:2.3rem;
			width:30px;
			padding-right: 10px;
			margin-right: 10px;
		}
		.flow_inner dd
		{
			width:calc(100% - 30px - 10px - 10px);
		}
		.flow_inner dl + .dl_wrap
		{
			margin-top:5px;
			margin-left:40px;
		}
		.flow_flex
		{
			margin-bottom: 30px;
		}
		.flow_flex ul
		{
			display:block;
		}
		.flow_flex ul li
		{
			width:100%;
			margin-bottom:20px;
		}
		.flow_flex ul li:last-child
		{
			margin-bottom:0;
		}
		.flow_flex ul li > div
		{
			display: grid;
			grid-template-columns: 1fr 2fr;
			grid-template-rows: auto auto;
			gap:10px 20px;
		}
		.flow_flex ul li figure
		{
			grid-column: 1 / 2;
    		grid-row: 1 / 3;
		}
		.flow_flex ul li figure img
		{
			aspect-ratio: auto;
			height:calc(100% + 1em);
		}
		.flow_flex ul li h5
		{
			grid-column: 2 / 3;
    		grid-row: 1 / 2;
			line-height: 1;
			font-size:1.6rem;
			margin-bottom:0;
			justify-content: flex-start;
		}
		.flow_flex ul li h5 span
		{
			font-size:2rem;
		}
		.flow_flex ul li h5 p
		{
			grid-column: 2 / 3;
    		grid-row: 1 / 3;
			line-height: 1.5;
		}

		.box
		{
			/* margin:0.8em auto; */
			margin:0em auto;
			padding:0.8em 1em;
			background:#f2f3f3;
			border-radius: 8px;
		}
	}

	/* スケジュール */
	.schedule {
    position: relative;
    font-size: 1.6rem;
	}
	.schedule::before {
		position: absolute;
		background-color: #ccc;
		content: "";
	}

	.schedule ul {
		padding: 0px;
		margin: 0px;
		list-style: none;
	}

	.schedule li {
		position: relative;
	}

	.schedule_time {
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
		/* width: 5em; */
		height: 2em;
		top:1em;
		text-align: center;
	}
	.schedule_time::after {
		position: absolute;
		width: 1em;
		height: 1em;
		border: 2px solid #fff;
		border-radius: 50%;
		background-color: #70a5ff;
		content: "";
	}

	.schedule_content_title {
		font-weight: bold;
   		/* font-size: 1.2rem; */
   		font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.5rem);
	}

	@media screen and (max-width: 590px) {
		.schedule
		{
			display: flex;
			gap:0px;
			justify-content: center;
			padding-right:1em;
		}
		.schedule::before {
			top: 15px;
			left: 50%;
			transform:translate(-64px, 0);
			width: 2px;
			height: 100%;
			position: absolute;
		}
		/* .schedule ul
		{
			margin-left:50px;
			margin-right:30px;
		} */
		.schedule li {
			display: flex;
			align-items: center;
			width: 100%;
		}
		.schedule li + li
		{
			margin-top: 1em;
		}
		.schedule_time
		{
			width:4.5em;
		}
		.schedule_time::before {
			top: 50%;
			right: 0px;
			transform: translateX(50%) translateY(-50%) rotate(45deg);
		}
		.schedule_time::after {
			top: 50%;
			left: 5em;
			transform: translateY(-50%);
		}
		.schedule_content {
			margin: 0px 0px 0px 3em;
			/* width: calc(100% - 15em); */
			/* writing-mode: vertical-rl; */
			letter-spacing: 0.1em;
			position: relative;
			top:1em;
		}
	}
	@media screen and (min-width: 590px) {
		.schedule::before {
			top: 3.5em;
			left: 0px;
			transform: translateY(-50%);
			width: 100%;
			height: 2px;
		}
		.schedule ul {
			display: flex;
			flex-wrap: nowrap;
			margin: 0px -10px;
		}
		.schedule li {
			margin: 0px 10px;
			/* width: calc(12.5% - 20px); */
			width: calc(100% / 18);
		}
		.schedule_time {
			margin: 0px auto;
		}
		.schedule_time::before {
			left: 50%;
			bottom: 0px;
			transform: translateX(-50%) translateY(50%) rotate(45deg);
		}
		.schedule_time::after {
			top: 2.5em;
			left: 50%;
			transform: translateX(-50%) translateY(-50%);
		}
		.schedule_content {
			margin: 3em 0px 0px;
		}
		.schedule_content_title {
			text-align: center;
			white-space: nowrap;
		}
		.schedule_content_detail {
			margin-top: 0.5em;
		}
	}
	.step_flow
	{
		width:90%;
		margin:30px auto 0;
		display:flex;
		align-items: center;
		gap:50px;
	}
	.step_flow div
	{
		padding:5px 0;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 8px 0 0 8px;
		position: relative;
	}
	.step_flow div::after
	{
		content:"";
		width: calc(30px / 2);
  		height: 100%;
		clip-path: polygon(0 0, 100% 50%, 0 100%);
		position: absolute;
		right: -14px;
	}
	.step_flow div.step_flow1
	{
		flex-grow: 1;
		color:#528232;
		background: #e0f2e8;
	}
	.step_flow div.step_flow1::after
	{
		background: #e0f2e8;
	}
	.step_flow div.step_flow2
	{
		flex-grow: 2.9;
		color:#fe5599;
		background: #feecf2;
	}
	.step_flow div.step_flow2::after
	{
		background: #feecf2;
	}
	.step_flow div.step_flow3
	{
		flex-grow: 1;
		color:#4a73af;
		background: #d4e8f4;
	}
	.step_flow div.step_flow3::after
	{
		background: #d4e8f4;
	}

	@media screen and (max-width: 590px)
	{
		.step_flow
		{
			width:80px;
			margin:30px 0 30px 20px;
			display:flex;
			justify-content: center;
			align-items: center;
			flex-direction: column;
			gap:20px;
		}
		.step_flow div
		{
			writing-mode: vertical-rl;
			letter-spacing: 0.1em;
			padding:0 5px;
			display: flex;
			align-items: center;
			justify-content: center;
			flex-direction: column;
			border-radius: 8px 8px 0 0;
			position: relative;
			line-height: 1.5;
		}
		.step_flow div::after
		{
			content:"";
			width: 100%;
			height: calc(30px / 2);
			clip-path: polygon(0 0, 100% 0, 50% 100%);
			position: absolute;
			right: 0px;
			bottom:-14px;
		}
	}

	.flex_panel_wrap > ul
	{
		display: flex;
		gap:90px 40px;
		justify-content: space-between;
		flex-flow: row wrap;
	}
	.flex_panel_wrap > ul li
	{
		width:calc( (100% - 80px) / 3 );
	}
	.flex_panel_wrap > ul li figure
	{
		margin-bottom:15px;
	}
	.flex_panel_wrap > ul li figure img
	{
		border-radius: 8px 8px 0 0;
	}
	.flex_panel_wrap > ul li h6
	{
		font-size: 1.8rem;
		font-weight: 800;
		text-align: center;
		margin-bottom:10px;
	}
	.flex_panel_wrap > ul li > ul
	{
		display: flex;
		gap:8px;
		justify-content: flex-start;
		flex-flow: row wrap;
		margin-top:10px;
	}
	.flex_panel_wrap > ul li > ul li
	{
		width:calc( (100% - 32px) / 5 );
		display: block;
		text-align: center;
		padding:1px 0;
		background: #aaa;
		color:#fff;
		font-size: 1.2rem;
		border-radius: 12px;
	}
	.flex_panel_wrap > ul li > ul li.ts
	{
		background: #000;
	}
	@media screen and (max-width: 768px)
	{
		.flex_panel_wrap > ul
		{
			display: flex;
			gap:20px;
			justify-content: space-between;
			flex-flow: row wrap;
		}
		.flex_panel_wrap > ul li
		{
			width:calc( (100% - 20px) / 2 );
		}
		.flex_panel_wrap > ul li figure
		{
			margin-bottom:5px;
		}
		.flex_panel_wrap > ul li h6
		{
			font-size: 1.5rem;
			margin-bottom:5px;
		}
		.flex_panel_wrap > ul li > ul
		{
			display: flex;
			gap:8px;
			justify-content: flex-start;
			flex-flow: row wrap;
			margin-top:10px;
		}
		.flex_panel_wrap > ul li > ul li
		{
			width:calc( (100% - 8px) / 2 );
			display: block;
			text-align: center;
			padding:1px 0;
			background: #aaa;
			color:#fff;
			font-size: 1rem;
			border-radius: 10px;
		}
	}


	.box:is( .faq, .lecture ) > a
	{
		display: inline-block;
		margin-right: 2em;
		font-size:1.2rem;
		padding:0.2em 2em;
		text-align: center;
		min-width:105px;
		background:#fff;
		color:#999;
		border:1px solid #999;
		border-radius: 8px;
	}
	.box:is( .faq, .lecture ) > a:nth-child(2)
	{
		color:#39adf0;
		border:1px solid #39adf0;
	}
	.box:is( .faq, .lecture ) > a:nth-child(3)
	{
		color:#ff7f2a;
		border:1px solid #ff7f2a;
	}
	.box:is( .faq, .lecture ) > a:nth-child(4)
	{
		color:#44aa00;
		border:1px solid #44aa00;
	}
	.box:is( .faq, .lecture ) > a:last-child
	{
		color:#c837ab;
		border:1px solid #c837ab;
	}

	.box:is( .faq, .lecture ) > a:hover
	{
		background:#999;
		color:#fff;
	}
	.box:is( .faq, .lecture ) > a.active:nth-child(2),
	.box:is( .faq, .lecture ) > a:nth-child(2):hover
	{
		background:#39adf0;
		color:#fff;
	}
	.box:is( .faq, .lecture ) > a.active:nth-child(3),
	.box:is( .faq, .lecture ) > a:nth-child(3):hover
	{
		background:#ff7f2a;
		color:#fff;
	}
	.box:is( .faq, .lecture ) > a.active:nth-child(4),
	.box:is( .faq, .lecture ) > a:nth-child(4):hover
	{
		background:#44aa00;
		color:#fff;
	}
	.box:is( .faq, .lecture ) > a.active:last-child,
	.box:is( .faq, .lecture ) > a:last-child:hover
	{
		background:#c837ab;
		color:#fff;
	}

	.faq_ttl
	{
		display: flex;
		gap:1em;
		align-items: baseline;
	}
	.faq_category
	{
		display: inline-block;
		font-size:1.2rem;
		padding:0.4em 0.5em;
		text-align: center;
		width:95px;
		background:#fff;
		color:#999;
		border:1px solid #999;
		border-radius: 5px;
		font-weight: 400;
		position: relative;
		top:-0.2em;
	}
	.faq_category.cate1
	{
		color:#39adf0;
		border:1px solid #39adf0;
	}
	.faq_category.cate2
	{
		color:#ff7f2a;
		border:1px solid #ff7f2a;
	}
	.faq_category.cate3
	{
		color:#44aa00;
		border:1px solid #44aa00;
	}
	.faq_category.cate4
	{
		color:#39adf0;
		border:1px solid #39adf0;
	}
	.faq_category.cate99
	{
		color:#39adf0;
		border:1px solid #39adf0;
	}

	.faq_ttl p
	{
		width:calc(100% - 1em - 95px );
		line-height: 1.6;
	}

	@media screen and (max-width: 768px)
	{
		.box:is( .faq, .lecture )
		{
			display: flex;
			flex-wrap: wrap;
			gap:0.8em 15px;
			line-height: 1;
		}
		.box:is( .faq, .lecture ) > a
		{
			display: inline-block;
			margin: 0;
			min-width:auto;
			padding:5px;
			width:calc((100% - 15px * 2) / 3);
		}
		.faq_ttl
		{
			display: block;
		}
		.faq_category
		{
			font-size:1.1rem;
			padding:0.1em 0.5em;
			width:95px;
			top:0;
			margin-bottom:5px;
		}
		.faq_ttl p
		{
			width:100%;
		}
	}

	.sitemap_wrap
	{
		display: flex;
		justify-content: flex-start;
		gap:40px;
	}
	.sitemap_wrap figure
	{
		width:120px;
	}
	.sitemap_wrap figure img
	{
		border-radius: 8px;
	}
	.sitemap_wrap .sitemap_inner
	{
		width:calc(100% - 120px - 40px);
	}
	.sitemap_link
	{
		display: flex;
		flex-wrap: wrap;
		gap:0.8em 2.5em;
	}
	.sitemap_link li a
	{
		display: block;
		width:fit-content;
	}
	.sitemap_list .sitemap_wrap:last-child
	{
		margin-bottom:0!important;
	}

	@media screen and (max-width: 768px)
	{
		.sitemap_wrap
		{
			gap:20px;
		}
		.sitemap_wrap figure
		{
			width:70px;
		}
		.sitemap_wrap .sitemap_inner
		{
			width:calc(100% - 70px - 20px);
		}
		.sitemap_link
		{
			display: block;
		}
		.sitemap_link li
		{
			width:100%;
			margin-bottom:0.3em;
		}
	}

	.link_list > div:last-child
	{
		margin-bottom:0!important;
	}

	ol.policy
	{
		list-style:decimal;
	}
	ol.policy li
	{
		margin-left: 1.5em;
		padding-left: 0.5em;
	}
	ol.policy li::marker
	{
		font-weight: bold;
		color: #b7d05f;
	}
	.upload_hint
	{
		display: block;
		margin-top:0.5em;
	}

	label.file_upload
	{
		display:block;
		position:relative;
		width: 200px;
		height: 60px;
		cursor: pointer;
	}
	label.file_upload span
	{
		position: absolute;
		top:0;
		left:0;
		border-radius: 5px;
		text-align: center;
		border: none;
		width: 160px;
		height: 35px;
		padding: 8px 15px;
		display: inline-block;
		z-index: -1;
		line-height: 1;
		background-color: #f9e0ec;
	}
	label.file_upload input::file-selector-button
	{
		position: relative;
		top:0;
		left:0;
		width: 160px;
		height: 35px;
		border-radius: 5px;
		border: none;
		background-color: transparent;
		color:#000;
		line-height: 1;
		display: block;
		cursor: pointer;
		font-size:17px;
	}

	label.file_upload + aside
	{
		display: block;
	}
