/**
 * Homepage specific styling goes here. Excluded on all subpages
 *
 * @format
 */

/* For most builds, this stylesheet should be wiped and started fresh */

img {
	height: auto;
}

/* PRELOADER */
.preloader-outer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 9;
	width: 100%;
	height: 100vh;
	background-color: var(--color-white);
	transition: opacity 600ms ease-out;
}
.preloader-outer.active {
	visibility: visible !important;
}
.preloader-outer.preloader-remove {
	opacity: 0;
	pointer-events: none;
}
.preloader-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
}
.preloader-inner p {
	margin-bottom: 15px;
}
.preloader-inner p:last-of-type {
	margin: 0;
}
.preloader-part {
	margin: 20px;
	display: none;
}
.preloader-part-left.active {
	display: block;
	-webkit-animation: fadeinright 800ms ease-out;
	animation: fadeInRight 800ms ease-out;
}
.preloader-part-right.active {
	display: block;
	-webkit-animation: fadeinleft 500ms ease-out;
	animation: fadeInLeft 500ms ease-out;
}

/* hero */
.hero {
	position: relative;
	min-height: 468px;
	overflow: hidden;
}

.hero .row-wide {
	max-width: 1437px;
}

.hero-holder {
	position: relative;
	z-index: 1;
}

.hero-content {
	padding-top: 78px;
	text-transform: uppercase;
	color: var(--color-white);
	text-align: center;
}

.hero-title {
	color: inherit;
	line-height: 1;
	font-size: 4.375rem;
	font-weight: 300;
	letter-spacing: 0.25rem;
	margin-bottom: 0;
}

.hero-sub-title {
	font-size: 0.875rem;
	letter-spacing: 9px;
	margin-bottom: 10px;
	font-weight: 400;
	animation-delay: 2800ms;
}

.hero-title span {
	display: block;
	animation-delay: 3200ms;
}

.hero-title strong {
	font-weight: 300;
	display: block;
	animation-delay: 3600ms;
}

.hero-image {
	display: flex;
	justify-content: flex-end;
	flex-direction: column;
	width: 180px;
	margin: -40px auto 0;
	height: 265px;
}

.hero-image img {
	margin-left: auto;
	max-width: 100%;
	width: 100%;
	height: auto;
	display: block;
}

.hero-piece {
	display: -webkit-flex;
	display: -moz-flex;
	display: -o-flex;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	-webkit-box-pack: center;
	justify-content: center;
	margin-top: -1px;
	margin-bottom: 3px;
	width: 100%;
	transition: margin-bottom 0.5s;
}

.hero-piece.is-active {
	margin-bottom: 0;
}

.hero-piece:last-of-type {
	margin-bottom: 0;
}

.hero-piece1 {
	animation-delay: 1000ms;
}

.hero-piece2 {
	animation-delay: 1200ms;
}

.hero-piece3 {
	animation-delay: 1600ms;
}

.hero-piece4 {
	animation-delay: 2000ms;
}

.hero-piece5 {
	animation-delay: 2400ms;
}

.hero-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.hero-bg.animated {
	animation-delay: 300ms;
}

.hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (min-width: 768px) {
	.hero {
		min-height: 580px;
		display: flex;
		align-items: center;
	}

	.hero-holder {
		display: flex;
		justify-content: space-between;
	}

	.hero-content {
		width: 50%;
		text-align: unset;
		padding-top: 120px;
	}

	.hero-title {
		letter-spacing: 0.5rem;
	}

	.hero-sub-title {
		font-size: 1.25rem;
		letter-spacing: 15px;
		padding-left: 45px;
		font-weight: 300;
	}

	.hero-title strong {
		padding-left: 50px;
	}

	.hero-image {
		margin-left: auto;
		width: 324px;
		height: auto;
		margin-bottom: -139px;
	}

	.hero-piece {
		margin-bottom: 5px;
	}
}

@media screen and (min-width: 1025px) {
	.hero {
		min-height: 720px;
	}

	.hero-sub-title {
		font-size: 1.875rem;
		letter-spacing: 26px;
		padding-left: 77px;
	}

	.hero-content {
		width: 57%;
		padding-top: 163px;
	}

	.hero-title {
		font-size: 5rem;
	}

	.hero-title strong {
		padding-left: 135px;
	}

	.hero-image {
		width: 390px;
		margin-bottom: -170px;
	}
}

@media screen and (min-width: 1200px) {
	.hero-title {
		font-size: 6.875rem;
	}

	.hero-sub-title {
		font-size: 2.063rem;
	}

	.hero-image {
		margin-bottom: -138px;
		width: 400px;
	}
}

