@charset "utf-8";

@media only screen and (max-width:991px) {}
@media only screen and (max-width:767px) {}
@media only screen and (max-width:374px) {}

/*************************************************

 page common

*************************************************/

#container {
	margin-bottom: 180px;
}
@media only screen and (max-width:767px) {
	#container {
		margin-bottom: 130px;
	}
}


/* sectionTitle
-------------------------------------------*/
.sectionTitle {
	background: no-repeat center center;
	background-size: cover;
}
.sectionTitle > span {
	display: table;
	height: 220px;
	margin: 0 auto;
	color: #fff;
}
.sectionTitle > span > * {
	box-sizing: border-box;
	display: table-cell;
	vertical-align: middle;
}
.sectionTitle .num {
	width: 90px;
}
.sectionTitle .num img {
	width: auto;
	height: 60px;
}
.sectionTitle .txt {
	font-size: 36px;
	font-weight: 700;
	line-height: 1.4;
}
@media only screen and (min-width:768px) {
	.sectionTitle {
		background-position: center center !important;
		background-attachment: fixed;
	}
}
@media only screen and (max-width:767px) {
	.sectionTitle {
		background-position: center 0;
	}
	.sectionTitle > span {
		height: 130px;
	}
	.sectionTitle .num {
		width: 60px;
	}
	.sectionTitle .num img {
		height: 38px;
	}
	.sectionTitle .txt {
		font-size: 22px;
	}
}


/* pageColorTitle
-------------------------------------------*/
.pageColorTitle {
	position: relative;
	margin-bottom: 30px;
}
.pageColorTitle > * {
	display:  block;
}
.pageColorTitle span {
	margin-bottom: 10px;
}
.pageColorTitle strong {
	color: #05569B;
	font-size: 30px;
	font-weight: 700;
}
@media only screen and (max-width:767px) {
	.pageColorTitle {
		margin-bottom: 25px;
	}
	.pageColorTitle .en img {
		height: 20px;
		width: auto;
	}
	.pageColorTitle span {
		margin-bottom: 7px;
	}
	.pageColorTitle strong {
		font-size: 18px;
	}
}

/* pageTxt
-------------------------------------------*/
.pageTxt {
	color: #767676;
	line-height: 2;
}


/* commonBtn01 pageType
-------------------------------------------*/
@media only screen and (min-width:768px) {
	.commonBtn01.pageType {
		font-weight: 500;
	}
	.commonBtn01.pageType > span {
		width: auto;
		margin: 0 auto;
		padding-right: 25px;
	}
	.commonBtn01.pageType > span:before {
		right: 0;
	}
}



/*************************************************

 pageTitleArea

*************************************************/
.pageTitleArea {
	position: relative;
	display: table;
	width: 100%;
	max-width: 1366px;
	height: 500px;
	margin: 0 auto 50px;
}
.pageTitleArea .texts {
	position: relative;
	display: table-cell;
	vertical-align: middle;
	text-align: center;
	z-index: 2;
}
.pageTitleArea .title {
	line-height: 0;
}
.pageTitleArea .lead {
	position: relative;
	margin-top: 40px;
	padding-top: 15px;
	color: #05569B;
}
.pageTitleArea .lead:before {
	position: absolute;
	top: 0;
	left: 50%;
	display: block;
	content: '';
	width: 50px;
	height: 2px;
	background-color: #05569B;
	transform: translateX(-50%);
}

.pageTitleArea .illusts {
	position: absolute;
	top: 0;
	left: 50%;
	width: 1366px;
	height: 100%;
	transform: translateX(-50%);
	z-index: 1;
}
.pageTitleArea figure {
	position: absolute;
	z-index: 1;
}
.pageTitleArea figure:nth-child(1) {
	top: 66px;
	left: 207px;
}
.pageTitleArea figure:nth-child(2) {
	top: 195px;
	left: 40px;
}
.pageTitleArea figure:nth-child(3) {
	top: 65px;
	right: 285px;
}
.pageTitleArea figure:nth-child(4) {
	top: 125px;
	right: 10px;
}

