/* Homepage specific styling goes here. Excluded on all subpages */
/* For most builds, this stylesheet should be wiped and started fresh */

/* Shared heading mask enter (matches banner-title) */
.home-heading {
	overflow: clip;
}

.home-heading>.animate {
	display: block;
}

/* Hero */
.hero {
	padding-top: 86px;
	padding-bottom: 48px;
	height: 100dvh;
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}

.hero:before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.32) 0%, rgba(0, 0, 0, 0.48) 100%);
	transform: matrix(-1, 0, 0, 1, 0, 0);
	opacity: 0;
	transition: opacity 800ms ease;
	content: '';
	pointer-events: none;
}

.hero.hero-video-visible:before {
	opacity: 1;
}

.hero:after {
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: 1;
	width: 88px;
	height: 88px;
	background-image: url('../images/hero-img-shape.svg');
	background-repeat: no-repeat;
	background-size: contain;
	transform: translate(calc(-50vw + 50%), calc(-50vh + 50%)) scale(1.15);
	transform-origin: 50% 50%;
	content: '';
	pointer-events: none;
	will-change: transform;
}

.hero.hero-mark-settled:after {
	animation: heroMarkSettle 450ms cubic-bezier(0.05, 0.9, 0.1, 1) both;
}

@keyframes heroMarkSettle {
	0% {
		transform: translate(calc(-50vw + 50%), calc(-50vh + 50%)) scale(1.15);
	}

	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}
}

.hero .row {
	width: 100%;
	max-width: calc(1825px + var(--gutter-size) * 2);
}

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

.hero-subtitle {
	margin-bottom: 6px;
	font-size: 1.125rem;
	font-weight: 500;
	text-transform: uppercase;
	overflow: hidden;
	line-height: 1.2;
	letter-spacing: 0.063rem;
	padding-bottom: 0.15em;
}

.hero-line {
	display: block;
	opacity: 0;
}

.hero.hero-text1-in .hero-line-upper,
.hero.hero-text2-in .hero-line-title {
	animation-name: fadeInUp;
	animation-duration: 700ms;
	animation-fill-mode: both;
}

.hero-title {
	margin-bottom: 0;
	font-size: 2.938rem;
	font-weight: 600;
	color: inherit;
	line-height: 1.05;
	letter-spacing: -0.144rem;
	overflow: visible;
	padding-bottom: 0.12em;
}

.hero-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #010312;
	pointer-events: none;
}

.hero-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
	opacity: 0;
	transition: opacity 900ms ease;
}

.hero-video.is-playing {
	opacity: 1;
}

.hero-video-toggle {
	position: absolute;
	z-index: 2;
	left: 20px;
	bottom: 20px;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-white);
	background-color: rgba(4, 18, 22, 0.45);
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 0;
	cursor: pointer;
	pointer-events: auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity 400ms ease, visibility 400ms ease, background-color 200ms ease, border-color 200ms ease;
}

.hero.hero-video-visible .hero-video-toggle {
	opacity: 1;
	visibility: visible;
}

.hero-video-toggle:hover,
.hero-video-toggle:focus {
	color: var(--color-white);
	background-color: rgba(4, 18, 22, 0.7);
	border-color: rgba(255, 255, 255, 0.6);
}

.hero-video-toggle i {
	font-size: 0.875rem;
	line-height: 1;
}

@media (prefers-reduced-motion: reduce) {

	.hero:before,
	.hero-video,
	.hero-video-toggle {
		transition: none;
	}

	.hero.hero-mark-settled:after {
		animation: none;
		transform: translate3d(0, 0, 0) scale(1);
	}

	.hero.hero-text1-in .hero-line-upper,
	.hero.hero-text2-in .hero-line-title {
		animation: none;
		opacity: 1;
	}

	.hero.hero-video-visible:before,
	.hero-video.is-playing,
	.hero.hero-video-visible .hero-video-toggle {
		opacity: 1;
	}

	.hero.hero-video-visible .hero-video-toggle {
		visibility: visible;
	}
}

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

	.hero:before {
		display: none;
	}

	.hero:after {
		width: 183px;
		height: 183px;
	}

	.hero-subtitle {
		margin-bottom: 4px;
		font-size: 1.75rem;
		letter-spacing: 0.125rem;
	}

	.hero-title {
		margin-left: 100px;
		font-size: 5rem;
		line-height: 1;
		letter-spacing: -0.313rem;
	}
}

