@charset "UTF-8";

.pagetop {
	width: 113px;
	position: fixed;
	bottom: 0;
	right: -115px;
	transition: all 0.3s ease-in-out;
	z-index: 10;
	}
	.pagetop.active {
		right: 0;
		}

header {
	display: flex;
	flex-direction: row;
	width: 100vw;
	padding: 0 40px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 50;
	background-color: #fff;
	}
	header .name {
		width: 215px;
		padding: 20px 0 0 0;
		}
		header .name a {
			color: #232088;
			line-height: 1;
			}
		header .name a:hover {
			text-decoration: none;
			}

			header .name a em {
				display: block;
				font-size: 32px;
				padding-bottom: 8px;
				letter-spacing: 0.1em;
				}

			header .name a span {
				display: block;
				font-size: 17px;
				letter-spacing: 0.1em;
				}

	header .hdrNav {
		flex-grow: 2;
		flex-shrink: 2;
		display: flex;
		justify-content: space-between;
		padding: 0;
		}

		header .hdrNav .gnav {
			display: flex;
			justify-content: center;
			flex-direction: row;
			width: 100%;
			}

			header .hdrNav .gnav li {
				display: inline-block;
				padding: 0 30px 0 0;
				line-height: 1;
				}

			header .hdrNav .gnav li:last-child {
				padding: 0 0 0 0;
				}

				header .hdrNav .gnav li a {
					color: #002244;
					position: relative;
					display: flex;
					align-items: center;
					height: 99px;
					width: auto;
					transition: all 0.3s ease;
					}

				header .hdrNav .gnav li a::after {
					content: "";
					height: 6px;
					width: 0px;
					position: absolute;
					left: 0;
					bottom: 0;
					background-color: #232088;
					transition: inherit;
					}

				header .hdrNav .gnav li a:hover {
					text-decoration: none;
					}

				header .hdrNav .gnav li a:hover::after {
					width: 100%;
					}
 
					header .hdrNav .gnav li a .icon {
						display: inline;
						margin: 1px 0 0 3px;
						}

			#home header .hdrNav .home a::after,
			#about header .hdrNav .about a::after,
			#mission header .hdrNav .mission a::after,
			#news header .hdrNav .news a::after,
			#profile header .hdrNav .profile a::after,
			#office header .hdrNav .office a::after {
				content: "";
				height: 6px;
				width: 100%;
				position: absolute;
				left: 0;
				bottom: 0;
				background-color: #232088;
				transition: inherit;
				}

@media screen and (max-width: 1100px) {
header {
	height: 80px;
	}
	header .name {
		width: 160px;
		padding: 20px 0 0 0;
		}
		header .name a em {
			font-size: calc(26px * 0.8);
			}

		header .name a span {
			font-size: calc(14px * 0.8);
			}

	header .hdrNav {
		display: block;
		position: fixed;
		z-index: 51;
		left: 100vw;
		top: 79px;
		width: 100vw;
		height: 100vh;
		padding: 0;
		background: #fff;
		transition: all 0.5s ease-in-out;
		animation-fill-mode: forwards;
		}

		header .hdrNav.navOpen {
			left: 0;
			}

		header .hdrNav .gnav {
			display: block;
			width: inherit;
			margin: 0 0 30px 0;
			}

			header .hdrNav .gnav li {
				display: block;
				width: inherit;
				font-size: 18px;
				border-bottom: 1px solid #ddd;
				padding: 0 15px 0 0;
				}

			header .hdrNav .gnav li:first-child {
				border-top: 1px solid #ddd;
				}

			header .hdrNav .gnav li:last-child {
				padding: 0 15px 0 0;
				}

				header .hdrNav .gnav li a {
					height: 60px;
					width: calc(100% - 60px;);
					padding: 0 30px 0 30px;
					background: url("../_img/sp_nav_arw.png") no-repeat right center;
					background-size: auto 25px;
					}

				header .hdrNav .gnav li a::after {
					display: none;
					}
}



	header .hdrSubNav {
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 15px 0;
		padding: 0 20px;
		border: 2px solid #232088;
		border-radius: 5px;
		background-color: #232088;
		color: #fff;
		font-size: 14px;
		line-height: 1.1;
		text-align: center;
		text-decoration: none;
		transition: 0.5s;
		}
	header .hdrSubNav:hover {
		background-color: #fff;
		color: #232088;
		text-decoration: none;
		transition: 0.5s;
		}

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

header .hdrNav .hdrSubNav {
	display: none;
	}
@media screen and (max-width: 1100px) {
header .hdrNav .hdrSubNav {
	display: block;
	width: 90%;
	margin: 0 auto;
	padding: 20px 0;
	}
}

