/*=============================================================================
	box-sizing
=============================================================================*/
*{
	box-sizing:border-box;
}

/*=============================================================================
	font size setting
=============================================================================*/
html { font-size: 64.5%; }
body { font-size: 1rem; }
html, body {
	position: relative;
}
/*=============================================================================
	base link style
=============================================================================*/
a{
	outline: none;
	transition: all 0.3s ease 0s;
}
a:hover{
	min-height: 1em;/* Mac Firefox */
	text-decoration:none;
}
a:visited{
	text-decoration:none;
}
a:link{
	color: #000;
	text-decoration:none;
}
a:visited{
	color: #000;
	text-decoration:none;
}
a:hover{
	color: #333;
	text-decoration:none;
	opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha(opacity=80)";
}

/*=============================================================================
	header
=============================================================================*/
#header{
	position: relative;
	z-index: 1000;
}

/*=============================================================================
	gnav
=============================================================================*/
#fixed-point{
	border-top: #4488C8 5px solid;
}

#gnav{
	position: relative;
	z-index: 1001;
	margin: 0 0 0;
}

.menu-trigger {
	display: none;
}

	#gnav > .inner{
		width: 960px;
		/*height:90px;*/
		margin:0 auto;
		position: relative;
	}
	#gnav .decoration{
		display: none;
		position: absolute;
		left:-195%;
		top:0;
	}
	#gnav .tit{
		display: inline-block;
		float:left;
		padding:10px 0 0 50px;
	}
	#gnav .inner > ul{
		float: left;
		padding:27px 0 0 50px;
	}
	#gnav .inner > ul > li{
		float: left;
		padding:0 0 20px;
		margin: 0 0 0 70px;
		position: relative;
	}
	#gnav .inner > ul > li:first-child{
		margin: 0 0 0 50px;
	}


	#gnav .inner > ul > li .parent-wrap{
		display: block;
		overflow: hidden;
		width:67px;
		height:42px;
	}
	#gnav .inner > ul > li .gnav02 .parent-wrap:hover img,
	#gnav .inner > ul > li .gnav03 .parent-wrap:hover img,
	#gnav .inner > ul > li .gnav04 .parent-wrap:hover img{
		margin: -42px 0 0;
	}
	#gnav .inner > ul > li .parent-wrap.current img{
		margin: -42px 0 0;
	}
	#gnav .inner > ul > li .parent-wrap.g-current img{
		margin: -42px 0 0;
	}
.fixed {
	background: #FFF;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 100;
}

.sp_only {
	display: none;
}

