@charset "UTF-8";

/* 共通 */
.mt0 {margin:0 auto}
.mt10 {margin:10px auto 0}
.mt20 {margin:20px auto 0}
.mt25 {margin:25px auto 0}
.mt30 {margin:30px auto 0}
.mt35 {margin:35px auto 0}
.mt40 {margin:40px auto 0}
.mt45 {margin:45px auto 0}
.mt50 {margin:50px auto 0}
.mt60 {margin:60px auto 0}
.mt70 {margin:70px auto 0}
.mt75 {margin:75px auto 0}
.mt80 {margin:80px auto 0}
.mt90 {margin:90px auto 0}
.mt100 {margin:100px auto 0}
.mt110 {margin:110px auto 0}
.mt120 {margin:120px auto 0}
.mt140 {margin:140px auto 0}
.mt150 {margin:150px auto 0}

.bg1 {background:#F4F4F5;}


/* メインタイトル */
#sub_kv {
	width: 100%;
	height: 585px;
	margin: 0 auto;
	padding: 155px 0 0;
	position: relative;
	overflow: hidden;
}
	#sub_kv:before {
		position: absolute;
		content: '';
		display: block;
		width: 1149px;
		height: 548px;
		margin: 0;
		padding: 0;
		background: url(../images/sub/kv_bg.png) center / contain no-repeat;
		top: 0;
		right: calc(50% - 745px);
		z-index: 1;
	}
		#sub_kv.fadein:before {
			opacity: 0;
		}
		#sub_kv.scrollin:before {
			-webkit-animation: bottomIn 0.2s ease-out 0.3s 1 forwards;
			animation: bottomIn 0.2s ease-out 0.3s 1 forwards;
		}
	#sub_kv div.kv_in {
		width: 100%;
		max-width: 1280px;
		height: 430px;
		margin: 0 auto;
		padding: 140px 0 0 40px;
		text-align: left;
		position: relative;
		z-index: 2;
	}
		#sub_kv div.kv_in h3 {
			display: inline-block;
			margin: 0;
			padding: 0;
			font-size: 80px;
			line-height: 130%;
			font-family: "Cairo", sans-serif;
			font-optical-sizing: auto;
			font-weight: var(--weight-bold1);
			font-style: normal;
			background: linear-gradient(to right, #0E3383, #13823B);
			-webkit-background-clip: text;
			-webkit-text-fill-color: transparent;
		}
		#sub_kv div.kv_in h2 {
			margin: 5px 0 0;
			padding: 0;
			font-size: 20px;
			line-height: 180%;
			font-weight: var(--weight-nomal);
		}
		#sub_kv div.kv_in h4 {
			position: absolute;
			margin: 0;
			padding: 0;
			font-size: 400px;
			line-height: 100%;
			font-family: "Cairo", sans-serif;
			font-optical-sizing: auto;
			font-weight: var(--weight-bold1);
			font-style: normal;
			white-space: nowrap;
			color: rgba(202,202,202,0.1);
			bottom: 30px;
			left: -165px;
			z-index: -1;
		}
		#sub_kv div.kv_in h3.fadein,
		#sub_kv div.kv_in h2.fadein,
		#sub_kv div.kv_in h4.fadein {
			opacity: 0;
		}
		#sub_kv div.kv_in h3.scrollin {
			-webkit-animation: bottomIn 0.2s ease-out 0.2s 1 forwards;
			animation: bottomIn 0.2s ease-out 0.2s 1 forwards;
		}
		#sub_kv div.kv_in h2.scrollin {
			-webkit-animation: bottomIn 0.2s ease-out 0.4s 1 forwards;
			animation: bottomIn 0.2s ease-out 0.4s 1 forwards;
		}
		#sub_kv div.kv_in h4.scrollin {
			-webkit-animation: slideInLeft2 0.2s ease-out 0.3s 1 forwards;
			animation: slideInLeft2 0.2s ease-out 0.3s 1 forwards;
		}

/* パンくず */
#breadcrumb {
	width: 100%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 15px 10px 75px;
	font-size: 14px;
	line-height: 180%;
	font-weight: var(--weight-nomal);
	text-align: right;
	color: #000;
	position: relative;
	z-index: 1;
}
	#breadcrumb a {
		color: #0D3383;
		text-decoration: none;
		transition: 0.2s linear;
	}
		#breadcrumb span:nth-child(n+2) a {
			color: #000;
		}
	#breadcrumb a:hover {
		color: #0E6D4D !important;
	}

