@charset "utf-8";
.header_logo img {
		opacity: 0;
		width: 100%;
		height: auto;
}
.header_logo {
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
		background-image: url("../images/hdr_logo_wht.png");
}
.header_trigger .header_trigger_bar {
		background: #fff;
}
header.isActive .header_trigger .header_trigger_bar {
		background: #C2153E;
}
.isActive .header_logo {
		background-image: url("../images/hdr_logo.png");
}
.desktop_global > li > a {
		color: #fff;
}
.isActive .desktop_global > li > a {
		color: #222;
}
/* ================= */
.page_hdr_title .section_title_jp, .page_hdr_title .section_title_en {
		opacity: 0;
		transform: translateY(30px);
		animation: titleFadeIn 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.page_hdr_title .section_title_jp {
		animation-delay: 0.08s;
}
.page_hdr_title .section_title_en {
		animation-delay: 0.12s;
}
@keyframes titleFadeIn {
		0% {
				opacity: 0;
				transform: translateY(30px);
		}
		100% {
				transform: translateY(0px);
				opacity: 1;
		}
}
/* ================= */
.page_hdr {
		background-repeat: no-repeat;
		background-position: center center;
		background-size: cover;
		width: 100%;
		height: 600px;
		box-sizing: border-box;
		display: flex;
		align-items: flex-end;
		position: fixed;
		top: 0;
		left: 0;
}
.page_hdr_title_wrap {
		width: 100%;
}
.page_hdr_title_wrap .page_hdr_title {
		max-width: 1180px;
		margin: 0 auto;
		padding: 0 25px;
		color: #fff;
}
.company_hdr {
		background-image: url("../images/company_hdr_bg_pc.jpg");
}
.about_hdr {
		background-image: url("../images/about_hdr_bg_pc.jpg");
}
.news_hdr {
		background-image: url("../images/news_hdr_bg_pc.jpg");
}
.contact_hdr {
		background-image: url("../images/contact_hdr_bg_pc.jpg");
}
.privacy_hdr {
		background-image: url("../images/privacy_hdr_bg_pc.jpg");
}
@media(max-width: 1500px) {
		.page_hdr {
				height: 500px;
		}
}
@media(max-width: 1200px) {
		.page_hdr_title_wrap {
				max-width: 60vw;
		}
}
@media (min-width: 568px) and (max-width: 1194px) and (max-height: 700px) {
		.verLandscape .page_hdr {
				width: 100%;
				aspect-ratio: inherit;
				min-height: inherit;
				max-height: inherit;
				height: 80vh;
		}
}
@media(max-width: 767px) {
		.page_hdr {
				width: 100% !important;
				height: 58vw;
		}
}
/* ================= */
.page_upper_nav_wrap {
		max-width: 1400px;
		margin: 0 auto;
		position: relative;
		display: flex;
		justify-content: flex-end;
}
.page_upper_nav_wrap .page_upper_nav {
		position: absolute;
		top: -138px;
		right: 0;
		z-index: 10;
		opacity: 0;
		transform: translateY(30px);
		animation: titleFadeIn 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
		animation-delay: 0.3s;
}
.page_upper_nav {
		background: #fff;
		box-sizing: border-box;
		padding: 10px 25px 25px;
		box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
}
.page_upper_nav li {
		list-style: none;
		border-bottom: 1px solid #D9D9D9;
		font-weight: 500;
		min-width: 200px;
		position: relative;
}
.page_upper_nav li a {
		color: #222;
		text-decoration: none;
		display: flex;
		align-items: center;
		padding: 13px 0;
		position: relative;
}
.page_upper_nav li a::before {
		content: '';
		display: block;
		position: absolute;
		bottom: -1px;
		left: 0;
		width: 100%;
		height: 1px;
		background: #C2153E;
		transform-origin: left center;
		transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
		transform: scaleX(0);
}
.page_upper_nav li a::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 5px);
		right: 3px;
		width: 7px;
		height: 7px;
		border-right: 1px solid #C2153E;
		border-bottom: 1px solid #C2153E;
		transform: rotate(45deg)
}
@media (hover: hover) {
		.page_upper_nav li a:hover {
				color: #C2153E;
		}
		.page_upper_nav li a:hover::before {
				transform: scaleX(1);
		}
}
.page_upper_nav_inner {
		display: flex;
		align-items: center;
}
.page_upper_nav li .jp {
		margin-right: 15px;
}
.page_upper_nav li .en {
		margin-right: 15px;
		font-family: 'Poppins', sans-serif;
}
@media(max-width: 840px) {
		.page_upper_nav_wrap .page_upper_nav {
				top: -140px;
		}
		.page_upper_nav li a {
				padding: 10px 0;
		}
}
@media(max-width: 767px) {
		.page_upper_nav_wrap .page_upper_nav {
				display: none;
		}
}
/* ================= */
.cont_title {
		padding-left: 25px;
		margin-bottom: 50px;
		border-left: 2px solid #C2153E;
}
.cont_title h2 {
		font-size: 20px;
		line-height: 1;
		font-weight: 500;
		margin: 0 0 10px;
		color: #C2153E;
}
.cont_title .cont_title_en {
		font-size: 60px;
		font-family: 'Poppins', sans-serif;
		font-weight: 700;
		line-height: 1;
}
.page_cont {
		background: #E1E1E1;
		padding: 35px 0 160px;
		margin-top: 598px;
		position: relative;
		z-index: 1000;
		width: 100%;
}
@media(max-width: 1500px) {
		.page_cont {
				margin-top: 498px;
		}
}
@media (min-width: 568px) and (max-width: 1194px) and (max-height: 700px) {
		.verLandscape .page_cont {
				width: 100%;
				margin-top: 79.9vh;
		}
}
@media(max-width: 767px) {
		.page_cont {
				margin-top: 57.9vw;
		}
}
.page_wrap {
		margin-bottom: 60px;
		box-sizing: border-box;
		margin-left: 0;
		background: #fff;
}
.page_wrap p {
		line-height: 1.8;
}
.page_wrap.left {
		margin-right: calc(calc(100vw - 1390px) * 0.5);
}
.page_wrap.right {
		margin-left: calc(calc(100vw - 1390px) * 0.5);
}
.page_col {
		max-width: 1390px;
		box-sizing: border-box;
		padding: 95px 120px;
		padding-right: 125px;
}
.page_wrap.left .page_col {
		margin-left: calc(calc(100vw - 1390px) * 0.5);
}
@media(max-width: 1450px) {
		.page_wrap.left .page_col {
				padding-left: 120px;
				padding-right: 60px;
		}
		.page_wrap.right .page_col {
				padding-right: 120px;
				padding-left: 60px;
		}
}
@media(max-width: 1390px) {
		.page_wrap.right {
				margin-left: 20px;
		}
		.page_wrap.left {
				margin-right: 20px;
		}
		.page_wrap.left .page_col {
				margin-left: 0;
		}
}
@media(max-width: 1300px) {
		.cont_title h2 {
				font-size: 18px;
		}
		.cont_title .cont_title_en {
				font-size: 52px;
		}
}
@media(max-width: 840px) {
		.page_col {
				padding: 70px 40px;
		}
		.page_wrap.left .page_col {
				padding-left: 90px;
				padding-right: 40px;
		}
		.page_wrap.right .page_col {
				padding-right: 90px;
				padding-left: 40px;
		}
}
@media(max-width: 960px) {
		.verLandscape .page_wrap.left .page_col, .verLandscape .page_wrap.right .page_col {
				padding-left: 40px;
				padding-right: 40px;
		}
}
@media(max-width: 767px) {
		.page_wrap {
				margin: 0 0 30px;
		}
		.page_wrap.right {
				margin-left: 0;
		}
		.page_wrap.left {
				margin-right: 0;
		}
		.page_col {
				padding: 40px 25px;
		}
		.page_wrap.left .page_col, .page_wrap.right .page_col, .verPortrait .page_wrap.left .page_col, .verPortrait .page_wrap.right .page_col {
				padding-left: 25px;
				padding-right: 25px;
		}
		.cont_title {
				padding-left: 20px;
				margin-bottom: 40px;
		}
		.cont_title h2 {
				font-size: 16px;
				margin: 0 0 5px;
		}
		.cont_title .cont_title_en {
				font-size: 42px;
		}
}
@media(max-width: 767px) {
		.page_cont {
				padding: 25px 0 80px;
		}
}
/* ========================= */
.bread_wrap {
		max-width: 1180px;
		margin: 0 auto 40px;
		padding: 0 25px;
}
@media(max-width: 960px) {
		.verLandscape .bread_wrap {
				padding-left: 40px;
				padding-right: 40px;
		}
		#recruit_top.verLandscape  .bread_wrap {
				padding-left: 25px!important;
		}
}
.bread_wrap ol {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		list-style: none;
		font-size: 15px;
		font-family: 'Poppins', 'Noto Sans JP', sans-serif;
		font-weight: 400;
		color: #666;
}
.bread_wrap ol li {
		margin-right: 18px;
		margin-bottom: 5px;
}
.bread_wrap ol li a {
		color: #666;
		text-decoration: underline;
		padding-right: 18px;
		position: relative;
}
@media (hover: hover) {
		.bread_wrap ol li a:hover {
				text-decoration: none;
				color: #C2153E;
		}
}
.bread_wrap ol li a::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 3.5px);
		right: 0;
		width: 6px;
		height: 6px;
		border-top: 1px solid #666;
		border-right: 1px solid #666;
		transform: rotate(45deg);
}
@media(max-width: 840px) {
		.bread_wrap {
				margin-bottom: 15px;
		}
		#recruit_top .bread_wrap {
				margin-bottom: 40px;
		}
		.bread_wrap.extra {
				margin-bottom: 30px;
		}
}
@media(max-width: 767px) {
		.bread_wrap {
				margin-bottom: 0px;
		}
		#recruit_top .bread_wrap {
				margin-bottom: 25px;
		}
		.bread_wrap.extra {
				margin-bottom: 0px;
		}
		.bread_wrap ol {
				font-size: 13px;
		}
		.bread_wrap ol li {
				margin-right: 10px;
		}
		.bread_wrap ol li a {
				padding-right: 10px;
		}
		.bread_wrap ol li a::after {
				top: calc(50% - 2px);
				width: 4px;
				height: 4px;
		}
}
@media(max-width: 375px) {
		.bread_wrap ol {
				font-size: 12px;
		}
		.bread_wrap ol li {
				margin-right: 8px;
		}
		.bread_wrap ol li a {
				padding-right: 8px;
		}
		.bread_wrap ol li a::after {
				right: -1px;
		}
}
/* ================= */
.page_col {
		position: relative;
		overflow: hidden;
}
.page_col .sidebg {
		position: absolute;
		top: -2px;
		width: 75px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 75px;
}
.serviceSlider_base .sidebg {
		position: absolute;
		top: -2px;
		left: -2px;
		width: 75px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 75px;
}
.mission_bg {
		right: -2px;
		background-image: url("../images/mission_side_bg.png");
		height: 420px;
}
.achievement_bg {
		left: -2px;
		background-image: url("../images/achievement_side_bg.png");
		height: 715px;
}
.page_col .sidebg.history_bg {
		right: -2px;
		background-image: url("../images/history_side_bg.png");
		height: 430px;
}
.page_col .sidebg.overview_bg {
		left: -2px;
		background-image: url("../images/overview_side_bg.png");
		height: 535px;
}
.page_col.map .sidebg.map_bg {
		right: -2px;
		background-image: url("../images/map_side_bg.png");
		height: 217px;
}
.dx_bg {
		background-image: url("../images/dx_side_bg.png");
		left: -2px;
		height: 1320px;
}
.total_bg {
		background-image: url("../images/total_side_bg.png");
		right: -2px;
		height: 1575px;
}
.case_bg {
		background-image: url("../images/case_side_bg.png");
		left: -2px;
		height: 710px;
}
.win_bg {
		background-image: url("../images/win_side_bg.png");
		right: -2px;
		height: 1120px;
}
.service_bg {
		background-image: url("../images/service_side_bg.png");
		left: -2px;
		height: 420px;
}
@media(max-width: 767px) {
		.page_col .sidebg {
				background-size: 58px;
				width: 58px;
		}
		.page_col .sidebg.overview_bg {
				top: -2px;
				left: -4px;
				height: 420px;
		}
		.sidebg {
				display: none !important;
		}
}
/* =================== */
.loop_wrap {
		overflow: hidden;
		position: relative;
		height: 136px;
		bottom: -30px;
		z-index: 0;
}
.loop_slider, .reverse_slider {
		display: flex;
		width: 100%;
		overflow: hidden;
}
.loop_inner, .reverse_inner {
		display: flex;
		height: 136px;
}
.loop_item img {
		width: 100%;
		height: auto;
		vertical-align: top;
}
.companySlide .loop_item {
		width: 2052px;
		margin: 0;
}
.aboutSlide .loop_item {
		width: 1800px;
		margin: 0;
}
.newsSlide .loop_item {
		width: 1760px;
		margin: 0;
}
.contactSlide .loop_item {
		width: 1920px;
		margin: 0;
}
.loop_inner:first-child {
		animation: loop 150s linear infinite;
}
.loop_inner:nth-child(2) {
		animation: loop2 150s -100s linear infinite;
}
.loop_inner:last-child {
		animation: loop3 150s -50s linear infinite;
}
.reverse_slider .reverse_inner:first-child {
		animation: loop4 180s linear infinite;
}
.reverse_slider .reverse_inner:nth-child(2) {
		animation: loop5 180s -120s linear infinite;
}
.reverse_slider .reverse_inner:last-child {
		animation: loop6 180s -60s linear infinite;
}
@keyframes loop {
		0% {
				transform: translateX(200%);
		}
		to {
				transform: translateX(-100%);
		}
}
@keyframes loop2 {
		0% {
				transform: translateX(100%);
		}
		to {
				transform: translateX(-200%);
		}
}
@keyframes loop3 {
		0% {
				transform: translateX(0%);
		}
		to {
				transform: translateX(-300%);
		}
}
@keyframes loop4 {
		0% {
				transform: translateX(-100%);
		}
		to {
				transform: translateX(200%);
		}
}
@keyframes loop5 {
		0% {
				transform: translateX(-200%);
		}
		to {
				transform: translateX(100%);
		}
}
@keyframes loop6 {
		0% {
				transform: translateX(-300%);
		}
		to {
				transform: translateX(0%);
		}
}
@media(max-width: 960px) {
		.verLandscape .loop_wrap {
				height: 70px;
				bottom: -15px;
		}
		.verLandscape .companySlide .loop_item {
				width: 1105px;
		}
		.verLandscape .aboutSlide .loop_item {
				width: 969px;
		}
		.verLandscape .newsSlide .loop_item {
				width: 948px;
		}
		.verLandscape .contactSlide .loop_item {
				width: 1034px;
				margin: 0;
		}
}
@media(max-width: 767px) {
		.verPortrait .loop_wrap {
				height: 70px;
				bottom: -15px;
		}
		.verPortrait .companySlide .loop_item {
				width: 1105px;
		}
		.verPortrait .aboutSlide .loop_item {
				width: 969px;
		}
		.verPortrait .newsSlide .loop_item {
				width: 948px;
		}
		.verPortrait .contactSlide .loop_item {
				width: 1034px;
				margin: 0;
		}
}
@media(max-width: 375px) {
		.verPortrait .loop_wrap {
				height: 50px;
				bottom: -10px;
		}
		.verPortrait .companySlide .loop_item {
				width: 789px;
		}
		.verPortrait .aboutSlide .loop_item {
				width: 692px;
		}
		.verPortrait .newsSlide .loop_item {
				width: 677px;
		}
		.verPortrait .contactSlide .loop_item {
				width: 738px;
				margin: 0;
		}
}