@media only screen and (max-width:767px) {
	.pageTitleArea {
		height: calc(100vh - 60px);
		max-height: 600px;
		min-height: 470px;
	}
	.pageTitleArea .texts img {
		max-width: 82%;
		height: auto;
	}
	.pageTitleArea .lead {
		margin-top: 30px;
		padding-top: 15px;
	}
	.pageTitleArea .lead:before {
		width: 36px;
	}

	.pageTitleArea .illusts {
		left: 0;
		width: 100%;
		transform: translateX(0);
	}
	.pageTitleArea figure:nth-child(1) {
		top: 15px;
		left: 125px;
		width: 75px;
	}
	.pageTitleArea figure:nth-child(2) {
		top: 35px;
		left: 7px;
		width: 112px;
	}
	.pageTitleArea figure:nth-child(3) {
		top: auto;
		bottom: 10px;
		right: 155px;
		width: 75px;
	}
	.pageTitleArea figure:nth-child(4) {
		top: auto;
		bottom: 25px;
		right: 7px;
		width: 130px;
	}
}




/*************************************************

 ancNavArea

*************************************************/
.ancNavArea {
	margin-bottom: 150px;
	max-width: 1048px;
}
.ancNavArea ol {
	display: flex;
	justify-content: space-between;
}
.ancNavArea li {
	position: relative;
	/*width: 23.2%;*/
	width: 17.2%;
	text-align: center;
}
.ancNavArea li:before {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	content: '';
	width: 100%;
	height: 0;
	background-color: #05569B;
	transition: 0.3s;
}
.ancNavArea a {
	box-sizing: border-box;
	position: relative;
	display: block;
	height: 175px;
	padding-top: 24px;
	color: #05569B;
	text-decoration: none;
	border: #05569B solid 2px;
	z-index: 2;
}
.ancNavArea figure {
	margin-bottom: 15px;
	line-height: 0;
}
.ancNavArea figure svg {
	width: auto;
	height: 34px;
	fill: #05569B;
	transition: 0.3s;
}
.ancNavArea .txt > * {
	display: block;
	line-height: 1.4;
}
.ancNavArea .txt span {
	font-weight: 500;
}
.ancNavArea .txt strong {
	font-size: 22px;
}
.ancNavArea a:before {
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	content: '';
	width: 100%;
	height: 20px;
	background-color: #05569B;
}
.ancNavArea a:after {
	position: absolute;
	bottom: 6px;
	left: 50%;
	display: block;
	content: '';
	border-style: solid;
	border-width: 6px 5px 0 5px;
	border-color: #fff transparent transparent transparent;
	transform: translateX(-50%);
}

.noT .ancNavArea li:hover:before {
	height: 100%;
}
.noT .ancNavArea li:hover a {
	color: #fff;
}
.noT .ancNavArea li:hover figure svg {
	fill: #fff;
}

@media only screen and (max-width:767px) {
	.ancNavArea {
		margin-bottom: 130px;
	}
	.ancNavArea ol {
		display: block;
	}
	.ancNavArea li {
		width: 100%;
		text-align: left;
	}
	.ancNavArea li + li {
		margin-top: 20px;
	}
	.ancNavArea a {
		display: table;
		width: 100%;
		height: 75px;
		padding: 15px 30px;
		border-width: 1px;
	}
	.ancNavArea figure {
		display: table-cell;
		width: 60px;
		margin-bottom: 0;
		vertical-align: middle;
	}
	.ancNavArea figure svg {
		height: 32px;
	}
	.ancNavArea .txt {
		display: table-cell;
		vertical-align: middle;
	}
	.ancNavArea .txt > * {
		display: block;
		line-height: 1.4;
	}
	.ancNavArea .txt strong {
		font-size: 16px;
	}
	.ancNavArea a:before {
		width: 10px;
		height: 100%;
	}
	.ancNavArea a:after {
		bottom: 50%;
		left: auto;
		right: 20px;
		border-top-color: #05569B;
		transform: translate(0,50%);
	}
}




