/* ------------ *\
    globel 
\* ------------ */

* {
	box-sizing: border-box;
	position: relative;
	margin: 0;
	padding: 0;
}
body,
html {
	width: 100%;
}
a {
	text-decoration: none;
	color: #0032be;
}

/* ------------ *\
    layout 
\* ------------ */

.backgroundImg {
	width: 100%;
	height: 100vh;
	background-color: #0032be;
	position: fixed;
	top: 0;
	left: 0;
}

.container {
	margin: 0 auto;
	width: 95%;
	display: flex;
	max-width: 1400px;
}
.container.center {
	justify-content: center;
}

.row {
	width: 100%;
	display: flex;
}
.row.wrap {
	flex-wrap: wrap;
}

.col {
	flex: 1;
}

.imageContainer,
.imageContainer::before {
	width: 100%;
}
.imageContainer::before {
	content: '';
	display: block;
	padding-top: 100%;
}
.imageContainerInner {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}

.tranCenter {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* ------------ *\
    Utility 
\* ------------ */
#loader {
	width: 100%;
	height: 100vh;
	transition: all, 0.3s;
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: 20px;
	animation-name: loadingB;
	animation-iteration-count: 1;
	animation-timing-function: ease-in-out;
	animation-duration: 1s;
}
#loader.ani {
	width: 100%;
	animation-name: none;
}
#loader .load-1 .line {
	animation-name: none;
}
#loader .load-1 {
	opacity: 0;
	transition: opacity, 0.3s;
}
#loader.ani .load-1 {
	opacity: 1;
}
#loader span,
#loader span > a {
	font-size: 30px;
	color: #fff;
}

.await {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	justify-content: center;
	align-items: center;
	background: rgba(0, 51, 190, 0.5);
	display: none;
}
.await.active {
	display: flex;
}

#loader.ani .load-1 .line {
	animation-name: loadingA;
	display: inline-block;
	width: 15px;
	height: 15px;
	border-radius: 15px;
	background-color: #ff0082;
}

.load-1 .line:nth-last-child(1) {
	animation: loadingA 1.5s 1s infinite;
}
.load-1 .line:nth-last-child(2) {
	animation: loadingA 1.5s 0.5s infinite;
}
.load-1 .line:nth-last-child(3) {
	animation: loadingA 1.5s 0s infinite;
}

@keyframes loadingA {
	0% {
		height: 15px;
	}
	50% {
		height: 35px;
	}
	100% {
		height: 15px;
	}
}
@keyframes loadingB {
	0% {
		display: flex;
		z-index: 999;
	}
	99% {
		display: flex;
		z-index: 999;
	}
	100% {
		display: none;
		z-index: -1;
	}
}

@media (min-width: 320px) {
	#startAni .lineSty {
		width: 10px;
		height: 200px;
		background-color: #fff;
		position: absolute;
		top: 50%;
		left: 50%;
	}
	.pad-show {
		display: initial;
	}
	:root {
		--start-ani-logo: 250px;
		--start-ani-width: 300px;
		--start-ani-box-width: 300px;
		--font-size: 16px;
		--start-ani-padding: 20px;
	}
	#startAni .text {
		white-space: nowrap;
		display: inline-block;
		line-height: 1.5;
		font-size: var(--font-size);
	}
	#startAni .text .chi {
		padding-top: 10px;
		font-size: 1.5em;
	}
}
@media (min-width: 375px) {
	:root {
		--start-ani-logo: 300px;
		--start-ani-width: 350px;
		--start-ani-box-width: 350px;
		--font-size: 18px;
	}
}
@media (min-width: 768px) {
	:root {
		--start-ani-logo: 500px;
		--start-ani-width: 600px;
		--start-ani-box-width: 650px;
		--font-size: 30px;
		--start-ani-padding: 50px;
	}
	#startAni .lineSty {
		height: 300px;
	}
}
@media (min-width: 992px) {
	.hide {
		display: none;
	}
	:root {
		--start-ani-logo: 600px;
		--start-ani-width: 700px;
		--start-ani-box-width: 800px;
		--font-size: 36px;
	}
	#startAni .text .chi {
		font-size: 1.2em;
	}
}
@media (min-width: 1200px) {
	:root {
		--start-ani-logo: 700px;
		--start-ani-width: 800px;
		--start-ani-box-width: 900px;
		--font-size: 40px;
	}
}
#startAni {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	z-index: 999;
	background-color: #0032be;
	color: #fff;
	animation-name: startAniD;
	animation-iteration-count: 1;
	animation-fill-mode: forwards;
	animation-delay: 6.3s;
	animation-timing-function: ease-in-out;
	animation-duration: 0.3s;
}

