@charset "UTF-8";
section {
  overflow: hidden;
  height: 100vh;
}

#fp-nav ul li a span,
.fp-slidesNav ul li a span {
  background: #ddd !important;
}
#fp-nav ul li a.active span,
#fp-nav ul li:hover a.active span,
.fp-slidesNav ul li a.active span,
.fp-slidesNav ul li:hover a.active span {
  background: var(--main-color) !important;
  border: 1px solid #fff;
}
#fp-nav ul li:last-of-type {
  display: none;
}
/*********topbtn***********/
.topbtn {
  position: fixed;
  right: 15px;
  bottom: 15px;
  width: 40px;
  height: 40px;
  background: #666;
  z-index: 999;
  text-align: center;
  border-radius: 50%;
  border: 2px solid #fff;
  cursor: pointer;
  display: none;
}
.topbtn:before {
  position: absolute;
  content: "";
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  display: inline-block;
  transform: translate(-50%, -50%) rotate(-45deg);
  position: absolute;
  top: 50%;
  left: 50%;
  transition: 0.3s;
}
.topbtn:hover:before {
  top: 50%;
}
/**********common************/
.video_wrap {
  position: absolute;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
  left: 0;
  top: 0;
  z-index: -1;
}
.video_wrap:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: #00000070;
  left: 0;
  top: 0;
  z-index: 0;
}
.video_wrap:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: url(/img/dotbg.png) repeat center;
  left: 0;
  top: 0;
  z-index: 0;
}
.video_wrap iframe {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 120%;
  z-index: -1;
}
/************header***********/
header {
  position: fixed;
  width: 100%;
  left: 0;
  top: 0;
  z-index: 1000;
  transition: all 0.5s ease-in-out; 
  white-space: nowrap;
  background: transparent;
  overflow: hidden;
  height: 120px;
}
/* header:before {
  position: absolute;
  content: '';
  left: 0;
  top: -350px;
  width: 100%;
  opacity: 0;
  background: #fff;
  height: 350px;
  transition: all .3s ease-in-out;
} */
header:after {
  position: absolute;
  content: '';
  width: 100%;
  height: 1px;
  background: #ccc;
  top: 120px;
  z-index: 9;
  transition: all .3s;
  opacity: 0;
}
header .inner {
  position: relative;  
  z-index: 999;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
header.active {
  /* top: 0; */
  background: #fff;
  height: 350px;
  opacity: 1;
}
header.active:after {
  opacity: 1;
}
header.on {
  background: #fff;
}
header .header_logo {
  text-align: center;
}
header .header_logo a img {
  width: 200px;
  transition: all 0.3s 0.3s ease-in-out;
}
nav .nav_list {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
nav .nav_item {
  position: relative;
  padding: 0 35px; 
}
nav .nav_item > a {
  position: relative;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  display: block;
  transition: 0.3s;
  height: 120px;
  line-height: 120px;  
}
nav .nav_item > a:before {
  position: absolute;
  content: "";
  left: 0;
  background: var(--main-color);
  width: 0;
  height: 5px;
  bottom: 20px;
  transition: 0.3s;
}
nav .nav_item.on > a:before, 
nav .nav_item:hover > a:before,
nav .nav_item > a.active:before {
  width: 40%;
}
nav .nav_dropdown {
  position: absolute;
  left: 35px;
  padding: 30px 0;
  text-align: left;
  width: 100%;
}
nav .nav_dropdown a {
  display: block;
  padding: 5px 0;
  font-size: 18px;
  transition: all 0.3s;
  color: #333;
  font-weight: 400;
  border-bottom: 1px solid transparent;
}
header.active nav .nav_item > a,
header.on nav .nav_item > a{
  color: #333;
}
header nav .nav_item:hover > a,
header nav .nav_item > a.active{
  color: var(--main-color);
}
nav .nav_dropdown a:hover {
  font-weight: 500;
  color: var(--main-color);
}
.side_nav .side_btn {
  position: relative;
  width: 40px;
  height: 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: start;
  cursor: pointer;
}
.side_nav .side_btn div {
  width: 100%;
  height: 4px;
  background: #fff;
  transition: all .3s;
}
header.on .side_nav .side_btn div,
header.active .side_nav .side_btn div {
  background-color: #222;
}
.side_nav .side_btn div:nth-of-type(2) {
  width: 60%;
}
.side_close {
  position: absolute;
  right: 70px;
  top: 30px;
  width: 40px;
  height: 40px;
  cursor: pointer;
}
.side_close div {
  width: 100%;
  height: 3px;
  background: #fff;
  position: absolute;
  left: 50%;
  top: 50%;
}
.side_close div:nth-of-type(1) {
  transform: translate(-50%,-50%) rotate(45deg);
}
.side_close div:nth-of-type(2) {
  transform: translate(-50%,-50%) rotate(-45deg);
}
.side_list {
  position: relative;
  width: 20%;
  height: 100%;
  position: fixed;
  right: -100%;
  top: 0;
  z-index: 1001;
  background: #333;
  padding: 100px 50px;
  opacity: 0;
  transition: all .5s ease-in-out;
}
.side_list.on {
  right: 0;
  opacity: 1;
}
.side_item {
  margin: 20px 0;
  overflow: hidden;
}
.side_item > h3 {
  font-size: 32px;
  font-weight: 700;
  color: #000;
  transition: all .3s; 
  cursor: pointer;
}
.side_item > h3:hover {
  opacity: 1;
  color: #fff;
}
.side_dropdown {
  position: relative;
  height: 0;
  padding: 0;
  transition: .3s;
}
.side_dropdown.active {
  padding: 40px 0 10px;
  height: auto;
}
.side_dropdown:before {
  position: absolute;
  content: '';
  left: 0;
  top: 10px;
  width: 30px;
  height: 5px;
  background: var(--main-color);
}
.side_dropdown a {
  display: block;
  font-size: 20px;
  color: #ccc;
  padding: 5px 0;
  font-weight: 400;
  transition: all .3s;
  position: relative;
}
.side_dropdown a:hover {
  color: var(--main-color);
  font-weight: 700;
}
.side_item.active > h3 {
  color: #fff;
}
/***************footer***************/
footer {
  background: #333;
  padding: 30px 0;
  color: #fff;
}
footer .footer_logo {
  margin-right: 100px;
}
footer .footer_logo img {
  width: 200px;
}
footer > .inner {
  display: flex;
  justify-content: start;
  align-items: center;
  max-width: 1400px;
}
.footer_content p {
  font-size: 14px;
  font-weight: 300;
  line-height: 2em;
  color: #fff;
}
.footer_content p span {
  padding: 0 15px;
}
.footer_content p small {
  display: block;
  margin-top: 15px;
  font-size: 11px;
}
/*.main common*/
.title {
  text-align: center;
  color: #fff;
  position: relative;
  z-index: 9;
}
.title h2,
.title h3,
.title p {
  overflow: hidden;
}
.title h3 span {
  font-size: 20px;
  font-weight: 700;
  display: block;
  transform: translate3d(0, 200%, 0);
  transition: 1s .1s ease-in-out;
  opacity: 0;
}
.title h2 span {
  font-size: 60px;
  display: block;
  transform: translate3d(0, 150%, 0);
  transition: 1s .3s ease-in-out;
  opacity: 0;
  font-weight: 300;
}
.title p {
  margin-top: 30px;
}
.title p span {
  font-size: 18px;
  display: block;
  transform: translate3d(0, 150%, 0);
  transition: 1s .5s ease-in-out;
  opacity: 0;
  font-weight: 300;
}
.title h2 span strong {
  font-weight: 700;
}
.title > span {
  display: inline-block;
  width: 40px;
  height: 1px;
  background: #fff;
  margin: 15px 0;
  opacity: 0;
  transition: 1s 1s ease-in-out;
}
section.act .title p span,
section.act .title h2 span,
section.act .title h3 span{
  transform: translate3d(0, 0%, 0);
  opacity: 1;
} 
section.act .title > span,
section.act .title > a {
  opacity: 1;
}
.more {
  margin-top: 30px;
  display: inline-block;
  font-size: 16px;
  text-align: center;
  color: #fff;
  transition: 1s 1s ease-in-out;
  font-weight: 300;
  position: relative;
  z-index: 2;
  opacity: 0;
}
.more span {
  position: absolute;
  bottom: 5px;
  right: -55px;
  width: 40px;
  height: 1px;
  background: #fff;
  transition: all .3s;
}
.more span:before {
  position: absolute;
  content: '';
  width: 8px;
  height: 1px;
  background: #fff;
  right: 0;
  bottom: 3px;
  transform: rotate(45deg);
}
.more:hover span {
  right: -65px;
}
.location_table {
  border-color: #bbb;
  color: #333;
  width: 100%;
}
.location_table th {
  background: #999;
  color: #fff;
}
.location_table th,
.location_table td {
  padding: 15px;
  text-align: center;
  font-size: 18px;
}
.location_search {
  padding: 30px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.location_search a {
  text-align: center;
  padding: 10px 50px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 20px;
  display: flex;
  align-items: center;
}
.location_search a img {
  height: 25px;
}
.location_search a span {
  margin-left: 10px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1em;
}
.location_search a:nth-child(2) {
  margin: 0 50px;
}
.location_search a:nth-child(1) span {
  color: #03cf5d;
}
.location_search a:nth-child(2) span {
  color: #0089ff;
}
.location_search a:nth-child(3) span {
  color: #dd4436;
}
/*****************visual****************/
.visual .scroll_down_box {position: absolute; color: #fff; bottom: 20px; left: 20px; z-index: 999; text-align: center;}
.visual .scroll_down_box p {font-size: 8px; font-weight: 300; letter-spacing: 5px; writing-mode : vertical-rl;}
.visual .scroll_down_box .scroll_down_mouse {background: rgba(255, 255, 255, 0.27); width: 1px; height: 100px; position: absolute; left: 6px; bottom: 130px;  overflow: hidden;}
.visual .scroll_down_box .scroll_down_mouse span {background: #fff; display: block; width: 1px; height: 100px; position: absolute; left: 0; top: -100%; animation: wheeldown 2s 1s infinite normal;}
@keyframes wheeldown {
	0% {
		top: -100%;
	}
	100% {top: 100%;}
}
.visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.visual_title {
  color: #fff; 
  text-align: center;
}
.visual_title h2,
.visual_title h3,
.visual_title p {
  overflow: hidden;
}
.visual_title h2 {
  margin: 15px 0;
}
.visual_title h2 span {
  color: #fff;
  font-size: 60px;
  transition: 1s 0.5s ease-in-out;
  transform: translate3d(0, 150%, 0);
  opacity: 0;
  display: block;
} 
.visual_title h2 span strong {
  font-weight: 700;
}
.visual_title h3 span {
  font-size: 30px;
  transition: 1s ease-in-out;
  transform: translate3d(0, 150%, 0);
  font-weight: 300;
  opacity: 0;
  display: block;
} 
.visual_title h2 span strong {
  font-weight: 700;
}
.visual_title p span{
  font-size: 16px;
  transition: 1s 1s ease-in-out;
  transform: translate3d(0, 150%, 0);
  font-weight: 200;
  opacity: 0;
  display: block;
}
.visual_title p strong {
  font-weight: 700;
}
.visual.act .visual_title h2 span,
.visual.act .visual_title h3 span,
.visual.act .visual_title p span  {
  transform: translate3d(0, 0%, 0);
  opacity: 1;
}
.youtubebtn {
  position: absolute;
  right: 8%;
  top: 4.5%;
}
.youtubebtn img {
  width: 60px;
}
section.wedo {
  height: 100vh;
}
section .wedo_slide {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
section .wedo_thumb {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 60%;
  opacity: 0;
  transition: 1s 1s ease-in-out;
}
section.act .wedo_thumb {
  opacity: 1;
}
.wedo_thumb .swiper-slide {
  cursor: pointer;
  padding: 50px 0;
  border-right: 1px solid #ffffff30;
}
.wedo_thumb .swiper-wrapper > div:nth-of-type(1) {
  border-left: 1px solid #ffffff30;
}
.wedo_thumb .swiper-slide p {
  color: #fff;
  font-weight: 400;
  font-size: 20px;
  text-align: center;
}
.wedo_thumb .swiper-slide-thumb-active {
  background: var(--main-color);
}
.wedo_thumb .swiper-slide .arrow {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 25px;
  display: block;
  width: 50px;
  height: 1px;
  background: #ffffff50;
  opacity: 0;
  transition: all .3s;
}
.wedo_thumb .swiper-slide .arrow:before {
  position: absolute;
  content: '';
  width: 10px;
  height: 1px;
  background: #ffffff50;
  right: 0;
  bottom: 4px;
  transform: rotate(45deg);
}
.wedo_thumb .swiper-slide-thumb-active .arrow {
  opacity: 1;
}
.company {
  background: url(/img/companybg.jpg) no-repeat center / cover;
}
.part {
  background: url(/img/partbg.jpg) no-repeat center / cover;
}
.part .sec_cont {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}
.part .sec_cont a {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 100%;
  color: #fff;
  text-align: left;
  position: relative;
  z-index: 1;
}
.part .sec_cont a:nth-of-type(1):before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url(../img/part01.jpg) no-repeat center / cover;
  z-index: 2;
  opacity: 0;
  transition: all .5s ease-in-out;
}
.part .sec_cont a:nth-of-type(2):before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url(../img/part02.jpg) no-repeat center / cover;
  z-index: 2;
  opacity: 0;
  transition: all .5s ease-in-out;
}
.part .sec_cont a:nth-of-type(3):before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url(../img/part03.jpg) no-repeat center / cover;
  z-index: 2;
  opacity: 0;
  transition: all .5s ease-in-out;
}
.part .sec_cont a:nth-of-type(2) {
  border-left: 1px solid #ffffff20;
  border-right: 1px solid #ffffff20;
}
.part .sec_cont a div {
  z-index: 3;
}
.part .sec_cont a .line {
  display: block;
  height: 1px;
  width: 50px;
  background: #fff;
  opacity: 0.5;
}
.part .sec_cont a h2 {
  font-size: 40px;
  font-weight: 700;
  margin: 15px 0;
  transition: all .3s;
}
.part .sec_cont a p {
  font-weight: 300; 
}
.part .sec_cont a h3 {
  font-weight: 300;
  margin-top: 0;
  opacity: 0;
  display: flex;
  justify-content: end;
  align-items: end;
  transition: all .5s ease-in-out;
}
.part .sec_cont a h3 span {
  width: 30px;
  height: 1px; 
  background: #fff;
  position: relative;
}
.part .sec_cont a h3 span:before {
  position: absolute;
  content: '';
  right: 0;
  bottom: 4px;
  width: 10px;
  height: 1px;
  background: #fff;
  transform: rotate(45deg);
}
.part .sec_cont a:hover:before {
  opacity: 1;
}
.part .sec_cont a:hover h3 {
  opacity: 1;
  margin-top: 50px;
}
.careers {
  background: url(/img/careersbg.jpg) no-repeat center / cover;
}
.careers .sec_cont {
  width: 1400px;
  margin: 0 auto;
}
.careers .title {
  text-align: left;
}
.careers .title h2 {
  font-size: 50px;
}
.careers ul {
  margin-top: 70px;
  display: flex;
  justify-content: space-between;
  align-items: start;
  opacity: 0;
  transform: translate3d(0,150%,0);
  transition: 1s 1s ease-in-out;
}
.careers ul li {
  width: 30%;
}
.careers ul li a {
  color: #fff;
  opacity: 1;
  transition: all .3s;
}
.careers ul li a:hover {
  opacity: 0.5;
}
.careers ul li a h2 {
  font-size: 30px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  border-bottom: 3px solid #fff;
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.careers ul li a h2 span {
  width: 30px;
  height: 1px;
  background: #fff;
  position: relative;
  margin-right: 20px;
  transition: all .3s;
}
.careers ul li a h2 span:before {
  position: absolute;
  content: '';
  width: 10px;
  height: 1px;
  background: #fff;
  right: 0;
  bottom: 4px;
  transform: rotate(45deg);
}
.careers ul li a p {
  font-size: 18px;
}
.careers ul li a:hover h2 span {
  margin-right: 10px;
}
.careers.act ul {
  opacity: 1;
  transform: translate3d(0, 0%, 0);
}
.footer {
  height: auto !important;
}