@media screen and (min-width: 1025px) {
	.hero-text {
		max-width: 100%;
		padding-right: 24px;
	}
}

@media screen and (min-width: 1200px) {
	.hero {
		padding-bottom: 140px;
		align-items: flex-end;
	}

	.hero-subtitle {
		font-size: 2.313rem;
	}

	.hero-title {
		margin-left: 140px;
		font-size: 6.75rem;
		letter-spacing: -0.375rem;
	}
}

@media screen and (min-width: 1440px) {
	.hero {
		padding-bottom: 120px;
		align-items: flex-end;
	}

	.hero-title {
		margin-left: 160px;
		font-size: 8.75rem;
		line-height: 0.95;
		letter-spacing: -0.438rem;
	}
}

/* Intro */
.intro {
	padding-bottom: 52px;
	padding-top: 56px;
	text-align: center;
}

.intro-text {
	position: relative;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-size: 1.375rem;
	max-width: 670px;
	color: var(--color-black);
	line-height: 1.23;
}

.intro-shape {
	position: relative;
	z-index: 0;
	margin: 0 0 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	pointer-events: none;
}

.intro-shape img {
	width: 100%;
	height: auto;
	transform: scale(0.82);
	transform-origin: 50% 50%;
	will-change: transform;
	backface-visibility: hidden;
}

.intro-heading,
.intro-body {
	position: relative;
	z-index: 1;
}

.intro h2,
.intro-heading {
	margin-bottom: 14px;
	font-size: 2.5rem;
	color: inherit;
	line-height: 1.25;
	letter-spacing: -0.025rem;
}

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

@media (prefers-reduced-motion: reduce) {
	.intro-shape img {
		transform: none !important;
	}
}

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

	.intro-text {
		font-size: var(--font-size-h1);
	}

	.intro-shape {
		margin-bottom: 28px;
		width: 220px;
		height: 220px;
	}

	.intro h2,
	.intro-heading {
		margin-bottom: 16px;
		font-size: 4.5rem;
		line-height: 1.09;
		letter-spacing: -0.044rem;
	}
}

/* Team */
.team {
	padding-bottom: 32px;
	text-align: center;
}

.team h2 {
	margin-bottom: 52px;
	font-size: 2.5rem;
	color: var(--color-black);
	line-height: 1.25;
	letter-spacing: -0.025rem;
}

.team .button {
	padding: 20px;
	min-width: 230px;
	font-size: 1.25rem;
}

.team .swiper {
	margin-bottom: 32px;
	margin-left: -94px;
	overflow: visible;
}

.team .swiper-wrapper {
	transition-timing-function: linear !important;
}

.team .js-team-slider:not(.swiper-initialized) {
	max-height: 450px;
	overflow: hidden;
	visibility: hidden;
}

.team .js-team-slider.swiper-initialized {
	visibility: visible;
}

.team .swiper-slide {
	width: 350px;
}

@media screen and (min-width: 768px) {
	.team {
		padding-bottom: 59px;
	}

	.team h2 {
		margin-bottom: 56px;
		font-size: 4.5rem;
		line-height: 1.09;
		letter-spacing: -0.044rem;
	}

	.team .swiper {
		margin-bottom: 41px;
		margin-left: 0;
	}
}

/* block-team */
.block-team {
	display: block;
	width: 100%;
	position: relative;
	color: var(--color-white);
	overflow: hidden;
	text-decoration: none;
	background-color: #C8CFDE;
}

.block-team:before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 115%;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 58%, rgba(0, 0, 0, 0.85) 82%, #000000 100%);
	content: '';
	pointer-events: none;
	opacity: 0.9;
	transition: transform 0.25s ease, opacity 0.25s ease;
}

.block-team img {
	width: 100%;
	transition: transform 0.25s ease;
}

.block-team-text {
	position: absolute;
	bottom: 24px;
	left: 0;
	z-index: 1;
	width: 100%;
	text-align: center;
	line-height: 1.5;
}

.block-team strong {
	font-size: 1.25rem;
	font-weight: 600;
	display: block;
}

.block-team span {
	display: block;
	font-size: 0.938rem;
}