#startAni .linepos1 {
	position: absolute;
	top: 50%;
	left: 50%;
}
#startAni .linepos1 .lineSty {
	opacity: 0;
	animation-name: startAniA;
	animation-iteration-count: 1;
	animation-delay: 0s;
	animation-timing-function: ease-in-out;
	animation-duration: 1.5s;
}
@keyframes startAniA {
	0% {
		opacity: 1;
	}
	30% {
		opacity: 1;
	}
	45% {
		opacity: 0.3;
	}
	60% {
		opacity: 1;
	}
	75% {
		opacity: 0;
	}
	90% {
		opacity: 1;
	}
	100% {
		opacity: 1;
	}
}
#startAni .textAni1 {
	width: 0px;
	height: 100vh;
	overflow: hidden;
	animation-name: startAniB;
	animation-iteration-count: 1;
	animation-fill-mode: forwards;
	animation-delay: 1.5s;
	animation-timing-function: ease-in-out;
	animation-duration: 2s;
}

#startAni .linepos2 {
	position: absolute;
	top: 50%;
	left: 0%;
}
#startAni .linepos2 .lineSty {
	transform: translate(0%, -50%);
}
#startAni .linepos3 .lineSty {
	transform: translate(-100%, -50%);
}
#startAni .linepos3 {
	position: absolute;
	top: 50%;
	right: 0%;
}
@keyframes startAniB {
	0% {
		width: 10px;
		padding: 0 0px;
	}
	40% {
		width: var(--start-ani-box-width);
		padding: 0 var(--start-ani-padding);
	}
	60% {
		width: var(--start-ani-box-width);
		padding: 0 var(--start-ani-padding);
	}
	90% {
		padding: 0 0px;
		width: 10px;
	}
}
#startAni .textAni2 {
	width: 0px;
	height: 100vh;
	overflow: hidden;
	animation-name: startAniC;
	animation-iteration-count: 1;
	animation-fill-mode: forwards;
	animation-delay: 3.3s;
	animation-timing-function: ease-in-out;
	animation-duration: 3s;
}
#startAni .text img {
	width: var(--start-ani-logo);
	border-radius: 0px;
}
@keyframes startAniC {
	0% {
		width: 10px;
		padding: 0 0px;
	}
	10% {
		width: 10px;
		padding: 0 0px;
	}
	50% {
		width: var(--start-ani-width);
		padding: 0 50px;
		opacity: 1;
	}
	65% {
		opacity: 0.3;
	}
	70% {
		opacity: 1;
	}
	75% {
		opacity: 0;
	}
	85% {
		opacity: 1;
	}
	100% {
		width: var(--start-ani-width);
		opacity: 0;
	}
}
@keyframes startAniD {
	0% {
		opacity: 1;
		display: block;
	}
	95% {
		opacity: 0;
		display: block;
	}
	100% {
		opacity: 0;
		display: none;
	}
}

/* ------------ *\
    component
\* ------------ */
#banner {
	width: 100%;
	height: 100vh;
}
#banner .slowgon {
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	align-items: center;
	text-align: center;
	line-height: 1.5;
	font-weight: 900;
	color: #fff;
	height: 60vh;
	white-space: nowrap;

	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
#banner .slowgon .top {
	font-size: 24px;
}
#banner .slowgon .bottom {
	font-size: 18px;
}
@media screen and (max-width: 768px) {
	#banner .slowgon {
		height: 40vh;
	}
	#banner .slowgon .top,
	#banner .slowgon .bottom {
		font-size: 14px;
	}
}

#banner .slowgon .logo {
	max-width: 600px;
	min-width: 250px;
	width: 50vw;
}

#decorate {
	width: 100%;
	height: 100%;
}
#decorate .box {
	overflow: hidden;
	position: absolute;
	width: 100%;
	height: 100vh;
	opacity: 1;
}
#banner #decorate .box.right {
	bottom: 2%;
}
#decorate .box .left {
	width: 100%;
	height: 100%;
	left: -40%;
}
#decorate .box .right {
	width: 100%;
	height: 100%;
	right: -60%;
}

#decorate .box img {
	width: 70%;
	min-width: 400px;
	max-width: 1000px;
	position: absolute;
}
#decorate .box img.decorate1 {
	top: 0;
	left: 15%;
}
#decorate .box img.decorate2 {
	top: 15%;
	left: 30%;
}
#decorate .box img.decorate3 {
	bottom: 0%;
	left: 0%;
}
#decorate .box img.decorate4 {
	width: 50%;
	min-width: 300px;
	max-width: 730px;
	bottom: 0%;
	left: 5%;
}

header,
nav {
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 98;
}

#windowsNav {
	gap: 20px;
	width: 70%;
	min-width: 900px;
	border-radius: 100px;
	background-color: #ffffff;
	transition: width 0.3s, border-radius 0.8s;
}
#windowsNav .navigator {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 50%;
	min-width: 550px;
	color: #0032be;
	line-height: 2;
	font-weight: 1000;
}
.navItem {
	font-size: 20px;
	padding: 0 15px;
}
.navLink {
	font-weight: 900;
	font-size: 20px;
}
nav .navAniEle {
	display: flex;
	gap: 5px;
}
.navAniEle .block {
	width: 2px;
	opacity: 0.2;
	background: #0032be;
	transition: opacity 0.5s;
}
.navAniEle .block.active {
	opacity: 0;
}
#ipadNav {
	display: none;
	z-index: -1;
}
#ipadNav .navigator .navItem {
	display: none;
}
#ipadNav .navigator.active .navItem {
	display: block;
}

