@charset "utf-8";

/* ------------------------------
 メインイメージ（PC）
------------------------------ */
.mainimg .swiper {
	width: 100%;
	height: auto;
}
.mainimg .swiper-slide {
	position: relative;
}
.mainimg .swiper-slide img {
	display: block;
	width: 100%;
}
.h1-block {
	position: absolute;
	top: 160px;
	left: 117px;
	right: 0;
	margin: auto;
	z-index: 5;
}
.h1-block h1 {
	font-size: 5.2rem;
	line-height: 1.36;
	font-weight: bold;
	margin-bottom: 63px;
	color: #000033;
}
.h1-block h1 span {
	display: block;
	margin-top: 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 1.6rem;
	font-weight: 600;
}
@media screen and (min-width: 1470px) {
	.h1-block h1 {
		font-size: 3.6vw;
	}
	.h1-block h1 span {
		font-size: 1.1vw;
	}
}

/* スライド2枚目 */
.mainimg .swiper-slide div.second h1::before {
	content: none;
}
/* ページネーション */
.mainimg .swiper-horizontal > .swiper-pagination-bullets,
.mainimg .swiper-pagination-bullets.swiper-pagination-horizontal {
	bottom: 50px;
}
.mainimg .swiper-pagination-bullet {
	background: var(--swiper-pagination-bullet-inactive-color, #92a0b0);
	opacity: var(--swiper-pagination-bullet-inactive-opacity, .5);
}
.mainimg .swiper-pagination-bullet-active {
	background: var(--swiper-pagination-bullet-inactive-color, #e50041);
	opacity: var(--swiper-pagination-bullet-inactive-opacity, 1);
}
@media print, screen and (min-width: 768px) {
	.mainimg {
		margin-top: 100px;
	}
	.mainimg .swiper-slide div a {
		transition: .3s ease-in-out;
	}
	.mainimg .swiper-slide div a:hover {
		opacity: .5;
	}
	.mainimg .swiper-slide div.second {
		top: 221px;
	}
	.mainimg .swiper-slide div.second::after {
		content: "";
		display: block;
		clear: both;
	}
	.mainimg .swiper-slide div.second h1 {
		margin-bottom: 108px;
		margin-left: 92px;
		font-size: 5.8rem;
		line-height: 1.4;
		letter-spacing: .03em;
	}
}
/* ------------------------------
 メインイメージ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.h1-block {
		position: absolute;
		top: 80px;
		left: 25px;
		width: auto;
	}
	.h1-block h1 {
		font-size: 2.2rem;
	}
	.h1-block h1 span {
		display: block;
		margin-top: 10px;
		font-family: "Montserrat", sans-serif;
		font-size: 1rem;
	}
	.mainimg .swiper-slide img {
		width: 100%;
		height: auto;
	}
	.mainimg .swiper-slide div {
		top: 8.5%;
		left: 7.5%;
		right: auto;
		width: 92%;
		margin: 0;
	}
	.mainimg .swiper-slide div h1 {
		margin-bottom: 30px;
		color: #000;
		font-size: 3.1rem;
		letter-spacing: -.05em;
		text-shadow: none;
	}
	.mainimg .swiper-slide div h1 span {
		margin-top: 17px;
		font-size: 1rem;
		text-shadow: none;
	}
	.mainimg .swiper-slide div h1::before {
		width: 100px;
		margin-bottom: 30px;
	}
	.mainimg .swiper-slide div a {
		margin-left: 1.5%;
		padding: 8px 0 6px;
		border-bottom: 1px solid #b7c0ca;
		color: #000;
		font-size: 1.7rem;
		letter-spacing: .065em;
	}
	.mainimg .swiper-slide div a::after {
		top: 0;
		right: -50px;
		width: 40px;
		height: 40px;
		background: url(/shared/img/arrow_r40.svg) no-repeat 0 0 / cover;
	}
	/* スライド2枚目 */
	.mainimg .swiper-slide div.second {
		top: 16.5%;
		left: 9.5%;
	}
	.mainimg .swiper-slide div.second h1 {
		margin-bottom: 10px;
		color: #fff;
		font-size: 3.3rem;
		line-height: 1.2;
		letter-spacing: .03em;
	}
	.mainimg .swiper-slide div.second a.sp {
		display: inline-block !important;
		color: #fff;
	}
	/* スライド3枚目 */
	.mainimg .swiper-slide div.third h1 {
		margin-bottom: 20px;
		letter-spacing: .03em;
	}
	/* ページネーション */
	.mainimg .swiper-horizontal > .swiper-pagination-bullets,
	.mainimg .swiper-pagination-bullets.swiper-pagination-horizontal {
		bottom: 10px;
	}
}

/* ------------------------------
 ニュース（PC）
------------------------------ */
.newsBlock {
	width: 1140px;
	margin: 0 auto;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 0 15px 3px rgba(0,58,166,0.15);
	padding: 60px;
	position: relative;
	margin-top: -19%;
	margin-bottom: 130px;
	z-index: 5;
}
.newsBlock h2 {
	line-height: 1;
	font-family: "Montserrat", sans-serif;
	font-size: 3.2rem;
	font-weight: 600;
	letter-spacing: -.025em;
	color: #003aa6;
	margin-bottom: 15px;
}
.newsList {
	border-top: 2px solid #003aa6;
}
.newsBlock .list{
	padding: 10px 42px 10px 0;
	font-weight: bold;
	background: url(../img/arrow_gray.svg) no-repeat right 0 center / 35px 35px;
	position: absolute;
	top: 50px;
	right: 60px;
}
/* ------------------------------
 ニュース（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.newsBlock {
		width: 90%;
		margin-left: 5%;
		margin-right: 5%;
		padding: 40px 20px;
		margin-top: -38%;
		margin-bottom: 50px;
	}
	.newsBlock h2 {
		margin-bottom: 10px;
		font-size: 2.3rem;
	}
	.newsBlock .list{
		background: url(../img/arrow_gray.svg) no-repeat right 0 center / 35px 35px;
		position: static;
	}
	.newsList {
		margin-bottom: 20px;
	}
}
/* ------------------------------
 共通見出し
------------------------------ */
.contentsHome h3{
	font-family: "Montserrat", sans-serif;
	font-size: 13.5rem;
	font-weight: 600;
	color: #fff;
	line-height: 1;
	position:relative;
	margin-bottom: -33px;
}
.contentsHome h3.blue{
	color: #003aa6;
	opacity: 0.1;
}
.contentsHome .txt-ja{
	font-size: 2.8rem;
	font-weight: bold;
	text-align: center;
	padding-left: 33px;
	background: url(../img/icon_decoration.svg) no-repeat 0 center / 29px 37px;
	display: inline-block;
	position:relative;
}
.contentsHome .title-red{
	font-size: 3.4rem;
	font-weight: bold;
	text-align: center;
	padding-bottom: 25px;
}
.contentsHome .title-red:after{
	content: "";
	width: 54px;
	height: 4px;
	border-radius: 2px;
	background: #0066ff;
	display: block;
	margin: 0 auto;
	margin-top: 15px;
}
@media screen and (max-width: 767px) {
	.contentsHome h3{
		font-size: 7rem;
		white-space: nowrap;
		margin: 0 -7%;
		margin-bottom: -25px;
	}
	.contentsHome .txt-ja{
		font-size: 2.2rem;
		padding-left: 25px;
		background: url(../img/icon_decoration.svg) no-repeat 0 center / 23px 29px;
	}
}
/* ------------------------------
 ABOUT US
------------------------------ */
.about-us-block{
	background: url(../../img/bg_about.jpg) no-repeat center center / cover;
	padding: 130px 0;
	margin-top: 130px;
	margin-bottom: 180px;
	position: relative;
	z-index: 1;
}
.about-us-block .decoration-block{
	z-index: 10;
}
.about-us-block .inBlock{
	z-index: 20;
	position: relative;
}
.about-us-block ul{
	width: 1140px;
	margin: 0 auto;
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
	padding-top: 40px;
}
.about-us-block li{
	width: 350px;
	background: #fff;
	border-radius: 10px;
	position: relative;
	padding: 65px 48px;
	box-shadow: 0 0 15px 3px rgba(0,0,0,0.1);
}
.about-us-block li div{
	width: 90px;
	height: 90px;
	font-size: 2.8rem;
	font-family: "Montserrat", sans-serif;
	text-align: center;
	background: #000033;
	border-radius: 50px;
	color: #fff;
	margin: 0 auto;
	top: -45px;
	left: 0;
	right: 0;
	position: absolute;
	line-height: 1;
	padding-top: 28px;
}
.about-us-block li div span{
	font-size: 32%;
	display: block;
	margin-bottom: 3px;
}
.about-us-block .title-red{
	font-size: 2.4rem;
	line-height: 1.37;
}
@media screen and (max-width: 767px) {
	.about-us-block{
		background: #eaeff7 url(../../img/bg_about_sp.jpg) no-repeat center 0 / contain;
		padding: 0 0 60px;
		margin-top: 65px;
		margin-bottom: 70px;
		position: relative;
	}
	.about-us-block .decoration-block{
		z-index: 10;
	}
	.about-us-block .inBlock{
		margin-top: 60px;
		padding-top: 30px;
		margin-left: 5%;
		margin-right: 5%;
		
	}
	.about-us-block .f22{
		font-size: 1.5rem;
		margin-bottom: 20px;
		text-align: left;
		
	}
	.about-us-block ul{
		width: 100%;
		margin-top: 15px;
	}
	.about-us-block li{
		width: 100%;
		margin: 0 auto;
		margin-bottom: 65px;
		padding: 60px 24px;
	}
	.about-us-block li:last-child{
		margin-bottom: 10px;
	}
}
/* -- 左右装飾 -- */
.about-us-block .decoration-block:before {
	content: "";
	width: 50%;
	height: 100%;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 15;
}
.about-us-block .decoration-block:after {
	content: "";
	width: 50%;
	height: 100%;
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 15;
}
@media print, screen and (min-width: 1470px) {
	.about-us-block .decoration-block:before {
		background: url(../../img/decoration_left_aboutus.png) no-repeat left 0 bottom 25px;
	}
	.about-us-block .decoration-block:after {
		background: url(../../img/decoration_right_aboutus.png) no-repeat right 0 top 58px;
	}
}
@media print, screen and (min-width:768px) and ( max-width:1469px) {
	.about-us-block .decoration-block:before {
		background: url(../../img/decoration_left_aboutus.png) no-repeat left calc(50% - 137px) bottom 25px;
	}
	.about-us-block .decoration-block:after {
		background: url(../../img/decoration_right_aboutus.png) no-repeat left calc(50% + 70px) top 58px;
	}
}
@media screen and (max-width: 767px) {
	.about-us-block .decoration-block:before {
		background: url(../../img/decoration_left_aboutus.png) no-repeat left 0 bottom 0 / 170px auto;
		top: auto !important;
		bottom: -55px;
	}
	.about-us-block .decoration-block:after {
		background: url(../../img/decoration_right_aboutus.png) no-repeat right 0 top 0 / 170px auto;
		top: -65px;
	}
}
/* ------------------------------
 OUR JOBS PERSON共通
------------------------------ */
.img-wrap{
	position: relative;
	height: 650px;
	margin-bottom: 130px;
}
.img-wrap .inBlock{
    display: flex;
	align-items: center;
}
.img-right{
	width: 59.8%;
	position: absolute;
	right: 0;
}
.img-left{
	width: 59.8%;
	position: absolute;
	left: 0;
}
.img-right img{
	width: 100%;
	height: 650px;
	object-fit: cover;
	border-radius: 13px 0 0 13px;
}
.img-left img{
	width: 100%;
	height: 650px;
	object-fit: cover;
	border-radius: 0 13px 13px 0;
}
@media screen and (max-width: 767px) {
	.img-wrap{
		position: relative;
		height: auto;
		margin-bottom: 60px;
	}
	.img-wrap .inBlock{
	    display: block;
	}
	.img-wrap .img-right,
	.img-wrap .img-left{
		width: 95%;
	}
	.img-wrap .img-right img,
	.img-wrap .img-left img{
		height: 250px;
	}
	.img-wrap .w1-3{
		padding-top: 270px;
		padding-left: 5%;
		padding-right: 5%;
	}
	.img-wrap .btn{
		text-align: center;
	}
	.img-wrap .f22{
		font-size: 1.7rem;
	}
}
/* ------------------------------
 OUR JOBS
------------------------------ */
.ourjobs-block h3{
	white-space: nowrap;
}
@media screen and (min-width: 768px) {
	.ourjobs-block h3{
		margin-left: -23px;
	}
}
/* ------------------------------
 PERSON
------------------------------ */
.person-block.img-wrap .inBlock{
    display: flex;
	justify-content: flex-end;
}
.person-h3{
	position:relative;
}
.person-h3 h3{
	position: absolute;
	top: 10px;
	left: -20px;
}
.person-h3 .txt-ja{
	margin-top: 105px;
}
@media screen and (max-width: 767px) {
	.person-block.img-wrap .inBlock{
	    display: block;
	}
	.person-h3 h3{
		position: static;
	}
	.person-h3 .txt-ja{
		margin-top: 0;
	}
}

/* ------------------------------
 WELFARE
------------------------------ */
.welfare-block{
	height: 1560px;
    align-items: center;
    padding-top: 155px;
    margin-bottom: 30px;
	position: relative;
}
.welfare-block:before{
	content: "";
	width: 74.5%;
	height: 1324px;
	display: block;
	border-radius: 13px 0 0 13px;
	background: url(../../img/bg_welfare.jpg) no-repeat center center / cover;
	position: absolute;
	top: 155px;
	right: 0;
}
.welfare-block .inBlock{
	margin-top: 120px;
	z-index: 10;
	position: relative;
}

@media print, screen and (min-width:768px) and ( max-width:1800px) {
	.welfare-block:before{
		content: "";
		width: 90%;
	}
}
.welfare-block ul{
	width: 1140px;
	margin: 0 auto;
	display: flex;
	flex-flow: wrap;
	justify-content: center;
	padding-top: 40px;
	gap: 45px 45px;
}
.welfare-block li{
	width: 350px;
	background: #fff;
	border-radius: 10px;
	position: relative;
	padding: 40px 30px;
	box-shadow: 0 0 15px 3px rgba(0,0,0,0.1);
}
.welfare-block li div{
	width: 150px;
	margin: 0 auto 15px auto;
}
.welfare-block li strong{
	font-size: 2.6rem;
	display: block;
	text-align: center;
	margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
	.welfare-block{
		height: 100%;
   	 	padding-top: 53px;
    	margin-bottom: 60px;
	}
	.welfare-block:before{
		width: 89.5%;
		height: 100%;
		background: #f1f4fa url(../../img/bg_welfare_sp.jpg) no-repeat 0 0 / contain;
		top: 50px;
	}
	.welfare-block .inBlock{
		margin-top: 50px;
	}
	.welfare-block ul{
		width: 100%;
		padding-top: 5px;
	}
	.welfare-block li{
		width: 90%;
		margin: 0 auto;
	}
	.welfare-block li strong{
		font-size: 2.4rem;
	}
}
/* -- 左右装飾 -- */
.welfare-block .decoration-block:before {
	content: "";
	width: 50%;
	height: 100%;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}
.welfare-block .decoration-block:after {
	content: "";
	width: 50%;
	height: 100%;
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
}
@media print, screen and (min-width:768px) and ( max-width:1469px) {
	.welfare-block .decoration-block:before {
		background: url(../../img/decoration_left_welfare.png) no-repeat left calc(50% - 150px) bottom 25px;
	}
	.welfare-block .decoration-block:after {
		background: url(../../img/decoration_right_welfare.png) no-repeat left calc(50% + 90px) top 0;
	}
}
@media print, screen and (min-width: 1470px) {
	.welfare-block .decoration-block:before {
		background: url(../../img/decoration_left_welfare.png) no-repeat left 0 bottom 25px;
	}
	.welfare-block .decoration-block:after {
		background: url(../../img/decoration_right_welfare.png) no-repeat right 0 top 0;
	}
}
@media screen and (max-width: 767px) {
	.welfare-block .decoration-block:before {
		background: url(../../img/decoration_left_welfare.png) no-repeat left 0 bottom 0 / 198px auto;
		top: auto;
		height: 300px;
		bottom: -145px;
	}
	.welfare-block .decoration-block:after {
		background: url(../../img/decoration_right_welfare.png) no-repeat right 0 top 0 /177px auto;
		height: 300px;
	}
}

/* ------------------------------
 フッター
------------------------------ */
.foot-btn-block{
	margin: 100px 0 50px;
}