.block-team:focus-visible img,
.block-team:hover img {
	transform: scale(1.05);
}

.block-team:focus-visible:before,
.block-team:hover:before {
	transform: translateY(-4%);
	opacity: 1;
}

.block-team:focus,
.block-team:focus-visible,
.block-team:hover {
	color: var(--color-white);
}

@media (prefers-reduced-motion: reduce) {

	.block-team:before,
	.block-team img {
		transition: none;
	}

	.block-team:focus-visible img,
	.block-team:hover img {
		transform: none;
	}

	.block-team:focus-visible:before,
	.block-team:hover:before {
		transform: none;
		opacity: 0.9;
	}
}

/* Dreams */
.dreams {
	padding-top: 46px;
	position: relative;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	color: var(--color-white);
	min-height: 830px;
	background-color: var(--color-blue);
	overflow: hidden;
}

.dreams>.row {
	display: flex;
	flex: 1 1 auto;
	width: 100%;
	align-self: stretch;
}

.dreams .column {
	position: relative;
	z-index: 1;
	width: 100%;
	height: auto;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 32px;
}

.dreams h2 {
	margin-bottom: 0;
	font-size: 2.5rem;
	color: inherit;
	line-height: 1.25;
	letter-spacing: -0.025rem;
}

.dreams h3 {
	margin-bottom: 35px;
	font-size: 1.5rem;
	color: inherit;
}

.dreams-item {
	margin: 0 calc(var(--gutter-size) * -1);
	padding: 36px 30px;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	position: relative;
	font-size: 1.125rem;
	background: linear-gradient(72.44deg, rgba(0, 51, 127, 0.05) 0%, rgba(0, 51, 127, 0.1) 100%);
	backdrop-filter: blur(20px);
	line-height: 1.38;
}

.dreams-titles {
	display: grid;
	align-items: center;
}

.dreams-panel,
.dreams-title {
	grid-column: 1;
	grid-row: 1;
	min-width: 0;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, 1.25rem, 0);
	transition: opacity 700ms ease, transform 700ms ease, visibility 700ms ease;
}

.dreams-panel.is-active,
.dreams-title.is-active {
	opacity: 1;
	visibility: visible;
	transform: translate3d(0, 0, 0);
}

.dreams-panel.is-leaving,
.dreams-title.is-leaving {
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, -1.25rem, 0);
}

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

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

.js-dreams-rotator {
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 16px;
}

.dreams-pagination {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
	position: relative;
	z-index: 2;
	width: 5px;
	height: 0;
	overflow: visible;
}

.dreams-pagination-track {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	transform: translateY(-50%);
}

.dreams-pagination-bullet {
	display: block;
	margin: 0 0 7px;
	padding: 0;
	height: 45px;
	width: 5px;
	opacity: 0.5;
	border: 0;
	border-radius: 0;
	background: var(--color-white);
	cursor: pointer;
}

.dreams-pagination-bullet:last-of-type {
	margin-bottom: 0;
}

.dreams-pagination-bullet.is-active {
	opacity: 1;
}

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

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

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

	.dreams .column {
		gap: 0;
	}

	.dreams h2 {
		font-size: 4.5rem;
		line-height: 1.09;
		letter-spacing: -0.044rem;
		text-align: center;
	}

	.dreams-row {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
	}

	.dreams h3 {
		margin-bottom: 20px;
		padding-right: 20px;
		width: 38%;
		font-size: var(--font-size-h2);
	}

	.dreams-item {
		margin: 0 calc(50% - 50vw) 0 0;
		padding: 33px calc(50vw - 50% + 45px) 35px 45px;
		width: 62%;
	}
}

@media screen and (min-width: 1200px) {
	.dreams {
		align-items: inherit;
	}
}

@media screen and (min-width: 1440px) {
	.dreams h3 {
		width: 35.2%;
	}

	.dreams-item {
		width: 64.8%;
	}
}

/* Services */
.services {
	padding-bottom: 59px;
	padding-top: 35px;
}

.services h2 {
	margin-bottom: 18px;
	font-size: 2.5rem;
	color: var(--color-black);
	line-height: 1.25;
	letter-spacing: -0.025rem;
}

.services-right {
	margin-bottom: 19px;
	position: relative;
}

