@charset "UTF-8";

/* 共通 */
.mt0 {margin:0 auto}
.mt10 {margin:3% auto 0}
.mt20 {margin:3% auto 0}
.mt25 {margin:3% auto 0}
.mt30 {margin:5% auto 0}
.mt35 {margin:5% auto 0}
.mt40 {margin:5% auto 0}
.mt45 {margin:5% auto 0}
.mt50 {margin:5% auto 0}
.mt60 {margin:5% auto 0}
.mt70 {margin:10% auto 0}
.mt75 {margin:10% auto 0}
.mt80 {margin:13% auto 0}
.mt90 {margin:15% auto 0}
.mt100 {margin:15% auto 0}
.mt110 {margin:20% auto 0}
.mt120 {margin:20% auto 0}
.mt140 {margin:20% auto 0}
.mt150 {margin:20% auto 0}

.bg1 {background:#F4F4F5;}


/* メインタイトル */
#sub_kv {
	width: 100%;
	height: 15em;
	margin: 0 auto;
	padding: 4em 0 0;
	position: relative;
	overflow: hidden;
}
	#sub_kv:before {
		position: absolute;
		content: '';
		display: block;
		width: 90%;
		height: 80%;
		margin: 0;
		padding: 0;
		background: url(../images/sub/kv_bg_sp.png) top right / contain no-repeat;
		top: 0;
		left: 40%;
		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%;
		margin: 0 auto;
		padding: 2.5em 0 0 3.5%;
		text-align: left;
		position: relative;
		z-index: 2;
	}
		#sub_kv div.kv_in h3 {
			display: inline-block;
			margin: 0;
			padding: 0;
			font-size: 9.6vw;
			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: 2px 0 0;
			padding: 0;
			font-size: 4.4vw;
			line-height: 180%;
			font-weight: var(--weight-nomal);
		}
		#sub_kv div.kv_in h4 {
			position: absolute;
			margin: 0;
			padding: 0;
			font-size: 30vw;
			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: -0.05em;
			left: -0.2em;
			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%;
	margin: 0 auto;
	padding: 1.0em 3.5% 8%;
	font-size: 3.0vw;
	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;
	}
		#breadcrumb span:nth-child(n+2) a {
			color: #000;
		}

/* コンテンツタイトル */
div.ttl {
	width: 100%;
	margin: 0 auto;
	padding: 0 3.5%;
	text-align: left;
}
	div.ttl h3 {
		opacity: 0;
		display: inline-block;
		margin: 0;
		padding: 0 0 0 0.9em;
		font-size: 8.2vw;
		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: 0.8em;
			height: 3px;
			margin: 0;
			padding: 0;
			background: #0E3383;
			border-radius: 1.5px;
			top: 0.65em;
			left: -0.2em;
		}
			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 {
		display: inline-block;
		margin: 0 0 0 0.5em;
		padding: 0;
		font-size: 4.0vw;
		line-height: 180%;
		color: #000;
		font-weight: var(--weight-nomal);
		vertical-align: 0.8em;
	}

/* コンテンツテーブル */
dl.cont_tbl {
	margin: 10% 3.5% 0;
	padding: 0;
	font-size: 3.6vw;
	line-height: 180%;
	text-align: left;
	display: flex;
	flex-wrap: wrap;
	position: relative;
}
	/*dl.cont_tbl:after {
		position: absolute;
		content: '';
		display: block;
		width: 100%;
		height: 1px;
		background: linear-gradient(to right, #0E3383 0%, #0E3383 20%, #E9E9E9 20%, #E9E9E9 100%);
		bottom: 0;
		left: 0;
	}*/
	dl.cont_tbl dt,
	dl.cont_tbl dd {
		margin: 0;
		font-weight: var(--weight-nomal);
	}
	dl.cont_tbl dt {
		width: 100%;
		padding: 1em 0 0.2em;
		position: relative;
	}
		dl.cont_tbl dt:before {
			position: absolute;
			content: '';
			display: block;
			width: 100%;
			height: 1px;
			background: linear-gradient(to right, #0E3383 0%, #0E3383 20%, #E9E9E9 20%, #E9E9E9 100%);
			top: 0;
			left: 0;
		}
		dl.cont_tbl dt:first-of-type:before {
			display: none;
		}
	dl.cont_tbl dd {
		width: 100%;
		padding: 0.2em 0 1em;
	}
		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: 0.3em;
					height: 0.3em;
					margin: 0;
					padding: 0;
					background: #0E3383;
					border-radius: 50%;
					top: 0.8em;
					left: 0;
				}

/*====================================
会社概要
=====================================*/
#company_outline {
	margin: 0 auto;
	padding: 0 0 15%;
}
	#company_outline dl.cont_tbl:nth-of-type(n+2) {
		margin-top: 15%;
	}
		#company_outline dl.cont_tbl:nth-of-type(n+2) dt:first-of-type:before {
			display: block;
		}