.ftrSupport {
	width: 100%;
	background: #f3f3f3;
	padding: 0 0 40px 0;
	}

	.ftrSupport .top {
		max-width: 1160px;
		height: 120px;
		padding: 0 30px;
		margin: 0 auto 30px;
		display: flex;
		flex-direction: row;
		align-items: stretch;
		text-align: left;
		}

		.ftrSupport .top h2 {
			width: 370px;
			font-size: 36px;
			line-height: 1;
			display: flex;
			align-items: center;
			padding: 0 45px 18px 0;
			margin: 0 0 0 0;
			background: url("../_img/spt_line.png") no-repeat right top;
			background-size: contain;
			}

		.ftrSupport .top p {
			width: calc(100% - 370px);
			display: flex;
			align-items: center;
			font-size: 24px;
			line-height: 1.75;
			padding: 0 0 16px 6px;
			}

	.ftrSupport .banner {
		max-width: 1160px;
		padding: 0 30px;
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		margin: 0 auto;
		}

		.ftrSupport .banner li {
			width: 24%;
			}

			.ftrSupport .banner li img {
				width: 100%;
				height: auto;
				}

@media screen and (max-width: 768px) {
.ftrSupport {
	padding: 40px 0 40px 0;
	}

	.ftrSupport .top {
		display: block;
		height: auto;
		margin: 0 auto 15px;
		}

		.ftrSupport .top h2 {
			width: 100%;
			padding: 0 0 0 0;
			background: none;
			margin: 0 0 15px 0;
			}

		.ftrSupport .top p {
			width: 100%;
			padding: 0;
			font-size: 18px;
			}

		.ftrSupport .banner li {
			width: 48%;
			margin: 1.5vw 0;
			}
}

@media screen and (max-width: 450px) {
		.ftrSupport .top h2 {
			font-size: 8vw;
			}

		.ftrSupport .banner li {
			width: 100%;
			}
}

.pageFtr {
	width: 100%;
	padding: 60px 0 70px;
	background: #232088;
	color: #fff;
	}

	.pageFtr a {
		color: #fff;
		text-decoration: none;
		}

	.pageFtr a:hover {
		text-decoration: underline;
		}

	.pageFtr .ftrInner {
		max-width: 1160px;
		padding: 0 30px;
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: stretch;
		}

		.pageFtr .ftrInner .ftrNav {
			width: calc(100% - 300px);
			line-height: 1.4;
			}

			.pageFtr .ftrInner .ftrNav .toppage {
				width: 100%;
				font-size: 21px;
				margin: 0 0 10px;
				}

				.pageFtr .ftrInner .ftrNav .toppage a {
					padding: 0;
					display: block;
					}

			.pageFtr .ftrInner .ftrNav .siteNav {
				width: 100%;
				margin: 0 0 30px;
				}

				.pageFtr .ftrInner .ftrNav .siteNav ul {
					display: flex;
					flex-wrap: wrap;
					}

					.pageFtr .ftrInner .ftrNav .siteNav ul > li {
						margin: 0 15px 12px 0;
						}

						.pageFtr .ftrInner .ftrNav .siteNav ul > li > a {
							
							padding: 0 0 0 20px;
							background: url("../_img/ftr_linkmrk_1.png") no-repeat 5px 4px;
							background-size: 5.5px auto;
							background-position-y: 5.5px;
							display: block;
							}

			.pageFtr .ftrInner .ftrNav .areaNav {
				width: 100%;
				margin: 0;
				}

				.pageFtr .ftrInner .ftrNav .areaNav ul {
					display: flex;
					flex-wrap: wrap;
					}

					.pageFtr .ftrInner .ftrNav .areaNav ul > li {
						margin: 5px;
						}

						.pageFtr .ftrInner .ftrNav .areaNav ul > li > a {
							display: inline-block;
							padding: 5px 20px 6px;
							background-color: #fff;
							border: 1px solid #fff;
							border-radius: 10px;
							color: #232088;
							font-weight: 400;
							text-decoration: none;
							transition: 0.5s;
							}
						.pageFtr .ftrInner .ftrNav .areaNav ul > li > a:hover {
							background-color: #232088;
							color: #fff;
							text-decoration: none;
							transition: 0.5s;
							}

		.pageFtr .ftrInner .sdgs {
			width: 250px;
			}
			.pageFtr .ftrInner .sdgs a img {
				transition: 0.5s;
				}
			.pageFtr .ftrInner .sdgs a:hover img {
				opacity: 0.7;
				transition: 0.5s;
				}

		.pageFtr .ftrInner .btm {
			width: 100%;
			height: 10%;
			margin: 40px 0 0;
			display: flex;
			justify-content: flex-start;
			align-items: center;
			font-size: 12px;
			line-height: 1;
			}

			.pageFtr .ftrInner .btm .pp {
				display: inline-block;
				text-align: right;
				}

				.pageFtr .ftrInner .ftrR .btm .copyright {
					padding: 0 0 0 30px;
					}

