@charset "utf-8";

:root {
   --bule-color: #13489d;
	 --oswald-font:font-family: 'Oswald', sans-serif;
}

/*---------------------------------------------------------------------------------------------------- ■ 全体 */
/* ---  margin/padding */
.space40{padding: 40px 0;}
.space80{padding: 80px 0;}
.space120{padding: 120px 0;}
.mB0{ margin-bottom:0 !important;}
.mT8{ margin-top:8px;}
.mT16{ margin-top:16px;}
.mT24{ margin-top:24px;}
.mT32{ margin-top:32px;}
.mT40{ margin-top:40px;}
.mT48{ margin-top:48px;}
.mT56{ margin-top:56px;}
.mT64{ margin-top:64px;}
.mT80{ margin-top:80px;}
@media only screen and (max-width:896px) {
.space40{padding: 32px 0;}
.space80{padding: 64px 0;}
.space120{padding: 88px 0;}
.mT16{ margin-top:8px;}
.mT24{ margin-top:16px;}
.mT32{ margin-top:28px;}
.mT40{ margin-top:32px;}
.mT48{ margin-top:40px;}
.mT56{ margin-top:48px;}
.mT64{ margin-top:56px;}
.mT80{ margin-top:72px;}
}
@media only screen and (max-width:480px) {
.space40{padding: 24px 0;}
.space80{padding: 48px 0;}
.space120{padding: 56px 0;}
.mT24{ margin-top:12px;}
.mT32{ margin-top:24px;}
.mT40{ margin-top:28px;}
.mT48{ margin-top:36px;}
.mT56{ margin-top:44px;}
.mT64{ margin-top:52px;}
.mT80{ margin-top:68px;}
}

/* --- 文字色/文字の強調 */
.tc{ text-align:center;}
.w100{ width:100%;}
.boxShadow{	box-shadow: 0px 4px 0px 0px rgba(0,0,0,0.15); }
.BgBule{ background-color:#edf3fd; }

/* --- ページタイトル*/
.pageTtl {
	text-align: center;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	position:relative;
	height:400px;
	}
	.pageTtl-service{
		background-image: url(../images/service/pagettl.jpg);
		}
	.pageTtl-company{
		background-image: url(../images/company/pagettl.jpg);
		}
	.pageTtl-information{
		background-image: url(../images/information/pagettl.jpg);
		}
	.pageTtl-contact {
		background-image: url(../images/contact/pagettl.jpg);
		}
.pageTtl_ttl {
	line-height:1;
	color: #FFF;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
	}
	.pageTtl_ttl_jp,
	.pageTtl_ttl_en{
		display: block;
		}
		.pageTtl_ttl_jp{
			font-size:1.6rem;
			margin-bottom:16px;
			}
			.pageTtl_ttl_en {
				font-size: 4rem;
				font-family: 'Oswald', sans-serif;
				font-weight:600;
				}
@media only screen and (max-width:896px) {
.pageTtl {
	height:320px;
	}
.pageTtl_ttl_jp{
	margin-bottom:8px;
	}
}
@media only screen and (max-width:480px) {
.pageTtl {
	height:240px;
	}
}

/* --- タイトル*/
.ttlPt01 {
  overflow: hidden;
  text-align: center;
	margin-bottom:40px;
}
.ttlPt01_border {
  position: relative;
  display: inline-block;
  margin: 0 2em;
  padding: 0 2em;
  text-align: left;
}
.ttlPt01_border::before,
.ttlPt01_border::after {
  position: absolute;
  top: 50%;
  content: '';
  width: 400%;
  height: 1px;
  background-color: #ddd;
}
.ttlPt01_border::before {
  right: 100%;
}
.ttlPt01_border::after {
  left: 100%;
}
.ttlPt01_en,
.ttlPt01_jp{
	display:block;
	text-align:center;
	line-height:1;
	}
.ttlPt01_en{
	color: var(--bule-color);
	font-family: 'Oswald', sans-serif;
	font-weight:500;
	font-size:1.4rem;
	margin-bottom:16px;
	}
.ttlPt01_jp{
	font-size:3.2rem;
	}

.ttlPt02{
	color:#fff;
	background-color:#0b2a5b;
	padding:24px;
	font-size:2rem;
	line-height:1;
	margin-bottom:24px;
	}
	
.ttlPt03{
	color: var(--bule-color);
	font-size:1.8rem;
	border-bottom:1px solid #ddd;
	line-height:1;
	padding-bottom:16px;
	margin-bottom:16px;
	}
	
.ttlPt04{
	color: var(--bule-color);
	font-size:3.2rem;
	line-height:1;
	text-align:center;
	margin-bottom:40px;
	}
@media only screen and (max-width:896px) {
.ttlPt01 {
	margin-bottom:32px;
}
.ttlPt01_en{
	margin-bottom:8px;
	}
.ttlPt02{
	padding:16px;
	margin-bottom:16px;
	}
.ttlPt04{
	margin-bottom:32px;
	}
}
@media only screen and (max-width:480px) {
.ttlPt03{
	padding-bottom:8px;
	margin-bottom:8px;
	}
.ttlPt04{
	margin-bottom:24px;
	}
}

/*- ページナビ -*/
.pageNav {
	display:table;
	text-align:center;
	margin-left:auto;
	margin-right:auto;
	}
	.pageNav li {
		float: left;
		margin-right:24px;
		margin-bottom:8px;
		}
		.pageNav li:last-child{
			margin-right:0;
			}
			.pageNav li a {
				border-radius:100px;
				background-color:#f5f5f5;
				display:block;
				font-weight:bold;
				color:#13489d;
				padding:16px 40px;
				line-height:1;
				}
				.pageNav li a:hover {
					color:#fff;
					background-color:#13489d;
					}
@media only screen and (max-width:896px) {
	.pageNav li {
		margin-right:16px;
	}
	.pageNav li a {
		padding:16px 32px;
		}
	}
@media only screen and (max-width:480px) {
	.pageNav li {
		margin-right:8px;
	}
	.pageNav li a {
		padding:16px 24px;
		}
	}
	
/*- ボタン -*/
.BasicBtn{
	display:block;
	padding:16px;
	background-color:#13489d;
	color:#FFF;
	text-align:center;
	width:100%;
	max-width:320px;
	margin-left:auto;
	margin-right:auto;
	font-weight:bold;
	border-radius: 4px;
	line-height:1;
	}

/*- ロード画面 -*/
#loader-bg {
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
	background-color: rgba(255,255,255,0.95);
  z-index: 100000;
}
#loader {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  width: 100px;
  margin-top: -50px;
  margin-left: -50px;
  text-align: center;
  z-index: 100002;
}
#loader img{
	display:inline-block;
	}
