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

/* ----------------------------------------------------------------------------------------------------
*  テキスト
* --------------------------------------------------------------------------------------------------*/

/* align
--------------------------------------------------*/
.tL {
	text-align: left !important;
}
.tC {
	text-align: center !important;
}
.tR {
	text-align: right !important;
}
.vT {
	vertical-align: top !important;
}

/* font-weight
--------------------------------------------------*/
.noto100 {
	font-weight: 100;
}
.noto200 {
	font-weight: 200;
}
.noto300 {
	font-weight: 300;
}
.noto400 {
	font-weight: 400;
}
.noto500 {
	font-weight: 500;
}
.noto600 {
	font-weight: 600;
}
.noto700 {
	font-weight: 700;
}
.noto800 {
	font-weight: 800;
}
.noto900 {
	font-weight: 900;
}
.bold {
	font-weight: bold;
}

/* title
--------------------------------------------------*/
[id^="ttlArea"] {
	color: #fff;
}
#ttlArea02 {
	padding: 120px 0;
	/* background: #e51a29; */
	background: #e40038;
}
#ttlArea02 h1 {
	font-size: 36px;
	font-weight: bold;
}
#ttlArea02 h1 span {
	display: block;
	font-size: 16px;
	margin-top: 6px;
}
#ttlArea03 {
	display: table;
	width: 100%;
	background: url(../img/bg_pattern02.jpg) no-repeat top left;
	background-size: cover;
}
#ttlArea03 > * {
	display: table-cell;
	width: 50%;
	vertical-align: middle;
}
#ttlArea03 .contentIn {
	padding: 0;
	padding-left: 27%;
}
#ttlArea03 .ttlBox {
	text-align: center;
	background: #0071bb;
	position: relative;
	z-index: 100;
}
#ttlArea03 h1 {
	display: inline-block;
	text-align: left;
	padding: 85px 0 88px;
}
#ttlArea03 h1 span {
	display: block;
	font-size: 36px;
	font-weight: bold;
}
#ttlArea03 .ttlBg {
	width: 50%;
}
#ttlArea03 .ttlBg img {
	width: 100%;
}
#ttlArea04 h1 {
	display: inline-block;
	text-align: left;
}
#ttlArea04 h1 span {
	display: block;
	font-weight: bold;
}
#ttlArea04.red .ttlBox,
#ttlArea04.red:before {
	background: #e40038;
	/* background: #e51a29; */
}
#ttlArea04.red {
	overflow: hidden;
}
.ttlStyle01 span {
	display: inline-block;
	font-size: 26px;
	font-weight: bold;
	padding-bottom: 18px;
	border-bottom: solid 3px #29aae1;
}
.ttlStyle02 {
	font-size: 16px;
}
.ttlStyle02 span {
	display: block;
	font-size: 36px;
	font-weight: bold;
	margin-bottom: 7px;
}
.ttlStyle02.red {
	color: #e40038;
}
.ttlStyle02.red span {
	color: #1a1a1a;
}
.ttlStyle03 {
	color: #4d4d4d;
	font-size: 30px;
	font-weight: bold;
}
.ttlStyle04 {
	color: #4d4d4d;
	font-size: 22px;
	font-weight: bold;
	margin-bottom: 30px;
}
.ttlStyle04 span {
	display: inline-block;
	font-size: 40px;
	color: #0071bb;
	padding-bottom: 10px;
	margin-bottom: 30px;
	border-bottom: solid 3px #0071bb;
}

@media screen and (min-width:769px) {
	#ttlArea01 {
		background: url(../img/bg_pattern02.jpg) no-repeat top right;
		background-size: cover;
		position: relative;
	}
	#ttlArea01:before {
		position: absolute;
		top: 0;
		left: 0;
		content: "";
		width: 29%;
		height: 100%;
		background: #29aae1;
	}
	#ttlArea01 .contentIn {
		height: 440px;
	}
	#ttlArea01 .ttlBox {
		position: absolute;
		top: 0;
		left: 15px;
		display: table;
		width: 27.7%;
		height: 100%;
		background: #29aae1;
	}
	#ttlArea01 h1 {
		display: table-cell;
		vertical-align: middle;
	}
	#ttlArea01 h1 span {
		display: block;
		font-size: 36px;
		font-weight: bold;
	}
	#ttlArea04 {
		position: relative;
	}
	#ttlArea04:before {
		position: absolute;
		content: "";
		width: 100%;
		height: 100%;
		background: #0f62b5;
		z-index: -1;
	}
	#ttlArea04 .contentIn {
		display: table;
		width: 100%;
		height: 440px;
	}
	#ttlArea04 .ttlBox {
		display: table-cell;
		vertical-align: middle;
		width: 28.5%;
		padding-left: 5%;
	}
	#ttlArea04 h1 {
		display: inline-block;
		text-align: left;
	}
	#ttlArea04 h1 span {
		font-size: 36px;
	}
	#ttlArea04 .ttlBg {
		position: absolute;
		top: 0;
		left: 29%;
		max-width: none;
		height: 100%;
	}
}

