/* === header area === */
header {
	margin: 0 auto;
}
.gheader {
	background-color: #1155a6;
	padding-top: 0.5em;
}

.gheader-logo{
	width: 100vw;
	display: inline;
}
.gheader-logo p {
	margin: 0;
	color: #fff;
	font-size: 4vw;
	/*font-weight: bold;*/
	padding: 1em 1em 0 1.5em;
}
.gheader-logo p.secondline {
	font-size: 3.4vw;
	/*font-weight: bold;*/
	padding: 0 1em 1.5em 5.5em;
}
.gheader-logo p a:link, .gheader-logo p a:visited {
	text-decoration: none;
	color: #fff;
}
.gheader-logo p img {
	margin: 0;
	max-width: 12%;
	padding: 0 0.5em 0 0;
}
.gheader-logo p.superscript {
	font-size: 2.5vw;
	padding: 0 0 0 2vw ;
}
@media only screen and (min-width: 55em) {
	.gheader-logo {
		width: 78vw;
		float: left;
		padding-bottom: 1vw;
	}
	.gheader-logo br {
		display:none;
	}
	.gheader-logo p img {
		padding-left: 1em;
		max-width: 5%;
	}
	.gheader-logo p {
		font-size: 1.4vw;
		margin: 0 auto;
		padding: 0.6vw 0 0 0.6vw ;
	}
	.gheader-logo p.eng {
		font-size: 0.65vw;
		font-style: italic;
		margin-top: -0.70vw;
		padding: 0 0 1vw 7vw ;
	}
	.header-forMobile {
		display: none;
	}
	.gheader-logo p.superscript {
		font-size: 0.8vw;
		margin: 0 auto;
		padding: 0 0 0 1.5vw ;
	}
}

.gheader-nav {
	width: 20vw;
	float: right;
	text-align: right;
}
.gheader-nav ul {
	margin: 0;
	padding: 0.5vw 1.2vw 0 0;
	display: inline-block;
}
.gheader-nav ul li {
	float: left;
	background: none;
	text-indent: 0;
}
.gheader-nav ul li a:link, .gheader-nav ul li a:visited {
	text-decoration: none;
	color: #fff;
	font-size: 0.7vw;
	padding-left: 1.2vw;
}
.gheader-nav ul li a img {
	max-width: 0.8vw;
	padding-left: 0;
}
@media only screen and (max-width: 55em) {
	.header-forPC, .gheader-nav, .header-photo { display: none;}
}

.header-photo {
	position: relative;
	width: 100%;
}
.header-photo p {
	margin: 0;
	padding: 0;
}
.header-photo img {
	width: 100%;
}
/* 2019/03/28変更
.header-catch {
	width: 100%;
	position: absolute;
	top: 25%;
	left: -10%;
	text-align: center;
	color: #fff;
	font-size: 1.5vw;
	/*font-weight: bold;*/
	/*background-color: rgba(204,204,204,0.7);
}*/
.header-catch {
	width: 100%;
	position: absolute;
	top: 5%;
	left: -10.5%;
	text-align: center;
	color: #fff;
	font-size: 0.9vw;
}


/* === navigation area === */
nav {
	margin: 0 auto;
	background-color: #dcdcdc;
}
.nav_forPC {
	display: none;
}
#menu{
	display: none;
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	padding: 0;
	border-top: solid 1px #9abcd4;
}
#menu li::first-letter{
	background: none;
	padding: 0;
}
#menu li{
	display: block;
	margin: 0;
	padding: 0;
}
#menu li a{
	display: block;
	padding: 12px 0 10px;
	background: #1155a6;
	color: #fff;
	text-align: center;
	text-decoration: none;
}
#menu li a:hover{
	background: #9abcd4;
}
#toggle{
	display: block;
	position: relative;
	width: 100%;
	background: #1155a6;
}
#toggle a{
	display: block;
	position: relative;
	padding: 12px 0 10px;
	border-bottom: 1px solid #9abcd4;
	color: #fff;
	text-align: center;
	text-decoration: none;
}
#toggle:before{
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	left: 10px;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	background: #fff;
}
#toggle a:before, #toggle a:after{
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	left: 10px;
	width: 20px;
	height: 4px;
	background: #1155a6;
}
#toggle a:before{
	margin-top: -6px;
}
#toggle a:after{
	margin-top: 2px;
}
@media only screen and (min-width: 55em) {
	.nav_forMobile {
		display: none;
	}
	.nav_forPC {
		display: flex;
		justify-content: center;
		margin: 0 8%;
		background-color: rgba(255,255,255,0.8);
	}
	.nav_list {
		width: calc(100% / 8);
		text-align: center;
		border-right: solid 1px #dcdcdc;
		border-left: solid 1px #dcdcdc;
		border-bottom: solid 1px #dcdcdc;
		position: relative;
		height: 4vw;
	}
	.nav_list a {
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	.nav_list a:link, .nav_list a:visited, .nav_list a:hover {
		text-decoration: none;
		color: #333;
		font-size: 0.9vw;
	}
	.nav_list p {
		margin: 1vw 0;
	}
	.nav_list p.two_rows {
		margin: 0.5vw 0;
	}
}

/* === main contents area === */
#contents {
	display: flex;
	flex-direction: column;
	background-color: #fff;
	margin: 0 8%;
}
/* notice and update */
.notice, .update {
	margin-top: 3rem;
}