/* コンテンツタイトル */
div.ttl {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
	text-align: left;
}
	div.ttl h3 {
		opacity: 0;
		display: inline-block;
		margin: 0;
		padding: 0 0 0 50px;
		font-size: 50px;
		line-height: 130%;
		font-family: "Cairo", sans-serif;
		font-optical-sizing: auto;
		font-weight: var(--weight-bold1);
		font-style: normal;
		position: relative;
		overflow: hidden;
		color: transparent;
		transition: color 0ms 550ms;
	}
		div.ttl h3:before {
			opacity: 0;
			position: absolute;
			content: '';
			display: block;
			width: 30px;
			height: 5px;
			margin: 0;
			padding: 0;
			background: #0E3383;
			border-radius: 2.5px;
			top: 30px;
			left: 0;
		}
			div.ttl h3.scrollin:before {
				-webkit-animation: FadeIN 0.2s ease-out 0.5s 1 forwards;
				animation: FadeIN 0.2s ease-out 0.5s 1 forwards;
			}
		div.ttl h3.scrollin {
			color: #0E3383;
		}
			div.ttl h3.fadein:after {
				opacity: 0;
				position: absolute;
				content: '';
				display: block;
				width: 100%;
				height: 100%;
				background: linear-gradient(to right, #0E3383, #13823B);
				bottom: 0;
				left: 0;
				right: 0;
				top: 0;
			}
				div.ttl h3.scrollin:after {
					animation: mask-bg 1.0s cubic-bezier(0.8, 0, 0.170, 1) 0s 1 forwards;
				}
	div.ttl h2 {
		margin: 15px 0 0;
		padding: 0 0 0 50px;
		font-size: 20px;
		line-height: 180%;
		color: #000;
		font-weight: var(--weight-nomal);
	}


/* コンテンツテーブル */
dl.cont_tbl {
	width: 1000px;
	margin: 50px auto 0;
	padding: 0;
	font-size: 16px;
	line-height: 180%;
	text-align: left;
	display: flex;
	flex-wrap: wrap;
	position: relative;
}
	dl.cont_tbl:before {
		position: absolute;
		content: '';
		display: block;
		width: 100%;
		height: 1px;
		background: linear-gradient(to right, #0E3383 0px, #0E3383 200px, #E9E9E9 200px, #E9E9E9 100%);
		top: 0;
		left: 0;
	}
	dl.cont_tbl dt,
	dl.cont_tbl dd {
		margin: 0;
		padding: 18px 10px;
		font-weight: var(--weight-nomal);
	}
	dl.cont_tbl dt {
		width: 200px;
		border-bottom: 1px solid #0E3383;
	}
	dl.cont_tbl dd {
		width: calc(100% - 200px);
		border-bottom: 1px solid #E9E9E9;
	}
		dl.cont_tbl dd ul {
			margin: 0;
			padding: 0;
			list-style: none;
		}
			dl.cont_tbl dd ul li {
				margin: 0.4em 0 0;
				padding: 0 0 0 0.8em;
				position: relative;
			}
				dl.cont_tbl dd ul li:first-of-type {
					margin-top: 0;
				}
				dl.cont_tbl dd ul li:before {
					position: absolute;
					content: '';
					display: inline-block;
					width: 5px;
					height: 5px;
					margin: 0;
					padding: 0;
					background: #0E3383;
					border-radius: 50%;
					top: 0.8em;
					left: 0;
				}

/*====================================
会社概要
=====================================*/
#company_outline {
	margin: 0 auto;
	padding: 0 0 140px;
}
	#company_outline dl.cont_tbl:nth-of-type(n+2) {
		margin-top: 120px;
	}
		/*#company_outline dl.cont_tbl:nth-of-type(n+2)  dt {
			border-top: 1px solid #0E3383;
		}
		#company_outline dl.cont_tbl:nth-of-type(n+2)  dd {
			border-top: 1px solid #E9E9E9;
		}*/
