@charset "utf-8";
body {
	background: linear-gradient(to bottom, rgba(0,75,145,1) 0%,rgba(0,75,145,1) 40%,rgba(112,179,211,1) 80%,rgba(112,179,211,1) 100%);
}

.section {
	letter-spacing: 0.06em;
}

.section .ffMont {
	letter-spacing: 0.04em;
}

.wrapper > .inner {
	position: relative;
}

.wrapper > .inner::after {
	content: '';
	position: absolute;
	left: calc(-1 * min(7.68vw, 86px));
	top: min(117.14vw, 1312px);
	width: min(84.46vw, 946px);
	height: min(52.95vw, 593px);
	background: url('/service/images/bg.png') center/ 100% auto no-repeat;
}

.section .contentInner {
	z-index: 1;
}

@media (max-width: 767px)  {
	.wrapper > .inner::after {
    left: calc(-1 * min(76.09vw, 630px));
    top: min(344.44vw, 2852px);
    width: min(170.29vw, 1410px);
    height: min(106.52vw, 882px);
    transform: rotate(90deg);
	}
}

.section01 .contentInner {
	padding-bottom: min(74.46vw, 834px);
}

.section01 .sectionTtl {
	left: calc(-1 * min(17.32vw, 194px));
	top: min(25vw, 280px);
}

.section01 .subTtl {
	left: min(8.66vw, 97px);
	top: min(9.46vw, 106px);
}

.section01 .ttl {
	position: absolute;
	left: min(36.43vw, 408px);
	top: min(13.3vw, 149px);
	font-size: min(2.86vw, 32px);
	letter-spacing: 0.1em;
}

.section01 .txt01 {
	position: absolute;
	left: min(32.77vw, 367px);
	top: min(19.29vw, 216px);
	font-size: min(1.43vw, 16px);
	font-weight: 300;
}

.section01 .txt02 span:last-child {
	display: inline-block;
	margin-left: 30px;
	margin-top: 10px;
}

.section01 .txt03 {
	position: absolute;
	top: min(4.91vw, 55px);
	right: 0;
	font-size: min(1.25vw, 14px);
	letter-spacing: 0.36em;
	line-height: 1;
}

.section01 .img {
	width: min(86.25vw, 966px);
	position: absolute;
	left: min(13.75vw, 154px);
	top: min(25.89vw, 290px);
}

@media (max-width: 1279px) and (min-width: 768px) {
	.section01 .txt03 {
		line-height: inherit;
	}

	.section01 .img {
		left: auto;
		right: 0;
	}
}

.section02 {
	margin-top: min(8.93vw, 100px);
	padding-top: min(1.16vw, 13px);
}

.section02 .contentInner {
	padding-bottom: min(55.18vw, 618px);
}

.section02 .sectionTtl {
	font-size: min(2.86vw, 32px);
	font-weight: 500;
	position: absolute;
	top: min(5.71vw, 64px);
	left: min(6.61vw, 74px);
	letter-spacing: 0.1em;
}

.section02 .txt01 {
	position: absolute;
	left: 0;
	top: 0;
	font-size: min(1.25vw, 14px);
	letter-spacing: 0.36em;
	line-height: 1;
}

.section02 .txt02 {
	position: absolute;
	top: min(15vw, 168px);
	left: min(9.29vw, 104px);
}

.section02 .txt02 span:first-child {
	font-size: min(1.61vw, 18px);
	line-height: 1.78;
	letter-spacing: 0.1em;
}

.section02 .txt02 span:last-child {
	font-size: min(1.43vw, 16px);
	font-weight: 300;
	margin-top: min(1.16vw, 13px);
	line-height: 2;
	display: block;
}

.section02 .img {
	width: min(61.52vw, 689px);
	position: absolute;
	top: min(19.29vw, 216px);
	right: calc(-1 * min(3.57vw, 40px));
}

@media (max-width: 1279px) and (min-width: 768px) {
	.section02 .txt01 {
		line-height: inherit;
	}

	.section02 .img {
		right: 0;
	}
}

.section03 {
	margin-top: min(8.93vw, 100px);
	padding-top: min(1.52vw, 17px);
}

.section03 .sectionTtl {
	font-size: min(2.86vw, 32px);
	font-weight: 500;
	position: absolute;
	top: 0;
	left: 0;
	letter-spacing: 0.1em;
}

.section03 .sectionCnt {
	padding-top: min(11.61vw, 130px);
	margin: 0 0 0 auto;
	max-width: min(97.32vw, 1090px);
}

.section03 .txt {
	font-size: min(1.61vw, 18px);
	left: min(2.68vw, 30px);
	top: min(6.07vw, 68px);
	position: absolute;
	line-height: 1.78;
	letter-spacing: 0.1em;
}

