@charset "UTF-8";
/**************************
Compass Text Replacement
*/
/**************************
Inline List
*/
/**************************
Inline Block List
*/
/**************************
horizontal-list
*/
/**************************
Bullets
*/
/* simple clearfix */
/**************************
@mixin for sprite
*/
.bold,
strong,
em {
	font-family: 'dnp-shuei-mgothic-std', sans-serif;
	font-weight: 600;
}

@keyframes fade-in {
	0% {
		display: none;
		opacity: 0;
	}
	1% {
		display: block;
		opacity: 0;
	}
	100% {
		display: block;
		opacity: 1;
	}
}
@keyframes fade-out {
	0% {
		display: block;
		opacity: 1;
	}
	99% {
		display: block;
		opacity: 0;
	}
	100% {
		display: none;
		opacity: 0;
	}
}
@keyframes gnav_sub {
	0% {
		opacity: 0;
		transform: scale(0.95) translateY(-5%);
	}
	100% {
		transform: scale(1) translateY(0);
	}
}
@keyframes _on_opacity {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
@keyframes header_start {
	0% {
		transform: translateY(-200px);
	}
	100% {
		transform: translateY(0);
	}
}
/***********************************************************************
 ***********************************************************************
 ***********************************************************************
## Layout
*/
.root {
	box-sizing: border-box;
	position: relative;
	top: 0;
	left: 0;
	padding-top: 150px;
}
.root-sub_index {
	overflow: hidden;
}

.pc_container,
.pc_tb_container,
.container {
	width: 100%;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 1000px;
	padding-left: 10px;
	padding-right: 10px;
}
@media screen and (max-width: 1000px) {
	.pc_container,
	.pc_tb_container,
	.container {
		max-width: 1000px;
	}
}
.pc_container-relative,
.pc_tb_container-relative,
.container-relative {
	position: relative;
	top: 0;
	left: 0;
}
.pc_container-sm,
.pc_tb_container-sm,
.container-sm {
	width: 100%;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 800px;
	padding-left: 10px;
	padding-right: 10px;
}
@media screen and (max-width: 1000px) {
	.pc_container-sm,
	.pc_tb_container-sm,
	.container-sm {
		max-width: 800px;
	}
}
.pc_container-sm2,
.pc_tb_container-sm2,
.container-sm2 {
	width: 100%;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 660px;
	padding-left: 10px;
	padding-right: 10px;
}
@media screen and (max-width: 1000px) {
	.pc_container-sm2,
	.pc_tb_container-sm2,
	.container-sm2 {
		max-width: 660px;
	}
}
.pc_container-sm3,
.pc_tb_container-sm3,
.container-sm3 {
	width: 100%;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 500px;
	padding-left: 10px;
	padding-right: 10px;
}
@media screen and (max-width: 1000px) {
	.pc_container-sm3,
	.pc_tb_container-sm3,
	.container-sm3 {
		max-width: 500px;
	}
}

.pc_padding,
.padding {
	padding-left: 20px;
	padding-right: 20px;
}

.main_content {
	padding-top: 60px;
	font-size: 1rem;
	padding-bottom: 80px;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************

## Utility - Cosmetic

ユーティリティー設定。
このサイト専用というわけでもない共通設定。

*/
.pc_none,
.root .pc_none {
	display: none;
}

.block,
.pc_block {
	display: block;
}

@media screen and (min-width: 1000px) and (max-width: 1099px), print {
	.pc_s_block {
		display: block;
	}
}
.tel_link,
.tel_link-no {
	pointer-events: none;
	cursor: default;
	color: inherit;
}
.root .tel_link,
.root .tel_link:hover,
.root .tel_link-no,
.root .tel_link-no:hover {
	text-decoration: none;
	color: inherit;
}

.sp_click,
.pc_no_click {
	pointer-events: none;
	cursor: default;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************



## Component - Base

コンポーネント設定。
各ページでよく使い回す記述。
このサイト専用の共通設定。

*/
/**************************

## - 段組設定 2列 3列 4列

PCの時だけ、中央に等間隔で余白を作り、width: 100%; を守って列になる。
ul でなくてもいい。

**2列 .pc_column2**

	<ul class="pc_column2">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

**3列 .pc_column3**

	<ul class="pc_column3">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

**4列 .pc_column4**

	<ul class="pc_column4">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

*/
.pc_column2 > *:nth-child(2n) {
	padding-bottom: 20px;
}

.pc_column2-no_mb > *:nth-child(2n) {
	padding-bottom: 0em;
}

.pc_column2 > *:last-child {
	padding-bottom: 0;
}

.pc_column3 > *:nth-child(3n) {
	padding-bottom: 20px;
}

.pc_column3-no_mb > *:nth-child(3n) {
	padding-bottom: 0em;
}

.pc_column3 > *:last-child {
	padding-bottom: 0;
}

.pc_column4 > *:nth-child(4n) {
	padding-bottom: 20px;
}

.pc_column4-no_mb > *:nth-child(4n) {
	padding-bottom: 0em;
}

.pc_column4 > *:last-child {
	padding-bottom: 0;
}

.pc_column2::before,
.pc_column2::after {
	content: '';
	display: table;
}
.pc_column2::after {
	clear: both;
}
.pc_column2 > * {
	width: 50%;
	float: left;
	box-sizing: border-box;
}
.pc_column2 > *:nth-child(2n + 1) {
	clear: left;
	padding-right: 30px;
}
.pc_column2 > *:nth-child(2n) {
	padding-left: 30px;
}

.pc_column22::before,
.pc_column22::after {
	content: '';
	display: table;
}
.pc_column22::after {
	clear: both;
}
.pc_column22 > * {
	width: 50%;
	float: left;
	box-sizing: border-box;
}
.pc_column22 > *:nth-child(2n + 1) {
	clear: left;
	padding-right: 10px;
}
.pc_column22 > *:nth-child(2n) {
	padding-left: 10px;
}

.pc_column3::before,
.pc_column3::after {
	content: '';
	display: table;
}
.pc_column3::after {
	clear: both;
}
.pc_column3 > * {
	width: 33.3333333333%;
	float: left;
	box-sizing: border-box;
}
.pc_column3 > *:nth-child(3n + 1) {
	clear: left;
	padding-right: 27px;
}
.pc_column3 > *:nth-child(3n + 2) {
	padding-left: 13px;
	padding-right: 13px;
}
.pc_column3 > *:nth-child(3n) {
	padding-left: 27px;
}

.pc_column4::before,
.pc_column4::after {
	content: '';
	display: table;
}
.pc_column4::after {
	clear: both;
}
.pc_column4 > * {
	width: 25%;
	float: left;
	box-sizing: border-box;
}
.pc_column4 > *:nth-child(4n + 1) {
	clear: left;
	padding-right: 15px;
}
.pc_column4 > *:nth-child(4n + 2) {
	padding-left: 5px;
	padding-right: 10px;
}
.pc_column4 > *:nth-child(4n + 3) {
	padding-left: 10px;
	padding-right: 5px;
}
.pc_column4 > *:nth-child(4n) {
	padding-left: 15px;
}

.pc_column2_flex {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 10px;
}
.pc_column2_flex > * {
	width: 50%;
	box-sizing: border-box;
}
.pc_column2_flex > *:nth-child(odd) {
	padding-right: 30px;
}
.pc_column2_flex > *:nth-child(even) {
	padding-left: 30px;
}

.set::before,
.set::after {
	content: '';
	display: table;
}
.set::after {
	clear: both;
}
.set .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 400px;
	margin-left: -360px;
}
.set .fix.left {
	width: 360px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}
.set .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 400px;
	margin-right: -360px;
}
.set .fix.right {
	width: 360px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}
.set .fix > img:not(.cancel),
.set .resize > img:not(.cancel) {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: 360px;
}
.set-2 .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 240px;
	margin-left: -200px;
}
.set-2 .fix.left {
	width: 200px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}
