@charset "utf-8";
/*	===============================================================
	● ヘッダ/フッターCSSファイル
	---------------------------------------------------------------
	Release 2024.06.22                               Powerd by TDR
	=============================================================== */

	/*============================
		ヘッダ/グローバルメニュー
	============================*/
	header
	{
		z-index: 99;
		position: sticky;
		top: 0;
		left: 50%;
		width: 100%;
		height: 100px;
		background: #fff;
		padding: 0px 30px 0;
		box-shadow: 0px 10px 15px rgba(0, 0, 0, .1);
	}
	header .container
	{
		margin: 0 auto 0px;
		padding:0px 0px;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap:20px;
	}
	header .container > a
	{
		text-decoration: none;
		width: 25%;
		flex: 0 1 auto;
		border: none;
	}
	header h1.logo
	{
		max-width:420px;
		width:100%;
		display: flex;
		align-items: center;
	}
	header h1.logo picture
	{
		display: flex;
		align-items: center;
	}
	header h1.logo img
	{
		width:100%;
	}
	header .sp_lang
	{
		display: none;
	}
	header .btn_g_navi
	{
		display: none;
	}
	header .g_navi
	{
		width: 75%;
		flex: 1 1 auto;
		padding-left:auto;
	}
	header .g_navi ul
	{
		display:flex;
		flex-wrap:wrap;
		/* justify-content: flex-start; */
		justify-content: center;
		align-items: center;
		gap: 8px 1.8em;
		width: fit-content;
		/* margin-left:auto; */
		margin-inline:auto;
		padding-right:20px;
		padding-bottom:0px;
		/* line-height: 1.3; */
	}
	header .g_navi div.menu
	{
		display: none;
	}
	header .g_navi ul li
	{
		position: relative;
	}
	header .g_navi ul li a
	{
		text-decoration: none;
		position: relative;
		padding:0 0;
		color:#000;
		border: none;
	}

	header .g_navi ul li a:after
	{
		position: absolute;
		bottom: -0.5em;
		left: 0%;
		content: '';
		width: 100%;
		height: 2px;
		border-radius: 1px;
		background: #0f88bc;
		transform: scale(0, 1);
		transform-origin: center top;
		/* transition: transform .3s; */
		transition: transform 0s;
	}

	header .g_navi ul li a:hover
	{
		color:#666;
	}
	header .g_navi ul li a:hover:after
	{
		transform: scale(1, 1);
	}

	header .g_navi ul li.contribution a
	{
		display: block;
		min-width: 90px;
		background: #e0e0e0;
		color: #222;
		border-radius: 13px;
		font-size: 1.4rem;
		padding:5px 16px;
		line-height: 1;
	}
	header .g_navi ul li.contribution a:hover
	{
		background: #0f88bc;
		color:#fff;
	}
	header .g_navi ul li.contribution a:hover::after
	{
		content:none;
	}
	/*
	header .g_navi ul li.contribution a span
	{
		position: relative;
	}
	header .g_navi ul li.contribution a span::before
	{
		content:"";
		width:16px;
		height:20px;
		position: absolute;
		text-align: center;
		background-color: #0f88bc;
		mask-image: url(/images/common/icon/external.svg);
		mask-repeat: no-repeat;
		mask-size: contain;
		mask-position: center center;
	}
	*/

	@media screen and (max-width: 1024px)
	{
		header
		{
			height: 55px;
			background: #fff;
			padding: 0px 0 0 8px;
			box-shadow: 0px 5px 7px rgba(0, 0, 0, .1);
		}
		header .container
		{
			height: 100%;
			gap:10px;
			/* justify-content: space-between; */
		}
		header .container > a
		{
			text-decoration: none;
			max-width: 300px;
			width: 80%;
			flex: 0 1 auto;
			border: none;
		}
		header h1.logo img
		{
			max-height: 48px;
		}
		header h1.logo
		{
			display: flex;
			align-items: center;
		}
		header .sp_lang
		{
			display: flex;
			justify-content: flex-end;
			padding-right:0px;
			line-height: 1.3;
			margin-left:auto;
		}
		header .sp_lang li a
		{
			display: inline-block;
			min-width: 30px;
			color: #bbb;
			white-space: nowrap;
			font-size:1.3rem;
			font-weight: 500;
			padding:2px 8px;
			text-align: center;
		}
		header .sp_lang li.active a
		{
			color:#333;
		}
		header .sp_lang li:not(:last-child)
		{
			border-right: 1px solid #ccc;
		}
		header .btn_g_navi
		{
			display: block;
			font-weight: bold;
			font-size: 1rem;
			background: #006a9b;
			transition: .5s;
			margin: 0 0 0 10px;
			width: 55px;
			height: 55px;
			padding: 20px 0;
			position:absolute;
			top:0;
			right:0;
			z-index: 999;
		}
		header .btn_g_navi p
		{
			width: 30px;
			height: 15px;
			margin: 0 auto;
			cursor: pointer;
			position: relative;
		}
		header .btn_g_navi span
		{
			height: 2px;
			background: #fff;
			width: 100%;
			left: 0;
			position: absolute;
		}
		header .btn_g_navi span:nth-child(1)
		{
			top: 0;
			transition: .5s;
		}
		header .btn_g_navi span:nth-child(2)
		{
			bottom: 0;
        	transition: .5s;
		}
		header .g_navi
		{
			width: 90vw;
			padding: 0px 0 100px;
			margin: 55px auto 0;
			position: fixed;
			top: 0;
			right: -120%;
			height: 100vh;
			min-width: 50vw;
			width:100%;
			transition: all .5s;
			background-color: rgba(255, 255, 255, 1);
			overflow: auto;
			overflow-y: scroll;
		}
		header .g_navi.open
		{
			right: 0;
		}
		header:has(.open) .btn_g_navi span:nth-child(1)
		{
			transform: translateY(6px) rotate(45deg);
		}
		header:has(.open) .btn_g_navi span:nth-child(2)
		{
			transform: translateY(-6px) rotate(-45deg);
		}

		header .g_navi ul li a:hover:after
		{
			transform: scale(0, 0);
		}

		header .g_navi ul.global.top
		{
			padding: 30px 0 0;
			width: 100%;
			height: auto;
			display: block;
		}

		header .g_navi ul.global.top li
		{
			display: block;
			padding:0 1em;
			font-size:1.4rem;
		}
		header .g_navi ul.global.top li > a
		{
			position: relative;
			display: inline-block;
			line-height: 45px;
			color: #222;
			text-decoration: none;
			padding-left: 65px;
			transition: 0.3s;
			margin-bottom:25px;
		}
		header .g_navi ul.global.top li a:before
		{
			content:"";
			position: absolute;
			top:0;
			left:0;
			width:55px;
			height:45px;
			background:#0e87eb;
			mask-repeat: no-repeat;
			mask-position: center;
			mask-size: contain;
		}
		header .g_navi ul.global.top li.outpatient a:before
		{
		    mask-image: url(../images/common/icon/menu_1.svg);
		}
		header .g_navi ul.global.top li.hospitalization a:before
		{
		    mask-image: url(../images/common/icon/menu_2.svg);
		}
		header .g_navi ul.global.top li.clinical a:before
		{
		    mask-image: url(../images/common/icon/menu_3.svg);
		}
		header .g_navi ul.global.top li.medical a:before
		{
		    mask-image: url(../images/common/icon/menu_6.svg);
		}
		header .g_navi ul.global.top li.recruitment a:before
		{
		    mask-image: url(../images/common/icon/menu_7.svg);
		}
		header .g_navi ul.global.top li.ncnp a:before
		{
			background:url(../images/common/icon/menu_8.png) no-repeat #fff;
			background-position: center center;
			background-size: contain;
		}



		header .g_navi ul.global:not(.top)
		{
			display: flex;
			justify-content: center;
			align-items: center;
			gap:16px 8px;
			width:95%;
			max-width: 370px;
			margin:35px auto 30px;
			padding:0;
		}
		header .g_navi ul.global:not(.top) li
		{
			width:calc((100% - 40px) / 6);
			display: block;
			position: relative;
			text-align: center;
		}
		/* header .g_navi ul.global:not(.top) li:is(.clinical,.general) */
		header .g_navi ul.global:not(.top) li:is(.general)
		{
			display: none;
		}
		header .g_navi ul.global:not(.top) li a
		{
			width:100%;
			display: block;
			height:48px;
			color:rgba(0, 0, 0, 0);
			position: relative;
			font-size:0.8rem;
			text-align: center;
			overflow: hidden;
		}
		header .g_navi ul.global:not(.top) li a:before
		{
			content:"";
			position: absolute;
			top:0;
			left:50%;
			transform:translate(-50%, 0);
			width:40px;
			height:30px;
			background:#0e87eb;
			mask-repeat: no-repeat;
			mask-position: center;
			mask-size: contain;
		}
		header .g_navi ul.global:not(.top) li a:after
		{
			content:"";
			display: block;
			height:1em;
			background-color: transparent;
			font-size:0.9rem;
			position: absolute;
			bottom:5px;
			left:50%;
			transform:translate(-50%, 0);
			text-align: center;
			color: #222;
			z-index: 9999;
		}

		header .g_navi ul.global:not(.top) li.outpatient a:before
		{
		    mask-image: url(../images/common/icon/menu_1.svg);
		}
		header .g_navi ul.global:not(.top) li.outpatient a:after
		{
			content: "外来";
		}
		header .g_navi ul.global:not(.top) li.hospitalization a:before
		{
		    mask-image: url(../images/common/icon/menu_2.svg);
		}
		header .g_navi ul.global:not(.top) li.hospitalization a:after
		{
			content: "入院";
		}
		header .g_navi ul.global:not(.top) li.clinical a:before
		{
		    mask-image: url(../images/common/icon/menu_3.svg);
		}
		header .g_navi ul.global:not(.top) li.clinical a:after
		{
			content: "診療科目";
		}
		header .g_navi ul.global:not(.top) li.medical a:before
		{
		    mask-image: url(../images/common/icon/menu_4.svg);
		}
		header .g_navi ul.global:not(.top) li.medical a:after
		{
			content: "医療関係者";
		}
		header .g_navi ul.global:not(.top) li.recruitment a:before
		{
		    mask-image: url(../images/common/icon/menu_7.svg);
		}
		header .g_navi ul.global:not(.top) li.recruitment a:after
		{
			content: "採用情報";
		}
		header .g_navi ul.global:not(.top) li.ncnp a:before
		{
			background:url(../images/common/icon/menu_8.png) no-repeat #fff;
			background-position: center center;
			background-size: contain;
		}
		header .g_navi ul.global:not(.top) li.ncnp a:after
		{
			content: "NCNP病院";
		}

		header .g_navi ul.global:not(.top) li.contribution
		{
			width:100%;
			display: block;
			position: relative;
			text-align: center;
		}

		header .g_navi ul.global:not(.top) li.contribution a
		{
			width: fit-content;
			height:fit-content;
			margin-inline: auto;
			font-size:1.0rem;
			color:#0e87eb;
			border-top:1px solid #0e87eb;
			border-bottom:1px solid #0e87eb;
			border-radius: 0;background: #f7f7f7;
		}
		header .g_navi ul.global:not(.top) li.contribution a:before
		{
			content:none;
		}



		header .g_navi .menu h1
		{
			display: flex;
			justify-content: center;
			align-items: center;
			font-weight: normal;
			margin-bottom: 25px;
		}
		header .g_navi .menu h1::before,
		header .g_navi .menu h1::after
		{
			content:"";
			flex-grow: 1;
			height: 1px;
			background-color: #afafaf;
			border-radius: 1px;
		}
		header .g_navi .menu h1::before
		{
			margin-right: 0px;
		}
		header .g_navi .menu h1::after
		{
			margin-left: 0px;
		}
		header .g_navi .menu h1 p
		{
			font-size:1.2rem;
			text-align: center;
			max-width: 200px;
			min-width:50%;
			height:25px;
			line-height: 25px;
			border:1px solid #afafaf;
			border-radius: 12px;
			background: #f7f7f7;
		}

		header .g_navi .menu ul
		{
			padding: 0;
			width: 100%;
			height: auto;
			display: block;
			padding-bottom: 20px;
		}
		header .g_navi .menu ul li
		{
			display: block;
			padding:0 1em;
			font-size:1.4rem;
		}
		header .g_navi .menu ul li > :is( a, span )
		{
			position: relative;
			display: inline-block;
			color: #222;
			text-decoration: none;
			padding-left: 20px;
			transition: 0.3s;
			margin-bottom:20px;
		}
		header .g_navi .menu ul li :is( a, span ).active
		{
			color: #ffaaaa;
			font-weight: 900;
		}
		header .g_navi .menu ul li > :is( a, span )::before
		{
			content: "";
			position: absolute;
			left: 0;
			display: block;
			margin-top: 0.5em;
			width: 10px;
			height: 10px;
			background-color: #dad6cb;
			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 320 512"><path d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"/></svg>');
			transform: scale(1,0.75);
			transition: 0.1s;
		}
		header .g_navi .menu ul li > a.outside::after
		{
			content: "";
			position: absolute;
			top: 0;
			left:110%;
			display: block;
			margin-top:5px;
			width: 13px;
			height: 13px;
			background-color: #b6b4af;
			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 384 512"><path d="M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z"/></svg>');
			transform: scale(0.8, 0.8);
			*/
			mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-right-fill" viewBox="0 0 16 16"><path d="m12.14 8.753-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z"/></svg>');
			transform: scale(1, 1);
		}
		header .g_navi .menu ul li.line
		{
			width: calc(100% - 40px);
			height: 0px;
			line-height: 1;
			border-top: 1px dashed #ccc;
			margin: 0px auto 20px auto;
		}
		/*
		header .g_navi ul li a
		{
			display: block;
			padding: 15px;
			border-bottom: #006a9b 1px solid;
		}
		header .g_navi ul li a:after
		{
			content:none;
		}
		*/

		header .g_navi div.menu
		{
			display: block;
			margin-bottom:0px;
		}
		header .g_navi .menu ul.sub_menu
		{
			padding-bottom: 0px;
		}
/*
		header .g_navi ul:nth-child(2) li
		{
			width:calc((100% - 20px) / 2);
		}
		 */
	}

	/*============================
		lang
	============================*/
	header .lang
	{
		font-size:1.2rem;
		letter-spacing: 0;
		text-align: center;
		display: flex;
		flex-direction: column;
		gap:8px;
	}
	header .lang li a
	{
		display:block;
		min-width: 90px;
		background: #e0e0e0;
		color:#222;
		border-radius: 10px;
	}
	header .lang li a:hover
	{
		opacity: 0.8;
	}
	header .lang li.active a
	{
		background: #000;
		color:#fff;
	}

	@media screen and (max-width: 1024px)
	{
		header .lang
		{
			display: none;
		}
	}

	/****************************
	 * モーダル
	 ****************************/
	#modal_base
	{
		width:100%; height:100vh;
		margin:0px !important;
		background:black;
		opacity:0.4;
		position:fixed;
		z-index:2000;
	}

	#modal_window
	{
		padding:15px;
		border-radius:10px;
		background:white;
		box-shadow:0px 0px 30px #333;
		position:fixed;
		z-index:2500;
	}

	/*============================
		menu
	============================*/
	section.contents_wrap .container
	{
		display: flex;
		justify-content: space-between;
		align-items: stretch;
		gap:0;
		position: relative;
		padding:0;
	}
	section.contents_wrap .side_menu
	{
		width: 250px;
		padding:60px 38px 60px 25px;
		/* border-left:1px solid #e5e5e5; */
		border-right:1px solid #e5e5e5;
		/* background: #f7f7f7; */
		/* background: linear-gradient(#f6f6f6 80%, #fff 100%); */
		background: #fff;
		position: sticky;
		top:60px;
		/* height:100vh */
		height:100%;
	}
	section.contents_wrap .side_menu:hover + article.contents
	{
		overflow: hidden;
	}
	section.contents_wrap .side_menu:has( .scroll )
	{
		height:calc( 100vh - 145px );
		overflow-y: scroll;
		padding:30px 38px 60px 25px;
		margin-top: 30px;
		/* cursor: ns-resize; */
	}
	section.contents_wrap .side_menu:has( .scroll )::-webkit-scrollbar
	{
		width: 1px;
	}
	section.contents_wrap .side_menu:has( .scroll )::-webkit-scrollbar-track{
	background-color: #fff;
	}
	section.contents_wrap .side_menu:has( .scroll )::-webkit-scrollbar-thumb{
	background-color: #fff;
	}
	section.contents_wrap .contents
	{
		width: calc( 100% - 250px );
		/* width: 100%; */
		padding:60px 25px 60px 37px;
		border-left:1px solid #e5e5e5;
		position: relative;
		left:-1px;
	}
	/* サイト内検索 */
	.lity
	{
		background: #ffffff;
		background: rgba(255, 255, 255, 0.9);
	}
	.lity-close
	{
		width: 50px;
		height: 50px;
		color: #0f88bc;
		font-size: 50px;
		line-height: 50px;
		text-shadow: none;
	}
	.lity-close:hover, .lity-close:focus, .lity-close:active, .lity-close:visited
	{
		color: #0f88bc;
		font-size: 50px;
		line-height: 50px;
		text-shadow: none;
	}
	.lity-container
	{
		top: -100px;
		width: 800px;

	}
	.g_access a
	{
		display: block;
		width: 35px;
		height: 35px;
		text-align: center;
		background-color: rgb(15, 136, 188);
		mask-image: url("/images/common/icon/access.svg");
		mask-repeat: no-repeat;
		mask-size: 35px 35px;
		mask-position: center center;
	}

	.g_search
	{
		margin-right:1em;
	}
	.g_search a
	{
		display: block;
		width: 30px;
		height: 30px;
		text-align: center;
		background-color: #0f88bc;
		mask-image: url(/images/common/icon/search_w.svg) ;
		mask-repeat: no-repeat;
		mask-position: center center;
		mask-size:30px 30px;
	}
	.lity-content:after
	{
		box-shadow: none;
	}
	#g_search
	{
		width:100%;
		max-width: 800px;
		background-image: radial-gradient(closest-side, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
		padding:150px 32px 50px;
		position: relative;
		border-radius: 30px;
	}
	#g_search::before
	{
		content:"サイト内検索";
		position: absolute;
		top:36px;
		left:50%;
		transform:translate(-50%, 0);
		font-size:3rem;
		font-weight: 400;
		letter-spacing: 0.2em;
	}
	#g_search::after
	{
		content:"";
		width: 100px;
		height:3px;
		border-radius: 1.5px;
		background-color: #0f88bc;
		position: absolute;
		top:100px;
		left:50%;
		transform:translate(-50%, 0);
	}
	table.gsc-search-box td.gsc-input
	{
		padding-right: 0px!important;
	}
	.gsc-search-button
	{
		margin-left: 0px!important;
	}
	.gssb_c,
	.gssb_e
	{
	position: relative;
	z-index: 99999!important;
	}
	.gsib_a
	{
		padding: 5px 8px!important;
	}
	.gsc-input-box
	{
		height:50px;
		border-top:1px solid #919191!important;
		border-left:1px solid #919191!important;
		border-bottom:1px solid #919191!important;
		border-radius: 25px 0 0 25px!important;
		line-height: 1;
	}
	.gsc-input-box input
	{
		font-size:1.8rem;
		padding:8px 16px!important;
		border-radius: 23px 0 0 23px;
	}
	.gsc-search-button button
	{
		height:50px;
		background-color: #0f88bc;
		border-top:1px solid #0f88bc!important;
		border-right:1px solid #0f88bc!important;
		border-bottom:1px solid #0f88bc!important;
		border-radius: 0 25px 25px 0!important;
	}
	.gsc-search-button-v2 svg
	{
		fill: #FFFFFF;
		transform: scale(2)!important;
	}

	section.contents_wrap .contents.search_result
	{
		width: 100%;
		padding:60px 25px 60px 25px;
		border-left:none;
		position: relative;
		left:0;
	}

	@media screen and (max-width: 1024px)
	{
		.g_access a
		{
			margin-right:63px;
		}
		.g_search
		{
			display: none;
		}
		.lity-hide
		{
			display: block;
		}
		#g_search
		{
			width:100%;
			position: relative;
			left:50%;
			transform:translate(-50%, 0);
			max-width: 100%;
			background-image: none;
			padding:0;
			border-radius: 0px;
			display: block;
			margin-bottom:80px;
		}
		#g_search::before
		{
			content:"サイト内検索";
			display: inline-block;
			font-size: 1.2rem;
			text-align: center;
			max-width: 200px;
			min-width: 50%;
			height: 25px;
			position:relative;
			top:0;
			left:50%;
			transform:translate(-50%, 0);
			line-height: 25px;
			border: 1px solid #afafaf;
			border-radius: 12px;
			background: #f7f7f7;
			z-index: 101;
		}
		#g_search::after
		{
			content:"";
			width: 100%;
			height:1px;
			border-radius: 1.5px;
			background-color: #afafaf;
			position: absolute;
			top:12.5px;
			left:50%;
			transform:translate(-50%, 0);
			z-index: 100;
		}
		table.gsc-search-box
		{
			width: 90%!important;
			margin:25px auto 80px;
		}
		.gsc-input
		{
			/* height:30px; */
		}
		.gsc-input-box
		{
			display: flex;
    		align-items: center;
			height:40px;
			border-top:1px solid #919191!important;
			border-left:1px solid #919191!important;
			border-bottom:1px solid #919191!important;
			border-radius: 10px 0 0 10px!important;
			line-height: 1;
		}
		.gsib_a
		{
			position: relative;
			padding: 5px 8px!important;
		}
		.gsc-input-box input
		{
			font-size:1.6rem;
			padding:0px 16px!important;
			border-radius: 23px 0 0 23px;
		}
		.gsc-search-button button
		{
			height:40px;
			background-color: #0f88bc;
			border-top:1px solid #0f88bc!important;
			border-right:1px solid #0f88bc!important;
			border-bottom:1px solid #0f88bc!important;
			border-radius: 0 10px 10px 0!important;
		}
		.gsc-search-button
		{
			width: 70px;
		}
		.gsc-search-button-v2
		{
			padding: 6px 30px!important;
		}
		.gsc-search-button-v2 svg
		{
			transform: scale(1.2)!important;
		}
		section.contents_wrap .contents.search_result
		{
			padding:30px 15px 30px 15px;
		}
	}

	.side_menu h2
	{
		font-size:2rem;
		font-weight: 400;
		text-align: center;
		letter-spacing: 0;
		white-space: nowrap;
	}
	.side_menu h2 span
	{
		display:block;
		font-size:1.3rem;
		margin:10px auto 45px;
		padding-top:7px;
		border-top:1px solid #ccc;
		color:#808080;
		position: relative;
	}
/*
	.side_menu h2 span::after
	{
		content: "";
		position: absolute;
		left: 0;
		top: -2px;
		height: 3px;
		width: 50px;
		background: #92b6fb;
	}
*/
	.side_menu > ul > li,
	.side_menu > ul > li > span
	{
		display: block;
		margin-bottom: 10px;
		font-size: 1.4rem;
	}
	.side_menu > ul > li.line
	{
		width: calc(100% - 20px);
		height: 0px;
		line-height: 1;
		border-top:1px dashed #ccc;
		margin:20px 0 20px auto;
	}
	.side_menu > ul > li > :is( a, span )
	{
		position: relative;
		display: inline-block;
		color:#222;
		text-decoration: none;
		padding-left:20px;
		transition: 0.3s;
	}
	.side_menu > ul > li > :is( a, span )::before
	{
		content:"";
		position: absolute;
		left:0;
		display: block;
		margin-top: 0.5em;
		width:10px;
		height:10px;
		background-color: #dad6cb;
		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 320 512"><path d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"/></svg>');
		transform: scale(1,0.75);
		transition: 0.1s;
	}
	.side_menu > ul > li > a.guide::before,
	header .g_navi .menu  > ul > li > a.guide::before
	{
		margin-top: -2px;
		width: 10px;
		height: 25px;
		background-color: #ff0040;
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: contain;
		mask-image: url(../images/common/icon/contents_guide.svg);
		transform: scale(1,1);
		transition: 0.1s;
	}
	.side_menu > ul > li > a.outside::after
	{
		content:"";
		position: absolute;
		top:0;
		right:-20px;
		display: block;
		margin-top: 0.3em;
		background-color: #dad6cb;
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: 100%;
		/* width: 10px;
		height: 10px; */
		width: 1em;
		height: 1em;
		/* mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z"/></svg>');
		transform: scale(0.8, 0.8);
		*/
		mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-right-fill" viewBox="0 0 16 16"><path d="m12.14 8.753-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z"/></svg>');
	}
	.side_menu > ul > li a:hover
	{
		color:#ffaaaa;
	}
	.side_menu > ul > li > a:hover::before
	{
		left:2px;
	}
	.side_menu > ul > li > a.guide:hover::before
	{
		left:0px;
	}
	.side_menu > ul > li :is( a, span ).active
	{
		color:#ffaaaa;
		font-weight: 900;
	}

	.side_menu .sub_menu
	{
		font-size:1.3rem;
		padding-left:20px;
		margin-left: 1em;
		list-style-type: disc;
	}
	.side_menu .sub_menu li
	{
		margin-bottom: 10px;
		line-height: 1.3;
	}
	.side_menu .sub_menu li::marker
	{
		color:#ccc;
	}
	.side_menu .sub_menu li > a
	{
		color:#222;
		text-decoration: none;
		transition: 0.3s;
	}


	@media screen and (max-width: 1024px)
	{
		.side_menu
		{
			display:none;
		}
		section.contents_wrap .contents
		{
			max-width: 100%;
			width: 100%;
			padding:30px 15px 30px 15px;
		}
	}

	/*============================
		フッター
	============================*/
	footer
	{
		position: relative;
		z-index: 0;
	}
	footer > .container
	{
		padding:50px 30px 50px;
	}
	footer .bn_wrap .container
	{
		border-top:1px solid #aaa;
		position: relative;
		margin-top: 50px;
		z-index: 10;
	}
	footer .bn_wrap ul
	{
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap:20px;
		margin:0 auto 30px;
	}
	footer .bn_wrap ul li
	{
		width:calc( ( 100% - 120px ) / 7 );
	}
	footer .bn_wrap ul li a:hover
	{
		opacity: 0.6;
	}
	footer .bn_wrap ul li img
	{
		width:100%;
		object-fit: contain;
	}
	@media screen and (max-width: 768px)
	{
		footer .bn_wrap ul
		{
			flex-wrap: wrap;
			justify-content: flex-start;
			gap:10px;
			margin-bottom:0;
		}
		footer .bn_wrap ul li
		{
			width:calc( ( 100% - 20px ) / 3 );
		}
	}
	footer .ft_info .container
	{
		position: relative;
		z-index: 10;
	}
	.ft_wrap
	{
		display: flex;
		margin-bottom:60px;
	}
	.ncnp_hospital
	{
		display: flex;
		max-width: 680px;
		gap:30px;
	}
	.ncnp_hospital div.ft_logo
	{
		width:250px;
	}
	.ncnp_hospital div.ft_logo figure
	{
		width:100%;
	}
	.ncnp_hospital figure img
	{
		max-width: 100%;
		width: fit-content;
	}
	.ncnp_hospital div.ft_logo ul
	{
		display: flex;
		justify-content: center;
		gap: 16px;
		margin-top:16px;
	}
	.ncnp_hospital div.ft_logo ul li
	{
		width: calc((80% - 64px) / 3);
	}
	.ncnp_hospital div.ft_logo ul li img
	{
		width: 100%;
		aspect-ratio: 1 / 1;
		object-fit: contain;

	}



	.ncnp_hospital > div.ft_address
	{
		padding-left:30px;
		border-left:1px solid #ddd;
	}
	.ncnp_hospital > div.ft_address dl
	{
		display: flex;
		gap:0.5em;
		margin:0;
	}
	.ncnp_hospital > div.ft_address dt
	{
		width: 5em;
		text-align-last: justify;
	}
	.ft_navi
	{
		display: flex;
		gap:50px;
		max-width: 680px;
		margin-left:10%;
		z-index: 10;
	}
	:is( .ft_navi_l, .ft_navi_r ) li
	{
		display: flex;
		align-items: flex-start;
	}
	.ft_navi ul li::before
	{
		content:  "";
		width:  1em;
		height:  1em;
		margin-top: 0.3em;
		margin-right: 0.5em;
		display:  inline-block;
		background-color: #f7ede0;
		border-radius:  50%;
	}
	.ft_navi ul li a
	{
		color:#000;
		text-decoration: none;
		text-shadow: 3px 3px 3px #fff, -3px -3px 3px #fff, -3px 3px 3px #fff, 3px -3px 3px #fff, 3px 0px 3px #fff, -3px -0px 3px #fff, 0px 3px 3px #fff, 0px -3px 3px #fff;
	}
	.ft_navi ul li a:hover
	{
		color:#666;
	}
	@media screen and (max-width: 1200px)
	{
		.ft_navi
		{
			display: flex;
			gap:5px;
			flex-direction: column;
		}
	}
	@media screen and (max-width: 768px)
	{
		.ft_wrap
		{
			display: block;
			border-top: 1px solid #ddd;
			padding-top:30px;
		}
		.ncnp_hospital
		{
			display: block;
			max-width: 680px;
			gap:30px;
		}
		.ncnp_hospital div.ft_logo
		{
			width:80%;
			margin:0 auto 10px;
		}
		.ncnp_hospital > div.ft_address
		{
			padding-left:0px;
			border-left:none;
			font-size:1.2rem;
		}
		.ft_navi
		{
			display: block;
			max-width: 680px;
			margin-left:0;
			padding-top:1em;
			font-size:1.4rem;
		}
		:is( .ft_navi_l, .ft_navi_r ) li
		{
			margin-bottom:10px;
		}
	}

	.ft_tree
	{
		border-bottom:15px solid #ccc;
		position: relative;
		height:14px;
		z-index: 0;
	}
	.ft_tree .container
	{
		position: absolute;
		top:-120px;
		left:50%;
		transform:translate(-50%, 0);
		z-index: 0;
		height: 120px;
		background-color: #ccc;
		mask-repeat: no-repeat;
		mask-position: right bottom;
		mask-size: contain;
		mask-image:url('data:image/svg+xml,<svg version="1.1" id="svg8530" inkscape:export-ydpi="96" inkscape:export-xdpi="96" inkscape:export-filename="" sodipodi:docname="" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="134.982px" height="83.501px" viewBox="300.002 3.253 134.982 83.501" enable-background="new 300.002 3.253 134.982 83.501" xml:space="preserve"><path fill="%23F9CCD5" d="M327.326,86.754h-6.832v-5.236H302.51c-1.387,0-2.508-1.121-2.508-2.51c0-0.586,0.204-1.153,0.577-1.6l7.962-9.554h-3.565c-1.334,0-2.411-1.077-2.411-2.411c0-0.641,0.257-1.256,0.704-1.708l7.835-7.834h-2.658c-1.366,0-2.466-1.099-2.466-2.465c0-0.608,0.225-1.204,0.641-1.655l15.86-17.45c0.363-0.399,0.887-0.626,1.431-0.626s1.065,0.22,1.43,0.626l15.861,17.45c0.416,0.448,0.641,1.049,0.641,1.655c0,1.366-1.11,2.465-2.466,2.465h-2.659l7.834,7.834c0.448,0.448,0.705,1.069,0.705,1.708c0,1.334-1.077,2.411-2.411,2.411h-3.564l7.961,9.554c0.374,0.448,0.578,1.012,0.578,1.6c0,1.389-1.121,2.51-2.509,2.51h-17.983v5.236H327.326z M402.77,85.958v-7.535h28.271c2.181,0,3.942-1.762,3.942-3.943c0-0.923-0.319-1.813-0.906-2.518L421.56,56.944h5.604c2.098,0,3.793-1.693,3.793-3.791c0-1.008-0.403-1.98-1.107-2.686l-12.315-12.315h4.18c2.131,0,3.874-1.729,3.874-3.877c0-0.956-0.353-1.896-1.007-2.6L399.648,4.242c-0.569-0.638-1.393-0.989-2.248-0.989s-1.679,0.354-2.248,0.989l-24.935,27.434c-0.654,0.704-1.006,1.644-1.006,2.6c0,2.147,1.729,3.877,3.876,3.877h4.178l-12.314,12.314c-0.704,0.705-1.107,1.679-1.107,2.687c0,2.097,1.694,3.791,3.791,3.791h5.605l-12.519,15.019c-0.587,0.703-0.905,1.594-0.905,2.517c0,2.183,1.764,3.942,3.943,3.942h28.271v7.535c0,0.271,0.021,0.537,0.06,0.797h10.619C402.75,86.495,402.77,86.229,402.77,85.958z"/></svg>')
	}

	.ft_tree.spring
	{
		border-bottom:15px solid #f9ccd5;
	}
	.ft_tree.spring .container
	{
		background-color:#f9ccd5;
	}
	.ft_tree.summer
	{
		border-bottom:15px solid #b8dec5;
	}
	.ft_tree.summer .container
	{
		background-color:#b8dec5;
	}
	.ft_tree.autumn
	{
		border-bottom:15px solid #f7ede0;
	}
	.ft_tree.autumn .container
	{
		background-color:#f7ede0;
	}
	.ft_tree.winter
	{
		border-bottom:15px solid #c1e0fb;
	}
	.ft_tree.winter .container
	{
		background-color:#c1e0fb;
	}
	footer > p
	{
		padding:30px;
		text-align: center;
	}
	@media screen and (max-width: 768px)
	{
		footer > .container
		{
			padding:20px 15px 20px;
		}
		footer > p
		{
			padding:10px;
			font-size:1.2rem;
			padding-bottom:50px;
		}
	}


	/*============================
		よく閲覧されるページ
	============================*/
	#favorite
	{
		width:100%;
		/* height:45px;
		overflow: hidden; */
		position: fixed;
		/* z-index: 9999; */
		bottom:-60px;
		transition: .3s;
	}
	#favorite:has(.popup_area.open)
	{
		bottom:0px;
		filter: drop-shadow(0 -8px 8px rgba(58, 58, 58, 0.3));
	}
	#favorite .popup_btn
	{
		max-width:1440px;
		width:100%;
		margin:0 auto;
		padding:0;
		position: relative;
		bottom:0;
		z-index: 100;
		cursor: pointer;
	}
	#favorite .popup_btn > div
	{
		width:fit-content;
		padding:10px 25px;
		display: inline-block;
		background: #fff;
		border-top: 1px solid #eee;
		border-left: 1px solid #eee;
		border-right: 1px solid #eee;
		z-index: inherit;
		font-weight: 400;
		color:#fff;
		border-radius: 5px 5px 0 0;
		font-size:1.4rem;
		position: absolute;
		bottom:0px;
		left:0;
		background: #0f88bc;
	}
	#favorite .popup_btn > div:hover
	{
		color:#fff;
		background: #075b80;
	}
	#favorite .popup_area
	{
		width:100%;
		margin:0 auto;
		padding:0;
		position: relative;
		z-index: 0;
		background: #fff;
		/* background: #f7f5f2; */
	}
	#favorite .popup_area > ul
	{
		max-width:1440px;
		width:100%;
		min-height:60px;
		padding:0 25px;
		margin:auto;
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap:20px;
		position: relative;
		z-index: 1;
	}
	#favorite .popup_area > ul li
	{
		font-size:1.5rem;
		width: fit-content;
	}
	#favorite .popup_area > ul li a
	{
		display: flex;
		align-items: center;
		text-align: center;
		text-decoration: none;
		color:#222;
		position: relative;
		padding: 10px 0px 0.3em;
		background: linear-gradient(#38ade0, #38ade0) 0 100% / 0 3px no-repeat;
		transition: background 0s;
		text-decoration: none;
		line-height: 1.2;
	}
	#favorite .popup_area > ul li a:hover
	{
		color: #0f88bc;
		background-size: 100% 1px;
	}
	#favorite .popup_area > ul li a figure
	{
		width:1.4em;
		height:1.4em;
		margin-right:0.3em;
		object-fit: contain;
		display: inline-block;
	}
	#favorite .popup_area > ul li a figure img
	{
		width:100%;
		height:100%;
	}
	@media screen and (max-width: 768px)
	{
		#favorite
		{
			/* display: none; */
			bottom:-60px;
		}
		#favorite .popup_area > ul
		{
			flex-wrap: wrap;
			align-items: center;
			justify-content: flex-start;
			gap:0;
			position: relative;
			z-index: 1;
			padding:0px;
		}
		#favorite .popup_area > ul li
		{
			font-size:0.8rem;
			width: calc(( 100% ) / 6);
			height: 60px;
			padding:10px 0;
		}
		#favorite .popup_area > ul li a
		{
			padding: 0px 15px;
			height:100%;
			flex-direction: column;
			overflow: hidden;
			display: -webkit-box;
			text-overflow: ellipsis;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 2;
		}
		#favorite .popup_area > ul li a figure
		{
			width:25px;
			height:25px;
			margin:0 auto 5px;
			display: block;
		}
		#favorite .popup_area > ul li a:hover
		{
			color: #0f88bc;
			background-size:0;
		}
	}