#loader p{
	margin-top:24px;
	}
@media only screen and (max-width:896px) {
	}
@media only screen and (max-width:480px) {
	}

/*---------------------------------------------------------------------------------------------------- ■ footer */
.ggMap{
	line-height:0;
	}
	.ggMap iframe{
		width:100%;
		height:480px;
		}
footer{
	display:block;
	border-top:1px solid #ddd;
	}
	.footer-inner{
    max-width: 1480px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
		}
	footer ul{
		height:144px;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
				-ms-flex-flow: row;
						flex-flow: row;
		-webkit-box-align: center;
				-ms-flex-align: center;
						align-items: center;
		}
		footer ul li{
			border-right:1px solid #ddd;
			}
			footer ul li:first-child,
			footer ul li:last-child{
				border-right:none;
				}
				footer ul li:first-child{
					border-right:none;
					display:block;
					margin-right: auto;
					padding-right:24px;
					}
					footer ul li:first-child p{
						text-align:center;
						font-size:1.4rem;
						margin-top:8px;
						}
					footer ul li a{
						display:block;
						padding:0 16px;
						font-weight:bold;
						}
						footer ul li:first-child a{
							padding:0;
							}
.copyright{
	color:#FFF;
	padding:16px 0;
	font-size:1.2rem;
	background-color:#111;
	text-align:center;
	}
@media only screen and (max-width: 1040px) {
	.ggMap iframe{
		height:400px;
		}
	footer ul{
		height:96px;
		}
	}
@media only screen and (max-width: 896px) {
	.ggMap iframe{
		height:320px;
		}
	footer{
		display:none;
		}
	}
	
/*---------------------------------------------------------------------------------------------------- ★ トップページ */
/* --- ● メインイメージ */
.mainVisual {
	width:100%;
	position: relative;
	min-height: calc(100vh - 180px);
	height:100%;
	}
