/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Mar 17 2026 | 16:09:11 */
/*VARIABLE DEFINITIONS*/
:root {
	/*Base Variable Scaling*/
	--h: clamp(6.14117647058824px, 1.06vw +  2.75px, 18px);
	--p-lead:1.4em;
	/*Color Variables*/
	/*Screen Sizes*/
	--screen-lg: 1440px;
	--screen: 1200px;
	--screen-sm: 1024px;
	--mobile-lg: 767px;
	--mobile-main: 540px;
	--mobile-sm: 320px;
	--w-read: calc(590px);
	/*Font Scaling*/
	--ratio: 1.474;
	--ratio-lin:calc(var(--ratio) - 1);
	--vw-scl: calc(0.36vh + 12.86px);
	--vh-scl: calc(0.71vh + 8.86px);
	--scl: calc(var(--vw-scl) * 1 + var(--vh-scl) * 0);
	--p: clamp(14px , var(--scl) , 18px);
	/*Headings: 4 Levels - Exponential - MIN: 29px MAX: 85px*/
	--h-max: 85px;
	--h-min: 14px;
	--h1: clamp(var(--h-min) , var(--h) *  pow(var(--ratio), 4), var(--h-max));
	--h2: clamp(var(--h-min) , var(--h) *  pow(var(--ratio), 3), var(--h-max));
	--h3: clamp(var(--h-min) , var(--h) *  pow(var(--ratio), 2), var(--h-max));
	--h4: clamp(var(--h-min) , var(--h) *  pow(var(--ratio), 1), var(--h-max));
	--h5: clamp(var(--h-min) , var(--h) *  pow(var(--ratio), 0), var(--h-max));
	--h6: clamp(var(--h-min) , var(--h) *  pow(var(--ratio), 0), var(--h-max));
	/*Additional Levels*/
	--h1-plus1: calc(var(--p) *  pow(var(--ratio), 5));
	--h1-plus2: calc(var(--p) *  pow(var(--ratio), 6));
	--p-lg: calc( var(--p) + var(--p) * ((var(--ratio) - 1) * 0.2));
	--p-sm: calc( var(--p) - var(--p) * ((var(--ratio) - 1) * 0.2));
	--type-spacing: calc(var(--p)*var(--ratio));
	/*Padding*/
	--pad: clamp(25px, 6.7vw + 3.54px, 100px);
	--pad-h: clamp(25px, 6.7vw + 3.54px, 100px);
	--pad-v: clamp(50px, 4.46vw + 36px, 100px);
	--pad-half: max(var(--pad-h), (100% - var(--screen)) / 2);
	--pad-tight: var(--h3);
	--pad-card: var(--h4);
	--pad-tighter: var(--p);
	--pad-button: .5em 1.25em;
	--pad-remain:max(var(--pad-h), (100% - var(--screen)) / 2);
	--pad-remain-lg:max(var(--pad-h), (100% - var(--screen-lg)) / 2);
	/*Allow Keywords in Sizes*/
	interpolate-size:allow-keywords;
	result:repeat(auto-fit, minmax(min(var(--width), 100%), 1fr));
}

/* - - - - - - - - - - - - - - - - - -*/			
/*PREDEFINED STYLES*/			
/*Padding*/			
.pad {			
	&:not(.v) {		
		padding-inline:var(--pad-h);	
	}		
	&:not(.h) {		
		padding-block:var(--pad-v);	
	}		
	&.looser {		
		padding:var(--h1);	
	}		
	&.loose {		
		padding:var(--h2);	
	}		
	&.tight {		
		padding:var(--h3);	
	}		
	&.tighter {		
		padding:var(--h4);	
	}		
	&.tightest {		
		padding:var(--h5);	
	}		
}			
			
/*GENERAL FIXES*/			
/* TEXT SPACING */			
/*Space Between Paragraphs*/			
p + h1, p + h2, p + h3, p + h4, p + h5, p + h6 {			
	margin-top:calc(var(--type-spacing) * 1.5);		
}			
/* Additional space for H1 & H2 */			
h1 + p, h2 + p {			
	margin-top:calc(var(--type-spacing) * .75);		
}			
/* Headings Only */			
h1, h2, h3, h4, h5, h6 {			
	margin-block:0;		
	margin-bottom:calc(var(--type-spacing) * .5);		
	line-height:1em;		
}			
/* Paragraphs */			
p {			
	margin:0;		
	margin-bottom:calc(var(--type-spacing) * .5);		
	text-wrap:pretty;		
}			
/*Big Paragraphs*/			
.big p, p.big {			
	font-size:var(--p-lg);		
}			
/*Small Paragraphs*/			
.small p, p.small {			
	font-size:var(--p-sm);		
}			
/*Balance Pretty*/			
.balance {			
	text-wrap:balance;		
}			
.pretty {			
	text-wrap:pretty;		
}			
			