@media screen and (max-width:768px) {
	#ttlArea01 {
		background: url(../img/bg_pattern03.jpg) no-repeat top left;
		background-size: cover;
	}
	#ttlArea01 .contentIn {
		display: table;
		width: 100%;
		height: 200px;
		padding: 30px 15% 40px;
	}
	#ttlArea01 .ttlBox {
		display: table-cell;
		vertical-align: middle;
		width: 100%;
		text-align: center;
		background: #29aae1;
	}
	#ttlArea01 h1 {
		display: inline-block;
		text-align: left;
		font-size: 8px;
	}
	#ttlArea01 h1 span {
		display: block;
		font-size: 18px;
		font-weight: bold;
	}
	#ttlArea03 .contentIn {
		padding: 0 6.6%;
	}
	#ttlArea03 .ttlBox {
		padding: 35px 0 40px;
	}
	#ttlArea03 h1 {
		font-size: 13px;
		padding: 0;
	}
	#ttlArea03 h1 span {
		font-size: 29px;
	}
	#ttlArea04 .contentIn {
		padding: 0;
	}
	#ttlArea04 .ttlBox {
		text-align: center;
		padding: 20px 0 22px;
		background: #0071bb;
	}
	#ttlArea04 h1 {
		font-size: 8px;
	}
	#ttlArea04 h1 span {
		font-size: 18px;
	}
	.ttlStyle01 span {
		font-size: 16px;
		padding-bottom: 5px;
		border-width: 2px;
	}
	.ttlStyle02 {
		font-size: 11px;
	}
	.ttlStyle02 span {
		font-size: 18px;
	}
}

@media screen and (max-width:767px) {
	#ttlArea02 {
		text-align: center;
		padding: 75px 0;
	}
	#ttlArea02 h1 {
		display: inline-block;
		text-align: left;
		font-size: 18px;
	}
	#ttlArea02 h1 span {
		font-size: 8px;
	}
	#ttlArea03 {
		height: 200px;
		padding: 30px 15% 40px;
		background: url(../img/bg_pattern03.jpg) no-repeat top left;
		background-size: cover;
	}
	#ttlArea03 > * {
		width: 100%;
	}
	#ttlArea03 .contentIn {
		padding: 0;
		background: #0071bb;
	}
	#ttlArea03 h1 {
		font-size: 8px;
	}
	#ttlArea03 h1 span {
		font-size: 18px;
	}
	#ttlArea03 .ttlBg {
		display: none;
	}
	#ttlArea04 .contentIn {
		padding: 0;
	}
	#ttlArea04 .ttlBox {
		text-align: center;
		padding: 20px 0 22px;
		background: #0071bb;
	}
	#ttlArea04 h1 {
		font-size: 8px;
	}
	#ttlArea04 h1 span {
		font-size: 18px;
	}
	.ttlStyle03 {
		font-size: 16px;
	}
	.ttlStyle04 {
		font-size: 14px;
		margin-bottom: 20px;
	}
	.ttlStyle04 span {
		font-size: 26px;
		border-width: 2px;
		padding-bottom: 5px;
		margin-bottom: 20px;
	}
}


/* ----------------------------------------------------------------------------------------------------
*  その他
* --------------------------------------------------------------------------------------------------*/
.fL {
	float: left;
}
.fR {
	float: right;
}

