/* ===========================================
Utility classes
=========================================== */

/* Font colors */
.u-clr--black { background-color: var(--clr-black); }
.u-clr--white { background-color: var(--clr-white); }

/* Background colors */
.u-bg--grey-0 { background-color: var(--clr-grey-0); }
.u-bg--grey-1 { background-color: var(--clr-grey-1); }

/* Vertical spacings */
.u-vs--no:not(.e-con), .u-vs--no.e-con-full, .u-vs--no.e-con-boxed > .e-con-inner { padding-top: 0; padding-bottom: 0; }
.u-vs--xs:not(.e-con), .u-vs--xs.e-con-full, .u-vs--xs.e-con-boxed > .e-con-inner { padding-top: var(--vs-xs); padding-bottom: var(--vs-xs); }
.u-vs--sm:not(.e-con), .u-vs--sm.e-con-full, .u-vs--sm.e-con-boxed > .e-con-inner { padding-top: var(--vs-sm); padding-bottom: var(--vs-sm); }
.u-vs--md:not(.e-con), .u-vs--md.e-con-full, .u-vs--md.e-con-boxed > .e-con-inner { padding-top: var(--vs-md); padding-bottom: var(--vs-md); }
.u-vs--lg:not(.e-con), .u-vs--lg.e-con-full, .u-vs--lg.e-con-boxed > .e-con-inner { padding-top: var(--vs-lg); padding-bottom: var(--vs-lg); }
.u-vs--xl:not(.e-con), .u-vs--xl.e-con-full, .u-vs--xl.e-con-boxed > .e-con-inner { padding-top: var(--vs-xl); padding-bottom: var(--vs-xl); }

.u-vs--top-no:not(.e-con), .u-vs--top-no.e-con-full, .u-vs--top-no.e-con-boxed > .e-con-inner { padding-top: 0; }
.u-vs--top-xs:not(.e-con), .u-vs--top-xs.e-con-full, .u-vs--top-xs.e-con-boxed > .e-con-inner { padding-top: var(--vs-xs); }
.u-vs--top-sm:not(.e-con), .u-vs--top-sm.e-con-full, .u-vs--top-sm.e-con-boxed > .e-con-inner { padding-top: var(--vs-sm); }
.u-vs--top-md:not(.e-con), .u-vs--top-md.e-con-full, .u-vs--top-md.e-con-boxed > .e-con-inner { padding-top: var(--vs-md); }
.u-vs--top-lg:not(.e-con), .u-vs--top-lg.e-con-full, .u-vs--top-lg.e-con-boxed > .e-con-inner { padding-top: var(--vs-lg); }
.u-vs--top-xl:not(.e-con), .u-vs--top-xl.e-con-full, .u-vs--top-xl.e-con-boxed > .e-con-inner { padding-top: var(--vs-xl); }

.u-vs--bot-no:not(.e-con), .u-vs--bot-no.e-con-full, .u-vs--bot-no.e-con-boxed > .e-con-inner { padding-bottom: 0; }
.u-vs--bot-xs:not(.e-con), .u-vs--bot-xs.e-con-full, .u-vs--bot-xs.e-con-boxed > .e-con-inner { padding-bottom: var(--vs-xs); }
.u-vs--bot-sm:not(.e-con), .u-vs--bot-sm.e-con-full, .u-vs--bot-sm.e-con-boxed > .e-con-inner { padding-bottom: var(--vs-sm); }
.u-vs--bot-md:not(.e-con), .u-vs--bot-md.e-con-full, .u-vs--bot-md.e-con-boxed > .e-con-inner { padding-bottom: var(--vs-md); }
.u-vs--bot-lg:not(.e-con), .u-vs--bot-lg.e-con-full, .u-vs--bot-lg.e-con-boxed > .e-con-inner { padding-bottom: var(--vs-lg); }
.u-vs--bot-xl:not(.e-con), .u-vs--bot-xl.e-con-full, .u-vs--bot-xl.e-con-boxed > .e-con-inner { padding-bottom: var(--vs-xl); }