/*************************************************

 what

*************************************************/
.what {
	margin-bottom: 150px;
}
.what .sectionTitle {
	background-image: url(../images/about/index/what_bg.jpg);
}
.what .pageColorTitle.inIllust {
	padding-top: 150px;
}
.what .pageColorTitle .illust {
	position: absolute;
	top: 40px;
	right: 20%;
	display: block;
}
.what .image {
	overflow: hidden;
	margin: 100px 0 80px;
}
.what .btn {
	margin-top: 45px;
}
.what .btn .commonBtn01 {
	max-width: 380px;
}
@media only screen and (max-width:767px) {
	.what .pageColorTitle.inIllust {
		padding-top: 80px;
	}
	.what .pageColorTitle .illust {
		top: 10px;
		right: 0;
		width: 80px;
	}
	.what .image {
		margin: 45px 0 60px;
	}
	.what .image img {
		width: 100%;
	}
	.what .btn {
		margin-top: 35px;
	}
	.what .btn .commonBtn01 {
		max-width: none;
	}
}



/*************************************************

 technology

*************************************************/
.technology {
	margin-bottom: 150px;
}
.technology .sectionTitle {
	background-image: url(../images/about/index/technology_bg.jpg);
}
.technology .pageColorTitle {
	margin-bottom: 50px;
	text-align: center;
}
.technology .pageColorTitle.inIllust {
	padding-top: 150px;
}
.technology .pageColorTitle.inIllust > * {
	position: relative;
	z-index: 2;
}
.technology .pageColorTitle .illust {
	position: absolute;
	top: 40px;
	right: 0;
	display: block;
	width: 190px;
	z-index: 1;
}
.technology .btnList {
	display: flex;
	justify-content: space-between;
}
.technology .btnList li {
	position: relative;
	width: 33.2%;
}
.technology .btnList li a {
	box-sizing: border-box;
	position: relative;
	display: block;
	height: 100%;
	padding: 85px 30px 170px;
	color: #fff;
	text-align: center;
	text-decoration: none;
	background: no-repeat center center;
	background-size: cover;
}
.technology .btnList .ttl {
	margin-bottom: 30px;
	font-size: 20px;
	font-weight: 700;
}
.technology .btnList p {
	font-size: 15px;
	line-height: 2;
}
.technology .btnList .inBtn {
	box-sizing: border-box;
	position: absolute;
	bottom: 80px;
	left: 50%;
	width: 150px;
	padding: 8px 0;
	font-size: 15px;
	border: #fff solid 1px;
	transform: translateX(-50%);
}
.technology .btnList .inBtn span {
	position: relative;
	display: inline-block;
	padding-right: 15px;
}
.technology .btnList .inBtn span:before {
	position: absolute;
	top: 50%;
	right: 0;
	display: block;
	content: '';
	transform: translateY(-50%);
	border-style: solid;
	border-color: transparent transparent transparent #fff;
	border-width: 5px 0 5px 6px;
}

.technology .btnList li:nth-child(1) a { background-image: url(../images/about/index/technology_img01.jpg); }
.technology .btnList li:nth-child(2) a { background-image: url(../images/about/index/technology_img02.jpg); }
.technology .btnList li:nth-child(3) a { background-image: url(../images/about/index/technology_img03.jpg); }

.technology .btn {
	margin-top: 80px;
}
.technology .btn .commonBtn01 {
	max-width: 400px;
	margin: 0 auto;
}
@media only screen and (min-width:768px) {
	.technology .btnList li { transform: translateY(70px); }
	.technology .btnList li:nth-child(2) { transition-delay: 0.1s; }
	.technology .btnList li:nth-child(3) { transition-delay: 0.2s; }

}
@media only screen and (max-width:767px) {
	.technology .pageColorTitle.inIllust {
		margin-bottom: 40px;
		padding-top: 80px;
	}
	.technology .pageColorTitle .illust {
		top: -15px;
		right: -10px;
		width: 90px;
	}

	.technology .btnList {
		display: block;
	}
	.technology .btnList li {
		width: auto;
	}
	.technology .btnList li + li {
		margin-top: 12px;
	}
	.technology .btnList li a {
		height: auto;
		padding: 30px 0 35px;
	}
	.technology .btnList .ttl {
		margin-bottom: 20px;
		font-size: 18px;
	}
	.technology .btnList p {
		font-size: 13px;
	}
	.technology .btnList .inBtn {
		position: static;
		margin: 35px auto 0;
		padding: 8px 0;
		font-size: 12px;
		transform: translateX(0);
	}
	.technology .btn {
		margin-top: 50px;
	}
	.technology .btn .commonBtn01 {
		max-width: none;
	}
}




