@charset "utf-8";
/* CSS Document */

body.common {
	padding-top: 0;
}

#main {
	clear: both;
	width: 100%;
	margin: 0 auto;
	padding: 0;
}

.c-mainImg {
	padding-top: calc(640 / 1600 * 100%);
}

#contents .p-mainImg {
	text-align: center;
	background-image: url(../img/main_img_pc.jpg);
	position: relative;
}

.c-mainImgTxt--center {
	top: calc(14%);
	bottom: 0;
	margin: auto;
}

#contents .p-main__ttl img {
	width: 127px;
}

#contents .p-mainImg p {
	font-size: 100%;
}

#contents .p-mainImg p.p-main__ttl_txt1 {
	margin: 1.5625% 0 1.125%;
	font-size: 2rem;
	font-size: 100%;
	font-weight: bold;
}

#contents .p-mainImg p.p-main__ttl_txt2 {
	margin-bottom: 2%;
	font-size: 3.2rem;
	font-weight: bold;
}

#contents .p-mainImg p.p-main__ttl_txt3 {
	margin-bottom: 3.4375%;
	font-size: 1.6rem;
}

#contents .p-mainImg p.p-main__ttl_txt4 {
	margin-bottom: 2%;
	font-size: 3.2rem;
}

#contents .p-mainImg p.p-main__ttl_copy {
	font-size: 1.6rem;
	line-height: 2;
}

#contents .p-mainImg .p-main__ttl_ico {
	position: absolute;
	top: 18px;
	left: calc(50% + 95px);
	width: 111px;
}

@media screen and (max-width: 1499px) {
	#contents .p-mainImg .p-main__ttl img {
		width: 7.9375%;
	}

	#contents .p-mainImg .p-main__ttl_ico {
		width: 6%;
		top: 4%;
		left: 55%;
	}

	#contents .p-mainImg p.p-main__ttl_txt1 {
		font-size: 1.6rem;
	}

	#contents .p-mainImg p.p-main__ttl_txt2 {
		font-size: 2rem;
	}

	#contents .p-mainImg p.p-main__ttl_txt3,
	#contents .p-mainImg p.p-main__ttl_copy {
		font-size: 1.28rem;
	}

	#contents .p-mainImg p.p-main__ttl_txt4 {
		font-size: 2.56rem;
		margin-bottom: 1.8%;
	}
}

@media screen and (max-width: 1029px) {
	.c-mainImgTxt--center {
		top: calc(12%);
	}

	#contents .p-mainImg p.p-main__ttl_txt1 {
		font-size: 1.28rem;
	}

	#contents .p-mainImg p.p-main__ttl_txt2 {
		margin-bottom: 1.6rem;
	}

	#contents .p-mainImg p.p-main__ttl_txt3 {
		margin-bottom: 2rem;
	}

	#contents .p-mainImg p.p-main__ttl_txt4 {
		font-size: 2.2rem;
		margin-bottom: 1.2%;
	}

	#contents .p-mainImg p.p-main__ttl_copy {
		line-height: 1.6;
	}
}

@media screen and (max-width: 767px) {
	#contents .p-mainImg {
		background-image: url(../img/main_img_sp.jpg);
		padding-top: calc(600 / 750 * 100%);
	}

	#contents .p-mainImg .p-main__ttl img {
		width: 22.93334%;
		margin: 0 auto;
	}

	#contents .p-mainImg .p-main__ttl_ico {
		width: 17%;
		top: 7%;
		left: 65%;
	}

	.c-mainImgTxt--center {
		top: calc(18.66667%);
	}

	#contents .p-mainImg p.p-main__ttl_txt1 {
		margin: 5.3334% 0 3.8666%;
		font-size: 1.4rem;
		font-size: 3.4666vw;
	}

	#contents .p-mainImg p.p-main__ttl_txt2 {
		margin-bottom: 3.8666%;
		font-size: 2rem;
		font-size: 5.6vw;
	}

	#contents .p-mainImg p.p-main__ttl_txt3 {
		margin-bottom: 7.73333%;
		font-size: 1.28rem;
		font-size: 3.2vw;
	}

	#contents .p-mainImg p.p-main__ttl_txt4 {
		font-size: 2rem;
		font-size: 5.6vw;
	}

	#contents p.p-main__ttl_copy {
		font-size: 1.4rem;
		font-size: 3.4666vw;
		line-height: 2;
		padding: 2em;
	}
}