/* Column gaps */
#content .u-cg--no .sh-card { padding: 0; }
#content .u-cg--xs .sh-card { padding: var(--cg-xs); }
#content .u-cg--sm .sh-card { padding: var(--cg-sm); }
#content .u-cg--md .sh-card { padding: var(--cg-md); }
#content .u-cg--lg .sh-card { padding: var(--cg-lg); }
#content .u-cg--xl .sh-card { padding: var(--cg-xl); }

.u-cg--no.sh-grid .sh-grid__inner, .u-cg--no.sh-slider .sh-slider__inner, #content .u-cg--no.wp-grid-builder .wpgb-layout, .u-cg--no.elementor-widget-loop-grid > .elementor-widget-container { margin: 0; }
.u-cg--xs.sh-grid .sh-grid__inner, .u-cg--xs.sh-slider .sh-slider__inner, #content .u-cg--xs.wp-grid-builder .wpgb-layout, .u-cg--xs.elementor-widget-loop-grid > .elementor-widget-container { margin: calc(-1 * var(--cg-xs)); }
.u-cg--sm.sh-grid .sh-grid__inner, .u-cg--sm.sh-slider .sh-slider__inner, #content .u-cg--sm.wp-grid-builder .wpgb-layout, .u-cg--sm.elementor-widget-loop-grid > .elementor-widget-container { margin: calc(-1 * var(--cg-sm)); }
.u-cg--md.sh-grid .sh-grid__inner, .u-cg--md.sh-slider .sh-slider__inner, #content .u-cg--md.wp-grid-builder .wpgb-layout, .u-cg--md.elementor-widget-loop-grid > .elementor-widget-container { margin: calc(-1 * var(--cg-md)); }
.u-cg--lg.sh-grid .sh-grid__inner, .u-cg--lg.sh-slider .sh-slider__inner, #content .u-cg--lg.wp-grid-builder .wpgb-layout, .u-cg--lg.elementor-widget-loop-grid > .elementor-widget-container { margin: calc(-1 * var(--cg-lg)); }
.u-cg--xl.sh-grid .sh-grid__inner, .u-cg--xl.sh-slider .sh-slider__inner, #content .u-cg--xl.wp-grid-builder .wpgb-layout, .u-cg--xl.elementor-widget-loop-grid > .elementor-widget-container { margin: calc(-1 * var(--cg-xl)); }

/* Aspect-ratios */
#content .u-ar--16-9 .sh-card__image,  .u-ar--16-9.elementor-widget:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) > .elementor-widget-container  { padding-top: 56.25%; }
#content .u-ar--16-10 .sh-card__image, .u-ar--16-10.elementor-widget:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) > .elementor-widget-container { padding-top: 62.25%; }
#content .u-ar--4-3 .sh-card__image,   .u-ar--4-3.elementor-widget:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) > .elementor-widget-container   { padding-top: 75%; }
#content .u-ar--3-4 .sh-card__image,   .u-ar--3-4.elementor-widget:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) > .elementor-widget-container   { padding-top: 133.33%; }
#content .u-ar--1-1 .sh-card__image,   .u-ar--1-1.elementor-widget:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) > .elementor-widget-container   { padding-top: 100%; }

.elementor-widget[class*="u-ar--"]:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) {
	width: 100%;
}

#content .elementor-widget[class*="u-ar--"]:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) > .elementor-widget-container {
	height: auto;
	position: relative;
}

.elementor-widget[class*="u-ar--"]:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) > .elementor-widget-container > a {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

[class*="u-ar--"] .sh-card__image img,
.elementor-widget[class*="u-ar--"]:not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) > .elementor-widget-container img {
	position: absolute;
	top: 0;
	left: 0;
	object-fit: cover;
	object-position: 50% 50%;
	height: 100%;
	width: 100%;
	max-width: none;
}