@media screen and (min-width: 1441px) {
	.hero {
		min-height: 939px;
	}

	.hero-sub-title {
		font-size: 2.5rem;
	}

	.hero-title {
		font-size: 10rem;
	}

	.hero-image {
		width: 39%;
		height: 800px;
		margin-bottom: -191px;
	}

	.hero-image img {
		width: auto;
	}

	.hero-piece {
		margin-bottom: 8px;
	}
}

/* intro */
.intro {
	overflow: hidden;
	position: relative;
	z-index: 1;
	text-align: center;
	padding-top: 30px;
	padding-bottom: 73px;
	color: var(--color-secondary);
}

.intro .row-narrow {
	max-width: 900px;
}

.intro-heading {
	margin-bottom: 29px;
	color: var(--color-primary);
}

.intro h1 {
	font-size: 2.063rem;
	line-height: 1.27;
	margin-bottom: 12px;
	letter-spacing: -0.044rem;
}

.intro h1 span {
	color: var(--color-secondary);
}

.intro-heading p:last-of-type {
	margin-bottom: 0;
}

.intro-block {
	margin-bottom: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: calc(var(--gutter-size) * -1);
	margin-right: calc(var(--gutter-size) * -1);
}

.intro-image:not(:last-of-type) {
	margin-right: 7px;
}

.intro-image img {
	width: 100%;
	display: block;
}

.intro-btn {
	overflow: hidden;
}

.intro-bg {
	display: none;
}

@media screen and (min-width: 768px) {
	.intro {
		padding-top: 100px;
		padding-bottom: 84px;
	}

	.intro:before,
	.intro:after {
		position: absolute;
		top: 0;
		right: -300px;
		content: '';
		pointer-events: none;
		background: url(../images/intro-shape1.svg) no-repeat;
		width: 744px;
		height: 414px;
	}

	.intro:after {
		top: unset;
		right: unset;
		bottom: 0;
		left: 0;
		background: url(../images/intro-shape2.svg) no-repeat;
		width: 600px;
		height: 843px;
	}

	.intro h1 {
		font-size: 2.813rem;
		letter-spacing: -2px;
		margin-bottom: 21px;
	}

	.intro-heading {
		margin-bottom: 40px;
	}

	.intro-block {
		margin-bottom: 20px;
		margin-left: 0;
		margin-right: 0;
	}

	.intro-image:not(:last-of-type) {
		margin-right: 15px;
	}

	.intro-bg {
		display: block;
		position: absolute;
		z-index: -1;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		opacity: 0.8;
		pointer-events: none;
	}

	.intro-bg img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.intro-bg:before {
		position: absolute;
		width: 100%;
		height: 100%;
		top: 0;
		right: 0;
		content: '';
		pointer-events: none;
		background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
	}
}

@media screen and (min-width: 1441px) {
	.intro:before,
	.intro:after {
		right: 0;
	}
}

/* trust */
.trust {
	position: relative;
	padding-top: 34px;
	padding-bottom: 40px;
	color: var(--color-white);
}

.trust-info {
	position: relative;
	z-index: 1;
}

.trust-thumb-mob {
	text-align: center;
	margin-bottom: 15px;
}

.trust-title {
	max-width: 250px;
	margin: 0 auto;
}

.trust-info h2 {
	color: inherit;
	margin-bottom: 33px;
	font-size: 1.938rem;
	text-align: center;
	letter-spacing: -1px;
}

.trust-item {
	font-size: 1.063rem;
	font-weight: 400;
	display: flex;
	align-items: center;
	margin-bottom: 22px;
}

.trust-item:last-of-type {
	margin-bottom: 0;
}

.trust-item p:last-of-type {
	margin-bottom: 0;
}

.trust-icon {
	min-width: 41px;
	height: 41px;
	margin-right: 19px;
	overflow: hidden;
}

.trust-icon img {
	height: 41px;
	animation-delay: 100ms;
}

.trust-icon.icon2 img {
	animation-delay: 200ms;
}

.trust-icon.icon3 img {
	animation-delay: 300ms;
}

.trust-icon.icon4 img {
	animation-delay: 400ms;
}

.trust-icon.icon5 img {
	animation-delay: 500ms;
}

.trust-icon.icon6 img {
	animation-delay: 600ms;
}

.trust-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.trust-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (min-width: 400px) {
	.trust-title {
		max-width: none;
	}
}

@media screen and (min-width: 768px) {
	.trust {
		padding-top: 99px;
		padding-bottom: 94px;
	}

	.trust-info h2 {
		font-size: 2.5rem;
		text-align: left;
	}

	.trust-item:last-of-type {
		margin-bottom: 35px;
	}
}

/* testimonials */
.testimonials {
	text-align: center;
	position: relative;
	padding-top: 48px;
	padding-bottom: 50px;
}

.testimonials-text-slide {
	position: absolute;
	top: 15px;
	left: -15px;
	letter-spacing: -0.219rem;
	font-size: 4.188rem;
	width: 100%;
	opacity: 0.05;
	font-weight: 700;
	text-align: center;
	pointer-events: none;
	line-height: 1;
	color: var(--color-primary);
	white-space: nowrap;
}