.services-right a {
	font-size: 1.5rem;
	display: inline-block;
	font-weight: 600;
	color: var(--color-primary);
	text-decoration: none;
	line-height: 1.2;
}

.services-right a:focus,
.services-right a:hover {
	color: var(--color-secondary);
	text-decoration: underline;
}

.services .swiper {
	height: 530px;
}

.services .swiper-wrapper {
	transition-timing-function: linear !important;
}

.services .swiper:before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	background: linear-gradient(180deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 18%, rgba(255, 255, 255, 0) 82%, #FFFFFF 100%);
	content: '';
	pointer-events: none;
}

.services .swiper-slide {
	display: flex;
	align-items: center;
	height: auto;
	min-height: 64px;
	padding-top: 6px;
	padding-bottom: 6px;
	box-sizing: border-box;
}

.services .button {
	padding: 20px;
	min-width: 293px;
	font-size: 1.25rem;
	font-weight: 400;
}

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

	.services-row {
		display: flex;
		flex-wrap: wrap;
	}

	.services h2 {
		font-size: 4.5rem;
		line-height: 1.09;
		letter-spacing: -0.044rem;
	}

	.services-left {
		margin-top: 6px;
		margin-bottom: 18px;
		padding-right: 30px;
		width: 50%;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 32px;
	}

	.services-left .home-heading {
		margin-bottom: 0;
	}

	.services-right {
		margin-bottom: 0;
		width: 50%;
	}

	.services .swiper {
		margin-right: 0;
		margin-left: auto;
		max-width: 545px;
	}

	.services .swiper-slide {
		min-height: 56px;
	}
}

@media screen and (min-width: 1025px) {
	.services-left {
		width: 52%;
	}

	.services-right {
		width: 48%;
	}
}

/* Founder */
.founder {
	padding-top: 215px;
	padding-bottom: 58px;
	position: relative;
	overflow: hidden;
}

.founder:before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	background-image: url('../images/founder-mobile-shape.svg');
	background-repeat: no-repeat;
	background-size: cover;
	background-position: top right;
	content: '';
	pointer-events: none;
}

.founder .column {
	position: relative;
	z-index: 1;
}

.founder-text {
	max-width: 316px;
	position: relative;
	z-index: 1;
	font-size: 1.25rem;
}

.founder-top-text {
	margin-bottom: 103px;
}

.founder h2 {
	margin-bottom: 9px;
	font-size: 2.5rem;
	color: var(--color-black);
	line-height: 1.25;
	letter-spacing: -0.025rem;
}

.founder p {
	margin-bottom: 20px;
}

.founder-lines {
	margin-bottom: 32px;
}

.founder-lines-viewport {
	overflow: hidden;
}

.founder-lines-track {
	display: flex;
	flex-direction: column;
}

.founder-line {
	display: flex;
	align-items: center;
	padding-bottom: 22px;
	font-size: 1.688rem;
	font-weight: 600;
	color: var(--color-black);
	line-height: 1.2;
}

.js-founder-lines .founder-line {
	opacity: 0.35;
	transition: opacity 700ms ease;
}

.js-founder-lines .founder-line.is-active {
	opacity: 1;
}

.founder-lines.is-static .founder-lines-viewport {
	overflow: visible;
}

.founder-lines.is-static .founder-line {
	opacity: 1;
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	.js-founder-lines .founder-line {
		transition: none;
	}
}

.founder .button {
	padding: 20px 23px;
	font-size: 1.25rem;
	font-weight: 400;
}

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

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

@media screen and (min-width: 768px) {
	.founder {
		padding-top: 114px;
		padding-bottom: 111px;
	}

	.founder:before {
		background-image: url('../images/founder-shape.svg');
	}

	.founder-text {
		max-width: 485px;
	}

	.founder-top-text {
		margin-bottom: 64px;
	}

	.founder h2 {
		margin-bottom: 16px;
		font-size: 4.5rem;
		line-height: 1.09;
		letter-spacing: -0.044rem;
	}

	.founder p {
		margin-bottom: 22px;
	}

	.founder-line {
		padding-bottom: 22px;
		font-size: 1.875rem;
	}
}

@media screen and (min-width: 768px) and (max-aspect-ratio: 1 / 1) {
	.founder:before {
		background-color: rgba(255, 255, 255, 0.9);
		background-image: none;
	}
}

