@charset "UTF-8";

/* reset */
@import url('../common/reset.css');

/* Webフォント */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap');

body,
a,
input,
select,
textarea,
submit {
	font-family: "Noto Serif JP", serif;
	}

.jost {
	font-family: "Jost", sans-serif;
	font-weight: 400;
	}

.noto {
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	}

.corpcolor {
	color: #3a5e85;
	}


/* loading --------------------------------------------------------------- */
#loading {
	width: 100%;
	height: 100vh;
	z-index: 99999;
	background-color: #ffffff;
	background-image: url("../../img/common/loader.gif");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 100px auto;
	position: fixed;
	left: 0;
	top: 0;
	}

@media(max-width: 1024px){
	#loading {
		background-size: 150px auto;
		}
	}



/* fade --------------------------------------------------------------- */
a, .fade {
	transition: all 0.3s ease-out;
	}

	a:hover, .fade:hover {
		opacity: 0.5;
		}

	.none:hover {
		opacity: 1;
		}

@media(max-width: 1024px){
	a:hover, .fade:hover {
		opacity: 1;
		}
	}



/* zoom --------------------------------------------------------------- */
.zoom {
	overflow: hidden;
	}
	
	.zoom img {
		transition: all 0.5s ease-out;
		}
		
		.zoom:hover img {
			transform: scale(1.06, 1.06);
			}



/* trans --------------------------------------------------------------- */
.trans {
	opacity: 0;
	transform: translate(0, 50px);
	transition: all 500ms;
	}
	
	.trans.scrollin {
		opacity: 1;
		transform: translate(0, 0);
		}



/* desktop / mobile --------------------------------------------------------------- */
.dsk {
	display: inline-block !important;
	}

.mob {
	display: none !important;
	}
	
	
@media(max-width: 1024px){
	.dsk {
		display: none !important;
		}
	
	.mob {
		display: inline-block !important;
		}
	}



/* body --------------------------------------------------------------- */
body {
	word-wrap: break-word;
	-webkit-text-size-adjust: 100%;
	background-image: url("../../img/common/bg.gif");
	background-position: center top;
	background-repeat: repeat;
	background-size: 1000px auto;
	}

body,
a,
input,
select,
textarea,
submit {
	color: #333333;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	}
	
input,
select,
textarea,
submit {
	border: 0;
	box-sizing: border-box;
	}

@media(max-width: 1024px){
	body {
		background-size: 750px auto;
		}

	body,
	a,
	input,
	select,
	textarea,
	submit {
		font-size: 14px;
		}
	}



/* wrapper --------------------------------------------------------------- */
#wrapper {
	margin: 0 auto 100px auto;
	}

@media(max-width: 1024px){
	#wrapper {
		margin: 0 auto 70px auto;
		}
	}



/* h2 --------------------------------------------------------------- */
h2 {
	color: #3a5e85;
	text-align: center;
	margin-bottom: 30px;

	font-size: 40px;
	font-weight: 400;
	font-family: "Jost", sans-serif;
	line-height: 1.3;
	letter-spacing: 1px;
	}

	h2 span {
		margin-top: 10px;
		color: #3a5e85;
		font-size: 16px;
		font-family: "Noto Serif JP", serif;
		}

@media(max-width: 1024px){
	h2 {
		font-size: 28px;
		}

		h2 span {
			font-size: 14px;
			margin-top: 5px;
			}
	}


	
/* header --------------------------------------------------------------- */
#header {
	width: 100%;
	height: 80px;
	z-index: 999;
	background-color: #ffffff;

	position: fixed;
	left: 0;
	top: 0;
	}

	#header .header {
		width: 100%;
		position: relative;
		}

@media(max-width: 1024px){
	#header {
		height: 60px;
		}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* logo --------------------------------------------------------------- */
#header .header #logo {
	width: 310px;
	position: absolute;
	left: 30px;
	top: 25px;
	}

	#header .header #logo a,
	#header .header #logo a img {
		width: 100%;
		}
	