/* 2020/3 レスポンシブ対応 */
@media screen and (max-width: 1024px) {
	#gnav .decoration{
		top: 2px;
	}
	#gnav li .parent a {
		pointer-events: none;
	}
}

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

	.sp_only {
		display: block;
	}
	.pc_only {
		display: none;
	}
	.site_logo {
		display: inline-block;
		padding: 20px;
		text-align: left;
	}
	.menu-trigger {
		display: block;
	}
	a.menu-trigger,
	a.menu-trigger span {
		display: inline-block;
		transition: all .4s;
		box-sizing: border-box;
	}

	a.menu-trigger {
		position: fixed;
		width: 40px;
		height: 40px;
		right: 10px;
		top: 15px;
		z-index: 99999;
		background: rgba(255, 255, 255, 0.75);
	}

	a.menu-trigger:hover {
		opacity: 1;
	}

	a.menu-trigger span {
		position: absolute;
		left: 5px;
		width: 30px;
		height: 2px;
		background-color: #333;
		border-radius: 1px;
	}

	a.menu-trigger span:nth-of-type(1) {
		top: 10px;
	}

	a.menu-trigger span:nth-of-type(2) {
		top: 48%;
	}

	a.menu-trigger span:nth-of-type(3) {
		bottom: 10px;
	}

	.menu-trigger.active span:nth-of-type(1) {
		-webkit-transform: translateY( 9px) rotate(-315deg);
		transform: translateY( 9px) rotate(-315deg);
	}

	.menu-trigger.active span:nth-of-type(2) {
		opacity: 0;
	}

	.menu-trigger.active span:nth-of-type(3) {
		-webkit-transform: translateY(-9px) rotate(315deg);
		transform: translateY(-9px) rotate(315deg);
	}
	#fixed-point{
		border-top: #4488C8 5px solid;
	}

	#gnav {
		display: none;
		width: 100vw;
		height: 100vh;
		top:0;
		left: 0;
		position: fixed;
		background: rgba(255, 255, 255, 0.9);
	}
	#gnav .tit{
		display: inline-block;
		float:none;
		padding: 0;
		margin-top: 2rem;
	}
	#gnav > .inner{
		width: 100%;
		right: -130vw;
		display: flex;
		-webkit-flex-direction: column;
		    -ms-flex-direction: column;
		        flex-direction: column;
		height: calc(100vh - 10rem);
		overflow: scroll;
	}

	#gnav .decoration{
		display: none;
	}

	#gnav .inner > ul{
		float: none;
		padding:5rem 0;
		display: flex;
		-webkit-flex-direction: column;
		    -ms-flex-direction: column;
		        flex-direction: column;
		-webkit-align-items: center;
		        align-items: center;
	}

	#gnav .inner > ul li {
		width: calc(100% / 5 - 4rem);
	}
	#gnav .inner > ul > li{
		float: none;
		padding:0 0 20px;
		margin: 0;
		position: relative;
		text-align: center;
	}
	#gnav .inner > ul > li:first-child{
		margin: 0;
	}
	#gnav .inner > ul > li .parent-wrap.current img{
		margin: 0;
	}
	#gnav .inner > ul > li .parent-wrap.g-current img{
		margin: -5.5rem 0 0;
	}
	#gnav .inner > ul > li .parent-wrap{
		width: 100%;
		height: 6rem;
	}
	#gnav .inner > ul li img{
		width: 100%;
		height: auto;
	}
	#gnav .inner > ul li dt{
		text-align: center;
		padding: 0;
	}
	#gnav .inner > ul li dt img{
		width: auto;
		height: 1.8rem;
	}
	#gnav .inner > ul li dd  ul li{
		width: calc(100% / 3 - 2rem);
	}
}
@media screen and (max-width: 414px) {

	#gnav .inner > ul li {
		width: 25%;
	}
	#gnav .inner > ul > li .parent-wrap{
		width: 100%;
		height: calc(100vw / 8);
	}
	#gnav .inner > ul li dd  ul li{
		width: calc(100% / 2 - 2rem);
	}
}
@media screen and (max-width: 320px) {

}

/*=============================================================================
	local-nav
=============================================================================*/
#local-nav-wrap{
}
	.local-nav{
		display: none;
		position: absolute;
		background: #000;
		padding:20px;
	}
	.local-nav .arrow{
		position: absolute;
		top:-17px;
		left:50%;
		margin-left:-7px;
	}
	.local-nav dl{
	}
	.local-nav dl dt{
		text-align: left;
		padding:0 0 0 10px;
	}
	.local-nav dl dd{
		padding:15px 0 0;
	}
	.local-nav dl dd ul{
		text-align: center;
	}
	.local-nav dl dd li{
		display: inline-block;
		padding:0 2px;
		vertical-align: top;
	}
	.local-nav dl dd li a {
		color:#FFF;
	}
	.local-nav dl dd li p{
		padding:5px;
		font-size: 1.3rem;
	}

	#gnav02-local-nav{
		width: 786px;
		top:60px;
		left:-359px;
	}

	#gnav03-local-nav{
		/*width: 822px;
		top:60px;
		left:-377px;*/
		width: 514px;
		top:60px;
		left:-223px;
	}

	#gnav04-local-nav{
		width: 514px;
		top:60px;
		left:-223px;
	}

/* 2020/3 レスポンシブ対応 */
@media screen and (max-width: 1024px) {
	#gnav02-local-nav{
		left: -360;
	}

}

@media screen and (max-width: 828px) {
	.local-nav{
		position: relative;
		background: #000;
		top: 2rem !important;
		left: -41vw !important;
		width: 95vw !important;
		margin-bottom: 5rem;
	}
}
@media screen and (max-width: 414px) {
	.local-nav{
		top: 2rem !important;
		left: -35vw !important;
		width: 94vw !important;
		margin-bottom: 5rem;
	}
}

/*=============================================================================
	main
=============================================================================*/
#wrapper{
}
#wrapper.add-pt{
	padding-top:97px;
}
#main{
}