@media only screen and (min-width: 55em) {
	.notice, .update {
		margin-top: 1.5vw;
		font-size: 0.95vw;
	}
}
.notice p, .update p {
	font-size: 120%;
}
.notice p.ichiran, .update p.ichiran {
	font-size: 100%;
}
.notice p img, .update p img {
	width: 1em;
	padding: 0 0.3em 0.2em 0.3em;
}
.update time {
	padding-right: 1em;
}
.notice ul, .update ul {
	padding-left: 1.5em;
}
.notice ul li::first-letter, .update ul li::first-letter  {
	background: none;
	padding: 0;
}
.notice ul li {
	list-style-type: none;
	list-style-image: none;
	background: url("../img/icon/icon_li_notice.png") no-repeat 0 35%;
	background-size: 0.7em;
	padding: 0 0 0.5em 1.2em;
	text-align: left;
	text-indent: 0;
}
.update ul li {
	list-style-type: none;
	list-style-image: none;
	background: url("../img/icon/icon_li.png") no-repeat 0 35%;
	background-size: 0.7em;
	padding: 0 0 0.5em 1.2em;
	text-align: left;
	text-indent: 0;
}

/* main menu */
.main-menu_forMobile {
	display: flex;
	justify-content: center;
	border: 1px solid #dcdcdc;
}
.main-menu_forMobile .main-menu_list {
	display: flex;
	flex-direction: column;
	width: calc(100% / 2);
	border-right: 1px solid #dcdcdc;
	height: 12em;
}
.main-menu_forMobile .main-menu_list_last {
	display: flex;
	flex-direction: column;
	width: calc(100% / 2);
	border-right: none;
	height: 12em;
}
.main-menu_forMobile .main-menu_p {
	height: calc(100% / 3);
	padding-top: 1em;
	text-align: center;
}
.main-menu_p {
	height: calc(100% / 3);
	padding-top: 1.5em;
	text-align: center;
}
.main-menu_p_icon {
	height: calc(100% / 3);
	padding-top: 1em;
	text-align: center;
}
.main-menu_p_syousai {
	height: calc(100% / 3);
	padding: 2em 1em 0.5em 1em;
	font-size: 80%;
	text-align: center;
}
.main-menu_p_icon figure {
	margin: 0 auto;
}
.main-menu_p_icon .icon {
	width: 5em;
	max-width: 25%;
	text-align: center;
}

.main-menu_forPC {
	display: flex;
	justify-content: center;
	border: 1px solid #dcdcdc;
	box-sizing:border-box;
}
.main-menu_forPC .main-menu_list {
	display: flex;
	flex-direction: column;
	width: calc(100% / 6);
	border-right: 1px solid #dcdcdc;
	height: 18vw;
}
.main-menu_forPC .main-menu_list_last {
	display: flex;
	flex-direction: column;
	width: calc(100% / 6);
	border-right: none;
	height: 18vw;
}
.main-menu_forPC .main-menu_p {
	height: 4vw;
	padding-top: 1.5vw;
	text-align: center;
	font-size: 1vw;
}
.main-menu_forPC .main-menu_p_icon {
	height: 4.5vw;
	padding-top: 1vw;
	text-align: center;
}
.main-menu_forPC .main-menu_p_syousai {
	height: 5vw;
	margin-bottom: 0.5vw;
	padding: 1vw;
	font-size: 0.8vw;
	text-align: center;
}
.main-menu_forPC .main-menu_p_icon figure {
	margin: 0 auto;
}
.main-menu_forPC .main-menu_p_icon .icon {
	width: 4vw;
	text-align: center;
}

.main-menu_p_icon img {
	-webkit-transition: -webkit-transform 0.3s linear;
	transition: transform 0.3s linear;
}
.main-menu_p_icon img:hover {
	-webkit-transform: scale(1.2);
	transform: scale(1.2);
}

@media only screen and (max-width: 55em) {
	.main-menu_forPC, .main-menu_p_syousai { display: none;}
}
@media only screen and (min-width: 55em) {
	.main-menu_forMobile { display: none;}
}