/* Max-width content */
.u-cw--xs.e-con-full { max-width: var(--cw-xs); }
.u-cw--sm.e-con-full { max-width: var(--cw-sm); }
.u-cw--md.e-con-full { max-width: var(--cw-md); }
.u-cw--lg.e-con-full { max-width: var(--cw-lg); }
.u-cw--xl.e-con-full { max-width: var(--cw-xl); }

.u-cw--xs.e-con-boxed > .e-con-inner { max-width: var(--cw-xs); }
.u-cw--sm.e-con-boxed > .e-con-inner { max-width: var(--cw-sm); }
.u-cw--md.e-con-boxed > .e-con-inner { max-width: var(--cw-md); }
.u-cw--lg.e-con-boxed > .e-con-inner { max-width: var(--cw-lg); }
.u-cw--xl.e-con-boxed > .e-con-inner { max-width: var(--cw-xl); }

/* Max-width elements */
.u-mw--xs .elementor-widget-container { max-width: 25rem; }
.u-mw--sm .elementor-widget-container { max-width: 30rem; }
.u-mw--md .elementor-widget-container { max-width: 35rem; }
.u-mw--lg .elementor-widget-container { max-width: 40rem; }
.u-mw--xl .elementor-widget-container { max-width: 45rem; }

/* Image overlay */
.u-overlay--dark .sh-card__image::after,
.u-overlay--bright .sh-card__image::after,
.u-overlay--dark.elementor-widget-image .elementor-widget-container::after,
.u-overlay--bright.elementor-widget-image .elementor-widget-container::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
	pointer-events: none;
}

.u-overlay--dark .sh-card__image::after,
.u-overlay--dark.elementor-widget-image .elementor-widget-container::after {
    background-color: var(--clr-black);
    opacity: .1;
}

.u-overlay--bright .sh-card__image::after,
.u-overlay--bright.elementor-widget-image .elementor-widget-container::after {
    background-color: var(--clr-white);
	opacity: .1;
}

/* Limit max number of lines - Truncate */
.u-trunc--1,
.u-trunc--2,
.u-trunc--3,
.u-trunc--4,
.u-trunc--5 {
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.u-trunc--1 {
	-webkit-line-clamp: 1;
}
.u-trunc--2 {
	-webkit-line-clamp: 2;
}
.u-trunc--3 {
	-webkit-line-clamp: 3;
}
.u-trunc--4 {
	-webkit-line-clamp: 4;
}
.u-trunc--5 {
	-webkit-line-clamp: 5;
}

/* u-dark = bright color text on dark background */
.u-dark {
	background-color: var(--clr-accent-2);
}

#content .u-dark, 
#content .u-dark .elementor-widget-text-editor, 
#content .u-dark p, 
#content .u-dark .sh-h0,
#content .u-dark h1, 
#content .u-dark h2, 
#content .u-dark h3, 
#content .u-dark h4,
#content .u-dark h5, 
#content .u-dark h6,
#content .u-dark p.elementor-heading-title, 
#content .u-dark .sh-h0 .elementor-heading-title,
#content .u-dark h1.elementor-heading-title, 
#content .u-dark h2.elementor-heading-title, 
#content .u-dark h3.elementor-heading-title, 
#content .u-dark h4.elementor-heading-title,
#content .u-dark h5.elementor-heading-title, 
#content .u-dark h6.elementor-heading-title { 
	color: var(--clr-white);
}

.u-dark h6::before,
.u-dark .sh-h6::before,
#content .u-dark h6::before,
#content .u-dark .sh-h6::before,
#content .u-dark .elementor-widget-heading.sh-h6 .elementor-heading-title::before,
#content .u-dark .elementor-heading-title.elementor-size-small::before {
	background-color: var(--clr-accent-1);
}

#content blockquote p:last-child:not(:first-child) {
    color: var(--clr-accent-1) !important;
}