#company_map {
	margin: 0 auto;
	padding: 135px 0;
}
	#company_map div.gmap {
		height: 600px;
		margin: 70px auto 0;
		padding: 0;
		position: relative;
	}
		#company_map div.gmap iframe {
			position: absolute;
			width: 100%;
			height: 100%;
			margin: 0;
			padding: 0;
			top: 0;
			left: 0;
		}
	#company_map div.access {
		width: 1000px;
		margin: 75px auto 0;
		padding: 0;
		display: flex;
		justify-content: space-between;
	}
		#company_map div.access div {
			width: 450px;
			margin: 0;
			padding: 0;
			text-align: left;
		}
			#company_map div.access div h4 {
				margin: 0;
				padding: 0;
				font-size: 20px;
				line-height: 180%;
				font-weight: var(--weight-bold2);
			}
				#company_map div.access div h4 img {
					display: inline-block;
					margin: 0 8px 0 0;
					padding: 0;
					vertical-align: -0.3em;
				}
			#company_map div.access div p {
				margin: 20px 0 0;
				padding: 0;
				font-size: 16px;
				line-height: 200%;
			}
				#company_map div.access div p:first-of-type {
					margin-top: 35px;
				}
#company_history {
	margin: 0 auto;
	padding: 135px 0 175px;
	position: relative;
}
	#company_history:before {
		position: absolute;
		content: '';
		display: block;
		width: 353px;
		height: 219px;
		margin: 0;
		padding: 0;
		background: url(../images/sub/cont_bg1.png) center / contain no-repeat;
		top: 0;
		right: 100px;
		z-index: 1;
	}

/*====================================
ニュース
=====================================*/
#news_info {
	margin: 0 auto;
	padding: 0 0 140px;
}
	#news_info dl.cont_tbl {
		height: 365px;
		overflow-y: scroll;
		scrollbar-color: #0E3383 #fff;
		scrollbar-width: thin;
		border: none;
	}
		#news_info dl.cont_tbl dt span {
			display: inline-block;
			margin: 0;
			padding: 0;
			font-size: 17px;
			line-height: 180%;
			font-family: "Cairo", sans-serif;
			font-optical-sizing: auto;
			font-weight: var(--weight-bold1);
			font-style: italic;
			color: #000;
		}
		#news_info dl.cont_tbl dd a {
			color: #000 !important;
			text-decoration: none !important;
		}
			#news_info dl.cont_tbl dd a:after {
							content: '';
							display: inline-block;
							width: 14px;
							height: 12px;
							margin: 0 0 0 7px;
							padding: 0;
							background: url(../images/icon/link_ico2.png) center / contain no-repeat;
				}
			#news_info dl.cont_tbl dd a:hover {
				color: #0E6D4D !important;
			}
	#news_info div.first_info {
		width: 1000px;
		margin: 115px auto 0;
		padding: 0;
		text-align: left;
	}
		#news_info div.first_info h3 {
			margin: 0;
			padding: 0;
			font-size: 30px;
			line-height: 180%;
			font-family: "Cairo", sans-serif;
			font-optical-sizing: auto;
			font-weight: var(--weight-bold1);
			font-style: italic;
			color: #005F65;
		}
		#news_info div.first_info h2 {
			margin: 0;
			padding: 0;
			font-size: 20px;
			line-height: 180%;
			font-weight: var(--weight-bold2);
		}
		#news_info div.first_info div.first_info_main {
			margin: 45px 0 0;
			padding: 0;
			display: flex;
			justify-content: space-between;
			align-items: flex-start;
		}
			#news_info div.first_info div.first_info_main div {
				width: 540px;
				margin: 0;
				padding: 0;
			}
				#news_info div.first_info div.first_info_main div p {
					margin: 1em 0 0;
					padding: 0;
					font-size: 16px;
					line-height: 180%;
				}
					#news_info div.first_info div.first_info_main div p:first-of-type {
						margin-top: 0;
					}