/* 2020/3 レスポンシブ対応 */
@media screen and (max-width: 828px) {
	#wrapper.add-pt{
		padding-top:0;
	}
}
/*=============================================================================
	mv インナーページ
=============================================================================*/
.mv{
	min-width: 960px;
	height:390px;
	overflow: hidden;
	position: relative;
}
.mv .bg{
	width: 100%;
	height:auto;
}
.mv > .inner{
	width: 960px;
	height: 390px;
	position: absolute;
	top:0;
	left:50%;
	margin-left: -480px;
}

/* 2020/3 レスポンシブ対応 */
@media screen and (max-width: 1024px) {}
@media screen and (max-width: 828px) {
	.mv{
		min-width: 100%;
		width: 100%;
		height:auto;
		overflow: hidden;
		position: relative;
	}
	.mv > .inner{
		width: 100%;
		height: auto;
		position: absolute;
		top:0;
		left:50%;
		margin-left: -330px;
	}
}
@media screen and (max-width: 414px) {
	.mv > .inner{
		left: 0;
		margin-left: 0;
	}
}

/*=============================================================================
	page-tit インナーページ
=============================================================================*/
.page-tit-wrap{
	background: #001F33;
}
.page-tit-wrap .inner{
	width: 960px;
	margin: 0 auto;
}

.page-tit-wrap .page-tit{
	text-align: center;
	display:table-cell;
	vertical-align: middle;
	width: 960px;
	height: 110px;
}

/* 2020/3 レスポンシブ対応 */
@media screen and (max-width: 1024px) {}
@media screen and (max-width: 828px) {
	.page-tit-wrap .inner{
		width: 100%;
		margin: 0 auto;
	}
	.page-tit-wrap .page-tit{
		width: 100vw;
		height: 8rem;
	}
}
@media screen and (max-width: 414px) {
	.page-tit-wrap .page-tit{
		height: 5rem;
	}
	.page-tit-wrap .page-tit img{
		width: auto;
		height: calc(100vw / 30);
	}
}

/*=============================================================================
	footer
=============================================================================*/
#footer{
	border-top: #CCCCCC 2px solid;
	position: relative;
}
	#footer #pagetop{
		display: none;
		position: fixed;
		right:0;
		bottom:260px;
		z-index: 100000;
	}
	#footer .inner{
		width: 960px ;
		margin: 0 auto;
	}
		#footer > .upper{
			padding:30px 0 50px;
		}
			#footer .ft-ci{
				display: inline-block;
				padding:0 0 0 110px;
				float: left;
				text-align: left;
			}
			#footer .ft-ci dt{
			}
			#footer .ft-ci dd{
				font-size: 0.9rem;
				padding:10px 0 0;
				color:#808080;
			}
			#footer .ft-nav{
				float: left;
				padding:0 0 0 30px;
			}
			#footer .ft-nav dl{
				text-align: left;
				float:left;
				padding:0 68px 0 0;
			}
      #footer .ft-nav dl:nth-child(3){
        padding-right: 30px;
      }
			#footer .ft-nav dl dt{
			}
			#footer .ft-nav dl dd{
				padding:15px 0 0;
			}
			#footer .ft-nav dl dd ul{
				color:#808080;
			}
			#footer .ft-nav dl dd li{
				padding:5px 0 0;
			}
			#footer .ft-nav dl dd li a{
				color:#808080;
			}
      #footer .ft-nav dl dd > ul > li > ul > li {
        position: relative;
        padding-left: 10px;
      }
      #footer .ft-nav dl dd > ul > li > ul > li::before {
        content: '';
        position: absolute;
        top: calc(50% + 1px);
        left: 1px;
        width: 3px;
        height: 1px;
        background-color: #808080;
      }

		#footer > .lower{
			padding:15px 0;
			background: #4488C8;
		}
			#footer .copy{
				display: inline-block;
				padding:0 0 0 40px;
				float: left;
				color: #FFF;
				font-size: 1.1rem;
			}
			#footer .ft-sub-nav{
				padding:0 100px 0 0;
				float: right;
				overflow: hidden;
				color:#FFF;
			}
			#footer .ft-sub-nav li{
				float:left;
			}
			#footer .ft-sub-nav li a{
				color:#FFF;
			}

