/*****************/
/* Font Override */
/*****************/
.page-content {
	--lsc-sans-serif: 'Nunito Sans', serif;
}

h1 {
	font-family: 'Jost', serif;
}

/***********/
/* Globals */
/***********/
.page-content .seo-article-section a {
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: lightgray;
	font-weight: 400;
}

/********/
/* hero */
/********/
.seo-article-hero {
	position: relative;
	overflow: hidden;
}

/* .seo-article-hero:after {
	position: absolute;
	content: '';
	left: 0;
	right: 0;
	bottom: 0;
	height: 100px;
	z-index: 1;
	background: linear-gradient( 
		rgba(255,255,255,0) 0%, 
		rgba(255,255,255,.5) 60%, 
		rgba(255,255,255,1) 100% );
} */
.section-hero .hero-container .hero-media {
	background: white;
}

.section-hero .hero-container .hero-media {
	opacity: 0;
	transform: translateY(10px) scale(1.125);
	position: relative;
	animation-name: hero-on-page-load;
	animation-duration: .75s;
	animation-delay: .25s;
	animation-fill-mode: forwards;
}

@keyframes hero-on-page-load {
	0% {
		opacity: .25;
		transform: translateY(10px) scale(1.125);
	}

	50% {
		opacity: .5;
	}

	100% {
		opacity: 1;
		transform: translateY(0px) scale(1);
	}
}

.vh-hero-100 {
	min-height: calc(100vh - 76px);
	max-height: calc(100vh - 76px);
	height: calc(100vh - 76px);
}

.vh-hero-50 {
	min-height: calc(50vh);
	max-height: calc(50vh);
	height: calc(50vh);
}

.vh-hero-25 {
	min-height: calc(25vh);
	max-height: calc(25vh);
	height: calc(25vh);
}

.section-hero.parallax {
	view-timeline-name: --hero;
}

.section-hero.parallax .hero-container .hero-media img {
	position: relative;
	top: -35%;
	width: 100%;
	height: 130%;
	object-fit: cover;
	animation-name: parallax;
	animation-timeline: --hero;
	animation-range: entry 0% exit 100%;
}

@keyframes parallax {
	from {
		transform: translateY(-10%);
	}

	to {
		transform: translateY(30%);
	}
}

.hero-message h2 {
	font-weight: 900;
	font-size: 3rem;
	color: white;
}

/*****************/
/* hero carousel */
/*****************/
.section-hero.section-hero-carousel .hero-container .hero-media {
	aspect-ratio: auto;
	min-height: unset;
	max-height: unset;
}
.carousel-control-next, .carousel-control-prev {
	height: 60px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
}

/*************************/
/* hero mobile overrides */
/*************************/
@media (max-width: 1200px) {
	.section-hero .hero-container .hero-media .hero-message-container .hero-message h1 {
		font-size: 2.75rem;
	}
}
@media (max-width: 1000px) {
	.section-hero .hero-container .hero-media {
		background: #2d2d2d;
		min-height: unset;
	}

	.section-hero .hero-container .hero-media img {
		height: unset;
	}

	.section-hero .hero-container .hero-media .hero-message-container {
		position: unset;
		padding: 0;
	}

	.section-hero .hero-container .hero-media .hero-message-container .hero-message {
		background: #2d2d2d;
		width: 100%;
	}

	.section-hero .hero-container .hero-media .hero-message-container .hero-message h1 {
		font-size: 2rem;
	}
}

/************/
/* headings */
/************/
.seo-article-section h2.section-title {
	margin-bottom: 3rem;
	font-size: 3.25rem;
	font-weight: 700;
}

.seo-article-section h3 {
	margin-bottom: 3rem;
	font-size: 2.65rem;
	font-weight: 700;
}

/**************/
/* paragraphs */
/**************/
.seo-article-section p {
	font-size: 1.3rem;
	font-weight: 300;
	line-height: 2.8rem;
}

/*********/
/* links */
/*********/
.seo-article-section a:hover {
	text-decoration: underline;
}

/****************/
/* inline image */
/****************/
.inline-image {
	height: 100px;
	background: rgb(208, 208, 208);
	border-radius: 50%;
	padding: 1rem;

}

/****************/
/* icon graphic */
/****************/
.icon-card {
	margin-top: 1rem;
}

.icon-card .icon {
	margin: 0 auto 1rem auto;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 175px;
	height: 175px;
	font-size: 5rem;
	background-color: white;
	border-radius: 50%;
}

.icon-card .icon-sm {
	width: 115px;
	height: 115px;
	font-size: 3rem;
}

.icon-card .icon-card-body {
	display: block;
	padding: 0 1.25rem;
	margin-bottom: 1rem;
	text-align: center;
	font-size: 1.125rem;
}

/**************/
/* containers */
/**************/
.seo-article-section .lsc-container {
	max-width: 900px;
}

.seo-article-section-1200 .lsc-container {
	max-width: 1200px;
}

/**************/
/* media grid */
/**************/
.media-grid {
	margin-top: 3rem;
	margin-bottom: 1rem;
}

.caption {
	margin-top: .5rem;
	display: block;
	text-align: center;
	font-size: 1.2rem;
	font-weight: 300;
	font-style: italic;
}