#news_blog {
	margin: 0 auto;
	padding: 135px 0 300px;
}
	#news_blog div.blog_cont {
		width: 100%;
		max-width: 1400px;
		margin: 0 auto;
		padding: 35px 0 0;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		position: relative;
		z-index: 1;
	}
		#news_blog div.blog_cont ul {
			width: 48.571%;
			margin: 35px 0 0;
			padding: 60px;
			text-align: left;
			background: rgba(255,255,255,0.9);
			border-radius: 20px;
			list-style: none;
		}
			#news_blog div.blog_cont ul h4 {
				display: inline-block;
				margin: 0;
				padding: 0;
				font-size: 30px;
				line-height: 160%;
				font-family: "Cairo", sans-serif;
				font-optical-sizing: auto;
				font-weight: var(--weight-bold1);
				font-style: italic;
				color: #006065;
			}
			#news_blog div.blog_cont ul li {
				display: block;
				margin: 0;
				padding: 0;
				border-bottom: 1px solid #E9E9E9;
				position: relative;
			}
				#news_blog div.blog_cont ul li:first-of-type {
					margin-top: 25px;
					border-top: 1px solid #E9E9E9;
				}
				#news_blog div.blog_cont ul li:before {
					position: absolute;
					content: '';
					display: block;
					width: 28px;
					height: 30px;
					background: url(../images/icon/pdf_ico.png) center / contain no-repeat;
					top: 20px;
					left: 10px;
				}
				#news_blog div.blog_cont ul li a {
					display: block;
					margin: 0;
					padding: 20px 10px 20px 60px;
					font-size: 16px;
					line-height: 180%;
					color: #000;
					text-decoration: none;
				}
					#news_blog div.blog_cont ul li a:hover {
						background: #fff;
						color: #194084;
					}