/* button
--------------------------------------------------*/
[class^="btnStyle"] {
	display: block;
	font-size: 16px;
	line-height: 1.0;
	text-decoration: none;
	cursor: pointer;
}
.btnStyle01 {
	width: 423px;
	text-align: center;
	color: #fff;
	padding: 27px 0 26px;
	margin: auto;
	background-color: #e51a29;
}
.btnStyle01 span:after {
	display: inline-block;
	vertical-align: bottom;
	content: "";
	width: 16px;
	height: 16px;
	margin-left: 15px;
	background: url(../img/ico_arrow01.png) no-repeat center;
	background-size: 100% auto;
}
.btnStyle02 {
	color: #fff;
	font-size: 14px;
	text-align: center;
	padding: 28px 0 27px;
	background: #0071bb;
}
.btnStyle02.lightBlue01 {
	background: #29aae1;
}
.btnStyle02:hover {
	box-shadow: 0 0 0 5px #0071bb;
}
.btnStyle02.lightBlue01:hover {
	box-shadow: 0 0 0 5px #29aae1;
}
.btnStyle02:after {
	position: absolute;
	content: "";
	width: 16px;
	height: 16px;
	margin-left: 9px;
	background: url(../img/ico_arrow07.png) no-repeat center left;
	background-size: 100% auto;
}
.btnStyle03 {
	text-align: center;
	color: #0071bb;
	padding: 26px 0 26px;
	border: solid 2px #0071bb;
}
.btnStyle03:after {
	position: absolute;
	content: "";
	width: 16px;
	height: 16px;
	margin-left: 9px;
	background: url(../img/ico_arrow09.png) no-repeat center left;
	background-size: 100% auto;
}
.btnStyle04 {
	text-align: center;
	color: #fff;
	font-size: 14px;
	padding: 27px 0 28px;
	position: relative;
	z-index: 10;
}
.btnStyle04:before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	content: "";
	background: url(../img/bg_button01.jpg) no-repeat top center;
	background-size: 100% 100%;
	transition: 0.2s;
	z-index: -1;
}
.btnStyle04:hover:before {
	width: 103%;
	height: 114%;
	top: -7%;
	left: -1.5%;
}
.btnStyle04:after {
	position: absolute;
	content: "";
	width: 16px;
	height: 16px;
	margin-left: 9px;
	background: url(../img/ico_arrow01.png) no-repeat center left;
	background-size: 100% auto;
}

/* banner
--------------------------------------------------*/
.bnrList01 {
	max-width: 622px;
	margin: 100px auto 0;
}
.bnrList01 li {
	width: 31%;
	float: left;
	margin: 70px 3.5% 0 0;
}
.bnrList01 li:nth-child(3n) {
	margin-right: 0;
}
.bnrList01 li:nth-child(-n+3) {
	margin-top: 0;
}

/* table
--------------------------------------------------*/
[class^="table"] {
	width: 100%;
}
[class^="table"] tr > * {
	vertical-align: middle;
}
.table01 {
	width: 100%;
	font-size: 14px;
	line-height: 1.78;
	border: solid 1px #808080;
}
.table01 tr + tr {
	border-top: solid 1px #808080;
}
.table01 th {
	width: 19%;
	text-align: center;
	font-weight: bold;
	padding: 15px 0 14px;
	border-right: solid 1px #808080;
}
.table01 td {
	width: 81%;
	padding: 15px 30px 14px;
}
.table02 {
	border-bottom: solid 1px #4d4d4d;
}
.table02 tr {
	border-top: solid 1px #4d4d4d;
}
.table02 th {
	width: 25%;
	text-align: left;
	padding: 14px 0 13px;
}
.table02 td {
	width: 75%;
	text-align: left;
	padding: 14px 0 13px;
}