@media screen and (max-width: 550px) {
				.pageFtr .ftrInner .ftrNav .toppage a {
					text-align: center;
					}

				.pageFtr .ftrInner .ftrNav .siteNav p {
					text-align: center;
					}

				.pageFtr .ftrInner .ftrNav .siteNav ul {
					justify-content: center;
					}

				.pageFtr .ftrInner .ftrNav .areaNav p {
					text-align: center;
					}

				.pageFtr .ftrInner .ftrNav .areaNav ul {
					justify-content: center;
					}

		.pageFtr .ftrInner .sdgs {
			margin: 0 auto;
			}

		.pageFtr .ftrInner .btm {
			justify-content: center;
			}
}




@media screen and (max-width: 960px) {
			.pageFtr .ftrInner .ftrNav .toppage {
				font-size: 16px;
				}

			.pageFtr .ftrInner .ftrNav .layer1 {
				font-size: 14px;
				}
}

@media screen and (max-width: 930px) {
		.pageFtr .ftrInner .ftrNav {
			width: 50%;
			}

		.pageFtr .ftrInner .ftrR {
			width: 45%;
			}
}

@media screen and (max-width: 768px) {
.pageFtr {
	padding: 30px 0 70px;
	}

	.pageFtr .ftrInner {
		display: block;
		}

		.pageFtr .ftrInner .ftrNav {
			width: 100%;
			margin: 0 0 40px 0;
			}

		.pageFtr .ftrInner .ftrR {
			width: 100%;
			height: auto;
			}

			.pageFtr .ftrInner .ftrR .top {
				height: auto;
				margin: 0 0 30px 0;
				}

			.pageFtr .ftrInner .ftrR .mdl {
				height: auto;
				margin: 0 0 50px 0;
				justify-content: flex-start;
				}

				.pageFtr .ftrInner .ftrR .mdl li {
					margin: 0 10px 0 0;
					}
}

@media screen and (max-width: 450px) {
		.pageFtr .ftrInner .ftrNav {
			display: block;
			}

			.pageFtr .ftrInner .ftrNav .layer1 {
				width: calc(100% - 30px);
				margin: 0 0 0 20px;
				}

				.pageFtr .ftrInner .ftrR .top .banners {
					width: auto;
					}

				.pageFtr .ftrInner .ftrR .mdl li {
					width: calc(33% - 12px);
					margin: 0 12px 12px 0;
					}
}

@media screen and (max-width: 420px) {
			.pageFtr .ftrInner .ftrR .mdl {
				flex-wrap: wrap;
				}
}


.icon-animation {
	display: none;
	background: rgba(255, 255, 255, 0.02);
	position: relative;
	width: 30px;
	height: 30px;
	}

	.icon-animation span {
		width: 30px;
		height: 3px;
		display: block;
		background: #232088;
		position: absolute;
		left: 50%;
		top: 50%;
		margin-left: -15px;
		transition: all 0.3s;
		}

	.icon-animation .top {
		transform: translateY(-10px) scale(1);
		}

	.icon-animation .middle {
		background: none;
		position: relative;
		}

	.icon-animation .middle:before,
	.icon-animation .middle:after {
		transition: all 0.3s;
		content: "";
		width: 30px;
		height: 3px;
		background: #232088;
		display: block;
		transform: rotate(0deg);
		position: absolute;
		}

	.icon-animation .bottom {
		transform: translateY(10px) scale(1);
		}

	.icon-animation.is-open .top {
		transform: translateY(0px) scale(0);
		}

	.icon-animation.is-open .bottom {
		transform: translateY(0px) scale(0);
		}

	.icon-animation.is-open .middle:before {
		transform: rotate(45deg);
		}

	.icon-animation.is-open .middle:after {
		transform: rotate(-45deg);
		}

@media screen and (max-width: 1100px) {
.icon-animation {
	display: block;
	position: absolute;
	top: 24px;
	right: 20px;
	z-index: 5;
	}

.icon-animation:after {
	font-size: 10px;
	font-size: 1rem;
	color: #000;
	position: absolute;
	left: 1px;
	bottom: -15px;
	}
}

a.popup::after {
	content: url("../_img/icon_popup.png");
	display: inline;
	margin: 2px 0 0 3px;
	}


.sns {
	position: fixed;
	bottom: 70px;
	right: 25px;
	width: 60px;
	z-index: 40;
	}
	.sns a {
		display: block;
		width: 100%;
		margin: 0 0 10px;
		}
		.sns a img {
			width: 100%;
			}

@media screen and (max-width: 600px) {
.sns {
	width: 50px;
	right: 10px;
	}
}


.sp-sns {
	display: none;
	}
@media screen and (max-width: 1100px) {
.sp-sns {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 20px 0 0;
	}
	.sp-sns a {
		display: block;
		width: 60px;
		margin: 0 10px 10px;
		}
		.sp-sns a img {
			width: 100%;
			}
}