/* Discover */
.discover {
	padding-top: 48px;
	padding-bottom: 40px;
	position: relative;
	min-height: 700px;
	color: var(--color-white);
	overflow: hidden;
}

.discover:before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: radial-gradient(100% 256% at 100% 100%, #1EB343 0%, #00337F 100%);
	content: '';
	pointer-events: none;
}

.discover .row {
	display: flex;
	flex-direction: column;
	height: 100vh;
	max-height: 700px;
}

.discover-holder {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	z-index: 1;
	height: 100%;
}

.discover-left {
	margin-bottom: 30px;
	font-size: 1.125rem;
	line-height: 1.38;
}

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

.discover h2 {
	margin-bottom: 14px;
	font-size: 2.5rem;
	color: inherit;
	line-height: 1.25;
	letter-spacing: -0.025rem;
}

.discover-right {
	padding-right: 50px;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	--swiper-pagination-top: 50%;
	--swiper-pagination-bottom: auto;
}

.discover .js-news-slider {
	height: auto;
	min-height: 0;
	width: 100%;
}

.discover .js-news-slider .swiper-slide {
	display: flex;
	align-items: flex-start;
	height: auto;
}

.discover .block-news-top {
	margin-bottom: 11px;
}

.discover .block-news-top span:after {
	background-color: var(--color-white);
}

.discover .block-news-title {
	font-size: 1.875rem;
	color: var(--color-white);
}

.discover .block-news-title:focus,
.discover .block-news-title:hover {
	color: var(--color-white);
}

.discover .swiper-pagination {
	position: absolute;
	top: 50%;
	right: 0;
	bottom: auto;
	left: auto;
	width: auto;
	height: auto;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
	transform: translateY(-50%);
}

.discover .swiper-pagination.swiper-pagination-bullets {
	top: 50% !important;
	bottom: auto !important;
	left: auto;
	width: auto;
	transform: translateY(-50%);
}

.discover .swiper-pagination-bullet {
	display: block;
	margin: 0 0 7px !important;
	height: 45px;
	width: 5px;
	opacity: 0.5;
	border: 0;
	border-radius: 0;
	background: var(--color-white);
	background-color: var(--color-white);
}

.discover .swiper-pagination-bullet:last-of-type {
	margin-bottom: 0 !important;
}

.discover .swiper-pagination-bullet-active {
	opacity: 1;
	background: var(--color-white);
	background-color: var(--color-white);
}

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

.discover-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.discover-bg.js-parallax img {
	height: 100%;
	transform-origin: 50% 0%;
	will-change: transform;
}

@media screen and (min-width: 768px) {
	.discover {
		padding-top: 80px;
		padding-bottom: 85px;
		min-height: 800px;
		display: flex;
		align-items: flex-end;
		justify-content: inherit;
	}

	.discover .row {
		display: block;
		flex-direction: inherit;
		height: auto;
		min-height: auto;
	}

	.discover h2 {
		margin-bottom: 19px;
		font-size: 4.5rem;
		line-height: 1.09;
		letter-spacing: -0.044rem;
	}

	.discover-holder {
		align-items: flex-end;
		flex-direction: inherit;
		flex-wrap: wrap;
		height: auto;
	}

	.discover-left {
		margin-bottom: 0;
		width: 48%;
		font-size: 1.25rem;
		line-height: 1.7;
	}

	.discover-right {
		margin-bottom: 0;
		width: 48%;
	}

	.discover .js-news-slider {
		height: auto;
	}

	.discover .block-news-top {
		margin-bottom: 18px;
	}

	.discover .block-news-title {
		font-size: var(--font-size-h1);
	}

	/* Start the photo below the fixed header so heads aren't hidden behind it; soft fade hides the seam */
	.discover-bg {
		top: 80px;
		height: calc(100% - 80px);
	}

	.discover-bg img {
		-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 60px);
		mask-image: linear-gradient(to bottom, transparent 0, #000 60px);
	}
}

@media screen and (min-width: 1025px) {
	.discover-left {
		width: 43%;
	}

	.discover-right {
		padding-left: 3px;
		width: 42%;
	}
}

/* Reviews */
.reviews {
	padding-top: 45px;
	padding-bottom: 80px;
	position: relative;
	z-index: 1;
	text-align: center;
	overflow: hidden;
}