@media(max-width: 1024px){
	#header .header #logo {
		width: 215px;
		
		left: 20px;
		top: 20px;
		}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* contact --------------------------------------------------------------- */
#header .header #Hcontact {
	width: 33px;
	z-index: 998;
	position: fixed;
	right: 90px;
	top: 25px;
	}

	#header .header #Hcontact img {
		width: 100%;
		}

@media(max-width: 1024px){
	#header .header #Hcontact {
		width: 26px;
		right: 70px;
		top: 18px;
		}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* hamburger --------------------------------------------------------------- */
#hamburger {
	z-index: 99;
	position: fixed;
	left: 0;
	top: 0;
	}

#hamburger,
.hamburger {
	}

	#hamburger .hamburger {
		position: relative;
		}

@media(max-width: 1024px){
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* ハンバーガーメニュー：トリガー */
#menu_trigger {
	width: 30px;
  height: 30px;

  cursor: pointer;
  z-index: 999;

	transition: all .5s ease-out;

	background-image: url("../../img/header/trigger.png");
	background-position: center center;
	background-size: 100% auto;

	position: fixed;
	right: 30px;
	top: 27px;
	}

#menu_trigger.active {
	background-image: url("../../img/header/trigger_open.png");
	}

@media(max-width: 1024px){
	#menu_trigger {
		width: 25px;
		height: 25px;

		right: 20px;
		top: 19px;
		}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* ハンバーガーメニュー：メニュー部分 */
#Hmenu {
	display: none;
	width: 100%;
	height: 100vh;
	background-image: url("../../img/header/bg.png");
	background-repeat: repeat;
	position: fixed;
	right: 0;
	top: 0;
	}

	#Hmenutop {
		width: 410px;
		position: absolute;
		left: 50%;
		top: 40%;
		transform: translate(-50%,-50%);
		}

		#Hmenutop a {
			margin: 30px 0;
			color: #ffffff;
			}

			#Hmenutop a dl {
				display: table;
				}

				#Hmenutop a dl dt,
				#Hmenutop a dl dd {
					display: table-cell;
					vertical-align: middle;
					}

					#Hmenutop a dl dt {
						width: 135px;

						font-size: 18px;
						letter-spacing: 1px;
						font-family: "Jost", sans-serif;
						font-weight: 400;
						}
					
					#Hmenutop a dl dd {
						font-size: 16px;
						letter-spacing: 1px;
						}
	
	#Hmenubottom {
		width: 1200px;
		position: absolute;
		left: 50%;
		bottom: 0;
		transform: translate(-50%, 0);
		}

		#Hmenubottomwrap {
			padding: 25px 0;
			border-top: #fff solid 1px;
			border-bottom: #fff solid 1px;
			}

			#Hmenubottomwrap .Hmenubottom {
				display: table;
				width: 930px;
				margin: 0 auto;
				}

				#Hmenubottomwrap .Hmenubottom a {
					width: calc(100% / 3);
					display: table-cell;
					text-align: center;
					vertical-align: middle;
					}

					#Hmenubottomwrap .Hmenubottom a img {
						width: auto;
						}

					#Hmenubottomwrap .Hmenubottom a:first-of-type img {
						height: 55px;
						}
					
					#Hmenubottomwrap .Hmenubottom a:nth-of-type(2) img {
						height: 45px;
						}
					
					#Hmenubottomwrap .Hmenubottom a:last-of-type img {
						height: 40px;
						}
		
			#Hcopy {
				padding: 30px 0;
				color: #ffffff;
				font-size: 12px;
				letter-spacing: 1px;
				text-align: center;
				}

