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

.lazy-bg {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
}

/* HERO */
.home-hero {
	position: relative;
	overflow: hidden;
	min-height: 620px;
	background-color: var(--color-navy);
	/* margin-top: 40px; */
}

.home-hero-picture {
	position: relative;
	inset: 0;
	z-index: 0;
	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: 0;
	pointer-events: none;
}

.home-hero-picture::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 45%;
	z-index: 1;
	background: #001f37;
	background: linear-gradient(180deg, rgba(0, 31, 55, 1) 0%, rgba(255, 255, 255, 0) 100%);
	pointer-events: none;
}

.home-hero-picture::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 14%;
	z-index: 1;
	background: #001f37;
	background: linear-gradient(0deg, rgba(0, 31, 55, 1) 0%, rgba(255, 255, 255, 0) 100%);
	pointer-events: none;
}

.home-hero-picture-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.home-hero .row {
	position: relative;
	z-index: 2;
}

.home-hero-inner {
	text-align: center;
	padding: 10px 0 20px;
}

.home-hero-content {
	max-width: 520px;
	margin: 0 auto;
}

.home-hero-eyebrow {
	font-family: var(--font-family-heading);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.33em;
	color: var(--color-white);
	font-size: 17px;
	margin-bottom: 10px;
}

.home-hero-title {
	margin: 0 0 22px;
	color: var(--color-white);
}

.home-hero-title-line1 {
	display: block;
	font-family: var(--font-family-heading);
	font-weight: 500;
	font-size: 53px;
	line-height: 0.8;
}

.home-hero-title-accent {
	position: relative;
	display: inline-block;
	font-family: 'Fraunces', serif;
	font-style: italic;
	font-weight: 400;
	text-transform: uppercase;
	color: var(--color-gold);
	font-size: 69px;
	line-height: 0.8;
	padding-right: 8px;
}

.home-hero-title-accent:before {
	content: attr(data-text);
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	color: var(--color-white);
	clip-path: inset(0 0 0 100%);
}

.home-hero-title-accent:after {
	content: '®';
	position: absolute;
	top: 0;
	left: 100%;
	font-size: 25%;
	transition: all 0.5s ease-out;
	transition-delay: 3s;
	color: var(--color-gold);
}

.home-hero-cta {
	min-height: 50px;
	padding: 0 24px;
	font-size: 12px;
}

.home-featured-testimonials {
	margin-top: 30px;
	max-width: 380px;
	margin-left: auto;
	margin-right: auto;
	--swiper-theme-color: var(--color-gold);
	--swiper-pagination-bullet-inactive-color: rgba(255, 255, 255, 0.45);
}

.home-featured-testimonials .swiper-outer {
	max-width: 100%;
	position: relative;
	padding-bottom: 10px;
}

.home-featured-testimonials .swiper-pagination {
	position: relative;
	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;
	grid-gap: 10px;
	gap: 10px;
	bottom: auto !important;
	left: auto;
	margin-top: 18px;
	width: 100%;
	pointer-events: none;
}

.home-featured-testimonials .swiper-pagination-bullet {
	opacity: 1;
	width: 12px;
	height: 12px;
	margin: 0 !important;
	border: 1px solid #fff;
	background: none;
	pointer-events: all;
}

.home-featured-testimonials .swiper-pagination-bullet-active {
	background: var(--color-white);
}

.home-featured-testimonial-stars {
	color: var(--color-gold);
	font-size: 1rem;
	margin-bottom: 12px;
}

.home-featured-testimonial-stars .fa-star {
	margin: 0 2px;
}

.home-featured-testimonial-content p {
	color: var(--color-white);
	line-height: 1.5;
	margin-bottom: 12px;
}

.home-featured-testimonial-content p:last-child {
	margin-bottom: 0;
}

.home-featured-testimonial-source {
	display: block;
	color: var(--color-white);
	margin-top: 10px;
}

.home-featured-testimonials .swiper-autoplay-toggle {
	right: auto;
	bottom: 9px;
	left: calc(50% + 64px);
	color: var(--color-white);
	transform: translateX(-50%);
}

.home-featured-testimonials .swiper-autoplay-toggle:hover,
.home-featured-testimonials .swiper-autoplay-toggle:focus {
	color: var(--color-gold);
}

@media screen and (min-width: 768px) {
	.home-hero {
		display: -webkit-flex;
		display: -moz-flex;
		display: -o-flex;
		display: flex;
		-webkit-box-align: end;
		align-items: end;
		-webkit-box-pack: start;
		justify-content: flex-start;
	}

	.home-hero-picture {
		position: absolute;
	}

	.home-hero-picture::after {
		display: none;
	}

	.home-hero-inner {
		text-align: left;
		width: 100%;
	}

	.home-hero-content {
		margin: 0;
	}

	.home-featured-testimonials {
		margin-left: 0;
		margin-right: 0;
	}

	.home-featured-testimonials .swiper-pagination {
		-webkit-box-pack: start;
		justify-content: flex-start;
	}

	.home-featured-testimonials .swiper-autoplay-toggle {
		left: 111px;
		transform: none;
	}
}