/*************************************************

 strategy

*************************************************/
.strategy {
	margin-bottom: 150px;
}
.strategy .sectionTitle {
	margin-bottom: 120px;
	background-image: url(../images/about/index/strategy_bg.jpg);
}
.strategy .flex {
	display: flex;
}
.strategy .photo {
	width: 50%;
	order: 1;
}
.strategy .text {
	box-sizing: border-box;
	width: 50%;
	padding: 40px 20px 0 90px;
	order: 2;
}
.strategy .text .illust {
	margin-bottom: 35px;
}
.strategy .btn {
	margin-top: 45px;
}
.strategy .btn .commonBtn01 {
	max-width: 320px;
}
@media only screen and (max-width:767px) {
	.strategy .sectionTitle {
		margin-bottom: 70px;
	}
	.strategy .flex {
		display: block;
	}
	.strategy .photo {
		width: auto;
		text-align: center;
	}
	.strategy .text {
		width: auto;
		margin-bottom: 30px;
		padding: 0;
		text-align: center;
	}
	.strategy .text .illust {
		margin-bottom: 35px;
	}
	.strategy .btn {
		margin-top: 50px;
	}
	.strategy .btn .commonBtn01 {
		max-width: none;
	}
}
/*************************************************

 health

*************************************************/
.strategy.health {
    margin-bottom: 180px;
}
.strategy.health .flex {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
}
.strategy.health .sectionTitle {
	background-image: url(../images/about/index/health_bg.jpg);
}
.strategy.health .text {
	position: relative;
	padding-top: 80px;
}
.strategy.health .text figure {
	position: absolute;
	width: 100px;
	right: 90px;
	top: -64px;
}
@media only screen and (max-width:767px) {
	.strategy.health .text figure {
	    width: 64px;
	    right: 4vw;
	    top: -4vw;
	}
	.strategy.health .sectionTitle {
		margin-bottom: 0px;
	}
}


/*************************************************

 office

*************************************************/
.office .sectionTitle {
	margin-bottom: 120px;
	background-image: url(../images/about/index/office_bg.jpg);
}
.office .pageColorTitle.inIllust {
	padding-top: 150px;
	text-align: center;
}
.office > .wrap + section .pageColorTitle.inIllust {
	padding-top: 90px;
}
@media only screen and (max-width:767px) {
	.office .sectionTitle {
		margin-bottom: 0;
	}
	.office > .wrap + section .pageColorTitle.inIllust {
		padding-top: 60px;
	}
}
.office .pageColorTitle .illust {
	position: absolute;
	top: -7px;
	left: 0;
	display: block;
	width: 170px;
}
.office .btn {
	margin-top: 55px;
}
.office .btn .commonBtn01 {
	max-width: 400px;
	margin: 0 auto;
}
@media only screen and (max-width:767px) {
	.office .pageColorTitle.inIllust {
		padding-top: 70px;
	}
	.office .pageColorTitle .illust {
		top: 15px;
		left: -10px;
		width: 80px;
	}

	.office .btn {
		margin-top: 50px;
		padding: 0 20px;
	}
	.office .btn .commonBtn01 {
		max-width: none;
	}
}