.set-2 .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 240px;
	margin-right: -200px;
}
.set-2 .fix.right {
	width: 200px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}
.set-2 .fix > img:not(.cancel),
.set-2 .resize > img:not(.cancel) {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: 200px;
}
.set-3 .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 420px;
	margin-left: -400px;
}
.set-3 .fix.left {
	width: 400px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}
.set-3 .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 420px;
	margin-right: -400px;
}
.set-3 .fix.right {
	width: 400px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}
.set-3 .fix > img:not(.cancel),
.set-3 .resize > img:not(.cancel) {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: 400px;
}
.set-4 .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 290px;
	margin-left: -250px;
}
.set-4 .fix.left {
	width: 250px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}
.set-4 .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 290px;
	margin-right: -250px;
}
.set-4 .fix.right {
	width: 250px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}
.set-4 .fix > img:not(.cancel),
.set-4 .resize > img:not(.cancel) {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: 250px;
}
.set-sorry {
	max-width: 550px;
	margin-left: auto;
	margin-right: auto;
}
.set-sorry .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 240px;
	margin-left: -200px;
}
.set-sorry .fix.left {
	width: 200px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}
.set-sorry .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 240px;
	margin-right: -200px;
}
.set-sorry .fix.right {
	width: 200px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}
.set-sorry .fix > img:not(.cancel),
.set-sorry .resize > img:not(.cancel) {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: 200px;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************

## Project

特定ページ専用、効果範囲が限定的な記述。
コンテンツ内容に密接で、汎用性がなく、機能の付け替えを想定していない。

*/
.header {
	position: fixed;
	z-index: 1000;
	width: 100%;
	top: 0;
	left: 0;
	height: 150px;
	z-index: 1000;
	background-color: #fff;
	border-bottom: 1px solid #dedede;
}
.header-fixed {
	background-color: #fff;
	position: fixed;
	animation-name: header_start;
	animation-duration: 0.7s;
	animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
	animation-fill-mode: forwards;
}
.header .open_menu {
	display: none;
}
.header__gnav {
	width: 380px;
	padding-top: 77px;
}
.header__gnav-left {
	position: absolute;
	top: 11px;
	left: 0;
}
.header__gnav-right {
	position: absolute;
	top: 0;
	right: 0;
}
.header .container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-left: 0;
	padding-right: 0;
	position: relative;
	top: 0;
	left: 0;
}
.header__logo {
	width: 160px;
	height: 160px;
	position: absolute;
	top: -10px;
	left: 50%;
	margin-left: -80px;
	z-index: 2;
}
.header__menu {
	position: absolute;
	top: 0;
	right: 5px;
	display: flex;
	z-index: 10;
}
.header__menu a,
.header__menu img {
	display: block;
	max-height: 100%;
	height: 60px;
}
.header__menu_left {
	position: absolute;
	top: 0;
	left: 5px;
	display: flex;
	z-index: 10;
}
.header__menu_left a,
.header__menu_left img {
	display: block;
	max-height: 100%;
	height: 60px;
}
.header__tel_banner {
	margin-right: 5px;
}
.header__tel_banner a:hover {
	text-decoration: none;
	opacity: 0.7;
	transition: 0.2s opacity;
}
.header__access {
	height: 80px;
	margin-left: 5px;
}
.header__access a:hover {
	text-decoration: none;
	opacity: 0.7;
	transition: 0.2s opacity;
}
.header__reserve {
	height: 80px;
}
.header__reserve a:hover {
	text-decoration: none;
	opacity: 0.7;
	transition: 0.2s opacity;
}
.header-index {
	height: 240px;
	overflow: visible;
	position: absolute;
	background-color: transparent;
	border-bottom: 0 none;
}
.header-index .header__logo {
	width: 240px;
	height: 240px;
	margin-left: -120px;
	top: 0;
}
.header-index .header__gnav {
	padding-top: 100px;
}
.header-index .triangular {
	display: block;
	width: 60vw;
	height: 300px;
	background-color: #fff;
	position: absolute;
	bottom: 90px;
}
.header-index .triangular::before {
	content: '';
	display: block;
	width: 100%;
	height: 50px;
	background: url('../images/index/header_border.png') center top/70px 35px repeat-x transparent;
	margin-bottom: 25px;
	position: absolute;
	bottom: -74px;
}
.header-index .triangular-left {
	right: 50vw;
	transform: rotate(-7deg);
	background-position: left top;
	transform-origin: right bottom;
}
.header-index .triangular-right {
	left: 50vw;
	transform: rotate(7deg);
	background-position: right top;
	transform-origin: left bottom;
}