.reviews:before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.5) 100%);
	content: '';
	pointer-events: none;
}

.reviews .row {
	position: relative;
	z-index: 1;
	max-width: calc(1720px + var(--gutter-size) * 2);
}

.reviews-text {
	margin: 0 auto 30px;
	position: relative;
	z-index: 2;
	max-width: 740px;
	font-size: 1.25rem;
	line-height: 1.5;
}

.reviews h2 {
	margin-bottom: 12px;
	font-size: 2.5rem;
	color: inherit;
	line-height: 1;
}

.reviews h2 .animate span {
	display: block;
	color: var(--color-secondary);
}

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

.reviews .swiper {
	margin: -50px;
	padding: 50px;
	overflow: visible;
}

.reviews .swiper-pagination {
	margin-top: 20px;
	position: relative;
	inset: auto;
	z-index: 2;
}

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

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

.js-parallax {
	overflow: hidden;
}

.js-parallax picture {
	display: block;
	width: 100%;
	height: 100%;
}

.js-parallax img {
	height: 135%;
	will-change: transform;
	backface-visibility: hidden;
}

.founder-bg.js-parallax img {
	height: 125%;
}

.founder-bg img {
	object-position: center top;
}

@media (prefers-reduced-motion: reduce) {
	.js-parallax img {
		height: 100%;
		transform: none !important;
	}

	.dreams-panel,
	.dreams-title {
		transition: none;
	}

	.dreams-panel:not(.is-active),
	.dreams-title:not(.is-active) {
		display: none;
	}

	.dreams-panel.is-active,
	.dreams-title.is-active {
		opacity: 1;
		visibility: visible;
		transform: none;
	}
}

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

	.reviews-text {
		margin-bottom: 59px;
		line-height: 1.7;
	}

	.reviews h2 {
		margin-bottom: 13px;
		font-size: 4.438rem;
	}

	.reviews .swiper-pagination {
		margin-top: 43px;
	}
}

@media screen and (min-width: 1025px) {
	.reviews .swiper-slide {
		width: 560px;
	}

	.reviews .reviews-slider-fill .swiper-slide {
		width: auto;
	}

	.reviews:has(.reviews-slider-fill) .swiper-pagination {
		display: none;
	}
}

/* block-review */
.reviews-slider .swiper {
	height: auto;
}

.reviews-slider .swiper-wrapper {
	align-items: stretch;
	height: auto;
}

.reviews-slider .swiper-slide {
	height: auto;
	display: flex;
	align-self: stretch;
}

.block-review {
	padding: 32px 30px;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	align-self: stretch;
	width: 100%;
	font-size: 1.125rem;
	border-radius: 5px;
	background-color: var(--color-white);
	text-align: left;
	line-height: 1.38;
	box-shadow: 0 4px 50px rgba(0, 0, 0, 0.17);
}

.block-review p {
	margin-bottom: 0;
}

.block-review em {
	font-style: italic;
}

@media screen and (min-width: 768px) {
	.block-review {
		padding: 45px 55px;
		font-size: 1.25rem;
		line-height: 1.7;
	}
}

/* Desktop section snap (Phase 3) - active only while body.home-snap-on is set by js/homepage.js */
body.home-snap-on {
	--home-snap-header-clearance: 90px;
	overflow: hidden;
}

body.home-snap-on .home-snap {
	position: relative;
	height: 100vh;
	height: 100dvh;
	overflow: hidden;
}

body.home-snap-on .home-snap-wrapper {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	box-sizing: content-box;
	transition-property: transform;
	transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
}

body.home-snap-on .home-snap-slide {
	position: relative;
	width: 100%;
	height: 100%;
	flex-shrink: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: none;
}

body.home-snap-on .home-snap-slide::-webkit-scrollbar {
	display: none;
}

body.home-snap-on .home-snap-slide>section {
	min-height: 100%;
	box-sizing: border-box;
}

body.home-snap-on .home-snap-slide>section:not(.hero):not(.dreams):not(.discover):not(.founder) {
	padding-top: max(var(--home-snap-header-clearance), 2.5rem);
}

body.home-snap-on .intro>.row,
body.home-snap-on .team>.row,
body.home-snap-on .services>.row,
body.home-snap-on .reviews>.row,
body.home-snap-on .dreams>.row,
body.home-snap-on .discover>.row,
body.home-snap-on .founder>.row {
	width: 100%;
	box-sizing: border-box;
	align-self: stretch;
}