#company_map {
	margin: 0 auto;
	padding: 15% 0;
}
	#company_map div.gmap {
		height: 25em;
		margin: 10% 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 {
		margin: 8% auto 0;
		padding: 0 3.5%;
	}
		#company_map div.access div {
			margin: 8% 0 0;
			padding: 0;
			text-align: left;
		}
			#company_map div.access div h4 {
				margin: 0;
				padding: 0;
				font-size: 4.0vw;
				line-height: 180%;
				font-weight: var(--weight-bold2);
			}
				#company_map div.access div h4 img {
					display: inline-block;
					width: 1.4em;
					height: auto;
					margin: 0 0.5em 0 0;
					padding: 0;
					vertical-align: -0.3em;
				}
			#company_map div.access div p {
				margin: 1em 0 0;
				padding: 0;
				font-size: 3.6vw;
				line-height: 200%;
			}
				#company_map div.access div p:first-of-type {
					margin-top: 1.2em;
				}
#company_history {
	margin: 0 auto;
	padding: 15% 0 20%;
	position: relative;
}
	#company_history:before {
		position: absolute;
		content: '';
		display: block;
		width: 30%;
		height: 4.1em;
		margin: 0;
		padding: 0;
		background: url(../images/sub/cont_bg1.png) top center / contain no-repeat;
		top: 0;
		right: 4%;
		z-index: 1;
	}

/*====================================
ニュース
=====================================*/
#news_info {
	margin: 0 auto;
	padding: 0 0 15%;
}
	#news_info dl.cont_tbl {
		height: 25em;
		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: 3.9vw;
			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: 1em;
							height: 0.8em;
							margin: 0 0 0 0.4em;
							padding: 0;
							background: url(../images/icon/link_ico2.png) center / contain no-repeat;
			}



	#news_info div.first_info {
		margin: 10% auto 0;
		padding: 0 3.5%;
		text-align: left;
	}
		#news_info div.first_info h3 {
			margin: 0;
			padding: 0;
			font-size: 6.4vw;
			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: 4.0vw;
			line-height: 180%;
			font-weight: var(--weight-bold2);
		}
		#news_info div.first_info div.first_info_main {
			margin: 8% 0 0;
			padding: 0;
		}
			#news_info div.first_info div.first_info_main div {
				margin: 0;
				padding: 0;
			}
				#news_info div.first_info div.first_info_main div p {
					margin: 1em 0 0;
					padding: 0;
					font-size: 3.8vw;
					line-height: 180%;
				}
					#news_info div.first_info div.first_info_main div p:first-of-type {
						margin-top: 0;
					}
			#news_info div.first_info div.first_info_main img {
				display: inline-block;
				width: 100%;
				height: auto;
				margin: 5% auto 0;
				padding: 0;
			}
#news_blog {
	margin: 0 auto;
	padding: 15% 0 25%;
}
	#news_blog div.blog_cont {
		width: 100%;
		margin: 8% auto 0;
		padding: 0 3.5%;
		position: relative;
		z-index: 1;
	}
		#news_blog div.blog_cont ul {
			width: 100%;
			margin: 8% 0 0;
			padding: 2em 1em 2em;
			text-align: left;
			background: rgba(255,255,255,0.9);
			border-radius: 1em;
			list-style: none;
		}
			#news_blog div.blog_cont ul:first-of-type {
				margin-top: 0;
			}
			#news_blog div.blog_cont ul h4 {
				display: inline-block;
				margin: 0;
				padding: 0;
				font-size: 6.4vw;
				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: 1em;
					border-top: 1px solid #E9E9E9;
				}
				#news_blog div.blog_cont ul li:before {
					position: absolute;
					content: '';
					display: block;
					width: 1.8em;
					height: 2.0em;
					background: url(../images/icon/pdf_ico.png) center / contain no-repeat;
					top: 1.2em;
					left: 0;
				}
				#news_blog div.blog_cont ul li a {
					display: block;
					margin: 0;
					padding: 1.5em 3% 1.5em 3em;
					font-size: 3.6vw;
					line-height: 180%;
					color: #000;
					text-decoration: none;
				}

