/*------------------------------------*
  >>> 404 PAGE STYLES
*------------------------------------*/

.error-wrapper {
	align-items: center;
	color: var(--nexira-body-text-color);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0;
	text-align: center;
	width: 100%;
}

.error-wrapper .error-anime,
.error-wrapper .error-content {
	align-items: center;
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
}

.error-wrapper .error-anime {
	margin: 0 0 50px;
	padding: 0 150px;
	position: relative;
}

.error-wrapper .error-title {
	display: inline-flex;
	font-size: var(--nexira-h4-font-size);
	justify-content: center;
	line-height: 1;
	margin: 0 0 20px;
	width: 100%;
}

.error-wrapper h2.error-title {
	color: var(--nexira-body-background-color);
	font-size: calc(var(--nexira-h2-font-size) + 15px);
	text-shadow: 2px 2px var(--nexira-heading-color), -2px 2px var(--nexira-heading-color), 2px -2px var(--nexira-heading-color), -2px -2px var(--nexira-heading-color), 5px 5px 0px rgba(var(--nexira-heading-color-rgb), .2);
}

.error-wrapper .error-text {
	display: inline-flex;
	font-size: calc(var(--nexira-body-font-size) - 2px);
	justify-content: center;
	margin: 0 0 25px 0;
	width: 100%;
}

.error-wrapper a {
	background: var(--nexira-primary-color);
	border: 1px solid var(--nexira-primary-color);
	border-radius: 12px;
	color: var(--nexira-teritary-color);
	display: inline-block;
	font-size: calc(var(--nexira-body-font-size) - 2px);
	font-weight: 600;
	line-height: 1;
	overflow: hidden;
	padding: 19px 32px;
	position: relative;
	text-transform: uppercase;
	-webkit-transition: var(--transition);
	transition: var(--transition);
	z-index: 0;
}

.error-wrapper:not(.type-3) a:before,
.error-wrapper:not(.type-3) a:after {
	--skew: 0.2;
	background: var(--nexira-body-background-color);
	content: "";
	display: block;
	height: 100%;
	left: calc(-50% - 50%* var(--skew));
	pointer-events: none;
	position: absolute;
	top: -100%;
	transform: skew(calc(150deg* var(--skew))) translateY(var(--progress, 0));
	-webkit-transition: var(--transition);
	transition: var(--transition);
	width: 100%;
	z-index: -1;
}

.error-wrapper:not(.type-3) a:after {
	--progress: 0%;
	left: calc(50% + 50%* var(--skew));
	top: 100%;
}

.error-wrapper:not(.type-3) a:hover:before {
	--progress: 100%;
}

.error-wrapper:not(.type-3) a:hover:after {
	--progress: -100%;
}

.error-wrapper:not(.type-3) a:hover {
	color: var(--nexira-primary-color);
}

.error_page .circle {
	animation: circle-anim ease infinite;
	perspective: 0;
	transform-box: fill-box;
	transform-origin: center;
}

.error_page .circle.c1 {
	animation-duration: 2s;
}

.error_page .circle.c2 {
	animation-duration: 3s;
}

.error_page .circle.c3 {
	animation-duration: 1s;
}

.error_page .circle.c4 {
	animation-duration: 1s;
}

.error_page .circle.c5 {
	animation-duration: 2s;
}

.error_page .circle.c6 {
	animation-duration: 3s;
}

.four.a {
	animation-duration: 3s;
	transform-box: fill-box;
	transform-origin: bottom left;
}

.four.b {
	animation-duration: 3s;
	transform-box: fill-box;
	transform-origin: bottom right;
}

#ou {
	animation-duration: 6s;
	transform-box: fill-box;
	transform-origin: center;
}

.bg_shapes .cls-1 {
	fill: rgba(var(--nexira-primary-color-rgb), 0.1);
}

.bg_shapes .circle.c1 {
	animation: circle-anim-1 50s linear infinite;
	fill: var(--nexira-primary-color);
}

.bg_shapes .circle.c3 {
	animation: circle-anim-1 50s linear infinite;
	fill: rgba(var(--nexira-primary-color-rgb), 0.1);
}

.bg_shapes .circle.c5 {
	animation: circle-anim-1 50s linear infinite;
	fill: var(--nexira-primary-color);
}

.bg_shapes .circle.c2 {
	animation: circle-anim-2 50s linear infinite;
	fill: rgba(var(--nexira-primary-color-rgb), 0.1);
}

.bg_shapes .circle.c4 {
	animation: circle-anim-2 50s linear infinite;
	fill: var(--nexira-primary-color);
}

.bg_shapes .circle.c6 {
	animation: circle-anim-2 50s linear infinite;
	fill: rgba(var(--nexira-primary-color-rgb), 0.1);
}

.cls-0 {
	animation: color-animation 5s linear infinite alternate both;
}

.cls-2 {
	opacity: 0.6;
}

.cls-2,
.cls-3 {
	fill: var(--nexira-primary-color);
}

/* Animations */

@keyframes circle-anim-1 {
	25% {
		transform: rotate(10deg) translateY(5px);
	}

	75% {
		transform: rotate(-10deg);
	}
}

@keyframes circle-anim-2 {
	25% {
		transform: translateY(10px) rotate(5deg);
	}

	75% {
		transform: rotate(-5deg);
	}
}

@keyframes circle-anim {
	50% {
		transform: scale(0.2) rotateX(360deg) rotateY(360deg);
	}
}

@keyframes color-animation {
	0% {
		fill: rgba(var(--nexira-primary-color-rgb), 0.4);
	}

	25% {
		fill: rgba(var(--nexira-primary-color-rgb), 0.6);
	}

	50% {
		fill: var(--nexira-primary-color);
	}

	75% {
		fill: rgba(var(--nexira-primary-color-rgb), 0.6);
	}

	100% {
		fill: rgba(var(--nexira-primary-color-rgb), 0.4);
	}
}

/* Responsive */

/* Laptop, 1281px and up */
@media (min-width: 1281px) and (max-width: 1400px) {

	.error-wrapper .error-anime {
		padding: 0 120px;
	}

}

/* Tablets - Landscape, 1025px and up */
@media (min-width: 1025px) and (max-width: 1280px) {

	.error-wrapper .error-anime {
		padding: 0 100px;
	}

}

/* Tablets - Portrait, 768px and up */
@media (min-width: 768px) and (max-width: 1024px) {

	.error-wrapper .error-anime {
		padding: 0 50px;
	}

}

/* Mobile - Landscape, less than 767px */
@media (min-width: 576px) and (max-width: 767px) {

	.error-wrapper .error-anime {
		padding: 0;
	}

}

/* Mobile - Portrait, less than 575px */
@media (max-width: 575px) {

	.error-wrapper .error-anime {
		padding: 0;
	}

	.error-wrapper h2.error-title {
		font-size: calc(var(--nexira-h2-font-size) + 10px);
	}

	.error-wrapper .error-title {
		font-size: var(--nexira-h4-font-size);
	}

}