@media screen and (min-width: 1025px) {
	.home-hero {
		min-height: 100vh;
		margin-top: 0;
	}

	.home-hero-inner {
		padding: 110px 0 15px;
	}

	.home-hero-eyebrow {
		font-size: 36px;
		letter-spacing: 15px;
	}

	.home-hero-content {
		max-width: 760px;
	}

	.home-hero-title {
		margin-bottom: 35px;
	}

	.home-hero-title-line1 {
		font-size: 124px;
	}

	.home-hero-title-accent {
		font-size: 140px;
	}

	.home-hero-cta {
		min-height: 60px;
		padding: 0 32px;
	}

	.home-featured-testimonials {
		margin-top: 100px;
		max-width: 560px;
	}

	.home-hero-title-accent:before {
		clip-path: inset(0 0 0 0);
		transition: clip-path 3s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.home-hero-title-accent.active:before {
		clip-path: inset(0 0 0 100%);
	}

	/* .home-hero-title-accent:after {
		top: 36px;
		left: calc(100% + 10px);
	} */

	.home-hero-title-accent:after {
		color: var(--color-white);
	}

	.home-hero-title-accent.active:after {
		color: var(--color-gold);
	}
}

@media screen and (min-width: 1920px) {
	.home-hero-eyebrow {
		font-size: 38px;
		letter-spacing: 17px;
	}

	.home-hero-title-line1 {
		font-size: 133px;
	}

	.home-hero-title-accent {
		font-size: 150px;
	}

	/* .home-hero-title-accent:after {
		top: 38px;
		left: calc(100% + 10px);
	} */
}

/* DISCLAIMER (under hero) */
.home-disclaimer {
	position: relative;
	padding: 30px 0;
}

.home-disclaimer .row {
	max-width: 750px;
}

.home-disclaimer-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 350px;
	object-fit: cover;
	z-index: -1;
}

.home-disclaimer-inner {
	font-size: 9px;
	line-height: 1.6;
	text-align: center;
}

.home-disclaimer-inner p {
	font-size: 14px;
}

.home-disclaimer-inner p:last-child {
	margin-bottom: 0;
}

.home-disclaimer-inner h2 {
	font-family: var(--font-family-body);
	font-weight: 600;
	color: #0076eb;
	margin-bottom: 15px;
}

@media screen and (min-width: 1025px) {
	.home-disclaimer {
		padding: 45px 0;
	}
}

/* INTRO */
.home-intro {
	position: relative;
}

.home-intro-inner {
	position: relative;
	padding: 0 0 50px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	align-items: start;
}

.home-intro-outer {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
}

.home-intro-image {
	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;
}

.home-intro-image img {
	height: auto;
}

.home-intro-highlight {
	color: #4da6ff;
	font-weight: 600;
	font-size: 20px;
	line-height: 1.57;
	margin-bottom: 0;
}