.testimonials-text-slide span {
	display: inline-block;
}

.testimonials .row-narrow {
	max-width: 780px;
}

.testimonials h2 {
	font-size: 2.063rem;
	margin-bottom: 30px;
	letter-spacing: -1px;
}

.testimonials h2 span {
	display: inline-block;
	color: var(--color-secondary);
}

.testimonials-item {
	text-align: center;
	font-weight: 400;
	font-size: 1.188rem;
	letter-spacing: -1px;
	margin-bottom: 15px;
}

.testimonials-btn {
	text-align: center;
}

.testimonials-controller {
	margin-top: 20px;
	margin-bottom: 16px;
	display: flex;
	justify-content: center;
	width: 100%;
}

.testimonials-controller button {
	font-weight: 300;
	color: #7d2b40;
}

.testimonials-controller button:hover,
.testimonials-controller button:focus {
	color: var(--color-primary);
}

.testimonials .swiper-button-prev {
	margin-right: 12px;
}
.testimonials .swiper-button-prev,
.testimonials .swiper-button-next {
	position: unset;
	inset: auto;
}

.testimonials .swiper-slide {
	opacity: 0;
}

.testimonials .swiper-slide-active {
	opacity: 1;
}

@media screen and (min-width: 768px) {
	.testimonials {
		padding-top: 83px;
		padding-bottom: 83px;
	}

	.testimonials-text-slide {
		top: 35px;
		letter-spacing: -0.125rem;
		font-size: 7.5rem;
	}

	.testimonials h2 {
		font-size: 2.813rem;
	}
}

@media screen and (min-width: 1025px) {
	.testimonials {
		padding-top: 133px;
	}

	.testimonials-text-slide {
		font-size: 14.813rem;
	}

	.testimonials-item {
		margin-bottom: 44px;
	}

	.testimonials-controller {
		margin: 0 auto;
		position: absolute;
		top: 53%;
		left: 50%;
		justify-content: space-between;
		max-width: 900px;
		transform: translate(-50%, -50%);
	}
	.testimonials .swiper-button-prev {
		margin-right: 0;
		position: absolute;
		left: 0;
	}
	.testimonials .swiper-button-next {
		position: absolute;
		right: 0;
	}
}

@media screen and (min-width: 1200px) {
	.testimonials-controller {
		max-width: 1100px;
	}
}

@media screen and (min-width: 1441px) {
	.testimonials {
		padding-top: 193px;
		padding-bottom: 68px;
	}
	.testimonials-text-slide {
		top: 84px;
	}
}

/* services */
.services {
	padding-bottom: 37px;
	background-color: var(--color-gray);
}

.services-text {
	font-weight: 400;
}

.services h2 {
	font-size: 2.063rem;
}

.services h2 span {
	color: var(--color-secondary);
}

.services img {
	margin-bottom: 27px;
	width: calc(100% + var(--gutter-size) * 2);
	margin-left: calc(var(--gutter-size) * -1);
}

.services-links a {
	font-weight: 600;
}

.services-links a:hover,
.services-links a:focus {
	text-decoration: underline;
}

.services-links li {
	margin-bottom: 12px;
}

.services-btn {
	overflow: hidden;
}

@media screen and (min-width: 768px) {
	.services {
		padding-top: 103px;
		padding-bottom: 70px;
	}

	.services-holder {
		display: flex;
		justify-content: space-between;
	}

	.services-text {
		width: 32%;
		font-weight: 400;
		padding-top: 3px;
	}

	.services h2 {
		font-size: 2.5rem;
		margin-bottom: 60px;
	}

	.services-right {
		width: 65.7%;
	}

	.services img {
		margin-bottom: 38px;
		width: 100%;
		margin-left: 0;
	}
}

/* solution */
.solution {
	padding-top: 32px;
	padding-bottom: 34px;
}

.solution-image {
	margin-bottom: 33px;
}

.solution-image.animated {
	animation: image-reveal-left 1200ms cubic-bezier(0.72, 0.24, 0.19, 0.82) forwards;
}

@keyframes image-reveal-left {
	0% {
		clip-path: inset(0 100% 0 0);
		opacity: 1;
	}

	100% {
		clip-path: inset(0 0 0 0);
		opacity: 1;
	}
}

.solution-image img {
	width: 100%;
	display: block;
	object-fit: cover;
	object-position: center;
}

.solution h2 {
	font-size: 2.063rem;
	margin-bottom: 7px;
	letter-spacing: -0.075rem;
}

.solution h2 span {
	color: var(--color-secondary);
}

.solution-text p:last-of-type {
	margin-bottom: 0;
}