#contents .sec {
	margin-bottom: 12.5%;
}

#contents .sec_main {
	padding: 0 6.25% 10%;
	background-color: #EEEEF8;
}

#contents .sec_main h2 {
	position: absolute;
	width: calc(100% - (5.633802816% * 2));
	text-align: center;
	margin: calc(3% * -1) auto 1em;
}

#contents .sec_main h2 img {
	width: 23.1%;
	max-width: 221px;
}

#contents .sec_main p.h2_sub {
	margin-bottom: 6.6667%;
	padding-top: 6.25%;
	font-size: 3.2rem;
	text-align: center;
}

/*#contents .sec_inner {
	clear: both;
	width: 100%;
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: flex-start;
	justify-content: flex-start;
}
*/
#contents .sec_inner.case {
	margin-bottom: 4.2%;
}

#contents .sec_inner.case>div {
	/*position: relative;*/
	width: 48.809523809%;
	background-color: #FFF;
	padding: 0 4rem 3rem;
	text-align: center;
}

#contents .sec_inner>div:nth-of-type(2) {
	margin-left: auto;
}

/*#contents .sec_inner.case  > div h3 {
	position: relative;
	display: inline-block;
	margin: -3rem auto;
	font-size: 2.4rem;
}
#contents .sec_inner.case  > div h3::after {
	content: "";
	background: #000;
	height: 3px;
	position: absolute;
	left: 0;
	bottom: -10px;
	width: 100%;
}
*/

#contents .sec_inner.case>div h3 {
	/*position: relative;*/
	color: #48559d;
	font-size: 2.4rem;
	margin: -1.2rem auto 1.5rem;
}

#contents .sec_inner.case>div h3>span {
	position: relative;
	display: inline-block;
	margin: 0 auto;
}

#contents .sec_inner.case>div h3>span::after {
	position: absolute;
	left: 0;
	bottom: -7px;
	width: 100%;
	height: 3px;
	content: "";
	background: #48559d;
}

#contents .sec_inner.case>div .case_ttl {
	font-size: 2.2rem;
	line-height: 1.4;
	padding: 2rem 0 3rem;
}

#contents .sec_inner.case>div .case_txt {
	font-size: 1.6rem;
	line-height: 2;
	text-align: left;
}

#contents .sec_inner.bf-af {
	background: url(../img/icon_arw_r.png) no-repeat center 55%;
	background-size: 1em auto;
}

#contents .sec_inner.bf-af>div {
	position: relative;
	width: 47.619047619%;
}