/* category menu */
.category-menu {
	display: flex;
	justify-content: center;
	margin-top: 1.5vw;
}
.category-menu_column {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: calc(100% / 6);
	margin: 0.3vw;
	border: 1px solid #dcdcdc;
	box-sizing: border-box;
}
.category-menu_list {
	display: flex;
	height: 10vw;
	background-color: #fff;
	margin: 0;
	padding: 0.55vw;
	font-size: 0.9vw;
}
.category-menu_list_title {
	background-color: #dcdcdc;
	padding: 0.2vw 1vw;
	font-size: 1vw;
}
.category-menu_list p {
	margin: 0;
}
.category-menu_list figure {
	margin: 0;
	padding-top: 0.2vw;
}
.category-menu_list a:link {
	display: block;
	text-decoration: none;
	color: #333;
}
.category-menu_list a:visited {
	text-decoration: none;
	color: #333;
}
.category-menu_list a:hover {
	text-decoration: none;
	color: #007ab7;
}
@media only screen and (max-width: 55em) {
	.category-menu { display: none;}
}

/* banner */
.banner_forMobile {
	margin-top: 3rem;
	margin-bottom: 3rem;
}
.banner_forMobile p {
	font-size: 120%;
}
.banner_forMobile p img {
	width: 1em;
	padding: 0 0.3em 0.2em 0.3em;
}
.banner_forMobile ul {
	padding-left: 1.5em;
}
.banner_forMobile li::first-letter {
	background: none;
	padding: 0;
}
.banner_forMobile ul li {
	list-style-type: none;
	list-style-image: none;
	background: url("../img/icon/icon_li_link.png") no-repeat 0 35%;
	background-size: 0.7em;
	padding: 0 0 0.5em 1.2em;
	text-align: left;
	text-indent: 0;
}
.banner_forPC {
	margin: 1vw 0;
	padding: 0 0.8vw;
	background-color: #dcdcdc;
}
.bannar_box{
	display: flex;
	justify-content: space-between;
}
.banner_forPC p {
	margin: 0;
	width: 100%;
}
.banner_forPC p img {
	width: 90%;
	padding: 0.8vw;
}
@media only screen and (max-width: 55em) {
	.banner_forPC { display: none;}
}
@media only screen and (min-width: 55em) {
	.banner_forMobile { display: none;}
}

/* === footer area === */
footer {
	display: flex;
	flex-direction: column;
	background-color: #fff;
	border-top: 1px solid #dcdcdc;
}
.footer-forPC {
	font-size: 0.85vw;
}
.footer-forMobile {
	margin: 0 8% 0 8%;
	text-align: center;
}
.footer-forMobile p.title {
	font-size: 1.2em;
	margin-bottom: 0;
}
.footer-forMobile p.en {
	font-size: 0.8em;
}
@media only screen and (max-width: 55em) {
	.footer-forPC { display: none;}
}
@media only screen and (min-width: 55em) {
	.footer-forMobile { display: none;}
}
.footer-sitemap {
	display: flex;
	justify-content: center;
	margin: 0 8% 0 8%;
}
.footer-title {
	padding: 1%;
	width: 65%;
}
.footer-addr {
	padding: 1%;
	width: 25%;
}
.footer-contact {
	padding: 1%;
	width: 10%;
}
.footer-contact img {
	width: 1em;
	padding-bottom: 0.1em;
}
.footer-title p {
	font-size: 1.6em;
	margin-bottom: 0;
}
.footer-title p.en {
	font-size: 0.9em;
	margin-bottom: 0.9em;
}
.footer-sitemap a:link, .footer-sitemap a:visited, .footer-sitemap a:hover {
	text-decoration: none;
	color: #333;
}

.footer-bottom {
	background-color: #1155a6;
	margin: 0;
	color: #fff;
	padding-top: 0.5em;
}
.footer-bottom-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 0 8% 0 8%;
	text-align: center;
	background-color: #1155a6;
}
.hulogo {
	max-width: 40%;
	margin: 0 auto;
}
.copyright p {
	font-size: 0.8em;
}
.last-update p {
	font-size: 0.8em;
}
@media only screen and (min-width: 55em) {
	.footer-bottom {
		background-color: #1155a6;
		margin: 0;
		color: #fff;
		padding-top: 0.5em;
	}
	.footer-bottom-content {
		display: flex;
		flex-direction: row;
		justify-content: center;
		margin: 0 10vw;
	}
	.hulogo {
		width: 18vw;
	}
	.copyright {
		width: 60vw;
		text-align: center;
		padding-top: 2vw;
	}
	.copyright p {
		font-size: 0.7vw;
	}
	.last-update {
		width: 18vw;
		text-align: right;
		padding: 2vw 1vw 0 0;
	}
	.last-update p {
	font-size: 0.8vw;
	}
}