@media screen and (max-width: 1000px) {
	#windowsNav {
		display: none;
	}
	header {
		width: 100%;
		background: transparent;
	}

	#ipadNav {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 100%;
		min-height: 50px;
		align-content: center;
		transition: background 0.3s;
	}
	#ipadNav.active {
		background: #fff;
	}
	#ipadNav .hamburgerBtn {
		cursor: pointer;
		opacity: 1;
		transition: opacity 1s;
		z-index: 99;
		margin: 10px 20px;
	}
	svg.icon {
		display: block;
		width: 28px;
		height: 28px;
	}
	#ipadNav .hamburgerBtn {
		fill: #fff;
	}
	#ipadNav .clossBtn {
		fill: #0032be;
	}
	#ipadNav .hamburgerBtn.active {
		cursor: none;
		opacity: 0;
		z-index: -99;
	}
	#ipadNav .clossBtn {
		position: absolute;
		right: 0;
		top: 0;
		cursor: none;
		opacity: 0;
		transition: opacity 1s;
		margin: 10px 20px;
		z-index: -99;
	}
	#ipadNav .clossBtn.active {
		cursor: pointer;
		opacity: 1;
		z-index: 99;
	}
	#ipadNav .navigator {
		display: flex;
		/* overflow: hidden; */
		flex-direction: column;
		justify-content: space-around;
		align-items: center;
		width: 100%;
		height: 0vh;
		opacity: 0;
		transition: height 1s, opacity 1s;
	}
	#ipadNav .navigator.active {
		opacity: 1;
		height: 30vh;
	}
}
.goDown.tranCenter {
	top: 90%;
}
.goDownBtn {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	cursor: pointer;
}
.goDownBtn svg {
	animation-iteration-count: infinite;
	animation-timing-function: ease-in-out;
	animation-duration: 1.5s;
}

.goDownBtn svg:nth-child(3) {
	animation-name: godown1;
}
.goDownBtn svg:nth-child(2) {
	animation-name: godown2;
	animation-delay: 0.3s;
}
.goDownBtn svg:nth-child(1) {
	animation-name: godown3;
	animation-delay: 0.6s;
}
@keyframes godown1 {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0.3;
	}
}
@keyframes godown2 {
	0% {
		opacity: 0.7;
	}
	100% {
		opacity: 0.2;
	}
}
@keyframes godown3 {
	0% {
		opacity: 0.5;
	}
	100% {
		opacity: 0.1;
	}
}

.socialMedia {
	position: absolute;
	bottom: -100px;
	left: 0;
	display: flex;
	gap: 20px;
	margin-left: 30px;
	transition: all 0.5s;
}
.GoTop {
	position: absolute;
	bottom: 0px;
	right: 0;
	display: flex;
	margin-right: 30px;
	opacity: 0;
	transition: all 0.5s;
}
.socialMedia.ani {
	bottom: 0px;
}
.GoTop.ani {
	opacity: 1;
}
.socialMedia .box,
.GoTop .box {
	width: 64px;
	height: 64px;
	border-radius: 10px;
	background-color: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 5%;
	margin-bottom: 20px;
	cursor: pointer;
}
.GoTop .box {
	border-radius: 50%;
	overflow: hidden;
}
.socialMedia .box img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.GoTop .box img {
	width: 60%;
	height: 60%;
	object-fit: contain;
}
.socialMedia .box.FB img {
	width: 90%;
	height: 90%;
}
@media screen and (max-width: 768px) {
	.socialMedia .box,
	.GoTop .box {
		width: 52px;
		height: 52px;
	}
}
@media screen and (max-width: 450px) {
	.socialMedia .box,
	.GoTop .box {
		width: 44px;
		height: 44px;
		margin-bottom: 10px;
	}
	.socialMedia {
		gap: 15px;
		margin-left: 20px;
	}
	.GoTop {
		margin-right: 20px;
	}
}

footer {
	width: 100%;
	background-color: #fff;
	padding: 2% 0;
}
footer .container {
	flex-direction: column;
	align-items: center;
}
footer .container i {
	font-size: 16px;
	color: #0032be;
}
footer .container span {
	font-size: 16px;
	color: #0032be;
	font-weight: normal;
	line-height: 1.5;
}
.container .contact {
	display: block;
}

@media screen and (max-width: 1200px) {
	footer .container {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
	.container .contact {
		display: flex;
		flex-direction: column;
	}
	footer .container i {
		display: none;
	}
	.container .contact.chinese {
		order: 2;
		align-items: end;
	}
}
@media screen and (max-width: 1024px) {
	footer .container span {
		font-size: 14px;
	}
}
@media screen and (max-width: 768px) {
	footer .container {
		width: 85%;
	}
	.container .contact {
		display: none;
		flex-direction: column;
		align-items: start;
	}
	footer .container.active .contact.chinese {
		display: flex;
		align-items: start;
	}
	footer .container .english {
		display: flex;
	}
	footer .container.active .english {
		display: none;
	}
}
@media screen and (max-width: 450px) {
	footer .container {
		width: 90%;
	}
	footer .container span {
		font-size: 12px;
		white-space: nowrap;
	}
}