body.home-snap-on .intro,
body.home-snap-on .team,
body.home-snap-on .services,
body.home-snap-on .reviews {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

body.home-snap-on .reviews-slider,
body.home-snap-on .reviews .swiper {
	flex-grow: 0;
	height: auto;
}

body.home-snap-on .services-row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	width: 100%;
	box-sizing: border-box;
}

body.home-snap-on .services-left {
	flex: 1 1 52%;
	width: 52%;
	max-width: 52%;
	margin-top: 0;
	margin-bottom: 0;
	justify-content: center;
	gap: 32px;
	box-sizing: border-box;
}

body.home-snap-on .services-right {
	flex: 1 1 48%;
	width: 48%;
	max-width: 48%;
	margin-bottom: 0;
	box-sizing: border-box;
}

body.home-snap-on .dreams {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding-top: calc(var(--home-snap-header-clearance) + 24px);
	padding-bottom: 58px;
	min-height: 100%;
	height: 100%;
}

body.home-snap-on .dreams>.row {
	flex: 1 1 auto;
	height: 100%;
	min-height: 0;
	align-items: stretch;
}

body.home-snap-on .dreams .column {
	height: 100%;
	min-height: 100%;
	justify-content: space-between;
	gap: 0;
}

body.home-snap-on .dreams-row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	width: 100%;
}

body.home-snap-on .dreams-row>h3 {
	flex: 0 1 35%;
	width: 35%;
	max-width: 35%;
	margin-bottom: 0;
	padding-right: 20px;
	box-sizing: border-box;
}

body.home-snap-on .dreams-row>.dreams-item {
	flex: 1 1 65%;
	width: 65%;
	max-width: none;
	margin: 0 calc(50% - 50vw) 0 0;
	padding-right: calc(50vw - 50% + 45px);
	box-sizing: border-box;
}