@media screen and (max-width: 767px) {
	#contents .sec {
		margin-bottom: 22.6666%;
	}

	#contents .sec_main {
		padding: 0 5.633802816% 8%;
	}

	#contents .sec.p-sec {
		padding: 0 5.633802816%;
	}

	#contents .sec_main h2 img {
		width: 42.66667%;
		max-width: 320px;
		margin: 0 auto;
	}

	#contents .sec_main p.h2_sub {
		padding-top: 13%;
		font-size: 21px;
		font-size: 5.6vw;
		margin-bottom: 2em;
	}

	/*#contents .sec_inner,*/
	.bf-af_sp {
		display: block;
		width: 100%;
	}

	#contents .sec_inner.case {
		-webkit-flex-wrap: wrap;
		flex-wrap: wrap;
		width: 100%;
		margin-top: 3rem;
	}

	#contents .sec_inner.case>div {
		width: 100%;
		margin-bottom: 5rem;
	}

	#contents .sec_inner.case>div h3 {
		/*margin-top: -4rem;*/
		font-size: 18px;
		font-size: 4.8vw;
	}

	#contents .sec_inner.case>div .case_ttl {
		font-size: 17px;
		font-size: 4.53333vw;
	}

	#contents .sec_inner.case>div .case_txt {
		font-size: 12px;
		font-size: 3.2vw;
	}

	.swiper-pagination-bullet {
		background-color: #fff;
		width: 1rem;
		height: 1rem;
	}

	.swiper-pagination-bullet-active {
		background-color: #a8a8a8;
	}

	.swiper-button-prev,
	.swiper-button-next {
		background-color: rgba(175, 175, 175, 0.8);
		width: 6.349206349%;
		height: 19.841269841%;
		margin-top: -4%;
		top: 50%;
		background-size: 35% auto;
	}

	.swiper-button-prev {
		background-image: url(../img/icon_prev.png);
		left: 0;
	}

	.swiper-button-next {
		background-image: url(../img/icon_next.png);
		right: 0;
	}
}

#contents .p-sec h3 {
	margin-bottom: 4rem;
	font-size: 4.6rem;
	font-weight: normal;
	text-align: center;
}

#contents .p-sec h3>span {
	position: relative;
	display: inline-block;
	margin: 0 auto;
}

#contents .p-sec h3>span::after {
	position: absolute;
	left: 0;
	bottom: -10px;
	width: 100%;
	height: 3px;
	content: "";
	background: #000;
}

#contents .p-sec .h3_sub {
	font-size: 1.6rem;
	line-height: 2;
}

#contents .p-sec h4 {
	padding-top: 5rem;
	margin-bottom: 2rem;
	color: #000;
	font-size: 3.2rem;
	/*font-weight: normal;*/
	text-align: center;
	letter-spacing: 5px;
}

#contents .p-sec h4 span {
	position: relative;
}

#contents .p-sec h4 span::after {
	position: absolute;
	left: 0;
	right: 0;
	margin: 0 auto;
	top: -5rem;
	width: 1em;
	height: 1em;
	content: "";
	background-color: #cbd4d9;
	border-radius: 100%;
}

#contents .p-sec.sec02 h4 span::after {
	background-color: #bac1a8;
}

#contents .p-sec.sec03 h4 span::after {
	background-color: #8a8a8a;
}

#contents .p-sec.sec04 h4 span::after {
	background-color: #6b788f;
}

#contents .p-sec .h4_sub {
	margin-bottom: 2em;
	font-size: 1.6rem;
	line-height: 2;
	text-align: center;
}

#contents .sec_item__txt {
	margin: 1em 0;
	line-height: 2;
}

@media screen and (max-width: 767px) {
	#contents .sec.p-sec {
		padding: 0 5.633802816%;
	}

	#contents .p-sec h3 {
		font-size: 32px;
		font-size: 8.533vw;
	}

	#contents .p-sec .h3_sub {
		font-size: 12px;
		font-size: 3.2vw;
		text-align: left;
	}

	#contents .p-sec h4 {
		font-size: 25px;
		font-size: 6.666vw;
		padding-top: 3rem;
		letter-spacing: 2px;
	}

	#contents .p-sec h4 span::after {
		top: -3.5rem;
		width: 2.5rem;
		height: 2.5rem;
	}

	#contents .p-sec .h4_sub,
	#contents .sec_item__txt {
		font-size: 12px;
		font-size: 3.2vw;
	}

	.p-sec .swiper-button-next,
	.p-sec .swiper-button-prev {
		top: 36%;
	}
}

@media screen and (min-width: 768px) {

	#contents .swiper-wrapper .sec_item {
		position: relative;
		width: 46.875%;
		padding: 0;
		text-align: left;
	}

	#contents .swiper-wrapper .sec_item:nth-of-type(2) {
		margin-left: auto;
	}

	.swiper-button-next,
	.swiper-button-prev {
		display: none;
	}
}