@charset "utf-8";
body {
		background: #F3F4F5;
}
main {
		padding-top: 0;
}
hgroup {
		display: flex;
		flex-direction: column-reverse;
		margin: 0 0 40px;
}
hgroup h2 {
		line-height: 1;
		font-size: 28px;
		font-weight: 700;
}
hgroup p {
		line-height: 1;
		font-size: 50px;
		font-family: "Poppins";
		font-weight: 700;
		letter-spacing: 0.02em;
		color: #3356a1;
		margin: 0 0 15px;
}
@media(max-width: 1400px) {
		hgroup h2 {
				font-size: 24px;
		}
		hgroup p {
				font-size: 46px;
		}
}
@media(max-width: 1200px) {
		hgroup h2 {
				font-size: 18px;
		}
		hgroup p {
				font-size: 4.4vw;
		}
}
@media(max-width: 960px) {
		hgroup {
				margin: 0 0 25px;
		}
}
@media(max-width: 767px) {
		hgroup {
				margin: 0 0 30px;
		}
		hgroup h2 {
				font-size: 16px;
		}
		hgroup p {
				font-size: 34px;
		}
}
.contact_section hgroup {
		text-align: center;
}
/* ================== */
@media(max-width: 600px) {
		.header_wrap {
				background: rgba(255, 255, 255, 0);
				box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0);
				transition: background 0.3s;
		}
		.header_wrap.isActive {
				background: rgba(255, 255, 255, 1);
				box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.06);
		}
}
/* ================== */
.viewLink {
		font-size: 18px;
		font-family: "Poppins";
		font-weight: 600;
}
.viewLink a {
		color: #224BA1;
		text-decoration: none;
		padding-right: 50px;
		display: inline-block;
		position: relative;
}
.viewLink a.isWht {
		color: #fff;
}
.viewLink a::before, .viewLink a::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 17px);
		right: 0;
		width: 34px;
		height: 34px;
		box-sizing: border-box;
		transition: background 0.2s;
}
.viewLink a::before {
		background: #224BA1;
		border-radius: 8px;
		border: 1px solid #224BA1;
}
.viewLink a::after {
		background-repeat: no-repeat;
		background-position: center center;
		background-size: 34px;
		background-image: url("../images/viewmore_wht.png")
}
.viewLink a.isWht::before {
		background: #fff;
		border: 1px solid #fff;
}
.viewLink a.isWht::after {
		background-image: url("../images/viewmore_blu.png")
}
@media (hover: hover) {
		.viewLink a:hover::before {
				background: #fff;
		}
		.viewLink a:hover::after {
				background-image: url("../images/viewmore_blu.png")
		}
		.viewLink a.isWht:hover::before {
				background: #224BA1;
		}
		.viewLink a.isWht:hover::after {
				background-image: url("../images/viewmore_wht.png")
		}
}
@media(max-width: 767px) {
		.viewLink {
				font-size: 14px;
				font-size: 15px;
		}
		.viewLink a {
				padding-right: 36px;
		}
		.viewLink a::before, .viewLink a::after {
				content: '';
				display: block;
				position: absolute;
				top: calc(50% - 14px);
				right: 0;
				width: 28px;
				height: 28px;
		}
		.viewLink a::before {
				border-radius: 4px;
		}
		.viewLink a::after {
				background-size: 28px;
		}
}
/* ================== */
.first_section {
		padding: 120px 30px 120px;
}
.first_inner {
		max-width: 1320px;
		margin: 0 auto;
		position: relative;
		display: flex;
		justify-content: flex-end;
}
.first_inner::before, .first_inner::after {
		content: '';
		display: block;
		position: absolute;
		pointer-events: none;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
}
.first_inner::before {
		top: calc(50% - 200px);
		left: -50px;
		width: 710px;
		height: 395px;
		background-image: url("../images/top_intro_figure.png");
		z-index: 2;
		opacity: 0;
		transform: scale(1.2);
		transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s;
}
.first_inner.sectionActive::before {
		opacity: 1;
		transform: scale(1);
}
.first_caption {
		background-color: #fff;
		border-radius: 8px;
		width: 690px;
		box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.05);
		box-sizing: border-box;
		padding: 80px 20px 80px;
		position: relative;
		display: flex;
		justify-content: center;
}
.first_caption::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -50px;
		right: 60px;
		width: 110px;
		height: 110px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
		background-image: url("../images/top_first_bg.png");
		z-index: 5
}
.first_caption p {
		font-size: 28px;
		font-weight: 700;
		line-height: 2.0;
		margin: 0;
}
.first_caption .viewLinkRight {
		margin-top: 40px;
}
@media(max-width: 1400px) {
		.first_caption {
				width: 50%;
				padding: 70px 20px;
		}
		.first_inner::before {
				top: calc(50% - 15vw);
				left: 0;
				width: calc(50% + 30px);
				height: 30vw;
		}
		.first_caption p {
				font-size: 25px;
		}
}
@media(max-width: 1200px) {
		.first_caption {
				width: 50%;
				padding: 40px 10px;
		}
		.first_inner::before {
				top: calc(50% - 15vw);
				left: 0;
				width: calc(50% + 30px);
				height: 30vw;
				background-position: center center;
				background-size: 100%;
		}
}
@media(max-width: 1200px) {
		.first_caption {
				padding: 30px;
		}
		.first_caption p {
				font-size: 22px;
		}
		.first_caption::after {
				bottom: -40px;
				right: 30px;
				width: 80px;
				height: 80px;
		}
}
@media(max-width: 960px) {
		.first_section {
				padding: 80px 20px 50px;
		}
		.first_inner::before {
				top: calc(48% - 15vw);
				left: 0px;
				width: calc(48% + 20px);
				height: 30vw;
		}
		.first_caption {
				width: calc(50% + 40px);
				padding-left: 10px;
				padding-right: 10px;
		}
		.first_caption p {
				font-size: 18px;
		}
		.first_caption .viewLinkRight {
				margin-top: 30px;
		}
}
@media(max-width: 767px) {
		.first_section {
				padding: 40px 20px 50px;
		}
}
@media(max-width: 600px) {
		.first_section {
				padding: 30px 20px 50px;
		}
}
@media screen and (orientation: portrait) and (max-width: 767px) {
		.first_inner {
				display: block;
		}
		.first_inner::before {
				display: none
		}
		.first_caption {
				width: 100%;
				margin: 0;
				background: #fff;
				padding: 35px 10px;
				display: block
		}
		.first_caption p {
				font-size: 16px;
				line-height: 2.0;
				text-align: center;
		}
		.first_caption p:first-child {
				position: relative;
		}
		.first_caption:first-child::before {
				content: '';
				display: block;
				width: 100%;
				aspect-ratio: 10 / 5.66;
				background-repeat: no-repeat;
				background-position: 0 0;
				background-size: 100%;
				background-image: url("../images/top_intro_figure.png");
				margin: 0 0 15px;
		}
		.first_caption .viewLinkRight {
				margin-top: 40px;
				display: flex;
				justify-content: center;
		}
		.first_caption::after {
				display: none
		}
}
/* ================== */
.market_section {
		padding: 120px 0 120px 30px;
}
.market_inner {
		max-width: 1320px;
		margin: 0 auto;
		position: relative;
}
.market_inner::before, .market_inner::after {
		content: '';
		display: block;
		position: absolute;
		pointer-events: none;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
}
.market_inner::before {
		top: calc(50% - 250px);
		right: 10px;
		width: 690px;
		height: 505px;
		background-image: url("../images/top_market_figure.png");
		z-index: 2;
		opacity: 0;
		transform: scale(1.2);
		transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s;
}
.market_inner.sectionActive::before {
		opacity: 1;
		transform: scale(1);
}
.market_inner::after {
		width: 80px;
		height: 95px;
		background-image: url("../images/top_market_bg-2.png");
		right: -90px;
		bottom: -45px;
		z-index: 10
}
.market_caption {
		background-color: #fff;
		border-radius: 8px;
		width: 690px;
		box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.05);
		box-sizing: border-box;
		padding: 80px;
		position: relative;
}
.market_caption::before {
		content: '';
		display: block;
		position: absolute;
		top: -45px;
		left: -190px;
		width: 245px;
		height: 215px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
		background-image: url("../images/top_market_bg-1.png");
		z-index: -1
}
.market_caption hgroup + p {
		line-height: 2.0;
		margin: 0 0 45px;
}
.market_figure img {
		width: 100%;
		height: auto;
}
@media(max-width: 1400px) {
		.market_caption {
				width: 50%;
				padding: 70px;
		}
		.market_inner::before {
				top: calc(50% - 20vw);
				right: 20px;
				width: calc(50% + 40px);
				height: 40vw;
				background-position: center center;
				background-size: 100%;
		}
}
@media(max-width: 1200px) {
		.market_caption {
				width: 50%;
				padding: 40px;
		}
		.market_inner::before {
				top: calc(50% - 20vw);
				right: 20px;
				width: calc(50% + 40px);
				height: 40vw;
				background-position: center center;
				background-size: 100%;
		}
		.market_inner::after {
				right: -25px;
				bottom: 0;
				width: 56px;
				height: 70px;
		}
}
@media(max-width: 1200px) {
		.market_caption {
				padding: 40px;
		}
}
@media(max-width: 960px) {
		.market_section {
				padding: 50px 20px 80px 30px;
		}
		.market_inner::before {
				top: calc(48% - 20vw);
				right: 0px;
				width: calc(48% + 30px);
				height: 40vw;
		}
		.market_caption {
				width: calc(50% + 40px);
				padding-right: 40px;
		}
		.market_caption hgroup + p {
				line-height: 2.0;
				margin-bottom: 30px;
		}
}
@media(max-width: 767px) {
		.market_section {
				padding: 40px 20px 50px;
		}
		.market_caption::before {
				top: -40px;
				left: -100px;
				width: 170px;
				height: 170px;
				z-index: -1;
		}
		.market_inner::after {
				z-index: -1;
				width: 80px;
				height: 95px;
				right: -25px;
				bottom: -50px;
		}
}
@media screen and (orientation: portrait) and (max-width: 767px) {
		.market_inner {
				display: block;
		}
		.market_inner::before {
				display: none
		}
		.market_caption {
				width: 100%;
				margin: 0;
				background: #fff;
				padding: 35px 20px;
		}
		.market_caption hgroup {
				width: 100%;
		}
		.market_caption hgroup + p {
				position: relative;
		}
		.market_caption hgroup + p::before {
				content: '';
				display: block;
				width: 100%;
				aspect-ratio: 10 / 7.35;
				background-repeat: no-repeat;
				background-position: 0 0;
				background-size: 100%;
				background-image: url("../images/top_market_figure.png");
				margin: 0 0 10px;
		}
		.market_caption .viewLink {
				text-align: right;
		}
}
/* ============= */
.recruit_section {
		background: #224BA1;
		color: #fff;
		padding: 60px 30px;
}
.recruit_section hgroup p {
		color: #fff;
}
.recruit_inner {
		max-width: 1110px;
		margin: 0 auto;
		display: flex;
		align-items: center;
}
.recruit_inner hgroup + p {
		line-height: 2.0;
		margin-bottom: 40px;
}
.recruit_left {
		flex: 1
}
.recruit_right {
		width: 650px;
		margin-left: 60px;
}
.recruit_right img {
		width: 100%;
		height: auto;
}
@media(max-width: 1200px) {
		.recruit_right {
				width: 55%;
				margin-left: 20px;
		}
}
@media(max-width: 960px) {
		.recruit_section {
				padding-right: 15px;
		}
		.recruit_inner hgroup + p {
				line-height: 2.0;
				margin-bottom: 30px;
		}
		.recruit_right {
				width: 55%;
				margin-left: 10px;
		}
}
@media(max-width: 767px) {
		.recruit_section {
				padding: 50px 20px;
				position: relative;
				z-index: 10
		}
}
@media screen and (orientation: portrait) and (max-width: 767px) {
		.recruit_inner {
				display: block;
		}
		.recruit_left {
				margin: 0;
				width: auto;
		}
		.recruit_inner {
				display: flex;
				flex-direction: column;
		}
		.recruit_left {
				display: contents;
		}
		.recruit_left hgroup {
				order: 1;
				width: 100%;
		}
		.recruit_right {
				order: 2;
				width: auto;
				margin: 0 0 25px;
		}
		.recruit_left p {
				order: 3;
		}
		.recruit_left .viewLinkRight {
				order: 4;
				display: flex;
				justify-content: flex-end;
				width: 100%;
		}
}
/* ============= */
.news_section {
		padding: 120px 30px 80px;
}
.news_wrap {
		max-width: 1110px;
		margin: 0 auto;
		position: relative;
}
.news_wrap::before, .news_wrap::after {
		content: '';
		display: block;
		position: absolute;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
		pointer-events: none;
}
.news_wrap::before {
		background-image: url("../images/top_contact_bg-1.png");
		width: 365px;
		height: 415px;
		left: -295px;
		bottom: -350px;
}
.news_wrap::after {
		background-image: url("../images/top_news_bg2_pc.png");
		width: 250px;
		height: 250px;
		top: -100px;
		right: -170px;
}
.news_inner {
		position: relative;
		z-index: 5;
		display: flex;
		margin-bottom: 20px;
}
.news_inner_left {
		margin-right: 115px;
}
.news_inner_right {
		flex: 1
}
@media(max-width: 1200px) {
		.news_inner_left {
				margin-right: 60px;
		}
}
@media(max-width: 960px) {
		.news_section {
				padding: 80px 30px 60px;
		}
}
@media(max-width: 767px) {
		.news_section {
				padding: 60px 20px;
				overflow: visible
		}
		.news_wrap::after {
				background-image: url(../images/top_news_bg2_sp.png);
				width: 100%;
				height: 33vw;
				top: -65px;
				right: 0;
		}
		.news_wrap::before {
				width: 270px;
				height: 270px;
				left: inherit;
				bottom: -310px;
				right: -100px;
		}
}
@media screen and (orientation: portrait) and (max-width: 767px) {
		.news_inner {
				display: block;
		}
		.news_inner_left {
				margin-right: 0;
		}
}
/* ============= */
.contact_section {
		padding: 30px 30px 120px;
		overflow: hidden;
}
.contact_wrap {
		max-width: 1240px;
		margin: 0 auto;
		position: relative;
}
.contact_wrap::before, .contact_wrap::after {
		content: '';
		display: block;
		position: absolute;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
		pointer-events: none;
}
.contact_wrap::after {
		background-image: url("../images/top_contact_bg-2.png");
		width: 600px;
		height: 555px;
		right: -450px;
		bottom: -280px;
}
.contact_inner {
		background-color: #fff;
		border-radius: 8px;
		box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.03);
		padding: 70px 20px;
		position: relative;
		z-index: 2;
}
.contact_inner hgroup + p {
		text-align: center;
		line-height: 2.0;
		margin-bottom: 40px;
}
@media(min-width: 768px) {
		.contact_inner hgroup + p br {
				display: none
		}
}
.contact_inner::before, .contact_inner::after {
		content: '';
		display: block;
		position: absolute;
		background-repeat: no-repeat;
		background-position: 0 0;
		pointer-events: none;
		background-size: 100%
}
.contact_inner::before {
		background-image: url("../images/top_contact_bg1_pc.png");
		width: 175px;
		height: 290px;
		left: 64px;
		bottom: 0;
		transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s;
		transition-delay: 0.35s;
		transform: translateY(100px);
		opacity: 0;
}
.sectionActive .contact_inner::before {
		transform: translateY(0px);
		opacity: 1;
}
.contact_inner::after {
		background-image: url("../images/top_contact_bg2_pc.png");
		width: 370px;
		height: 220px;
		right: -70px;
		top: 82px;
		transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s;
		transform: translate(162.6px, 116.4px);
		opacity: 0;
}
.sectionActive .contact_inner::after {
		transform: translate(0px, 0px);
		opacity: 1;
}
.contactBtn {
		width: 380px;
		margin: 0 auto;
		font-weight: 700;
		letter-spacing: 0.05em;
}
.contactBtn a {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 74px;
		background: #224BA1;
		border: 1px solid #224BA1;
		border-radius: 8px;
		text-decoration: none;
		color: #fff;
		transition: background 0.2s;
}
.contactBtn span {
		padding-right: 35px;
		position: relative;
		left: 10px
}
.contactBtn span::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 7px);
		right: 0;
		width: 14px;
		height: 14px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 14px;
		background-image: url("../images/icon_right_wht.png")
}
@media (hover: hover) {
		.contactBtn a:hover {
				background: #fff;
				color: #224BA1;
		}
		.contactBtn a:hover span::after {
				background-image: url("../images/icon_right_blu.png")
		}
}
@media(max-width: 1200px) {
		.contact_inner::before {
				width: 15.7%;
				height: auto;
				aspect-ratio: 10 / 16.5;
				left: 30px;
				bottom: 0;
		}
		.contact_inner::after {
				background-image: url("../images/top_contact_bg2_pc.png");
				width: 33%;
				height: auto;
				aspect-ratio: 10 / 6;
				right: -60px;
				top: 40px;
		}
}
@media(max-width: 767px) {
		.contact_section {
				padding: 30px 20px 28vw;
		}
		.contact_inner {
				padding: 13.3vw 30px 40px;
		}
		.contact_inner::before {
				width: 16vw;
				height: auto;
				aspect-ratio: 10 / 16.5;
				top: -6.6vw;
				left: 12px;
				bottom: inherit;
		}
		.contact_inner::after {
				width: 47vw;
				height: auto;
				aspect-ratio: 10 / 6;
				right: -60px;
				top: inherit;
				bottom: calc(-28vw + 15px)
		}
		.contactBtn {
				width: 100%;
				max-width: 230px;
		}
		.contactBtn a {
				height: 58px
		}
		.contactBtn span {
				padding-right: 24px;
				left: 5px
		}
		.contact_wrap::before {
				display: none
		}
		.contact_wrap::after {
				background-image: url("../images/top_contact_bg-3.png");
				background-size: 100%;
				width: 195px;
				height: 195px;
				right: inherit;
				left: -100px;
				bottom: -130px;
		}
}