.u-dark .elementor-widget-text-editor ul > li:before,
.u-dark .elementor-tab-content ul > li:before {
    background-color: var(--clr-accent-1);
}

.u-dark .elementor-widget-text-editor ol > li:before,
.u-dark .elementor-tab-content ol > li:before {
    color: var(--clr-accent-1);
}

.u-dark .elementor-widget-text-editor a,
.u-dark .elementor-tab-content a,
.u-dark .sh-card__excerpt a {
	color: var(--clr-bright) !important;
	background-image: linear-gradient(var(--clr-white), var(--clr-white)), linear-gradient(var(--clr-accent-1), var(--clr-accent-1)) !important;
	background-size: 100% 1px, 0 1px !important;
	background-position: 100% 100%, 0 100%;
}

.u-dark .elementor-widget-text-editor a:hover,
.u-dark .elementor-tab-content a:hover,
.u-dark .sh-card__excerpt a:hover {
	color: var(--clr-accent-1) !important;
	background-size: 0 1px, 100% 1px !important;
	background-image: linear-gradient(var(--clr-white), var(--clr-white)), linear-gradient(var(--clr-accent-1), var(--clr-accent-1)) !important;
}

#content .u-dark .button, 
#content .u-dark .elementor-button {
	background-color: var(--clr-white);
	border-color: var(--clr-white);
	color: var(--clr-accent-2);
}

#content .u-dark .button:hover, 
#content .u-dark .elementor-button:hover {
	background-color: var(--clr-accent-1);
	border-color: var(--clr-accent-1);
	color: var(--clr-white);
}

#content .u-dark .elementor-button-info .elementor-button {
    border-color: var(--clr-accent-1);
    background-color: var(--clr-accent-1);
	color: var(--clr-white);
}

#content .u-dark .elementor-button-info .elementor-button:hover {
    border-color: var(--clr-white);
    background-color: var(--clr-white);
	color: var(--clr-accent-2);
}

#content .u-dark .elementor-button-success .elementor-button {
	background-color: transparent;
	border-color: var(--clr-white);
	color: var(--clr-white);
}

#content .u-dark .elementor-button-success .elementor-button:hover {
	background-color: var(--clr-accent-1);
	border-color: var(--clr-accent-1);
	color: var(--clr-white);
}

#content .u-dark .elementor-button-warning .elementor-button {
	color: var(--clr-accent-1);
	background-color: unset;
	border-color: transparent;
}

#content .u-dark .elementor-button-warning .elementor-button:hover {
	color: var(--clr-white);
}

#content .u-dark .elementor-button-warning .elementor-button::before {
	background-color: var(--clr-accent-1);
}

#content .u-dark .elementor-button-warning .elementor-button::after {
	background-color: var(--clr-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7.078' height='11.737' viewBox='0 0 7.078 11.737'%3E%3Cpath d='M.338,.369L6.338,5.869,.338,11.369' style='fill:none; stroke:%23003762;'/%3E%3C/svg%3E");
}

#content .u-dark .elementor-button-danger .elementor-button {
	color: var(--clr-white);
	background-color: unset;
	border-color: transparent;
}

#content .u-dark .elementor-button-danger .elementor-button:hover {
	color: var(--clr-accent-1);
}

#content .u-dark .elementor-button-danger .elementor-button::before {
	background-color: var(--clr-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7.078' height='11.737' viewBox='0 0 7.078 11.737'%3E%3Cpath d='M.338,.369L6.338,5.869,.338,11.369' style='fill:none; stroke:%23003762;'/%3E%3C/svg%3E");
}

#content .u-dark .elementor-button-danger .elementor-button::after {
	background-color: var(--clr-accent-1);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7.078' height='11.737' viewBox='0 0 7.078 11.737'%3E%3Cpath d='M.338,.369L6.338,5.869,.338,11.369' style='fill:none; stroke:%23fff;'/%3E%3C/svg%3E");
}