.section03 .textList {
	width: min(33.93vw, 380px);
	margin-top: min(8.75vw, 98px);
	letter-spacing: 0;
}

.section03 .textList li:nth-child(n+2) {
	margin-top: min(4.11vw, 46px);
}

.section03 .txt01 {
	position: absolute;
	right: calc(-1 * min(3.57vw, 40px));
	top: 0;
	font-size: min(1.25vw, 14px);
	letter-spacing: 0.36em;
	line-height: 1;
}

.section03 .txt02 {
	font-size: min(1.34vw, 15px);
	border: 1px solid #fff;
	display: inline-block;
	line-height: 1;
	padding: min(0.27vw, 3px);
}

.section03 .txt03 {
	font-size: min(1.61vw, 18px);
	margin-top: min(1.16vw, 13px);
	letter-spacing: 0;
	line-height: 1.72;
}

.section03 .txt04 {
	font-size: min(1.25vw, 14px);
	font-weight: 300;
	margin-top: min(1.34vw, 15px);
	line-height: 1.78;
	letter-spacing: 0.02em;
}

.section03 .img {
	width: min(57.05vw, 639px);
}

@media (max-width: 1279px) and (min-width: 768px) {
	.section03 .txt01 {
		line-height: inherit;
		right: 0;
	}
}

.section04 {
	margin-top: min(8.93vw, 100px);
	padding-top: min(1.79vw, 20px);
}

.section04 .sectionTtl {
	position: relative;
	padding-top: min(7.14vw, 80px);
	margin-left: min(3.57vw, 40px);
	font-size: min(1.61vw, 18px);
	letter-spacing: 0.1em;
}

.section04 .sectionCnt {
	margin-top: min(4.38vw, 49px);
	margin-right: calc(-1 * min(3.66vw, 41px));
	margin-left: min(3.48vw, 39px);
}

.section04 .txt01 {
	position: absolute;
	left: calc(-1 * min(3.57vw, 40px));
	top: 0;
	font-size: min(1.25vw, 14px);
	letter-spacing: 0.36em;
	line-height: 1;
}

.section04 .solutionList li {
	width: min(22.77vw, 255px);
	position: relative;
}

.section04 .solutionList li:not(:last-child):after {
	content: '';
	position: absolute;
	right: calc(-1 * min(2.41vw, 27px));
	top: 50%;
	width: min(1.88vw, 21px);
	height: min(7.14vw, 80px);
	background: url('/service/images/ico_arrow_pc.png') center / auto 100% no-repeat;
	margin-top: calc(-1 * min(3.04vw, 34px));
}

@media (max-width: 1279px) and (min-width: 768px) {
	.section04 .txt01 {
		line-height: inherit;
		left: 0;
	}

	.section04 .sectionCnt {
    margin-top: min(5.36vw, 60px);
    margin-right: 0;
    margin-left: 0;
	}

	.section04 .solutionList li {
    width: min(21.25vw, 255px);
	}
}

@media (max-width: 1200px) and (min-width: 768px) {
	.section04 .solutionList li:not(:last-child):after {
		right: calc(-1 * min(2.4vw, 32px));
	}
}