/*Last Paragraph No Margin*/			
p:last-child {			
	margin-bottom:0;		
}			
/*Make Headings set to P default to Light*/			
.elementor-widget-heading p {			
	font-weight:400;		
}			
			
/*MOBILE QUICK STYLES*/			
@media screen and (width < 768px) {			
/*Center Text | .m-center*/			
	.m-center * {		
		text-align:center;	
	}		
			
/*Center Text and Elements | m-center-all*/			
	.m-center-all {		
		justify-items:center;	
		& * {	
			text-align:center;
		}	
	}		
/*END MOBILE STYLES*/			
}			
			
/*SECTIONS STYLINGS*/			
/*Readable Widths*/			
.e-parent.read.e-con-boxed .e-con-inner, .e-parent.read.e-con-full > .elementor-element, .e-con.e-parent .elementor-element.read.elementor-widget {			
	max-width:var(--w-read);		
	width:100%;		
	margin-inline:auto;		
}			
			
/*Common Grid Rules*/			
.grid-421 , .grid-321 , .grid-31, .grid-21 {			
	&:not(:has(.e-con-inner)), & .e-con-inner {		
		display:grid;	
		gap:var(--gap), 1em;	
		grid-template-rows:auto;	
	}		
}			
.grid-421 {			
	&:not(:has(.e-con-inner)), & .e-con-inner {		
		grid-template-columns: 1fr 1fr 1fr 1fr;	
	}		
}			
.grid-321, .grid-31 {			
	&:not(:has(.e-con-inner)), & .e-con-inner {		
		grid-template-columns: 1fr 1fr 1fr;	
	}		
}			
.grid-21 {			
	&:not(:has(.e-con-inner)), & .e-con-inner {		
		grid-template-columns:1fr 1fr;	
	}		
}			
/*Tablet Grid Change*/			
@media screen and (max-width:1024px) {			
	.grid-321, .grid-421 {		
		&:not(:has(.e-con-inner)), & .e-con-inner {	
			grid-template-columns:1fr 1fr;
		}	
	}		
}			
/*Mobile Grid Change*/			
@media screen and (max-width:767px) {			
	.grid-321, .grid-21, .grid-31, .grid-421 {		
		&:not(:has(.e-con-inner)), & .e-con-inner {	
			grid-template-columns:1fr;
		}	
	}		
}			
			
/*Section with photo spaning half of the Viewport*/			
/*Set the section to full width, must have two children one .text and one .image */			
/*Adding .start will flip the image to the left*/			
/*Add --aspect or --min-height to control image height*/			
/*Default has photo on top in mobile add .m-end to flip*/			
.half {			
	--aspect: 2 / 1;		
	--image-min: 300px;		
	flex-direction:row;		
	flex-wrap: wrap;		
	gap:0;		
	& .text {		
		padding-block:var(--pad-v);	
		padding-inline:var(--pad-half) var(--pad-h);	
		order:2;	
		align-self:center;	
		flex:1 1 max(50%, 30ch);	
	}		
	& .image {		
		flex:1 0 50%;	
		order:3;	
		min-height:var(--image-min);	
		aspect-ratio: var(--aspect);	
		background-position:center;	
		background-size:cover;	
	}		
	&.start {		
		& .image {	
			order: 1;
		}	
		& .text {	
			padding-inline:var(--pad-h) var(--pad-half);
		}	
	}		
}			
/*mobile fixes*/			
@media screen and (width < 65ch) {			
	.half {		
		flex-direction:column !important;	
		& .image {	
			order:1;
		}	
		&.m-end {	
			& .image {order:3;}
		}	
	}		
}			
			
/*ELEMENT STYLES*/			
/*Smooth Scrolling Image Carousel*/			
	/*add class name smooth*/		
	/*set autoplay speed to 1*/		
	.smooth .swiper-wrapper {		
		-webkit-transition-timing-function: linear !important;	
		transition-timing-function: linear !important;	
	}		
	/*Adjust the Viewing settings for consistent size*/		
	.smooth .swiper-slide-image {		
		aspect-ratio: 4 / 3;	
		object-fit: cover;	
		object-position: contain;	
		width:100%;	
	}		
/*Use display:grid on text editor*/			
.elementor-element-edit-mode.elementor-widget-text-editor {			
	> .elementor-text-editor {		
		grid-column:1 / -1;	
		grid-row:1 / -1;	
		display:inherit;	
		grid-template-columns: inherit;	
		grid-template-rows:inherit;	
		gap: inherit;	
	}		
}			