/* slide */
.office .slide {
	position: relative;
	z-index: 1;
}
.office .slide * {
	outline: none;
}
.office .slide .item > * {
	margin: 0 25px;
}
.office .slide .slick-arrow {
	position: absolute;
	top: 50%;
	display: block;
	width: 30px;
	height: 30px;
	margin-top: -5px;
	padding: 0;
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	appearance: none;
	border-style: solid;
	border-color: #05569B;
	transform: rotate(45deg);
	text-indent: -9999px;
	z-index: 10;
}
.office .slide .slick-prev {
	left: calc(50% - 480px);
	border-width: 0 0 5px 5px;
}
.office .slide .slick-next {
	right: calc(50% - 480px);
	border-width: 5px 5px 0 0;
}
.office .slideDots {
	max-width: 1000px;
	margin: 10px auto 0;
	padding: 0 20px;
	color: #05569B;
	font-size: 15px;
	line-height: 1;
}
.office .slideDots .inDots {
	overflow: hidden;
	position: relative;
	max-width: 80px;
	margin-left: auto;
}
.office .slideDots .inDots:before {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	content: '';
	width: 60%;
	height: 1px;
	background-color: #05569B;
	transform: translateX(-50%);
}
.office .slideDots ul {
	position: relative;
	float: left;
}
.office .slideDots li {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}
.office .slideDots li.slick-active {
	opacity: 1;
}
.office .slideDots button {
	display: block;
	padding: 0;
	color: #05569B;
	font-size: 15px;
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	appearance: none;
	font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, '游ゴシック', 'Yu Gothic', '游ゴシック体', 'YuGothic', 'ＭＳ Ｐゴシック', sans-serif;
	line-height: 1;
}
.office .slideDots .sum {
	float: right;
}
@media only screen and (max-width:1200px) {
	.office .slide .slick-prev {
		left: 110px;
	}
	.office .slide .slick-next {
		right: 110px;
	}
}
@media only screen and (max-width:767px) {
	.office .slide .item > * {
		margin: 0 5px;
	}
	.office .slide .slick-arrow {
		width: 26px;
		height: 26px;
		margin-top: 3px;
		display: none !important;
	}
	.office .slide .slick-prev {
		left: 35px;
	}
	.office .slide .slick-next {
		right: 35px;
	}
	.office .slideDots,
	.office .slideDots button {
		font-size: 10px;
	}
	.office .slideDots .inDots {
		width: 50px;
	}
}














/*************************************************

 box-new-office

*************************************************/
.box-new-office {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: stretch;
	-ms-flex-align: stretch;
	align-items: stretch;
	background-color: #fff;
}
.box-new-office .txt {
	box-sizing: border-box;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	width: 50%;
	padding: 40px 20px 40px 90px;
}
.box-new-office .ttl-new-office {
	position: relative;
	margin: 0 0 30px;
}
.box-new-office .ttl-new-office .en {
	display: inline-block;
	margin-bottom: 10px;
	padding: 5px 14px 6px;
	color: #fff;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
	background-color: #05569B;
}
.box-new-office .ttl-new-office .ja {
	display: block;
	color: #05569B;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.7;
}
.box-new-office .txt p {
	margin: 0;
	color: #767676;
	line-height: 2;
}
.box-new-office .btn {
	margin-top: 45px;
	padding: 0;
}
.box-new-office .btn .commonBtn01 {
	max-width: 400px;
	margin: 0;
}
.box-new-office figure {
	position: relative;
	width: 50%;
	min-height: 460px;
	margin: 0;
	overflow: hidden;
	line-height: 0;
}
.box-new-office figure img {
	position: relative;
	top: 0;
	left: auto;
    right: 0;
	/* width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover; */
}

@media only screen and (max-width:1100px) {
	.box-new-office .txt {
		padding: 40px 20px 40px 40px;
	}
}

@media only screen and (max-width:767px) {
	.box-new-office {
		display: block;
        padding: 30px 0 40px;
	}
	.box-new-office .txt {
		width: auto;
		margin-bottom: 30px;
		padding: 0;
        text-align: center;
	}
	.box-new-office .ttl-new-office {
		margin-bottom: 25px;
	}
	.box-new-office .ttl-new-office .en {
		margin-bottom: 7px;
		padding: 4px 12px 5px;
		font-size: 12px;
	}
	.box-new-office .ttl-new-office .ja {
		font-size: 18px;
	}
	.box-new-office .txt p br {
		display: none;
	}
	.box-new-office .btn {
		margin-top: 50px;
		padding: 0;
	}
	.box-new-office .btn .commonBtn01 {
		max-width: none;
	}
	.box-new-office figure {
		width: auto;
		min-height: 0;
		aspect-ratio: 4 / 3;
	}
}