.home-intro-background {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: calc(100% - 125px);
	z-index: -1;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

@media screen and (min-width: 1025px) {
	.home-intro-inner {
		grid-template-columns: 476px 435px;
		gap: 70px;
		-webkit-box-align: center;
		align-items: center;
		-webkit-box-pack: center;
		justify-content: center;
		padding: 60px 0;
	}

	.home-intro-background {
		top: 50%;
		left: auto;
		right: 0;
		transform: translateY(-50%);
		max-width: 970px;
		height: 450px;
		border-left: 4px solid var(--color-gold);
	}

	.home-intro-highlight {
		font-size: 22px;
	}
}

/* DEFENSE */
.home-defense {
	position: relative;
	padding: 40px 0 30px;
	text-align: center;
}

.home-eyebrow {
	font-family: var(--font-family-body);
	font-weight: 600;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: #0076eb;
	font-size: 18px;
	margin-bottom: 10px;
}

.home-defense-title {
	font-size: 65px;
	line-height: 1.05;
	margin-bottom: 18px;
}

.home-defense-body {
	max-width: 760px;
	margin: 0 auto;
}

.home-defense-note {
	max-width: 620px;
	margin: 18px auto 0;
	color: #0076eb;
	font-weight: 600;
}

@media screen and (min-width: 1025px) {
	.home-defense {
		padding: 180px 0;
	}

	.home-defense-title {
		font-size: 75px;
	}

	.home-defense-bg {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		object-fit: cover;
		z-index: -2;
	}
}

/* WHAT WE DO */
.home-whatwedo {
	position: relative;
	/* background: var(--color-navy-alt); */
	color: var(--color-white);
	padding: 0 0 60px;
}

.home-whatwedo-background {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: calc(100% - 80px);
	z-index: -1;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.home-whatwedo h2 {
	color: var(--color-white);
	font-size: 57px;
}

.home-whatwedo-subheading {
	color: var(--color-gold);
	font-family: var(--font-family-heading);
	font-size: 36px;
	max-width: 470px;
	line-height: 1.3;
}

.home-whatwedo-list-label {
	color: var(--color-white);
	font-weight: 600;
	margin: 26px 0 10px;
}

.home-whatwedo-list {
	color: var(--color-white);
	font-weight: 500;
}

.home-whatwedo-closing {
	color: var(--color-white);
	margin-bottom: 0;
	font-weight: 300;
}

.home-whatwedo-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px;
	align-items: start;
}

.home-whatwedo-image {
	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;
}

.home-whatwedo-image img {
	width: 476px;
	max-width: 100%;
	height: 329px;
	object-fit: cover;
	object-position: center;
	display: block;
}

.home-whatwedo-content p,
.home-whatwedo-content li {
	font-size: 16px;
}

@media screen and (min-width: 1025px) {
	.home-whatwedo {
		z-index: 2;
		padding: 120px 0;
	}

	.home-whatwedo .column {
		padding-right: 0;
	}

	.home-whatwedo-background {
		width: 84%;
		height: 100%;
	}

	.home-whatwedo-inner {
		grid-template-columns: 1fr 48%;
		gap: 40px;
		align-items: center;
	}

	.home-whatwedo-image {
		order: 2;
		height: 100%;
	}

	.home-whatwedo-image img {
		height: 100%;
		max-width: 100%;
	}

	.home-whatwedo-text {
		order: 1;
		padding: 10px 0;
	}

	.home-whatwedo h2 {
		font-size: 75px;
		max-width: 510px;
	}
}

@media screen and (min-width: 1280px) {
	.home-whatwedo .column {
		padding-left: 110px;
	}

	.home-whatwedo-inner {
		grid-template-columns: 680px 756px;
		gap: 55px;
	}
}

@media screen and (min-width: 1800px) {
	.home-whatwedo .column {
		padding-left: 210px;
	}
}

/* SPEAK */
.home-speak {
	background: var(--color-link-hover);
	color: var(--color-white);
	padding: 60px 0;
}

.home-speak h2 {
	color: var(--color-white);
	font-size: 55px;
}

.home-speak-subheading {
	color: var(--color-gold);
	font-family: var(--font-family-heading);
	font-size: 36px;
	line-height: 1.3;
}

.home-speak-list {
	color: var(--color-white);
	font-weight: 500;
}

.home-speak-closing {
	color: var(--color-white);
	margin-top: 18px;
}

.home-speak-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px;
	align-items: start;
}

.home-speak-image {
	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;
}

.home-speak-image img {
	display: block;
	width: 476px;
	max-width: 100%;
	height: 329px;
	object-fit: cover;
}

.home-speak-content p,
.home-speak-content li {
	font-size: 16px;
}

.home-speak-content p:last-child {
	margin-bottom: 0;
}

@media screen and (min-width: 1025px) {
	.home-speak {
		position: relative;
		background: none;
		padding: 100px 0;
	}

	.home-speak .column {
		padding-left: 0;
	}

	.home-speak::before {
		content: '';
		position: absolute;
		bottom: 0;
		right: 0;
		width: 84%;
		height: calc(100% + 120px);
		background: var(--color-link-hover);
		z-index: -1;
	}

	.home-speak-inner {
		grid-template-columns: 48% 1fr;
		gap: 40px;
		align-items: center;
	}

	.speak-fees-container.active {
		background-image: url('../images/speak-fees-bg.webp');
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
		z-index: 1;
		position: relative;
	}

	.home-speak h2 {
		font-size: 75px;
	}

	.home-speak-image {
		height: 100%;
	}

	.home-speak-image img {
		height: 100%;
		max-width: 100%;
	}
}

@media screen and (min-width: 1280px) {
	.home-speak .column {
		padding-right: 110px;
	}

	.home-speak-inner {
		grid-template-columns: 758px 560px;
		gap: 55px;
		justify-content: end;
	}

	.home-speak-image {
		height: 605px;
	}
}

@media screen and (min-width: 1600px) {
	.home-speak .column {
		padding-right: 440px;
	}
}

/* FEES */
.home-fees {
	padding: 55px 0 70px;
	text-align: center;
}

.home-fees.active {
	background-image: url('../images/speak-fees-bg.webp');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.home-fees-title {
	margin-bottom: 18px;
	font-size: 52px;
}

.home-fees-title-accent {
	color: #0076eb;
	position: relative;
	display: inline-block;
}

.home-fees-title-accent:before {
	content: attr(data-text);
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	color: #000;
	clip-path: inset(0 0 0 0);
}

.home-fees-title-accent:before {
	transition: clip-path 3s cubic-bezier(0.4, 0, 0.2, 1);
}

.home-fees-title-accent.active:before {
	clip-path: inset(0 0 0 100%);
}

.home-fees-body {
	max-width: 760px;
	margin: 0 auto;
	color: var(--color-link-hover);
}

.home-fees-body p:last-child {
	margin-bottom: 0;
}

@media screen and (min-width: 1025px) {
	.home-fees {
		padding: 120px 0;
	}

	.home-fees.active {
		background-image: none;
	}
}