body.home-snap-on .founder {
	padding-top: calc(var(--home-snap-header-clearance) + 24px);
	padding-bottom: 48px;
	height: 100%;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

body.home-snap-on .founder>.row {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	align-self: stretch;
	width: 100%;
	height: 100%;
	min-height: 0;
}

body.home-snap-on .founder .column {
	display: flex;
	align-items: center;
	width: 100%;
	height: 100%;
}

body.home-snap-on .discover {
	padding-top: calc(var(--home-snap-header-clearance) + 24px);
	padding-bottom: 48px;
	height: 100%;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

body.home-snap-on .discover>.row {
	display: flex;
	flex: 1 1 auto;
	align-items: stretch;
	align-self: stretch;
	width: 100%;
	height: 100%;
	min-height: 0;
	max-height: none;
}

body.home-snap-on .discover-holder {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-end;
	justify-content: space-between;
	width: 100%;
	max-width: 100%;
	height: 100%;
	min-height: 100%;
	padding-bottom: 48px;
	box-sizing: border-box;
}

body.home-snap-on .discover-left {
	flex: 0 1 43%;
	width: 43%;
	max-width: 43%;
	margin-bottom: 0;
	box-sizing: border-box;
}

body.home-snap-on .discover-right {
	flex: 0 1 42%;
	width: 42%;
	max-width: 42%;
	padding-right: 50px;
	margin-bottom: 0;
	box-sizing: border-box;
	overflow: hidden;
}

body.home-snap-on .discover .js-news-slider,
body.home-snap-on .discover .swiper {
	max-width: 100%;
	overflow: hidden;
}

body.home-snap-on .discover .block-news-title {
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Section enter FX under snap - replayable via .is-snap-entered toggled on slide enter/leave */
body.home-snap-on {
	--snap-text-delay: 350ms;
}

body.home-snap-on .intro-shape img {
	transform: scale(0.15);
	transition: transform 1100ms cubic-bezier(0.16, 0.84, 0.44, 1);
}

body.home-snap-on .intro.is-snap-entered .intro-shape img {
	transform: scale(1.08);
}

body.home-snap-on .intro-heading {
	opacity: 0;
	transform: translate3d(-72px, 0, 0);
	transition: opacity 700ms ease var(--snap-text-delay), transform 700ms cubic-bezier(0.16, 0.84, 0.44, 1) var(--snap-text-delay);
}

body.home-snap-on .intro-body {
	opacity: 0;
	transform: translate3d(72px, 0, 0);
	transition: opacity 700ms ease var(--snap-text-delay), transform 700ms cubic-bezier(0.16, 0.84, 0.44, 1) var(--snap-text-delay);
}

body.home-snap-on .intro.is-snap-entered .intro-heading,
body.home-snap-on .intro.is-snap-entered .intro-body {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {

	body.home-snap-on .intro-heading,
	body.home-snap-on .intro-body {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

body.home-snap-on .founder-bg img {
	transform: translate3d(0, -18%, 0) scale(1.9);
	transition: transform 1100ms cubic-bezier(0.16, 0.84, 0.44, 1);
}

body.home-snap-on .founder.is-snap-entered .founder-bg img {
	transform: translate3d(0, 5%, 0) scale(1);
}

body.home-snap-on .services-left .button {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 700ms ease calc(var(--snap-text-delay) + 120ms),
		transform 700ms cubic-bezier(0.16, 0.84, 0.44, 1) calc(var(--snap-text-delay) + 120ms),
		color 200ms ease-out,
		background 200ms ease-out;
}

body.home-snap-on .services.is-snap-entered .services-left .button {
	opacity: 1;
	transform: none;
}

body.home-snap-on .discover-bg img {
	transform: scale(2.5);
	transition: transform 1100ms cubic-bezier(0.16, 0.84, 0.44, 1);
}

body.home-snap-on .discover.is-snap-entered .discover-bg img {
	transform: scale(1.18);
}

/* Header is always over the slide top in snap mode, so the gap sits behind it - no fade needed */
body.home-snap-on .discover-bg {
	top: var(--home-snap-header-clearance);
	height: calc(100% - var(--home-snap-header-clearance));
}

body.home-snap-on .discover-bg img {
	-webkit-mask-image: none;
	mask-image: none;
}

body.home-snap-on .dreams-bg img,
body.home-snap-on .reviews-bg img {
	transform: translate3d(0, -28%, 0) scale(1.7);
	transition: transform 1100ms cubic-bezier(0.16, 0.84, 0.44, 1);
}

body.home-snap-on .dreams.is-snap-entered .dreams-bg img,
body.home-snap-on .reviews.is-snap-entered .reviews-bg img {
	transform: translate3d(0, 4%, 0) scale(1.08);
}

body.home-snap-on .reviews-text>*:not(.home-heading),
body.home-snap-on .reviews .block-review {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition: opacity 700ms ease var(--snap-text-delay), transform 700ms cubic-bezier(0.16, 0.84, 0.44, 1) var(--snap-text-delay);
}

body.home-snap-on .reviews.is-snap-entered .reviews-text>*:not(.home-heading),
body.home-snap-on .reviews.is-snap-entered .block-review {
	opacity: 1;
	transform: none;
}

body.home-snap-on .reviews .swiper-slide:nth-child(1) .block-review {
	transition-delay: calc(var(--snap-text-delay) + 100ms);
}

body.home-snap-on .reviews .swiper-slide:nth-child(2) .block-review {
	transition-delay: calc(var(--snap-text-delay) + 200ms);
}

body.home-snap-on .reviews .swiper-slide:nth-child(3) .block-review {
	transition-delay: calc(var(--snap-text-delay) + 300ms);
}

body.home-snap-on .reviews .swiper-slide:nth-child(4) .block-review {
	transition-delay: calc(var(--snap-text-delay) + 400ms);
}

/* Return to top - homepage fixed control */
.home-return-top {
	position: fixed;
	right: 20px;
	bottom: 28px;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 0;
	color: var(--color-white);
	background-color: rgba(4, 18, 22, 0.55);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 250ms ease, visibility 250ms ease, background-color 200ms ease;
}

.home-return-top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.home-return-top:hover,
.home-return-top:focus {
	color: var(--color-white);
	background-color: rgba(4, 18, 22, 0.8);
}

.home-return-top i {
	font-size: 1rem;
	line-height: 1;
}

@media (prefers-reduced-motion: reduce) {
	.home-return-top {
		transition: none;
	}
}

@media screen and (min-width: 768px) {
	.home-return-top {
		right: 28px;
		bottom: 36px;
	}
}