/* 2020/3 レスポンシブ対応 */
@media screen and (max-width: 1024px) {
	#footer .inner{
		width: 100%;
	}
}
@media screen and (max-width: 828px) {
	#footer .ft-ci{
		display: flex;
		padding:0;
		float: none;
		justify-content: center;
		align-items: center;
		margin-bottom: 5rem;
	}
	#footer .ft-ci dt{
		margin-right: 5rem;
	}
	#footer .ft-ci dt img{
		width: 55%;
		height: auto;
	}
	#footer .ft-ci dd{
		font-size: 1.4rem;
		padding:10px 0 0;
	}
	#footer .ft-nav{
		float: none;
		padding:0 2rem 0;
		display: flex;
		justify-content: space-around;
	}
	#footer .ft-nav:before{
		content: none;
	}
	#footer .ft-nav:after{
		content: none;
	}
	#footer .ft-nav dl {
		float:none;
		padding:0 !important;
	}
	#footer .ft-nav dl dt img{
		width: auto;
		height: 1.7rem;
		margin: 0 auto;
	}
	#footer .ft-nav dl dd li a{
		color:#808080;
		font-size: 1.6rem;
	}
	#footer .copy{
		font-size: 1.4rem;
	}
	#footer .ft-sub-nav li a{
		font-size: 1.4rem;
	}
}
@media screen and (max-width: 414px) {
	#footer .ft-ci{
		display: flex;
		-webkit-flex-direction: column;
		    -ms-flex-direction: column;
		        flex-direction: column;
		-webkit-align-items: center;
		        align-items: center;
	}
	#footer .ft-ci dt{
		margin-right: 0;
		margin-bottom: 3rem;
		text-align: center;
	}

	#footer .ft-nav{
		-webkit-flex-direction: column;
		    -ms-flex-direction: column;
		        flex-direction: column;
		-webkit-align-items: center;
		        align-items: center;
	}

	#footer .ft-nav dl + dl {
		margin-top: 3.5rem;
	}
	#footer .ft-nav dl dt {
		text-align: center;
	}
	#footer .ft-nav dl dd ul li {
		text-align: center;
	}
  #footer .ft-nav dl dd > ul > li > ul > li {
    padding-left: 0;
  }
  #footer .ft-nav dl dd > ul > li > ul > li::before {
    display: none;
  }
  #footer .ft-nav dl dd > ul > li > ul > li > a {
    font-size: 1.4rem;
  }

	#footer .copy{
		display: block;
		padding: 0;
		float: none;
		text-align: center;
	}
	#footer .ft-sub-nav{
		padding:0;
		float: none;
		text-align: center;
		display: flex;
		justify-content: center;
	}
	#footer .ft-sub-nav li{
		float:none;
	}
}

/*=============================================================================
	フォームエラー
=============================================================================*/
.error{
	margin:20px auto  30px;
	padding:20px;
	background: #FEE;
	border: 2px solid #c9171e;
	text-align: left;
	font-size: 1.3rem;
}
.error li span{
	color:#c9171e;
}

/*=============================================================================
	placeholder
=============================================================================*/
/*Webkit*/
::-webkit-input-placeholder{
  color: #ccc;
}

/*Firefox 18以前 */
:-moz-placeholder {
  color: #ccc;
}

/*Firefox 19以降*/
::-moz-placeholder {
  color: #ccc;
  opacity: 1;
}

/*IE10以降*/
:-ms-input-placeholder {
  color: #ccc;
}


.page--mainvisual img {
  display: block;
  width: 100%;
  height: auto;
}

.page--title {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #001F33;
  height: 60px;
  padding-left: 15px;
  padding-right: 15px;
}

@media screen and (min-width: 960px) {

  .page--title {
    height: 110px;
  }

}

.page--title_adjust {
  margin-left: auto;
  margin-right: auto;
  max-width: 414px;
  width: 100%;
  font-size: 18px;
  position: relative;
}

@media screen and (min-width: 960px) {

  .page--title_adjust {
    font-size: 20px;
  }

}

.page--title_adjust::after {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  top: 50%;
  left: 0;
  background-color: #fff;
  margin-top: -1px;
}

.page--title_adjust span {
  display: inline-block;
  position: relative;
  z-index: 1;
  padding-left: 20px;
  padding-right: 20px;
  background-color: #001F33;
  color: #fff;
  letter-spacing: 0.25rem;
}