.solution-item {
	display: flex;
	align-items: center;
	padding: 17px 5px 16px;
	font-weight: 700;
	letter-spacing: -0.031rem;
	line-height: 1;
	color: var(--color-secondary);
	border-bottom: solid 1px var(--color-gray-100);
}

.solution-item:first-of-type {
	border-top: solid 1px var(--color-gray-100);
}

.solution-item p:last-of-type {
	margin-bottom: 0;
}

.solution-icon {
	width: 45px;
	height: auto;
	margin-right: 13px;
	object-fit: contain;
	object-position: center;
}

.solution-item:last-of-type {
	margin-bottom: 14px;
}

@media screen and (min-width: 768px) {
	.solution {
		padding-top: 69px;
		padding-bottom: 92px;
	}

	.solution-holder {
		display: flex;
		justify-content: space-between;
	}

	.solution-image {
		width: 41.2%;
		margin-bottom: 0;
		margin-left: calc(var(--gutter-size) * -1);
	}

	.solution-text {
		width: 53.6%;
	}

	.solution h2 {
		font-size: 2.5rem;
	}
}

@media screen and (min-width: 1025px) {
	.solution {
		padding-top: 105px;
		padding-bottom: 96px;
	}

	.solution-image {
		width: 46.4%;
		margin-right: 40px;
	}

	.solution-image img {
		height: auto;
	}

	.solution-text {
		flex: 1;
	}

	.solution-item {
		padding: 17px 9px 16px;
	}
}

@media screen and (min-width: 1200px) {
	.solution-image {
		margin-right: 80px;
	}
}

/* insight */
.insight {
	padding-top: 45px;
	padding-bottom: 69px;
	background-color: var(--color-gray);
}

.insight h2 {
	font-size: 2.063rem;
	text-align: center;
	margin-bottom: 25px;
}

.insight-block {
	margin-bottom: 30px;
}

.insight-item {
	display: block;
	text-decoration: none;
}

.insight-item:not(:last-of-type) {
	margin-bottom: 25px;
}

.insight-date {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.75rem;
	font-weight: 500;
	margin-bottom: 10px;
	color: var(--color-primary);
}

.insight-date li:not(:last-of-type):after {
	content: '|';
	margin: 0 2px;
}

.insight-item h4 {
	font-size: 1.25rem;
	margin-bottom: 11px;
	letter-spacing: -0.031rem;
	transition: all 0.3s;
	color: var(--color-secondary);
}

.insight-link {
	font-weight: 700;
	letter-spacing: -0.031rem;
}

.insight-link i {
	margin-left: 4px;
	vertical-align: middle;
	font-size: 1.125rem;
}

.insight-item:focus h4,
.insight-item:hover h4 {
	color: var(--color-primary);
}

.insight-btn {
	overflow: hidden;
}

@media screen and (min-width: 768px) {
	.insight {
		padding-top: 80px;
		padding-bottom: 77px;
	}

	.insight h2 {
		font-size: 2.5rem;
		letter-spacing: -1px;
		margin-bottom: 51px;
	}

	.insight-block {
		display: grid;
		column-gap: 32px;
		margin-bottom: 55px;
		grid-template-columns: repeat(3, 1fr);
	}

	.insight-item:not(:last-of-type) {
		margin-bottom: 0;
	}

	.insight-item h4 {
		font-size: 1.375rem;
		margin-bottom: 29px;
	}

	.insight-btn {
		text-align: center;
	}
}

/* connect */
.connect {
	padding-top: 44px;
	padding-bottom: 65px;
	position: relative;
	font-weight: 400;
	font-size: 1.125rem;
	background-color: var(--color-red);
}

.connect-holder {
	position: relative;
	z-index: 1;
	color: var(--color-white);
}

.connect-text {
	margin-bottom: 44px;
	line-height: 1.84;
}

.connect p:last-of-type {
	margin-bottom: 0;
}

.connect-item {
	padding-left: 38px;
	position: relative;
	letter-spacing: -0.031rem;
}

.connect-item:not(:last-of-type) {
	margin-bottom: 17px;
}

.connect-item a {
	color: var(--color-white);
}

.connect-item a:focus,
.connect-item a:hover {
	color: var(--color-alternate);
}

.connect-item i {
	position: absolute;
	top: 4px;
	left: 0;
	font-size: 1.375rem;
	color: var(--color-alternate);
}

.connect-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	opacity: 0.2;
}

.connect-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (min-width: 768px) {
	.connect {
		padding-top: 113px;
		padding-bottom: 109px;
	}

	.connect-holder {
		display: flex;
		justify-content: space-between;
	}

	.connect-text {
		width: 54%;
		margin-bottom: 0;
	}

	.connect-right {
		width: 42%;
	}

	.connect-item {
		font-size: 1.25rem;
		padding-left: 40px;
	}

	.connect-item:not(:last-of-type) {
		margin-bottom: 21px;
	}
}