@media (max-width: 767px){
	.inner {
		max-width: 100%;
	}

	.section01 {
		margin-top: min(10.87vw, 90px);
	}

	.section01 .contentInner {
    padding-bottom: 0;
	}

	.section01 .img {
		width: 100%;
		position: relative;
		margin-top: min(11.35vw, 94px);
		left: auto;
		top: auto;
	}

	.section01 .img>img{
		margin-bottom: min(9.66vw, 40px);
	}

	.section01 .sectionTtl {
    left: 0;
    top: 0;
	}

	.section01 .txt01{
		position: relative;
		font-size: min(3.38vw, 28px);
		text-align: center;
		line-height: 1.78;
		margin-top: min(6.52vw, 54px);
		left: auto;
		top: auto;
	}

	.section01 .txt03{
		position: relative;
		right: auto;
		top: auto;
		font-size: min(2.66vw, 22px);
		letter-spacing: 0.16em;
		margin-top: min(5.31vw, 44px);
	}

	.section01 .ttl{
		position: relative;
		font-size: min(4.83vw, 40px);
		left: auto;
		top: auto;
		padding-left: min(5.31vw, 44px);
		margin-top: min(7.73vw, 64px);
	}

	.section01 .subTtl {
		left: auto;
		top: min(1.21vw, 10px);
		font-size: min(2.9vw, 24px);
		letter-spacing: 0.3em;
	}

	.section02{
		margin-top: min(5.56vw, 46px);
		padding-top: min(13.29vw, 110px);
	}

	.section02 .contentInner {
    padding-bottom: 0;
	}

	.section02 .txt01 {
		top: calc(-1 * min(10.39vw, 86px));
		left: 0;
		font-size: min(2.66vw, 22px);
		letter-spacing: 0.16em;
	}

	.section02 .txt02{
		position: relative;
		top: auto;
		left: auto;
		margin-top: min(6.52vw, 54px);
	}

	.section02 .sectionTtl{
		font-size: min(4.83vw, 40px);
		position: relative;
		top: 0;
		left: 0;
		letter-spacing: 0.09em;

	}

	.section02 .txt02 span:first-child{
		font-size: min(3.86vw, 32px);
		line-height: 1.8;
		display: block;
		text-align: center;
	}

	.section02 .txt02 span:last-child{
		font-size: min(3.38vw, 28px);
		line-height: 1.78;
		letter-spacing: 0.06em;
		margin-top: min(3.38vw, 28px);
		text-align: center;
	}

	.section02 .img{
		width: 110.15%;
		position: relative;
		right: auto;
		left: -5.1%;
		top: auto;
		margin: min(8.45vw, 70px) auto 0;
	}

	.section03{
		position: relative;
		margin-top: min(9.66vw, 80px);
	}

	.section03 .itemLine {
		position: absolute;
		width: min(19.32vw, 160px);
		height: 2px;
		background-color: #FFFFFF;
		left: 0;
		right: 0;
		top: 0;
		margin: auto;
	}

	.section03 .sectionCnt {
    padding-top: min(0.48vw, 4px);
		margin: 0;
		max-width: 100%;
	}

	.section03 .sectionTtl {
		font-size: min(4.83vw, 40px);
		position: relative;
		text-align: center;
		padding-top: min(12.08vw, 100px);
		top: auto;
		left: auto;
	}

	.section03 .sectionCnt .flexBox{
		flex-direction: column-reverse;
		margin-top: min(9.42vw, 78px);
	}

	.section03 .img{
		position: relative;
		width: 110.295%;
		margin: 0 auto;
		left: -5.15%;
	}

	.section03 .txt{
		font-size: min(3.86vw, 32px);
		text-align: center;
		line-height: 1.2;
		position: relative;
		left: auto;
		top: auto;
		margin-top: min(7.25vw, 60px);
	}
	
	.section03 .txt02{
		letter-spacing: 0.02em;
	}

	.section03 .txt03{
		letter-spacing: 0;
		margin-top: 8px;
	}

	.section03 .txt04{
		letter-spacing: 0.02em;
	}

	.section03 .txt>span:last-child{
		padding-top: 15px;
		display: block;
	}

	.section03 .txt02{
		font-size: min(3.38vw, 28px);
		padding: min(0.72vw, 6px) min(0.48vw, 4px);
	}

	.section03 .txt03 {
		font-size: 16px;
		line-height: 1.75;
	}

	.section03 .txt01.verticalTxt {
		display: none;
	}

	.section03 .txt04 {
		font-size: min(2.9vw, 24px);
		line-height: 1.75;
		max-width: min(68.84vw, 570px);
		margin: min(1.93vw, 16px) auto 0;
		text-align: left;
	}

	.section03 .textList{
		text-align: center;
		width: 100%;
		margin-top: min(8.7vw, 72px);
	}

	.section03 .textList li:nth-child(n+2) {
		margin-top: min(5.56vw, 46px);
	}

	.section04 {
		margin-top: min(9.66vw, 80px);
    padding-top: min(7.73vw, 64px);
	}

	.section04 .sectionCnt {
    margin: min(8.7vw, 72px) auto 0;
	}

	.section04 .sectionTtl{
		font-size: min(3.86vw, 32px);
		line-height: 1.8;
		text-align: center;
		margin: 0;
		padding-top: min(9.66vw, 80px);
	}

	.section04 .sectionCnt .flexBox{
		flex-direction: column;
		width: 110.58%;
		position: relative;
		left: -5.29%;
	}

	.section04 .solutionList li{
		width: 100%;
		position: relative;
	}

	.section04 .solutionList li:nth-child(n+2) {
		margin-top: min(7.73vw, 64px);
	}

	.section04 .solutionList li:not(:last-child):after {
    content: '';
    position: absolute;
    right: auto;
    top: auto;
		left: 50%;
		bottom: calc(-1 * min(5.56vw, 46px));
    width: min(13.04vw, 108px);
    height: min(3.38vw, 28px);
    background: url('/service/images/ico_arrow_sp.png') center / auto 100% no-repeat;
    margin-top: 0;
		margin-left: calc(-1 * min(6.52vw, 54px));
	}

	.section04 .solutionList li:nth-last-of-type(1):after{
		content: none;
	}

	.section04 .verticalTxt {
		font-size: min(2.66vw, 22px);
		left: 0;
		letter-spacing: 0.15em;
	}
}