/* box
--------------------------------------------------*/
.boxArea01 {
	position: relative;
}
.boxArea01:before,
.boxArea01:after {
	position: absolute;
	top: 0;
	width: 50%;
	height: 100%;
	content: "";
}
.boxArea01:before {
	background: #efefef;
}
.boxArea01:after {
	background: #f9f9f9;
}
.boxArea01.grayWhite:before,
.boxArea01.whiteGray:after {
	left: 0;
}
.boxArea01.grayWhite:after,
.boxArea01.whiteGray:before {
	right: 0;
}
.boxArea01 .contentIn {
	display: table;
	width: 100%;
	z-index: 2;
}
.boxArea01 .fL,
.boxArea01 .fR {
	display: table-cell;
	vertical-align: top;
	width: 50%;
	padding: 90px 0 110px;
	float: none;
}
.boxArea01 .fL {
	padding-right: 95px;
}
.boxArea01 .fR {
	padding-left: 95px;
}
.boxArea01 .ttlStyle02 {
	margin-bottom: 50px;
}
.boxArea01 .btnStyle02 {
	margin-top: 60px;
}
.boxArea01 p {
	font-size: 13px;
	line-height: 2.4;
}
.boxArea02 {
	padding: 90px 0 110px;
	background: #f9f9f9;
}
.boxArea02 .contentIn {
	display: table;
	width: 100%;
	z-index: 2;
}
.boxArea02 .fL,
.boxArea02 .fR {
	display: table-cell;
	vertical-align: top;
	width: 50%;
	float: none;
}
.boxArea02 .fL {
	padding-right: 95px;
	border-right: solid 1px #666;
}
.boxArea02 .fR {
	padding-left: 95px;
}
.boxArea02 .ttlStyle02 {
	margin-bottom: 50px;
}
.boxArea02 .btnStyle02 {
	margin-top: 60px;
}
.boxArea02 p {
	font-size: 13px;
	line-height: 2.4;
}

/* list
--------------------------------------------------*/
.staffList li {
	width: 27%;
	float: left;
	margin: 60px 9.5% 0 0;
	position: relative;
}
.staffList li:nth-child(3n) {
	margin-right: 0;
}
.staffList li:nth-child(-n+3) {
	margin-top: 0;
}
.staffList li .num {
	display: inline-block;
	color: #0071bb;
	font-size: 10px;
	line-height: 1.1;
	margin-bottom: -17px;
	border-bottom: solid 3px #0071bb;
	position: relative;
	z-index: 10;
}
.staffList li .num span {
	display: block;
	font-size: 40px;
	padding-bottom: 10px;
}
.staffList li .imgCircle {
	position: relative;
	overflow: hidden;
}
.staffList li .imgCircle img {
	display: block;
	position: relative;
	border-radius: 50%;
	z-index: 2;
	transition: 0.3s;
}
.staffList li a:hover .imgCircle img:nth-child(1) {
	opacity: 0;
}
.staffList li .imgCircle img:nth-child(2) {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
}
.staffList li .name {
	color: #0071bb;
	font-size: 15px;
	margin-top: 10px;
}
.staffList li .staffCareer {
	font-size: 12px;
	line-height: 1.95;
}
.spCarousel #slidePrev,
.spCarousel #slideNext {
	display: none;
}

@media screen and (min-width:769px) {
	.tbOnly,
	.spOnly {
		display: none !important;
	}
	
	/* list
	--------------------------------------------------*/
	.staffList {
		max-width: 637px;
	}
}

@media screen and (max-width:768px) and (min-width:678px) {
	.pcOnly {
		display: none !important;
	}
	.tbOnly {
		display: block;
	}
}

@media screen and (max-width:768px) {
	.pcOnly {
		display: none !important;
	}
	.spOnly {
		display: block;
	}
	
	/* button
	--------------------------------------------------*/
	.btnStyle02,
	.btnStyle03 {
		width: 43%;
		margin: auto;
	}
	.btnStyle04 {
		max-width: 423px;
		width: 76.9%;
		margin: auto;
	}
	
	/* box
	--------------------------------------------------*/
	.boxArea01:before,
	.boxArea01:after {
		display: none;
	}
	.boxArea01:before {
		background: #efefef;
	}
	.boxArea01:after {
		background: #f9f9f9;
	}
	.boxArea01.grayWhite .fL,
	.boxArea01.whiteGray .fR {
		background: #efefef;
	}
	.boxArea01.grayWhite .fR,
	.boxArea01.whiteGray .fL {
		background: #f9f9f9;
	}
	.boxArea01 .contentIn {
		display: block;
		padding: 0;
	}
	.boxArea01 .fL,
	.boxArea01 .fR {
		display: block;
		width: auto;
		padding: 40px 7% 45px;
	}
	.boxArea01 .ttlStyle02 {
		margin-bottom: 23px;
	}
	.boxArea01 .btnStyle02 {
		margin-top: 35px;
	}
	.boxArea01 p {
		font-size: 9px;
	}
	.boxArea02 {
		padding: 0;
	}
	.boxArea02 .fL,
	.boxArea02 .fR {
		display: block;
		width: auto;
		padding-left: 0;
		padding-right: 0;
		float: none;
	}
	.boxArea02 .fL {
		border-right: none;
		border-bottom: solid 1px #666;
	}
	.boxArea02 .ttlStyle02 {
		margin-bottom: 25px;
	}
	.boxArea02 .btnStyle02 {
		margin-top: 25px;
	}
	.boxArea02 p {
		font-size: 9px;
	}
}

