@charset "UTF-8";

.container{
	max-width:1140px;
}

.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}


.oswald {
  font-family: "Oswald", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

html{
	scroll-padding-top: 90px;
}

body{
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight:400;
  font-style: normal;
  padding-top:56px;
}

@media (min-width: 992px) {
	body{
	  padding-top:0;
	}
}

p{
	text-align: justify;
	text-justify: inter-ideograph;
	line-height:1.75;
}

h1,h2,h3,h4{
	line-height:1;
}

h1{

}

h2{
	font-family: "Oswald", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-size:60px;
	font-weight: 400;
	color:#002864;
	margin-bottom:30px;
}

h2 small{
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-size:20px;
	font-weight: 600;
	display: block;
	margin:12px 0 0 0;
}

.contact_wrap h2{
	color:#FFFFFF;
}

@media (min-width: 768px) {
	h2{
		font-size:140px;
		margin-bottom:70px;
	}

	h2 small{
		font-size:26px;
		margin:16px 0 0 0;
	}
}

h3{
	font-size:22px;
	font-weight: 600;
	color:#CF004C;
	border-left:2px solid #CF004C;
	padding:12px 0 12px 16px;
	line-height:150%;
	margin-bottom:20px;
}

@media (min-width: 768px) {
	h3{
		font-size:32px;
		padding:16px 0 16px 16px;
		line-height:170%;
		margin-bottom:40px;
	}
}

h4{
	font-size:20px;
	font-weight: 600;
	background-color:#E6E6E6;
	padding:15px 18px;
}

header.header nav.navbar{
	box-shadow: 0px -1px 12px 0px rgba(0, 0, 0, 0.16);
}

.header_logo{
	background-image:url(../images/header_logo_c.svg);
	background-repeat: no-repeat;
	background-size: cover;
	width:100px;
	height:41px;
}

button.navbar-toggler{
	padding:4px !important;
	border:2px solid #CCCCCC;
}

span.navbar-toggler-icon{
	opacity: 0.5;
}

.main_image{
	background-image:url(../images/main_image_sp.jpg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	padding-top:150%;
	margin-bottom:50px;
	position: relative;
}

@media (min-width: 768px) {
	.main_image{
		background-image:url(../images/main_image.jpg);
		padding-top:54.16666%;
		margin-bottom:50px;
	}
}

li.nav-item{
	padding:0 8px;
	border-bottom:1px dashed #CCCCCC;
}

@media (min-width: 992px) {
	header.header nav.navbar{
		background-color:rgba(255,255,255,0) !important;
		transition: background-color 0.3s ease;
		height:90px;

	}

	header.header.scroll nav.navbar{
		background-color:rgba(255,255,255,1) !important;
		box-shadow: 0px -1px 12px 0px rgba(0, 0, 0, 0.16);
	}

	header.header nav.navbar .header_logo{
		background-image:url(../images/header_logo_w.svg);
		background-repeat: no-repeat;
		background-size: cover;
		width:126px;
		height:52px;
	}

	header.header.scroll nav.navbar .header_logo{
		background-image:url(../images/header_logo_c.svg);
		background-repeat: no-repeat;
		background-size: cover;
		width:126px;
		height:52px;
	}

	.collapse.navbar-collapse{
		margin-top:30px;
	}

	header.header nav.navbar li.nav-item{
	  font-family: "Noto Sans JP", sans-serif;
	  font-optical-sizing: auto;
	  font-weight:600;
	  font-style: normal;
	  color:#FFFFFF;
	  font-size:16px;
	  border-right: 1px solid #FFFFFF;
	  border-bottom:none;
	  padding:0;
	}

	header.header.scroll nav.navbar li.nav-item{
	  font-family: "Noto Sans JP", sans-serif;
	  font-optical-sizing: auto;
	  font-weight:600;
	  font-style: normal;
	  color:#333333;
	  font-size:16px;
	  border-right: 1px solid #333333;
	}

	header.header nav.navbar li.nav-item a{
		padding:0 16px;
		color:#FFFFFF;
	}

	header.header.scroll nav.navbar li.nav-item a{
		color:#333333;
	}
}

.main_image_copy{
	font-family: "Oswald", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 400;
  font-size:11.8vw;
  color:#FFFFFF;
  line-height:100%;
  position: absolute;
  bottom:13%;
  left:5%;
}

.main_image_text{
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight:600;
  font-style: normal;
  font-size:2.8vw;
  color:#FFFFFF;
  line-height:150%;
  position: absolute;
  bottom:4%;
  left:5%;
}

@media (min-width: 768px) {
	.main_image_copy{
		font-family: "Oswald", sans-serif;
	  font-optical-sizing: auto;
	  font-style: normal;
	  font-weight: 400;
	  font-size:11.8vw;
	  color:#FFFFFF;
	  line-height:100%;
	  position: absolute;
	  top:22%;
	  bottom:auto;
	  left:10%;
	}

	.main_image_text{
	  font-family: "Noto Sans JP", sans-serif;
	  font-optical-sizing: auto;
	  font-weight:600;
	  font-style: normal;
	  font-size:2.8vw;
	  color:#FFFFFF;
	  line-height:150%;
	  position: absolute;
	  top:75%;
	  bottom:auto;
	  left:10%;
	}
}

.about_wrap{
	text-shadow: 0px 0px 5px #FFFFFF,0px 0px 5px #FFFFFF,0px 0px 5px #FFFFFF,0px 0px 5px #FFFFFF;
}

@media (min-width: 768px) {
	.about_wrap{
		display: flex;
		align-items: center;
		background-image:url(../images/about_back.jpg);
		background-repeat: no-repeat;
		background-position: center right;
		background-size:auto 100%;
		height:450px;
		margin-bottom:50px;
	}
}

ul.about_cat{
	display: flex;
	width:100%;
	list-style:none;
	padding:0;
	margin:0;
}

ul.about_cat li{
	width:33.3333%;
	text-align:center;
	font-size:14px;
	font-weight:600;
	border-left:1px solid #CCCCCC;
	padding:0 8px;
}

ul.about_cat li:last-child{
	border-right:1px solid #CCCCCC;
}

@media (min-width: 768px) {
	ul.about_cat li{
		font-size:20px;
	}
}

img.icon_finance_mode,
img.icon_list_alt_check,
img.icon_group {
	height:auto;
	display: block;
	margin:0 auto 20px;
}

img.icon_finance_mode::after,
img.icon_list_alt_check::after,
img.icon_group::after {
	content: "\A";
	white-space: pre;
}

img.icon_finance_mode{
	width:63px;
}

img.icon_list_alt_check{
	width:66px;
}

img.icon_group{
	width:68px;
}

.business_wrap{
	background-color:#f5f5f5;
	margin:50px 0;
	padding:50px 0;
}

@media (min-width: 768px) {
	.business_wrap{
		margin:150px 0;
		padding:150px 0;
	}
}

table.table.company_outline{
	margin-bottom:40px;
}

@media (min-width: 768px) {
	table.table.company_outline{
		margin-bottom:100px;
	}
}

table.table.company_outline tr th{
	font-weight: 400;
	border-color: #B3B3B3;
	padding:12px 8px;
	white-space: nowrap;
}

table.table.company_outline tr td{
	border-color: #B3B3B3;
	padding:12px 8px;
}

img.logo_mark{
	width:180px;
	height:auto;
	margin-bottom:40px;
}

@media (min-width: 768px) {
	img.logo_mark{
		width:312px;
		height:auto;
		margin-bottom:0;
	}
}

table.table.ceo_histry{
	margin-bottom:50px;
}

@media (min-width: 768px) {
	table.table.ceo_histry{
		margin-bottom:200px;
	}
}

table.table.ceo_histry tr th{
	font-family: "Oswald", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-size:24px;
	font-weight: 400;
	white-space: nowrap;
	color:#005AA4;
	border-color: #B3B3B3;
	padding:21px 0;
}

table.table.ceo_histry tr td{
	border-color: #B3B3B3;
	padding:21px 8px;
	vertical-align: middle;
}

table.table.ceo_histry tr td span{
	color:#005AA4;
	font-weight:600;
}

.copyright_text{
	background-color:#FFFFFF;
	text-align:center;
	font-size:16px;
	font-weight: 400;
	height:60px;
	line-height: 60px;
}

.contact_wrap{
	background-color:#002864;
	background-image:url(../images/footer_logo.svg);
	background-repeat: no-repeat;
	background-position: left bottom;
	background-size:250px 103px;
	color:#FFFFFF;
	padding:50px 0;
}

@media (min-width: 768px) {
	.contact_wrap{
		background-size:510px 210px;
		padding:100px 0;
	}
}

.form_wrap{
	font-size:18px;
	font-weight:600;
}

@media (min-width: 768px) {
	.form_wrap{
		font-size:20px;
	}
}

.form_wrap input,
.form_wrap textarea{
	width:100% !important;
	font-size:16px;
	margin:2px 0;
}

.form_wrap textarea{
	height:150px !important;
}

.form_wrap button.mfp_element_submit.mfp_element_all{
	background-color:#005aa4;
	background-image: none;
	border:none;
	border-radius: 20px;
	padding:0;
	font-size:16px;
	font-weight:600;
	color:#FFFFFF;
	width:190px;
	height:40px;
	transition: background-color 0.3s ease;
	text-shadow: none !important;
}

.form_wrap button.mfp_element_submit.mfp_element_all:hover{
	background-color:#004a7c;
	background-image: none;
	box-shadow: none;
}

span.must_icon{
	background-color:#005aa4;
	color:#FFFFFF;
	border:none;
	border-radius: 4px;
	padding:3px 8px;
	display: inline-block;
	font-weight: 400;
	font-size:14px;
	line-height:100%;
	margin-left:8px;
}


.fadein {
    opacity: 0;
    transform: translate(0, 0);
    transition: all 1.5s;
}
.fadein.fadein-left {
    transform: translate(-30px, 0);
}
.fadein.fadein-right {
    transform: translate(30px, 0);
}
.fadein.fadein-up {
    transform: translate(0, -30px);
}
.fadein.fadein-bottom {
    transform: translate(0, 30px);
}
.fadein.scrollin {
    opacity: 1 !important;
    transform: translate(0, 0) !important;
}

/*========= ページトップのためのCSS ===============*/
/*リンクの形状*/
#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	background:#005aa4;
	width: 50px;
	height: 50px;
	color: #FFFFFF;
	text-align: center;
	text-transform: uppercase; 
	text-decoration: none;
	font-size:0.6rem;
	transition:all 0.3s;
	margin:0;
}

#page-top a:hover{
	background: #002864;
}

@media (min-width: 768px) {
	#page-top a{
		width: 80px;
		height: 80px;
	}
}

/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 0;
	z-index: 2;
    /*はじめは非表示*/
	opacity: 0;
	transform: translateY(100px);
}

/*　上に上がる動き　*/

#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

/*　下に下がる動き　*/

#page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 1;
	transform: translateY(0);
  }
  to {
  	opacity: 1;
	transform: translateY(120px);
  }
}

.thanks_text{
	margin:200px 0;
}

@media (min-width: 768px) {
	.thanks_text{
		margin:200px 0;
		text-align:center;
	}
}