/* u-of = object-fit */
.u-of.elementor-widget:not([class*="u-ar--"]),
.u-of.elementor-widget:not([class*="u-ar--"]) .elementor-image,
.u-of.elementor-widget:not([class*="u-ar--"]) .elementor-widget-container > a,
.u-of.elementor-widget:not([class*="u-ar--"]) .e-hosted-video,
.u-of.elementor-widget:not([class*="u-ar--"]) .e-hosted-video .elementor-custom-embed-image-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 0;
}

.u-of.sh-slider .sh-card__image img,
.u-of.sh-grid .sh-card__image img,
.u-of.elementor-widget img,
.u-of.sh-slider .sh-card__image video,
.u-of.sh-grid .sh-card__image video,
.u-of.elementor-widget video {
	object-fit: cover;
	object-position: 50% 50%;
	height: 100%;
	width: 100%;
	max-width: none;
}

.u-of.sh-slider .sh-card__image img,
.u-of.sh-grid .sh-card__image img,
.u-of.elementor-widget img {
	overflow-clip-margin: border-box;
}

.elementor-widget.u-of img {
	position: relative;
}

.u-of.sh-slider .sh-card__image img,
.u-of.sh-grid .sh-card__image img {
	position: absolute;
	top: 0;
	left: 0;
}

@media only screen and (min-width: 768px) {
	.elementor-widget.u-of--except-for-mobile {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	.elementor-widget.u-of--except-for-mobile .elementor-widget-container > a {
		height: 100%;
		width: 100%;
	}
	.elementor-widget-image.u-of--except-for-mobile img {
		object-fit: cover;
		object-position: 50% 50%;
		height: 100%;
		width: 100%;
		max-width: none;
		position: relative;
	}
}

/* ===========================================
   Media Alignment
=========================================== */

#content .u-align--center-center img,
#content .u-align--center-center video {
    object-position: 50% 50%;
}

#content .u-align--center-left img,
#content .u-align--center-left video {
    object-position: 0% 50%;
}

#content .u-align--center-right img,
#content .u-align--center-right video {
    object-position: 100% 50%;
}

#content .u-align--top-center img,
#content .u-align--top-center video {
    object-position: 50% 0%;
}

#content .u-align--top-left img,
#content .u-align--top-left video {
    object-position: 0% 0%;
}

#content .u-align--top-right img,
#content .u-align--top-right video {
    object-position: 100% 0%;
}

#content .u-align--bottom-center img,
#content .u-align--bottom-center video {
    object-position: 50% 100%;
}

#content .u-align--bottom-left img,
#content .u-align--bottom-left video {
    object-position: 0% 100%;
}

#content .u-align--bottom-right img,
#content .u-align--bottom-right video {
    object-position: 100% 100%;
}

/* ============================================
Intersection observer animation
============================================ */

body:not(.sh-io-not-supported):not([class*="elementor-editor"]):not(.single-astra-advanced-hook) .elementor-widget:not(.u-anim--no):not(.elementor-widget-wpgb-grid):not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) {
	opacity: 0;
	-webkit-transform: translate(0,50px);
	   -moz-transform: translate(0,50px);
			transform: translate(0,50px);
	-webkit-transition: opacity .6s ease, transform .6s ease;
	   -moz-transition: opacity .6s ease, transform .6s ease;
			transition: opacity .6s ease, transform .6s ease;
}

body:not(.sh-io-not-supported):not([class*="elementor-editor"]):not(.single-astra-advanced-hook) .elementor-widget.sh-animate:not(.u-anim--no):not(.elementor-widget-wpgb-grid):not(.elementor-widget-loop-grid):not(.elementor-widget-loop-carousel) {
	opacity: 1;
	-webkit-transform: translate(0,0);
	   -moz-transform: translate(0,0);
			transform: translate(0,0);
}

/* Disable intersection observer for IE11 */
@media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none) {  
	.elementor-widget {
		opacity: 1 !important;
		transform: none !important;
	}	
}