@media(max-width: 1024px){
		#Hmenutop {
			width: 80%;
			margin: 60px auto 0 auto;
			position: static;
			transform: none;
			}

			#Hmenutop a {
				margin: 25px 0;
				}

				#Hmenutop a dl {
					display: block;
					}

					#Hmenutop a dl dt,
					#Hmenutop a dl dd {
						display: block;
						}

						#Hmenutop a dl dt {
							width: 100%;
							}

		#Hmenubottom {
			width: 90%;
			margin: 0 auto;
			position: static;
			transform: none;
			}

			#Hmenubottomwrap {
				padding: 10px 0;
				}

				#Hmenubottomwrap .Hmenubottom {
					display: block;
					width: 100%;
					}

					#Hmenubottomwrap .Hmenubottom a {
						width: 100%;
						display: block;
						margin: 20px auto;
						}
			
				#Hcopy {
					padding: 20px 0;
					}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* footer --------------------------------------------------------------- */
#footer {
	padding: 50px 0 30px 0;
	background-color: #395d83;
	}

	#footer #logo {
		width: 1140px;
		margin: 0 auto 40px auto;
		}

		#footer #logo a {
			width: 330px;
			}

			#footer #logo a img {
				width: 100%;
				}
		
		#Fmenutop {
			width: 1000px;
			margin: 0 auto 50px auto;
			overflow: hidden;
			}

			#Fmenutop a {
				float: left;
				color: #ffffff;
				font-size: 14px;
				letter-spacing: 1px;
				}
			
			#Fmenutop a:first-of-type {
				width: 255px;
				}
			
			#Fmenutop a:nth-of-type(2) {
				width: 370px;
				}
			
			#Fmenutop a:nth-of-type(3) {
				width: 280px;
				}
			
			#Fmenutop a:last-of-type {
				width: 90px;
				}

				#Fmenutop a span {
					font-size: 22px;
					letter-spacing: 1px;
					}

		#Fmenubottom {
			width: 1200px;
			margin: 0 auto;
			padding: 25px 0;
			border-top: #fff solid 1px;
			border-bottom: #fff solid 1px;
			}

			#Fmenubottom .Fmenubottom {
				display: table;
				width: 930px;
				text-align: center;
				margin: 0 auto;
				}

				#Fmenubottom .Fmenubottom a {
					width: calc(100% / 3);
					display: table-cell;
					text-align: center;
					vertical-align: middle;
					}

					#Fmenubottom .Fmenubottoma img {
						width: auto;
						}

					#Fmenubottom .Fmenubottom a:first-of-type img {
						height: 55px;
						}
					
					#Fmenubottom .Fmenubottom a:nth-of-type(2) img {
						height: 45px;
						}
					
					#Fmenubottom .Fmenubottom a:last-of-type img {
						height: 40px;
						}
			
			#Fcopy {
				width: 1200px;
				margin: 0 auto;
				padding: 30px 0 0 0;
				color: #ffffff;
				}

				#Fcopy span {
					float: right;
					font-size: 12px;
					letter-spacing: 1px;
					}

@media(max-width: 1024px){
	#footer {
		padding: 50px 0 20px 0;
		}

		#footer #logo {
			width: 90%;
			margin: 0 auto;
			}

			#footer #logo a {
				width: 225px;
				}

			#Fmenutop {
				width: 70%;
				margin: 30px auto;
				position: static;
				transform: none;
				}

				#Fmenutop a {
					margin: 10px 0;
					}

					#Fmenutop a dl {
						display: block;
						}

						#Fmenutop a dl dt,
						#Fmenutop a dl dd {
							display: block;
							}

							#Fmenutop a dl dt {
								width: 100%;
								}

			#Fmenubottom {
				width: 90%;
				margin: 0 auto;
				position: static;
				transform: none;
				}

				#Fmenubottom {
					padding: 10px 0;
					}

					#Fmenubottom .Fmenubottom {
						display: block;
						width: 100%;
						}

						#Fmenubottom .Fmenubottom a {
							width: 100%;
							display: block;
							margin: 20px auto;
							}
				
					#Fcopy {
						width: 90%;
						padding: 20px 0 0 0;
						font-size: 13px;
						}

						#Fcopy span {
							float: none;
							text-align: center;
							margin-top: 30px;
							}
	}

@media(min-width: 1px) and (max-width: 660px){
	}