.mainVisual_box {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
	color:#FFF;
	width: 100%;
	text-align:center;
	font-weight:bold;
	text-shadow:
	0px 0px 8px #000000,
	0px 0px 8px #000000,
	0px 0px 8px #000000,
	0px 0px 8px #000000,
	0px 0px 8px #000000;
	letter-spacing:4pt;
	line-height:1;
}
.mainVisual_box_logo{
	margin-bottom:24px;
	}
	.mainVisual_box_logo img{
		display:inline-block;
		}
.mainVisual_box_Mcopy{
	font-family: "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" , 'Noto Serif JP', "ＭＳ Ｐ明朝" , "MS PMincho" , serif;
	font-size:5.6rem;
	margin-bottom:24px;
	}
.mainVisual_box_Scopy{
	font-size: 3.2rem;
	margin-bottom:8px;
	}
/* swiper */
.swiper-container{
	width:2em;
	height:1em;
	font-size:7.2rem;
	display:inline-block;
	vertical-align:bottom;
	text-align: center;
	white-space:nowrap;
	overflow:inherit !important;
	}
.swiper-slide{
	visibility:hidden;
	padding-top:16px;
	}
.swiper-slide-active{
	visibility:visible;
	}


.mainVisual_arrow {
  position: absolute;
  bottom: 80px;
  left: 0;
	right:0;
	margin:auto;
  z-index: 2;
  display: inline-block;
}
.mainVisual_arrow span {
  position: absolute;
  top: 0;
  left: 50%;
  width: 48px;
  height: 48px;
  margin-left: -24px;
  border: 1px solid #fff;
  border-radius: 100%;
  box-sizing: border-box;
}
.mainVisual_arrow span::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: '';
  width: 16px;
  height: 16px;
  margin: -12px 0 0 -8px;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  box-sizing: border-box;
}
.mainVisual_arrow span::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  content: '';
  width: 44px;
  height: 44px;
  box-shadow: 0 0 0 0 rgba(255,255,255,.1);
  border-radius: 100%;
  opacity: 0;
  -webkit-animation: sdb 3s infinite;
  animation: sdb 3s infinite;
  box-sizing: border-box;
}
@-webkit-keyframes sdb {
  0% {
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  60% {
    box-shadow: 0 0 0 60px rgba(255,255,255,.1);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes sdb {
  0% {
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  60% {
    box-shadow: 0 0 0 60px rgba(255,255,255,.1);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@media only screen and (max-width:896px) {
.mainVisual {
	min-height: calc(100vh - 64px);
	}
.mainVisual_box_Mcopy{
	font-size:4.8rem;
	}
.mainVisual_box_Scopy{
	font-size: 2.8rem;
	}
.mainVisual_box_Mcopy_ib{
	display:block;
	}
.swiper-container{
	font-size:6.4rem;
	}
.mainVisual_box {
	letter-spacing:normal;
}
	}
@media only screen and (max-width:480px) {
}
	
/* --- ● 会社概要 */
.TopCompany{
	background-image:url(../images/company_bg.jpg);
	background-repeat:no-repeat;
	background-size:cover;
	color:#FFF;
	text-align:center;
	overflow:hidden;
	position:relative;
	}
.TopCompany #hoge{
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	top: 0;
	}
.TopCompany .ttlPt01_en{
	color:#FFF;
	}
	.TopCompany .ttlPt01_border::before,
	.TopCompany .ttlPt01_border::after {
		background-color: #fff;
		}
.TopCompany p{
	font-family: "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" , 'Noto Serif JP', "ＭＳ Ｐ明朝" , "MS PMincho" , serif;
	font-size:2.8rem;
	line-height:1.6em;
	}
	.TopCompany p span{
		display:block;
		}
.TopCompany .BasicBtn{
	background-color:transparent;
	border:1px solid #FFF;
	}
@media only screen and (max-width:896px) {
	.TopCompany p span{
		display:none;
		}
	}
@media only screen and (max-width:480px) {
}

/*---------------------------------------------------------------------------------------------------- ★ 事業内容 */
.serviceGrid{
	width:100%;
	table-layout:fixed;
	display:table;
	}
.serviceGrid_col{
	display:table-cell;
	vertical-align:middle;
	}
.serviceGrid_col:last-child {
	padding-left:32px;
	}
.serviceGrid_col h5{
	font-size:2.4rem;
	line-height:1.6em;
	color:#13489d;
	}
.serviceGrid_col p{
	margin-top:16px;
	font-size:1.8rem;
	line-height:1.6em;
	font-weight:bold;
	}
.serviceItem{
	border:1px solid #ddd;
	background-color:#fff;
	padding:24px;
	margin-top:24px;
	}
	.serviceItem ul li{
		display:inline-block;
		font-weight:bold;
		line-height:1;
		}
		.serviceItem ul li i{
			color:#13489d;
			}
@media only screen and (max-width:896px) {
.serviceGrid_col:last-child {
	padding-left:24px;
	}
.serviceGrid_col p{
	margin-top:8px;
	}
}
@media only screen and (max-width:480px) {
.serviceGrid,
.serviceGrid_col{
	display:block;
	}
.serviceGrid_col:last-child {
	padding-left:0;
	margin-top:24px;
	}
}

.flowBox{
	background-size:cover;
	background-repeat:no-repeat;
	background-position:center center;
	color:#FFF;
	text-align:center;
	padding:64px 8px;
	font-weight:bold;
	line-height:1;
	margin-bottom:24px;
	border-radius: 4px;
	}
	.flowBox span{
		font-family: 'Oswald', sans-serif;
		font-size:1.8rem;
		}
	.flowBox p{
		margin-top:16px;
		font-size:2rem;
		}
	.flowBox:nth-child(1) { background-image:url(../images/service/flow_sp_01.jpg); }
	.flowBox:nth-child(2) { background-image:url(../images/service/flow_sp_02.jpg); }
	.flowBox:nth-child(3) { background-image:url(../images/service/flow_sp_03.jpg); }
	.flowBox:nth-child(4) { background-image:url(../images/service/flow_sp_04.jpg); }
	.flowBox:nth-child(5) { background-image:url(../images/service/flow_sp_05.jpg); }
	.flowBox:nth-child(6) { background-image:url(../images/service/flow_sp_06.jpg); }

@media only screen and (max-width:896px) {
.flowBox{
	padding:40px 8px;
	margin-bottom:16px;
	}
}
@media only screen and (max-width:480px) {
.flowBox{
	padding:32px 8px;
	margin-bottom:8px;
	}
	.flowBox p{
		margin-top:8px;
		}
.flow .col{
	width:100% !important;
	float:none !important;
	margin:0 0 8px 0 !important;
	}
}


/*---------------------------------------------------------------------------------------------------- ★ 採用情報･協力業者募集 */
.borderBox{
	padding:40px;
	border:8px solid #edf3fd;
	}
@media only screen and (max-width:896px) {
.borderBox{
	padding:32px;
	}
	}
@media only screen and (max-width:480px) {
.borderBox{
	padding:24px;
	}
	}
	
/*---------------------------------------------------------------------------------------------------- ★ 会社概要 */
.philosophyWrap {
	position: relative;
}
.philosophy-right.philosophyWrap {
	position:static;
	}
.philosophyTmb {
	display: block;
	}
	.philosophy-left .philosophyTmb{
		margin: 0 0 0 auto;
		}
	.philosophy-right .philosophyTmb{
		display:none;
		}
.philosophyCont {
	width: 320px;
	height: 320px;
	background: #fff;
	margin: auto;
	padding: 48px;
	position: absolute;
	top: 0;
	bottom: 0;
	display:table;
	border:1px solid #ddd;
	}
	.philosophyContIn{
		display:table-cell;
		vertical-align:middle;
		}
		.philosophyContTtl{
			text-align:center;
			font-size:2.4rem;
			color: #13489d;
			margin-bottom:16px;
			line-height:1;
			}

.philosophyContTtlEn {
  overflow: hidden;
  text-align: center;
	margin-bottom:16px;
	display:block;
	font-family: 'Oswald', sans-serif;
	font-weight:500;
	font-size:1.4rem;
	line-height:1;
	}
	.philosophyContTtlEn_border {
		position: relative;
		display: inline-block;
		margin: 0 1em;
		padding: 0 1em;
		text-align: left;
		}
		.philosophyContTtlEn_border::before,
		.philosophyContTtlEn_border::after {
			position: absolute;
			top: 50%;
			content: '';
			width: 100%;
			height: 1px;
			background-color: #ddd;
			}
			.philosophyContTtlEn_border::before {
				right: 100%;
			}
			.philosophyContTtlEn_border::after {
				left: 100%;
			}

			.philosophyContTxt{
				}
.philosophyWrapParallax {
	background-image:url(../images/company/philosophy_bg_02.jpg);
	background-attachment:fixed;
	background-repeat:no-repeat;
	background-position:center center;
	background-size:cover;
	}
	.philosophyWrapParallax .inner{
		height: 480px;
		}
		.philosophyWrapParallax .inner .philosophyCont{
			right: 0;
			}
			
.greetingFlex{
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
			-ms-flex-flow: row;
					flex-flow: row;
	-webkit-box-align: center;
			-ms-flex-align: center;
					align-items: center;
	}
.greetingFlexCont{
	padding-left:4%;
	width:70%;
	}
.greetingFlexTmb{
	width:30%
	}
.greetingCopy{
	font-size:2.8rem;
	font-weight:bold;
	margin-bottom:16px;
	line-height:1.6em;
	}
	.greetingCopy span{
		font-size:3.6rem;
		color: #13489d;
		}
.greetingName{
	background-color:#f5f5f5;
	font-family: "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" , 'Noto Serif JP', "ＭＳ Ｐ明朝" , "MS PMincho" , serif;
	font-size:2.4rem;
	vertical-align:middle;
	margin-top:24px;
	text-align:right;
	padding:16px;
	}
	.greetingName span{		
		display:inline-block;
		margin-right:8px;
		font-size:1.6rem;
		}

@media only screen and (max-width:896px) {
.philosophy-right .philosophyTmb{
	display:block;
	}
.philosophyCont {
	width: 100%;
	height: auto;
	padding: 24px;
	position:static;
	top: auto;
	bottom: auto;
	text-align:center;
	}
.philosophyWrapParallax {
	background-image:none;
	}
	.philosophyWrapParallax .inner{
		height:auto;
		}
		
.greetingFlexCont{
	width:60%;
	}
.greetingFlexTmb{
	width:40%
	}
	.greetingFlexTmb img{
		width:100%;
		height:auto;
		}
	}
@media only screen and (max-width:480px) {
.philosophyContTtl{
	margin-bottom:8px;
	}
.greetingFlex{
	display:block;
	}
.greetingFlexCont,
.greetingFlexTmb{
	width:100%;
	}
.greetingFlexCont{
	padding-left:0;
	margin-top:24px;
	}
.greetingCopy{
	margin-bottom:16px;
	font-size:2.4rem;
	}
	.greetingCopy span{
		font-size:3.2rem;
		}
.greetingName{
	margin-top:16px;
	}

	}
/*---------------------------------------------------------------------------------------------------- ★ お問合せ */
.formNotes {
	border:1px solid #ddd;
	background-color:#fff;
  padding: 16px;
}
.requiredTxt {
  color: #d52d41;
  font-weight: bold;
}
.requiredBg {
  background-color: #f8ffeb !important;
}
.requiredTag {
  color: #FFF;
  font-weight: 800;
  background-color: #d52d41;
  padding: 4px;
  line-height: 1em;
  display: inline-block;
  font-size: 1.0rem;
  vertical-align: middle;
  white-space: nowrap;
}
/* --- セレクト/テキスト/テキストエリア */
.formSelect,
.formText,
.formTextarea {
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: inherit;
  font-family: inherit;
  padding: 8px;
  border-radius: 5px;
  width: 100%;
  background-color: #fff;
	font-size:1.6rem;
}
.formSelect:focus,
.formText:focus,
.textarea:focus {
  border: 1px solid rgba(0, 0, 0, 0.32);
}
.formSelect {
	width:100%;
  background: transparent url(https://haniwaman.com/wp-content/uploads/2018/12/form-css-arrow.png) no-repeat center right 8px/8px 8px;
  cursor: pointer;
	padding: 8px 16px 8px 8px;
}
.formSelect::-ms-expand {
  display: none;
}

.formText-w30{
	width:30%;
	}
/* --- ボタン */
.formButton {
  width: 100%;
  max-width: 440px;
  text-align: center;
  margin: 0 auto;
  background-image: none;
  color: #fff;
  cursor: pointer;
  display: block;
  font-size: 1.8rem;
  padding: 16px;
  text-decoration: none;
  font-weight: bold;
  border-radius: 5px;
}
.formButton:hover,
.formButton:focus {
  outline: none;
  opacity: 0.8;
  filter: alpha(opacity=80);
}
.formButton::-moz-foucus-inner {
  border: none;
  padding: 0;
}
.formButton--reset {
  background-color: #ccc;
}
.formButton--submit {
	background-color: #13489d;
}