/*====================================
お問い合わせ
=====================================*/
#form_cont {
	margin: 0 auto;
	padding: 0 3.5% 25%;
}
	#form_cont div.form1 {
		margin: 0 auto;
		padding: 0;
	}
	#form_cont div.form1 p.form_top {
		margin: 0;
		padding: 0;
		font-size: 3.6vw;
		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: 3.6vw;
			line-height: 180%;
			text-align: left;
			display: flex;
			flex-wrap: wrap;
			position: relative;
		}
		#form_cont div.form1 dl.cont_tbl {
			margin-left: 0;
			margin-right: 0;
		}
			dl.form_tbl:after {
				position: absolute;
				content: '';
				display: block;
				width: 100%;
				height: 1px;
				background: linear-gradient(to right, #0E3383 0%, #0E3383 20%, #E9E9E9 20%, #E9E9E9 100%);
				bottom: 0;
				left: 0;
			}
			dl.form_tbl dt {
				width: 100%;
				padding: 1em 0 0.2em;
				position: relative;
			}
				dl.form_tbl dt:before {
					position: absolute;
					content: '';
					display: block;
					width: 100%;
					height: 1px;
					background: linear-gradient(to right, #0E3383 0%, #0E3383 20%, #E9E9E9 20%, #E9E9E9 100%);
					top: 0;
					left: 0;
				}
				dl.form_tbl dt:first-of-type:before {
					display: none;
				}
				dl.form_tbl dt span {
					display: inline-block;
					margin: 0 0 0 1em;
					padding: 0.1em 5px;
					font-size: 3.2vw;
					line-height: 160%;
					color: #fff;
					background: #B20000;
				}
			dl.form_tbl dd {
				width: 100%;
				padding: 0.2em 0 1em;
			}
			dl.form_tbl dd input[type=text],
			dl.form_tbl dd input[type=tel],
			dl.form_tbl dd input[type=email] {
				width: 100%;
				padding: 2% 3%;
				font-size: 3.8vw;
				line-height: 170%;
				font-weight: var(--weight-noaml);
				font-family	: inherit;
				border: none;
				background: #F4F4F5;
				border-radius: 0.5em;
			}
			dl.form_tbl dd textarea {
				width: 100%;
				height: 15em;
				padding: 2% 3%;
				font-size: 3.8vw;
				line-height: 170%;
				font-weight: var(--weight-noaml);
				font-family	: inherit;
				border: none;
				background: #F4F4F5;
				border-radius: 1em;
			}
		div.form1 input[type=checkbox]
		,div.form1 input[type=radio] {
			margin: 0 0.5em 0 0;
			width: 1.2em;
			height: 1.2em;
			vertical-align: -0.1em;
		}
		#form_cont div.privacy_cont {
			width: 100%;
			margin: 8% auto 0;
			padding: 0;
			text-align: left;
		}
			#form_cont div.privacy_cont h3 {
				margin: 0 auto;
				padding: 0;
				font-size: 3.6vw;
				line-height: 180%;
				font-weight: var(--weight-noaml);
			}
			#form_cont div.privacy_cont div.privacy_box {
				width: 100%;
				margin: 1em 0 0;
				padding: 3%;
				font-size: 3.4vw;
				line-height: 200%;
				border: 1px solid #CCCCCC;
				border-radius: 1em;
			}
				#form_cont div.privacy_cont div.privacy_box div.privacy {
					width: 100%;
					height: 20em;
					margin: 0;
					padding: 0 0.5em 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: 5% 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;
						margin: 0 0 0 1em;
						padding: 0.1em 5px;
						font-size: 3.2vw;
						line-height: 160%;
						color: #fff;
						background: #B20000;
					}

	#contact_btn {
		margin: 0;
		padding: 8% 0 0;
		text-align: center;
	}

	div.form_btn1 {
		display: block;
		width: 100%;
		margin: 5% auto 0;
	}
		div.form_btn1 button {
			display: block;
			width: 100%;
			height: 4em;
			margin: 0 auto;
			padding: 0;
			font-size: 3.8vw;
			line-height: 120%;
			font-family	: inherit;
			color: #fff;
			background: #0E3383;
			font-weight: var(--weight-noaml);
			cursor: pointer;
			border: 1px solid #0E3383;
			border-radius: 2em;
		}

	div.form_btn2 {
		display: block;
		width: 100%;
		margin: 5% auto 0;
	}
		div.form_btn2 button {
			display: block;
			width: 100%;
			height: 4em;
			margin: 0 auto;
			padding: 0;
			font-size: 3.8vw;
			line-height: 120%;
			font-family	: inherit;
			color: #0E3383;
			background: #fff;
			font-weight: var(--weight-noaml);
			cursor: pointer;
			border: 1px solid #0E3383;
			border-radius: 2em;
		}

	#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: 3.6vw;
		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: 8% auto 0;
		padding: 0;
	}
		#form_cont div.back_top a {
			width: 100%;
			height: 3em;
			margin: 0;
			padding: 0;
			font-size: 3.6vw;
			line-height: 120%;
			font-weight: var(--weight-bold2);
			color: #fff;
			text-decoration: none;
			background: #0E3383;
			border-radius: 1.5em;
			display: flex;
			justify-content: center;
			align-items: center;
		}

div.lc-notion {
	margin-top: 0.1em;
	font-size: 3.2vw;
	color: #B20000;
	line-height: 160%;
}
input.lc-danger {
	background: #faeeee;
}