@media screen and (max-width:767px) {
	/* button
	--------------------------------------------------*/
	[class^="btnStyle"] {
		font-size: 11px;
	}
	.btnStyle01 {
		width: 100%;
		padding: 17px 0;
	}
	.btnStyle01 span:after {
		width: 11px;
		height: 11px;
		margin-left: 10px;
	}
	.btnStyle02 {
		width: 76%;
		font-size: 11px;
		padding: 12px 0;
		margin: auto;
	}
	.btnStyle02:hover {
		box-shadow: 0 0 0 3px #0071bb;
	}
	.btnStyle02:after {
		width: 12px;
		height: 12px;
	}
	.btnStyle03 {
		width: 76%;
		padding: 11px 0;
		margin: auto;
		border-width: 1px;
	}
	.btnStyle03:after {
		width: 12px;
		height: 12px;
	}
	.btnStyle04 {
		width: 76%;
		font-size: 11px;
		padding: 12px 0;
		margin: auto;
	}
	.btnStyle04:after {
		width: 12px;
		height: 12px;
	}
	
	/* banner
	--------------------------------------------------*/
	.bnrList01 {
		text-align: left;
		font-size: 0;
		margin-top: 50px;
	}
	.bnrList01 li:nth-child(1n+0) {
		display: inline-block;
		width: 57%;
		float: none;
		margin: 25px 0 0;
	}
	.bnrList01 li:first-child {
		margin-top: 0;
	}
	
	/* table
	--------------------------------------------------*/
	.table01 {
		font-size: 11px;
	}
	.table01 th {
		width: 25%;
		padding: 9px 0 8px;
	}
	.table01 td {
		width: 75%;
		padding: 9px 1.5em 8px;
	}
	.table02 th {
		padding: 8px 0;
	}
	.table02 td {
		width: 74%;
		padding: 8px 0;
	}
	
	/* list
	--------------------------------------------------*/
	.spCarousel {
		position: relative;
	}
	.spCarousel .staffList * {
		outline: none;
	}
	.spCarousel .staffList li:nth-child(1n+0) {
		width: auto;
		padding: 0 5%;
		margin: 0;
	}
	.spCarousel #slidePrev,
	.spCarousel #slideNext {
		display: block;
		position: absolute;
		top: 40%;
		width: 20px;
	}
	.spCarousel #slidePrev {
		left: 0;
	}
	.spCarousel #slideNext {
		right: 0;
	}
	.spCarousel .slick-dots {
		bottom: -40px;
	}
	.spCarousel .slick-dots li:nth-child(1n+0) {
		width: 10px;
		height: 10px;
		padding: 0;
		margin: 0 7px;
		float: none;
		border: solid 1px #666;
		border-radius: 50%;
	}
	.spCarousel .slick-dots li.slick-active {
		background: #666;
	}
	.staffList li .num span {
		font-size: 24px;
		font-weight: bold;
	}
	.staffList li .name {
		z-index: 10;
		margin-top: 5px;
	}
	.staffList li .staffCareer {
		font-size: 9px;
		line-height: 1.67;
	}
}


/* ----------------------------------------------------------------------------------------------------
*  20230607 修正追加
* --------------------------------------------------------------------------------------------------*/
.add_services section + section {
	margin-top: 120px;
}
.add_services section p {
	margin: 60px 0 30px;
}
.add_services section .image {
	max-width: 350px;
	margin: 0 auto;
	padding: 30px 0;
}
.add_services .btnStyle04 {
	max-width: 425px;
	margin: 0 auto;
}
.add_services .btnStyle04::after {
	position: absolute;
	content: "";
	width: 13px;
	height: 13px;
	margin-left: 9px;
	background: url(/img/services/img_services04.png) no-repeat center left;
	background-size: 100% auto;
}
@media screen and (max-width:767px) {
	.add_services section + section {
		margin-top: 60px;
	}
	.add_services section p {
		margin: 30px 0 10px;
		font-size: 10px;
	}
	.add_services section .image {
		max-width: 200px;
		padding: 30px 0;
	}
}