@charset "utf-8";

/*-------------------------------------------------------------------------
MAIN
-------------------------------------------------------------------------*/
.main{
	position: relative;
}
.main:after{
	content: "";
	display: block;
	background: url(../images/img_main.png) no-repeat;
	background-size: cover;
	height: 628px;
	width: calc(50% + 200px);
	border-radius: 40px 0px 0px 40px;
	position: absolute;
	right: 0;
	top: 0;
	z-index: -1;
	opacity: .8;
}
.main_title_wrapper{
	text-align: center;
}
.main_title{
	padding: 70px 0 0;
}
.main_title img{
	width: 273px;
	margin-bottom: 27px;
}
.main_title .sub{
	font-size: 32px;
	font-weight: bold;
	line-height: 1.4;
	display: block;
	margin: 0 0 20px;
}
.main_txt{
	font-size: 16px;
	position: relative;
	left: calc(50% - 200px);
	margin: 120px 0 0 0;
}
.main_txt:before{
	content: "";
	display: block;
	width: 304px;
    height: 168px;
	background: url(../images/ill_main.svg) no-repeat;
	background-size: contain;
	position: absolute;
	left: -350px;
    top: -60px;
}
.main_bt_wrapper{
	text-align: center;
}
.main_bt{
	background: transparent linear-gradient(83deg, #0048B4E6 0%, #0078C8 100%);
	color: #fff;
	font-size: 20px;
	text-align: center;
    box-shadow: 0px 3px 6px #00000029;
    padding: 21px 21px 21px 0;
    border-radius: 8px;
    width: 554px;
    max-width: calc(100% - 60px);
    display: inline-block;
    position: relative;
}
.main_bt:hover{
	color: #fff;
	filter: brightness(1.1);
}
.main_bt:after{
	content: "";
	display: block;
	width: 50px;
    height: 8px;
    background: url(../images/bt_arrow.svg) no-repeat;
    background-size: contain;
    position: absolute;
    top: calc(50% - 4px);
    right: 28px;
}
.main_bt:hover:after{
	margin-right: -6px;
	transition: .3s ease;
}


@media screen and (max-width: 640px) {
	h1.main{
	    font-size: 14vw;
	    height: auto;
	    white-space: nowrap;
	    padding: 8vw;
	}
    h1.main .sub{
        font-size: 4.6vw;
    }
    h1.main .eng{
        font-size: 6vw;
    }
    .main_title .sub{
        font-size: 4.2vw;
    }
    .main_bt{
        font-size: 3.6vw; 
    }
    .main_txt{
        left: auto;
        margin: 40px auto;
        width: calc(100% - 40px);
    }
}
/*-------------------------------------------------------------------------
CONTENT
-------------------------------------------------------------------------*/
.contents_section {
	padding: 54px 0 96px;
}
.section_ttl{
	font-family: 'Tilt Warp', "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	font-size: 58px;
	text-align: center;
}
.title_jp{
	display: block;
	font-size: 18px;
}
.section_txt{
	text-align: center;
}
.section_item_wrapper{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
.section_item{
	background: #EBF5FB;
	text-align: center;
	display: flex;
	flex-direction: column;
	max-width: calc(100% - 40px);
}
.section_more_bt{
	display: block;
	color: #0176C7;
	background: #FFF;
	text-align: center;
	font-size: 15px;
	border: 1px solid #0176C7;
	border-radius: 3px;
	width: 200px;
	padding: 9px 0;
	margin: 16px auto 0;
}
.section_more_bt:hover{
	color: #0176C7;
	background: #EBF5FB;
}

@media screen and (max-width: 640px) {
    .main:after{
	    width: calc(100% - 60px);
	}
	.section_ttl{
	    font-size: 16vw;
	}
    .section_txt{
        text-align: justify;
        word-break: break-all;
        max-width: calc(100% - 40px);
        margin: 8px auto 0;
    }
    .main_bt{
        padding: 21px 0;
    }
    .main_bt:after{
        display: none;
    }
}

/* SERVICE
--------------------------- */
.service .section_ttl{
	color: #0176C7;
}
.service .section_item_wrapper{
	gap: 20px;
	margin: 32px 0 0 0;
	overflow-x: auto;
}
.service .section_item{
	width: 224px;
	min-width: 224px;
    height: 224px;
    border-radius: 50%;	
    gap: 8px;
    padding: 24px 0 0 0;
    font-size: 16px;
    font-weight: bold;
}
.service .section_item_img{
	max-height: 140px;
}


/* ABOUT US
--------------------------- */
.contents_section.about{
    background: transparent linear-gradient(89deg, #0048B4E6 0%, #0078C8 100%);
    padding: 0;
}
.about .bg_img{
	background-image: url(../images/bg_human.png);
	padding: 54px 0 96px;
	background-size: cover;
	background-position: center;
}
.about .section_inner{
	display: flex;
	gap: 36px;
	align-items: center;
	max-width: 1200px;
	padding: 0 30px;
	margin: 0 auto;
	
}
.about .section_inner img{
	width: 480px;
    height: 270px;
    object-fit: cover;
    border-radius: 20px;
}
.about .section_ttl{
	color: #FFF;
}
.about .about_txt{
    color: #FFF;
    font-size: 34px;
    line-height: 1.4;
}
@media screen and (max-width: 640px) {
	.about .section_inner{
	    flex-direction: column;
	    padding: 0 20px;
	    margin: 30px auto 0
	}
	.about .about_txt{
	    font-size: 5vw;
	}
}


/* STRENGTH
--------------------------- */
.strength .section_item_wrapper{
	gap: 56px;
	margin: 40px 0;
}
.strength .section_item{
	width: 324px;
    height: 244px;
    border-radius: 10px;
    gap: 16px;
    padding: 32px 0 0 0;
    font-size: 24px;
    font-weight: bold;
    color: #044570;
}
.strength .section_item_img{
	max-height: 140px;
}
@media screen and (max-width: 640px) {
	.strength .section_item_wrapper{
	    gap: 30px;
	}
}