@charset "Shift_JIS";

/* トップページ
============================ */

/* ビジュアル
------------------------------------------------- */
.index .visual {
	background: url("../images/visual.jpg") center center no-repeat;
	background-size: cover;
	color: #fff;
	text-align: center;
	height: 700px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.index .visual .copy1 {
	font-size: min(7.2vw, 64px);
	line-height: 1.3;
	margin-top: 45px!important;
}
.index .visual .copy2 {
	font-size: 26px;
	line-height: 1.5;
	margin-top: 35px!important;
}
.index .visual .sitename {
	font-size: 26px;
	font-family: "Roboto", sans-serif;
	font-weight: 500;
	letter-spacing: 0.03em;
	position: relative;
	margin-top: 50px!important;
	padding-top: 45px;
}
.index .visual .sitename::before {
	display: block;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 120px;
	height: 1px;
	background: #e5e5e5;
}
@media screen and (max-width:767px) {
.index .visual {
	background: url("../images/visual.jpg") center center no-repeat;
	background-size: cover;
	height: 540px;
}
.index .visual .copy1 {
	font-size: 34px;
	margin-top: 35px!important;
}
.index .visual .copy2 {
	font-size: 20px;
	margin-top: 25px!important;
	line-height: 1.6;
}
.index .visual .sitename {
	font-size: 22px;
	margin-top: 40px!important;
	padding-top: 35px;
}
.index .visual .sitename::before {
	display: block;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 120px;
	height: 1px;
	background: #e5e5e5;
}
}

/* 事業部について
------------------------------------------------- */
.index .about {
	background: url("../images/about_bg.jpg") 0 0 no-repeat;
	background-size: cover;
	color: #fff;
	min-height: 700px;
}
.index .about h2 {
	font-size: min(4.2vw, 50px);
	line-height: 1.3;
	flex-basis: 50%;
}
.index .about .box {
	flex-basis: 45%;
}
.index .about p:nth-of-type(1) {
	font-size: min(2.8vw, 30px);
	margin: 60px 0 20px!important;
}
.index .about p:nth-of-type(2) {
	line-height: 2.1;
}
.index .about .btn {
	text-align: right;
	margin-top: 30px!important;
}
@media screen and (max-width: 994px) {
	.index .about {
		min-height: 600px;
	}
	.index .about .box {
		flex-basis: 50%;
	}
}
@media screen and (max-width:767px) {
	.index .about {
		min-height: 520px;
	}
	.index .about h2 {
		font-size: 28px;
	}
	.index .about p:nth-of-type(1) {
		font-size: 18px;
		margin: 40px 0 20px!important;
	}
}

/* 部門紹介
------------------------------------------------- */
.index .business {
	background: #245381;
}
.index .business h3 {
	font-size: min(3vw, 38px);
	color: #fff;
}
.index .business .group01 {
	margin-bottom: 100px;
}
.index .business .box {
	flex-basis: 70%;
	flex-wrap: wrap;
	border-left: 1px solid #fff;
	padding-left: 5%;
}
@media screen and (max-width:767px) {
	.index .business h3 {
		font-size: 24px;
	}
	.index .business .group01 {
		margin-bottom: 25px;
	}
	.index .business h3 {
		font-size: 24px;
	}
}
/* カード */
.index .business .box dl {
	flex-basis: 47%;
	background: url("../images/business_bg.jpg") 0 0 no-repeat;
	background-size: cover;
	padding: 40px 30px 32px;
	display: flex;
	flex-direction: column;
}
.index .business .box dl:nth-of-type(-n+2) {
	margin-bottom: 30px!important;
}
.index .business .box dt {
	font-size: min(2.4vw, 22px);
	font-weight: 700;
	color: #245381;
	padding-bottom: 0.85em;
}
.index .business .box dd.txt {
	line-height: 1.85;
	padding-bottom: 20px;
}
.index .business .box .btnS {
	text-align: right;
	margin-top: auto!important;
}
.index .business .box .btnS a {
	background: #70cccc;
}
@media screen and (max-width: 994px) {
	.index .business .group01,
	.index .business .group02 {
		flex-direction: column;
	}
	.index .business .group01 {
		margin-bottom: 50px;
	}
	.index .business h3 {
		margin-bottom: 25px!important;
	}
	.index .business .box {
		flex-basis: 100%;
		flex-wrap: wrap;
		border-left: none;
		padding-left: 0;
	}
	.index .business .box dl {
		flex-basis: 48.5%;
	}
}
@media screen and (max-width:767px) {
	.index .business .box dl {
		padding: 30px 25px 25px;
		margin-bottom: 20px!important;
	}
	.index .business .box dl:nth-of-type(-n+2) {
		margin-bottom: 20px!important;
	}
	.index .business .box dl:last-of-type {
		margin-bottom: 0!important;
	}
	.index .business .box dt {
		font-size: 19px;
		padding-bottom: 10px;
	}
}

/* その他コンテンツ
------------------------------------------------- */
.index .bg {
	background-color: #eaf0f7;
	background-image: url("../cmn_images/bg01.jpg") ,
url("../cmn_images/bg02.jpg");
	 background-repeat: no-repeat, no-repeat;
	 background-position: top left, bottom right;
	 background-size: 76% auto, 57% auto;
}
.index .other {
	flex-wrap: wrap;
}
.index .other div {
	flex-basis: 47.5%;
	background: rgba(255,255,255,0.8);
	padding: 70px 5% 45px;
	display: flex;
	flex-direction: column;
	margin-bottom: 50px!important;
}
.index .other div:nth-of-type(1) {
	flex-basis: 100%;
	background: rgba(255,255,255,0.8) url("../images/pic_message.png") bottom right 70px no-repeat;
	background-size: min(52%, 634px);
}
.index .other div:nth-of-type(2) {
	background: rgba(255,255,255,0.8) url("../images/pic_various_systems.png") bottom 40px right 40px no-repeat;
	background-size: min(40%, 256px);
}
.index .other div:nth-of-type(3) {
	background: rgba(255,255,255,0.8) url("../images/pic_faq.png") bottom 40px right 40px no-repeat;
	background-size: min(40%, 265px);
}
.index .other h2 {
	font-size: min(3.6vw, 42px);
	font-weight: 700!important;
	color: #245381;
	padding-bottom: 25px!important;
	line-height: 1.2;
}
.index .other h2 span {
	display: block;
	font-size: 20px;
	font-weight: 600!important;
	color: #245381;
	padding-bottom: 10px!important;
}
.index .other .txt {
	line-height: 1.85;
	color: #245381;
	padding-bottom: 15px;
	width: 60%;
}
.index .other .btnS {
	margin-top: auto!important;
	padding-top: 15px;
}
.index .other .btnS a {
	background: #03070f;
}
@media screen and (max-width: 994px) {
	.index .other div {
		flex-basis: 48.5%;
		padding: 45px 5% 30px;
		margin-bottom: 35px!important;
	}
	.index .other div:nth-of-type(1) {
		flex-basis: 100%;
		background: rgba(255,255,255,0.8) url("../images/pic_message.png") bottom right 40px no-repeat;
		background-size: 52%;
	}
	.index .other div:nth-of-type(2) {
		background: rgba(255,255,255,0.8) url("../images/pic_various_systems.png") bottom 30px right 20px no-repeat;
		background-size: 40%;
	}
	.index .other div:nth-of-type(3) {
		background: rgba(255,255,255,0.8) url("../images/pic_faq.png") bottom 30px right 20px no-repeat;
		background-size: 40%;
	}
}
@media screen and (max-width:767px) {
	.index .bg {
		background-color: #eaf0f7;
		background-image: url("../cmn_images/bg01.jpg") ,
url("../cmn_images/bg02.jpg");
		 background-repeat: no-repeat, no-repeat;
		 background-position: top left, bottom right;
		 background-size: 100% auto, 85% auto;
	}
	.index .other div {
		padding: 40px 25px 38px;
		margin-bottom: 30px!important;
	}
	.index .other h2 {
		font-size: 27px;
		padding-bottom: 20px!important;
	}
	.index .other h2 span {
		font-size: 15px;
		padding-bottom: 5px!important;
	}
	.index .other div:nth-of-type(1) {
		background: rgba(255,255,255,0.8) url("../images/pic_message.png") bottom right 20px no-repeat;
		background-size: 250px auto;
		padding-bottom: 55px;
	}
	.index .other div:nth-of-type(2) {
		background: rgba(255,255,255,0.8) url("../images/pic_various_systems.png") bottom 30px right 20px no-repeat;
		background-size: min(35vw,180px) auto;
	}
	.index .other div:nth-of-type(3) {
		background: rgba(255,255,255,0.8) url("../images/pic_faq.png") bottom 30px right 15px no-repeat;
		background-size: min(38vw, 200px) auto;
	}
	.index .other .txt {
		width: 100%;
	}
}


/* 注意書き */
.index .atten {
	text-align: right;
	font-weight: 400!important;
	}
	@media screen and (max-width:767px) {
	.index .atten {
		font-size: 90%;
	}
}