.gnav {
	/**************************
  sub
  */
}
.gnav__ul {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.gnav__ul-left > li {
	width: 33.33%;
}
.gnav__ul-right > li {
	width: 33.33%;
}
.gnav__ul-right .gnav__li-4 {
	width: 40%;
}
.gnav__ul-right .gnav__li-4 .gnav__text {
	font-size: 15px;
}
.gnav__ul-right .gnav__li-5 {
	width: 30%;
}
.gnav__ul-right .gnav__li-6 {
	width: 30%;
}
.gnav__li {
	text-align: center;
}
.gnav__a {
	font-family: 'dnp-shuei-mgothic-std', sans-serif;
	font-weight: 600;
	color: #111111;
	text-decoration: none;
	font-size: 1.063rem;
	line-height: 1.5;
}
.gnav__a > .gnav__text {
	font-size: 16px;
}
.gnav__a:hover,
.gnav__a.hover {
	color: #5fbcdd;
}
.gnav__sub {
	display: none;
	position: relative;
	top: 0;
	left: 0;
	z-index: 99;
	height: 0;
}
.gnav__sub__container {
	position: relative;
	width: 370px;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	box-sizing: border-box;
	transition: opacity 0.5s ease-in-out;
	z-index: 10;
	padding-top: 12px;
}
.gnav__sub__container::before {
	content: '';
	display: block;
	background: url('../images/icon/arrow/gnav_sub_top.png') 0 0 no-repeat transparent;
	background-size: 24px 12px;
	width: 24px;
	height: 12px;
	position: absolute;
	top: 1px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}
.gnav__sub__container-1 {
	transform: translateX(0);
	left: 0;
}
.gnav__sub__container-1::before {
	left: 185px;
	margin-left: -130px;
	transform: translateX(0);
}
.gnav__sub__ul1 {
	position: absolute;
	left: 0;
	top: 0;
	top: 12px;
	width: 100%;
	overflow: hidden;
	background-color: #1d95c0;
	border-radius: 3px;
	padding: 0;
	box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 0.12);
	padding: 20px;
	box-sizing: border-box;
}
.gnav__sub .li1 {
	width: 100%;
}
.gnav__sub .li1.active .a1,
.gnav__sub .li1 .a1:hover {
	background-color: #5fbcdd;
	color: #fff;
}
.gnav__sub .li1.active .a1 {
	pointer-events: none;
}
.gnav__sub .a2 {
	padding-left: 10px;
}
.gnav__sub .a1,
.gnav__sub .a2 {
	vertical-align: middle;
	position: relative;
	top: 0;
	left: 0;
	box-sizing: border-box;
	display: block;
	color: #fff;
	text-align: left;
	text-decoration: none;
}
.gnav__sub .a1 .image,
.gnav__sub .a2 .image {
	display: none;
}
.gnav__sub .a1 .text,
.gnav__sub .a2 .text {
	display: block;
	font-size: 0.938rem;
	line-height: 1.4;
	padding: 1ex 10px 1ex 25px;
	position: relative;
	top: 0;
	left: 7px;
	box-sizing: border-box;
}
.gnav__sub .a1 .text::before,
.gnav__sub .a2 .text::before {
	content: '';
	display: block;
	background: url('../images/icon/arrow/link_white.png') 0 0 no-repeat transparent;
	background-size: 18px 18px;
	width: 18px;
	height: 18px;
	margin-right: 2px;
	position: absolute;
	top: 50%;
	left: 0px;
	margin-top: -9px;
}
.gnav__sub .a1 .text .gnav_small,
.gnav__sub .a2 .text .gnav_small {
	font-size: 95%;
}
.gnav__sub .a1 .text .gnav_block,
.gnav__sub .a2 .text .gnav_block {
	display: block;
}
.gnav__sub .a1 .cell,
.gnav__sub .a2 .cell {
	display: block;
}
.gnav__sub-show {
	display: block;
}
.gnav__sub-show .anime {
	animation-name: gnav_sub;
	animation-duration: 0.3s;
	animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	animation-fill-mode: forwards;
}

.scroll_to_top-web_form {
	display: none;
}

.infection_types_wrap {
	display: flex;
	align-items: center;
	display: flex;
	gap: 10px;
}

.infection_types_wrap__inner {
	display: flex;
	align-items: end;
	gap: 16px;
	margin: 8px 0 12px;
}

.infection_types_item {
	background-color: #f0f0f0;
	padding: 4px 0;
	text-align: center;
	border-radius: 30px;
	font-weight: 700;
	width: 80px;
	color: #fff;
	font-weight: 900;
	font-size: 18px;
}

.infection_types_item._3 {
	background-color: #30b73e;
}

.infection_types_item._6 {
	background-color: #0d78aa;
}

.infection_types_item._8 {
	background-color: #e36d86;
}

.infection_types_item._10 {
	background-color: #b79860;
}

.infection_types_item._l4 {
	background-color: #a1a6aa;
}