/*====================================
お問い合わせ
=====================================*/
#form_cont {
	width: 1000px;
	margin: 0 auto;
	padding: 0 0 180px;
}
	#form_cont div.form1 {
		margin: 0 auto;
		padding: 0;
	}
	#form_cont div.form1 p.form_top {
		margin: 0;
		padding: 0;
		font-size: 16px;
		line-height: 200%;
		text-align: left;
	}
		#form_cont div.form1 p.form_top small {
			display: block;
			margin: 1em 0 0;
			padding: 0;
			font-size: 16px;
			line-height: 200%;
		}
		dl.form_tbl {
			width: 100%;
			margin: 100px auto 0;
			padding: 0;
			font-size: 16px;
			line-height: 180%;
			text-align: left;
			display: flex;
			flex-wrap: wrap;
			position: relative;
		}
			dl.form_tbl:after {
				position: absolute;
				content: '';
				display: block;
				width: 100%;
				height: 1px;
				background: linear-gradient(to right, #0E3383 0px, #0E3383 260px, #E9E9E9 260px, #E9E9E9 100%);
				bottom: 0;
				left: 0;
			}
			dl.form_tbl dt,
			dl.form_tbl dd {
				margin: 0;
				font-weight: var(--weight-nomal);
			}
			dl.form_tbl dt {
				width: 260px;
				padding: 14px 10px;
				border-top: 1px solid #0E3383;
			}
				dl.form_tbl dt span {
					display: inline-block;
					width: 40px;
					margin: 0 0 0 25px;
					padding: 0.1em 5px;
					font-size: 14px;
					line-height: 160%;
					color: #fff;
					background: #B20000;
				}
			dl.form_tbl dd {
				width: calc(100% - 260px);
				padding: 10px 10px;
				border-top: 1px solid #E9E9E9;
			}
			dl.form_tbl dt:first-of-type,
			dl.form_tbl dd:first-of-type {
				border: none;
			}
			dl.form_tbl dd input[type=text],
			dl.form_tbl dd input[type=tel],
			dl.form_tbl dd input[type=email] {
				width: 100%;
				padding: 7px 10px;
				font-size: 16px;
				line-height: 170%;
				font-weight: var(--weight-noaml);
				font-family	: inherit;
				border: none;
				background: #F4F4F5;
				border-radius: 10px;
			}
			dl.form_tbl dd textarea {
				width: 100%;
				height: 250px;
				padding: 7px 10px;
				font-size: 16px;
				line-height: 170%;
				font-weight: var(--weight-noaml);
				font-family	: inherit;
				border: none;
				background: #F4F4F5;
				border-radius: 10px;
			}
		div.form1 input[type=checkbox]
		,div.form1 input[type=radio] {
			margin: 0 5px 0 0;
			width: 20px;
			height: 20px;
			vertical-align: -0.3em;
		}
		#form_cont div.privacy_cont {
			width: 100%;
			margin: 65px auto 0;
			padding: 0 10px;
			text-align: left;
		}
			#form_cont div.privacy_cont h3 {
				margin: 0 auto;
				padding: 0;
				font-size: 16px;
				line-height: 180%;
				font-weight: var(--weight-noaml);
			}
			#form_cont div.privacy_cont div.privacy_box {
				width: 100%;
				margin: 10px 0 0;
				padding: 25px 20px;
				font-size: 15px;
				line-height: 200%;
				border: 1px solid #CCCCCC;
				border-radius: 15px;
			}
				#form_cont div.privacy_cont div.privacy_box div.privacy {
					width: 100%;
					height: 270px;
					margin: 0;
					padding: 0 35px 0 0;
					overflow-y: auto;
					scrollbar-color: #0E3383 #fff;
					scrollbar-width: thin;
				}
					#form_cont div.privacy_cont div.privacy_box div.privacy strong {
						display: block;
						font-weight: var(--main-font-bold1);
					}
			#form_cont div.privacy_cont div.privacy_link {
				margin: 25px 0 0;
				padding: 0;
				text-align: center;
			}
				#form_cont div.privacy_cont div.privacy_link label {
					display: inline-block;
					margin: 0;
					padding: 0;
				}
					#form_cont div.privacy_cont div.privacy_link label span {
						display: inline-block;
						width: 40px;
						margin: 0 0 0 25px;
						padding: 0.1em 5px;
						font-size: 14px;
						line-height: 160%;
						color: #fff;
						background: #B20000;
					}

	#contact_btn {
		margin: 0;
		padding: 60px 0 0;
		text-align: center;
	}

	div.form_btn1 {
		display: inline-block;
		width: 286px;
		margin: 0 5px;
	}
		div.form_btn1 button {
			display: block;
			width: 286px;
			height: 60px;
			margin: 0 auto;
			padding: 0;
			font-size: 17px;
			line-height: 120%;
			font-family	: inherit;
			color: #fff;
			background: #0E3383;
			font-weight: var(--weight-noaml);
			cursor: pointer;
			border: 1px solid #0E3383;
			border-radius: 30px;
			transition: 0.2s linear;
		}
			div.form_btn1 button:hover {
				background: #0E6D4D;
				border: 1px solid #0E6D4D;
			}

	div.form_btn2 {
		display: inline-block;
		width: 286px;
		margin: 0 5px;
	}
		div.form_btn2 button {
			display: block;
			width: 286px;
			height: 60px;
			margin: 0 auto;
			padding: 0;
			font-size: 17px;
			line-height: 120%;
			font-family	: inherit;
			color: #0E3383;
			background: #fff;
			font-weight: var(--weight-noaml);
			cursor: pointer;
			border: 1px solid #0E3383;
			border-radius: 30px;
			transition: 0.2s linear;
		}
			div.form_btn2 button:hover {
				color: #0E6D4D;
				border: 1px solid #0E6D4D;
			}

	#form_cont div.form_txt {
		display: inline-block;
		margin: 0 auto;
		padding: 0;
	}
	#form_cont div.form_txt p {
		margin: 1em 0 0;
		padding: 0;
		font-size: 16px;
		line-height: 200%;
		text-align: left;
	}
		#form_cont div.form_txt p:first-of-type {
			margin-top: 0;
		}

	#form_cont div.back_top {
		width: 100%;
		margin: 50px auto 0;
		padding: 0;
		display: flex;
		justify-content: center;
		position: relative;
		z-index: 1;
	}
		#form_cont div.back_top a {
			width: 250px;
			height: 46px;
			margin: 0;
			padding: 0;
			font-size: 15px;
			line-height: 120%;
			font-weight: var(--weight-bold2);
			color: #fff;
			text-decoration: none;
			background: #0E3383;
			border-radius: 23px;
			display: flex;
			justify-content: center;
			align-items: center;
		}
			#form_cont div.back_top a:hover {
				background: #0E6D4D;
			}

div.lc-notion {
	margin-top: 5px;
	font-size: 13px;
	color: #B20000;
	line-height: 160%;
}
input.lc-danger {
	background: #faeeee;
}


