/*********************** STANDARD ELEMENTS ****************************/

html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b, u, i, center,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, figcaption, figure,footer, header, hgroup, menu, nav, section, summary,time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    vertical-align: baseline;
	font-weight:400;

}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section {
    display: block;
}

body {
	font-family: 'Poppins', sans-serif;
	font-weight: 300;
	font-style: normal;
    font-size: 16px;
    color: #616464;
    text-align: left;
    background: white;
	line-height: 1.45em;
	min-width: 320px;
}

/* for the admin page editing area */
.mceContentBody { background-color: #ffffff !important; background-image:none; }


table {
    border-collapse: collapse;
    border-spacing: 0;
}

td {
	
}

/* GENERAL FORMATTING */

a, a:visited {
    text-decoration: none;
    color: #43a6cc;
	font-weight: 500;
	transition: all .4s;
}

a:hover, a:active {
	color: #616464;
	transition: all .4s;
}

strong {font-weight:700}
em {font-weight:unset;}

li {
	margin-left:1.7em;
}




/* Headings */
h1, h2, h3, h4, h5, h6 {
    line-height: 1.45em;
    font-weight: 500;
}

h1 {
	margin-top: .5rem;
	margin-bottom: 1.5rem;
	line-height: 1.35em;
	color: #43a6cc;
	font-size: 2.2rem;
    font-weight: 300;
}

.connectHeader {
	font-size: 1.9em;
	font-weight: 300;
	margin-bottom: .5em;
	text-transform:uppercase;
	line-height: 1.45em;
	color: #43a6cc;
}

h2 {
    font-size: 1.6rem;
	font-weight: 300;
	color: #616464;
	margin-bottom: .5rem;
	line-height: 1.35em;
	}

h3 {
	color: #43a6cc;
    font-size: 1.2rem;
    margin: .5rem 0;
    font-weight: 500;
	text-transform: unset;
}



img,
embed,
object,
video {
    max-width: 100%;
    border: 0 none;
}

p {
	margin-bottom: .8em;
}


#content_area #contentContact p,
#content p {
	color: #616464;
	margin-bottom: 1.4em;
	font-size: 1rem;
    font-weight: 300;
    line-height: 1.5em;
}

#content ul {
	margin-left: 1.1em;
	margin-bottom: 1.5em;
	margin-top: 1.5em;
	
	
}

#content ul li,
#content ol li {
	/* list-style-image: url(../../../images/bullet.png); */
	color: #616464;
    margin-bottom: 0.4em;
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.5em;
	padding-left: 0.75em;
	
}

#content_area.wrap.homepage {
	padding: 3rem 0;
}

#content_area.wrap.homepage #content h2,
.div-home-stay-informed h2,
.div-home-latest-tech h2 {
	color: #43a6cc;
}

#content_area.wrap.homepage #content h1,
#content_area.wrap.homepage #content h2,
.div-home-stay-informed h1,
.div-home-stay-informed h2,
.div-home-latest-tech h1,
.div-home-latest-tech h2 {
    font-size: 2.2rem;
    text-align: left;
	width: 80%;
	font-weight: 300;
    margin: 0 auto 1rem;
    line-height: 2.8rem;
    padding: 0 .5rem;
}

#content_area.wrap.homepage #content h2 {
	text-align: center;
}

#content_area.wrap.homepage #content p,
.div-home-stay-informed p,
.div-home-latest-tech p {
	width: 80%;
    margin: 0 auto 1rem;
    text-align: left;
    color: #616464;
    font-size: 1rem;
    font-weight: 300;
}

.div-home-stay-informed .home-container-left p {
	text-align: center;
	margin: 2rem auto 0;
}




.div-home-latest-tech .home-container-left {
	position: relative;
}

.div-home-latest-tech .home-container-left p {
    margin: 0;
	width: auto;
	position: absolute;
	top: -3rem;
	left: -20rem;
}

.div-home-stay-informed .home-container-left p.home-mobile-phone {
	margin: -11rem 0 -6rem 5rem;
}

#content_area.wrap.homepage #content p a.btn,
.div-home-stay-informed a.btn,
.div-home-latest-tech a.btn {
	display: block;
	width: 180px;
	min-width: 130px;
    font-size: 1rem;
	font-weight: 500;
	color: white;
	background: #43a6cc;
	border: 1px solid #43a6cc;
	border-radius: .5rem;
	text-align: center;
	letter-spacing: normal;
	white-space: nowrap;
    margin: 0 auto;
	padding: .5em 1em;
	outline: none;
    transition: all .4s;
}

.div-home-latest-tech a.btn {
	margin-top: 3rem;
}

#content_area.wrap.homepage #content p a.btn:hover,
.div-home-stay-informed a.btn:hover,
.div-home-latest-tech a.btn:hover {
    background: white;
	color: #43a6cc;
	border-color: white;
	transition: all .4s;
}


/*********************** MAIN DIVS ****************************/
#top {
    min-width: 320px;
    width: 100%;
}

#middle {
    width: 100%;
    position: relative;
	min-width: 320px;

	overflow: hidden;
}

#bottom {
    width: 100%;
    position: relative;
    min-width: 320px;
	background: #2e393f;
}



/* end main divs */


/* Main wrap: this defines the full width site limits */
.wrap {
	background: transparent;
    clear: both;
    display: block;
    margin: 0 auto;
    padding: 0;
    max-width: 1220px;
	/* min-width: 320px; */
}
.wrap::after{
	clear:both;
	display:table;
	content:'';
}

/* Unwrap: removes the max-width restriction */
.unwrap {
	max-width:unset;
}
/* end .wrap */

.fixedContainer-opacity {
	position: absolute;
    width: 100%;
    height: 120px;
    top: 0;
    left: 0;
    background: white;
    opacity: .8;
}

.opacity-none {
	opacity: 1 !important;
	transition: all .1s;
}

.fixedContainer-opacity.opacity-none {
	height: 80px !important;
	transition: all .1s;
}

#iconbar {
	display: none !important;
}




.top-banner-text {
	width: 100%;
	height: calc(100% - 120px);
    position: absolute;
    top: 0;
	left: 0;
	display: flex;
    flex-direction: column;
	justify-content: center;
	margin-top: 119px;
}

.top-banner-text > .wrap {
	width: 100%;
}

.top-banner-text h1 {
	color: white;
    font-size: 2.2rem;
    font-weight: 300;
    line-height: 2.8rem;
    margin: 0 auto;
	text-align: center;
	text-shadow: 0 0 8px black;
}

.top-banner-text p {
    margin: 3rem auto 0;
    text-align: center;
    display: flex;
    flex-direction: row;
    justify-content: center;
}

.top-banner-text p a.btn {
	width: 180px;
	margin: 0 1rem;
}




.insetLarge h1,
.insetSmall h1 {

	visibility: hidden;

}

.insetLarge p,
.insetSmall p {

	visibility: hidden;
}




.topMenuBG > .wrap {
	display: flex;
}

#headerRight {
	display: flex;
    position: relative;
    align-items: center;
    margin: 0 0 0 2rem;
    flex-direction: column;
    justify-content: center;
}

#headerRight .topHeaderContact {
	position: relative;
}

#headerRight .topHeaderContact::before {
	position: absolute;
	display: block;
	content: '';
	width: 12px;
	height: 17px;
	top: 3px;
	left: -1rem;
	background: url("../../../images/blue_phone.png");
}

a.btn {
	display: block;
	min-width: 130px;
    font-size: 1rem;
	font-weight: 500;
	color: white;
	background: #43a6cc;
	border-radius: .3rem;
	text-align: center;
	letter-spacing: normal;
	white-space: nowrap;
    margin: 0 auto;
	padding: .5em 1em;
	outline: none;
    transition: all .4s;
}

a.btn:hover {
	color: #43a6cc;
	background: white;
	transition: all .4s;
}

#headerRight .topHeaderContact a {
    color: #43a6cc;
    font-weight: 600;
    white-space: nowrap;
    font-size: 1rem;
}

#headerRight .topHeaderContact a:hover {
    color: #616464;
}





#header-logo {
	width: 247px;
	height: 120px;
	position: relative;
}

#header-logo a {
    display: inline-block;
    width: 247px;
    height: 100%;
    position: relative;
}

#header-logo a:hover {
	opacity: .7;
	transition: all .4s;
}

#header-logo.logoWidthSmall {
	width: 210px !important;
	height: 80px;
	transition: all .2s;
}

#header-logo.logoWidthSmall a {
	width: 210px !important;
	transition: all .4s;
}


#header-logo a img {
	position: absolute;
	top: 50%;
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}

#topNav {
	flex: 1;
	display: flex !important;
	align-items: center;
	justify-content: flex-end;
}


.div-phone-icon {
	display: none;
}






.div-home-stay-informed {
	background: #ebecec;
	padding: 3rem 1.5rem;
}



.div-home-latest-tech {
	background: #ebecec;
	padding: 19rem 1.5rem 3rem;
	min-height: 585px;
}




.div-home-additional {
	background: #43a6cc;
	padding: 3rem 1.5rem;
}

.div-home-additional h1,
.div-home-additional h2,
.div-home-additional p {
	width: 80%;
	margin: 0 auto 1.5rem;
}

.div-home-additional h1,
.div-home-additional h2 {
	color: white;
	font-size: 2.2rem;
	font-weight: 300;
	text-align: center;
}

.div-home-additional p {
	text-align: center;
    color: white;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5rem;
}

.div-home-additional p:last-child {
    margin-bottom: 0;
}

.div-home-additional a.btn {
	background: white;
	color: #43a6cc;
	width: 180px;
	margin-top: 3rem;
}

.div-home-additional a.btn:hover {
	color: #616464;
	transition: all .4s;
}



#content_area.wrap.homepage #content .uncmsInnerWrap {
	display: none !important;
}



.home-container {
	display: flex;
}

.home-container-left,
.home-container-right {
	flex: 1;
}


.div-home-free-estimate {
	display: flex;
	background: #ebecec;
	min-height: 490px;
}

.div-home-free-estimate > .wrap {
	display: flex;
	background: url(../../../images/home_estimate.jpg) center no-repeat;
	background-size: cover;
	flex-basis: 100%;
}

.div-home-free-estimate h2,
.div-home-free-estimate p {
	width: 60%;
	margin: 0 auto;
}

.div-home-free-estimate h2 {
	font-weight: 300;
}

.div-home-free-estimate p {
	margin-bottom: 0;
}

.div-home-free-estimate a.btn {
	width: 180px;
	margin: 1rem 0 0;
}

.free-estiamte-container {
	display: flex;
	flex-basis: 100%;
}

.free-estimate-left,
.free-estimate-right {
	flex: 1;
}

.free-estimate-left {
	display: flex;
	flex-direction: column;
	justify-content: center;
}




.div-home-testimonials {
	background: #616464;
	padding: 3rem 1.5rem;
	display: flex;
	flex-direction: column;
	color: white;
}

.div-home-testimonials > .wrap {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.div-home-testimonials > .wrap:first-child {
	margin-bottom: 1.5rem;
}

.div-home-testimonials > .wrap > p,
.div-home-testimonials > .wrap > p:first-child,
.div-home-testimonials > .wrap > p:last-child {
    margin: 0 auto .5rem;
    width: 60%;
    font-size: 1rem;
    line-height: 1.5rem;
    text-align: center;
    font-weight: 500;
    position: relative;
}

.div-home-testimonials p:first-child::before,
.div-home-testimonials p:last-child::after {
    position: absolute;
    display: block;
	font-family: 'Arial, Helvetica, sans-serif';
	font-size: 300%;
}

.div-home-testimonials p:first-child::before {
    top: -.7rem;
	left: -.9rem;
    content: '\201C';
}

.div-home-testimonials p:last-child::after {
    bottom: .7rem;
	right: -.7rem;
    content: '\201D'
}


.div-home-testimonials > .wrap .testim-author {
	text-align: center;
	margin-bottom: 1rem;
	font-size: .9rem;
	font-weight: 300;
}

.div-home-testimonials > .wrap .testim-btn {
	margin-bottom: 0;
}

.div-home-testimonials a.btn {
	width: 180px;
}




.div-home-portfolio {
	padding: 3rem 0;
    background: white;
}

.div-home-portfolio h1,
.div-home-portfolio h2 {
	text-align: center;
	font-weight: 300;
	margin-bottom: 3rem;
	padding: 0 1.5rem;
}

.div-home-portfolio h2 {
	color: #43a6cc;
	font-size: 2.2rem;
	line-height: 2.8rem;
}

.home-portfolio-container {
	display: flex;
    flex-direction: row;
    justify-content: space-around;
    margin: 0 0 -14rem;
}

.portfolio-article {
    flex-basis: 30%;
    display: flex;
	flex-direction: column;
	box-shadow: 0 4px 12px #bdbdbd;
	border-radius: 1rem;
	overflow: hidden;
}

.portfolio-article-img {
	display: block;
    margin: 0;
    text-align: center;
}

.portfolio-article-img a:hover {
	opacity: .8;
}

.portfolio-article-img img {
    min-width: 100%;
}

.portfolio-article-text {
	background: white;
    flex-basis: 100%;
}

.portfolio-article-text h3 {
	padding: 0 1.5rem;
}

.portfolio-article-text p {
	margin-bottom: 1.5rem;
	padding: 0 1.5rem;
	font-size: 1rem;
}

.portfolio-article-text p a {
	color: #616464;
	font-weight: 300;
}

.portfolio-article-text p a:hover {
	color: #43a6cc;
}



.div-home-contact-us {
	padding: 2rem 0;
	background: #edeeef;
}

.div-home-contact-us h1 {
	font-size: 2.2rem;
	margin-bottom: 1rem;
	text-align: center;
	padding: 0 .5rem;
}

.div-home-contact-us p {
	margin-bottom: 2rem;
	text-align: center;
	font-size: 1.2rem;
	padding: 0 1.5rem;
}

.logo-footer {
	width: 247px;
	margin-bottom: 3rem;
}

.logo-footer a {
	transition: all .4s;
}

.logo-footer a:hover {
	opacity: .7;
	transition: all .4s;
}

#footer #footer-col1 p,
#footer #footer-col2 p,
#footer #footer-col3 p,
#footer #footer-col4 p {
	color: white;
	font-size: .85rem;
	font-weight: 300;
	margin-bottom: 0;
}



#footer #footer-col4 > div {
	float: right;
}

#footer #footer-col2 > div p:first-child,
#footer #footer-col3 > div p:first-child,
#footer #footer-col4 > div p:first-child,
#footer #footer-col2 > div p:first-child a,
#footer #footer-col3 > div p:first-child a,
#footer #footer-col4 > div p:first-child a {
	font-weight: 500;
}

#footer #footer-col1 p a,
#footer #footer-col2 p a,
#footer #footer-col3 p a,
#footer #footer-col4 p a {
	color: white;
	transition: all .4s;
	font-weight: 300;
}


#footer #footer-col1 p a:hover,
#footer #footer-col2 p a:hover,
#footer #footer-col3 p a:hover,
#footer #footer-col4 p a:hover {
	color: #43a6cc;
	transition: all .4s;
}



#footer .cmsInnerWrap {
	display: grid;
    grid-gap: 2rem;
    grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
    padding: 3rem 1rem 0;
}


#footer #footer-col4 {
	padding-top: 3px;
}

#footer #footer-col2 {
	padding-left: 6rem;
}

#footer #footer-col3 {
	padding-left: 5rem;
}






#footer #footer-col1 .footer-address,
#footer #footer-col1 .footer-call,
#footer #footer-col1 .footer-email {
	position: relative;
	margin-left: 3rem;
	margin-bottom: 1rem;
}

.footer-address::before,
.footer-call::before,
.footer-email::before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	left: -3rem;
}

.footer-address::before {
	width: 15px;
	height: 24px;
	background: url("../../../images/footer_address.png") no-repeat;
}

.footer-call::before {
	width: 16px;
	height: 21px;
	background: url("../../../images/footer_call.png") no-repeat;
}

.footer-email::before {
	width: 18px;
	height: 13px;
	background: url("../../../images/footer_email.png") no-repeat;
	top: .35rem;
}






.copyrightContainer .copyright-p {
	font-size: .8rem;
	color: #999b9e;
	font-weight: 300;
	text-align: left;
	margin: 0 1rem;
	padding: 1rem 0;
}

.copyrightContainer .copyright-p a {
	color: #999b9e;
	font-weight: 500;
}

.copyrightContainer .copyright-p a:hover {
	color: white;
}

.hidden-break {
	display: none;
}

/* cmsInnerWrap: divs with this class will have consistent margins and padding
** Used to wrap #content and #sidebar divs. Also add it to any div that should 
** have the same padding as the main content. In the header and footer, for example
** Notes: must be inside .wrap
**		  Changes here must be reflected in uncmsInnerWrap (found below)
**		  Margins must be in percentages to be unwrapped later
*/
.cmsInnerWrap {
	/* margin: 0 3%; */
	position:relative;
}
.cmsInnerWrap::after{
	clear: both;
	display: table;
	content: '';
}
/* Undoes the innerwrap at each break 
** Useful for custom segments that need to fill the full site width instead of respecting padding
** eg   padding(.cmsInnerWrap)
** margin   |
** (.wrap)  |
**	   |    |
**	----------------------------------------
**  |     |   |inside cmsInnerWrap|   |     |  
**  |     |   |  Normal Content   |   |     |     
**  |     |   |                   |   |     |   
**  |     |    .uncmsInnerWrap        |     |
**  |     | lets us set content all   |     |
**  |     | the way to the margin.    |     |
**  |     | good for feature areas    |     |
**  |     | with full width images    |     |
**  |     | or backgrounds            |
**  |     |   |                   |   |     |  
**  |     |   |  Normal Content   |   |     |     
**  |     |   |                   |   |     |      
*/
.uncmsInnerWrap{
	margin-left: -3.2%;
	margin-right: 0;
	width:106.4%;
}
@media (min-width:600px){
	/* .cmsInnerWrap {
		margin: 0 2%;
	} */
	.uncmsInnerWrap{
		margin-left: -2.1%;
		width:104.2%;
	}
	.cms_desktop #content .uncmsInnerWrap { unwrap_in_content_with_sidebar:;
		margin-left:-3%;
		width:105%;
		
	}
}
@media (min-width:1220px){
	/* .cmsInnerWrap {
		margin: 0;
	} */
	.uncmsInnerWrap{
		margin-left: -1.4%;
		width:102.9%;
	}
	.cms_desktop #content .uncmsInnerWrap { unwrap_in_content_with_sidebar:;
		margin-left:-2%;
		width:103.6%;
		
	}
}
@media (min-width:1320px){
	.cmsInnerWrap {
		margin: 0;
	}
	.uncmsInnerWrap{
		margin:0;
		width:100%;
	}
}
/* end cmsInnerWrap */


.google-map-container {
	width: 100%;
	height: 450px;
	margin: 2rem 0;
}



@media only screen and (max-width: 1450px) {

}

@media only screen and (max-width: 1290px) {
	.top-banner-text .wrap {
		padding: 1.5rem;
		width: calc(100% - 3rem);
	}
}

@media only screen and (max-width: 1280px) {

}

@media only screen and (max-width: 1180px) {

}

@media only screen and (max-width: 1142px) {
	#footer .cmsInnerWrap {
		grid-gap: 2rem 5rem;
	}
	

	#footer #footer-col4 > div {
		float: left;
	}

}

@media only screen and (max-width: 1125px) {

}

@media only screen and (max-width: 1100px) {

}

@media only screen and (max-width: 1080px) {
	.our-services-container {
		margin-top: 8rem;
	}

	.top-banner-text h1 {
		font-size: 1.7rem;
		font-weight: 300;
		line-height: 2rem;
	}

	.div-home-stay-informed .home-container-left p.home-mobile-phone {
		margin: -11rem 0 -6rem 4.5rem;
	}
}

@media only screen and (max-width: 1040px) {
	.top-banner-text p {
		margin-top: 2rem;
	}
	
	#header .top-banner-text p a.btn {
		padding: .3rem;
		font-size: .85rem;
	}

	.div-home-stay-informed .home-container-left p.home-mobile-phone {
		margin: -11rem 0 -6rem 4rem;
	}

}

@media only screen and (max-width: 979px) {

	.div-home-stay-informed .home-container-left p.home-mobile-phone {
		margin: -11rem 0 -6rem 3.5rem;
	}

}

@media only screen and (max-width: 956px) {
	
	#footer #footer-col2,
	#footer #footer-col3 {
		padding-left: 0;
	}
}

@media only screen and (max-width: 899px) {
	.fixedContainer-opacity {
		opacity: 1;
		height: 80px;
	}

	#topNav {
		display: block !important;
		order: 3;
	}


	#header-logo a {
		width: 210px;
	}
	
	.topHeaderContact {
		display: none;
	}

	#headerRight {
		flex: unset;
		float: none;
		display: block;
		position: absolute;
		right: 4rem;
	}

	.top-banner-text {
		height: 100%;
    	margin-top: 0;
	}

	#header .top-banner-text p a.btn {
		padding: .2rem .3rem .25rem;
	}

	#content_area.wrap.homepage #content h1,
	#content_area.wrap.homepage #content h2,
	#content_area.wrap.homepage #content p,
	.div-home-stay-informed h1,
	.div-home-stay-informed h2,
	.div-home-stay-informed p,
	.div-home-latest-tech h1,
	.div-home-latest-tech h2,
	.div-home-latest-tech p {
		width: 100%;
		padding: 0;
	}

	.div-home-stay-informed .home-container-left,
	.div-home-latest-tech .home-container-left {
		margin-bottom: 3rem;
	}

	.div-home-stay-informed .home-container-left p.home-mobile-phone {
		margin: -11rem 0 -6rem 1.4rem;
	}




	.home-container {
		display: flex;
		flex-direction: column;
	}

	.div-home-latest-tech {
		padding: 15rem 1.5rem 3rem;
		min-height: auto;
	}

	.div-home-latest-tech .home-container-left p {
		position: unset;
		width: 86%;
	}

	.div-home-latest-tech .home-container-left {
		margin-bottom: -2rem;
	}




	.div-home-additional h1,
	.div-home-additional h2,
	.div-home-additional p {
		width: 100%;
		text-align: left;
	}


	.our-services-container > div {
		margin: 5rem auto 10rem;
	}

	#footer #footer-col4 .topHeaderContact {
		display: block;
	}

	.div-phone-icon {
		display: block;
		float: right;
		margin: 28px 15px 0 0;
	}

	.insetLarge h1 {
		margin-top: 0;
	}

	.div-home-about-right p:last-child {
		text-align: center;
	}

}

@media only screen and (max-width: 767px) {

	#content_area.wrap.homepage #content {
		display: block;
	}

	#content_area.wrap.homepage #content .home-left p.paragraph-home-btn {
		display: none;
	}

	#content_area.wrap.homepage #content .home-right p.paragraph-home-btn-mobile {
		display: block;
		width: 100%;
	}

	#content_area.wrap.homepage #content .home-right p.home-right-text {
		width: 100%;
		margin: 0 0 2rem;
	}

	.home-left h2 {
		margin-bottom: 2rem;
	}



	.top-banner-text h1 {
		width: 100%;
		font-size: 1.4rem;
		line-height: 1.6rem;
		text-shadow: 1px 1px 2px black;
	}

	#header .top-banner-text p a.btn {
		padding: .2rem;
		font-weight: 500;
		font-size: .9rem;
	}


	.div-home-about-left {
		margin-left: calc(0px - 1.5rem);
		margin-right: calc(0px - 1.5rem);
	}

	.div-home-about-img {
		min-height: 300px;
	}

	.div-home-about-right {
		margin-bottom: 0;
	}



	.div-home-testimonials > .wrap > p,
	.div-home-testimonials > .wrap > p:first-child,
	.div-home-testimonials > .wrap > p:last-child {
		width: 100%;
	}

	.our-services-container > div {
		margin: 3rem auto 10rem;
	}

	.home-testimonials-left {
		flex: unset;
	}

	.home-testimonials-right {
		display: none;
	}

	.home-testimonials-left blockquote {
		margin: 0 auto;
		border: none;
	}

	.home-testimonials-left blockquote p {
		padding: 0;
	}



	.home-portfolio-container {
		display: block;
		margin-top: 0;
		margin-bottom: 0;
	}

	.div-home-latest-tech {
		padding: 0 1.5rem 3rem;
	}

	.div-home-latest-tech .home-container-left {
		margin-top: -6rem;
		margin-bottom: 0;
	}

	.div-home-portfolio {
		padding: 3rem 0 6.5rem;
	}

	.portfolio-article {
		width: 75%;
		margin: 0 auto 3rem;
	}

	#content_area.wrap.homepage #content h1,
	#content_area.wrap.homepage #content h2,
	.div-home-stay-informed h1,
	.div-home-stay-informed h2,
	.div-home-latest-tech h1,
	.div-home-latest-tech h2,
	.div-home-additional h1,
	.div-home-additional h2,
	.div-home-portfolio h2 {
		font-size: 1.8rem;
		line-height: 2.2rem;
	}
}

@media only screen and (max-width: 679px) {
	.our-services-container > div {
		width: 70%;
	}

	#footer #footer-col2 p {
		white-space: normal;
	}

	.top-banner-text p {
		display: block;
		margin-top: 1rem;
	}

	#header .top-banner-text p a.btn {
		margin: .5rem auto;
	}

}


@media only screen and (max-width: 626px) {
	#footer-col4 .topHeaderContact a:first-child {
		margin-right: .5rem;
	}
}


@media only screen and (max-width: 611px) {

	.our-services-container > div {
		margin: 1rem auto 10rem;
	}
	
	#footer .cmsInnerWrap {
		display: block;
	}

	#footer .cmsInnerWrap > div {
		padding: 0 !important;
	}

	#footer #footer-col4 .topHeaderContact {
		float: none;
		width: 220px;
		margin: 0 auto;
	}

	#footer #footer-col4 .topHeaderContact:first-child {
		margin-top: 0;
	}

	#footer #footer-col1,
	#footer #footer-col2,
	#footer #footer-col3 {
		margin-bottom: 2rem;
	}

	#footer #footer-col4 #topHeaderContact:nth-of-type(2) {
		clear: both;
	}

	.copyrightContainer .copyright-p {
		text-align: center;
	}

	.hidden-break {
		display: inline;
	}

	#footer #footer-col4 #topHeaderContact {
		margin: 0 auto 25px;
		width: 189px;
	}



	.free-estiamte-container {
		flex-direction: column;
	}

	.free-estimate-left {
		justify-content: start;
	}

	.div-home-free-estimate h2,
	.div-home-free-estimate p {
		text-align: center;
	}

	.div-home-free-estimate h2 {
		margin-top: 1.2rem;
	}

	.div-home-free-estimate a.btn {
		margin: 1rem auto 0;
	}

}

@media only screen and (max-width: 550px) {
	.our-services-container > div {
		width: 80%;
	}


	#content_area.wrap.homepage #content h1,
	#content_area.wrap.homepage #content h2,
	.div-home-stay-informed h1,
	.div-home-stay-informed h2,
	.div-home-latest-tech h1,
	.div-home-latest-tech h2,
	.div-home-portfolio h1,
	.div-home-portfolio h2,
	.div-home-additional h1,
	.div-home-additional h2 {
		/* font-size: 1.8rem;
		line-height: 2.5rem; */

		font-size: 1.5rem;
		line-height: 2rem;
	}

}

@media only screen and (max-width: 500px) {
	.portfolio-article {
		width: 90%;
	}
}

@media only screen and (max-width: 479px) {

	.fixedContainer-opacity {
		height: 80px !important;
	}

	.topMenuBG {
		height: 80px !important;
	}

	#header-logo {
		height: 80px !important;
	}

	.top-banner-text h1 {
		font-size: 1.3rem;
		line-height: 1.4rem;
	}

	.top-banner-text p {
		margin-top: .5rem;
	}

	.insetLarge h1 {
		font-size: 1.7rem;
	}

	.div-home-about-img {
		min-height: 200px;
	}

	.div-home-about-right {
		margin-top: 2rem;
	}

	.div-home-testimonials {
		min-height: 420px;
	}

	.our-services-container > div {
		border: none;
		padding: 0;
		width: 100%;
		margin-bottom: 0;
	}

	.our-services-container {
		margin-top: 0;
	}

	.services-img {
		margin-top: 0;
	}

	.services-img img {
		min-width: 100%;
	}

	.our-services-container > div h2,
	.our-services-container > div p {
		padding: 0 1.5rem;
	}

	.copyrightContainer .copyright-p {
		font-size: .7rem;
	}

	.home-gallery-container {
		grid-template-columns: repeat(auto-fit,minmax(230px,1fr));
	}

	.home-gallery-container > div {
		width: 230px;
		height: 170px;
	}

	.div-home-free-estimate > .wrap {
		background: url(../../../images/home_estimate_mobile.jpg) center no-repeat;
		background-size: cover;
	}

	.div-home-free-estimate h2 {
		font-size: 1.4rem;
	}

	.div-home-free-estimate a.btn {
		width: 150px;
		margin-top: .3rem;
	}

	.div-home-free-estimate {
		min-height: 540px;
	}

	.div-home-stay-informed .home-container-left p.home-mobile-phone {
		margin: -11rem 0 -6rem 1.2rem;
	}
}

@media only screen and (max-width: 360px) {
	#headerRight {
		right: 2.75rem;
	}

	#header .top-banner-text p a.btn {
		margin: .25rem auto;
	}

	.div-home-stay-informed .home-container-left p.home-mobile-phone {
		margin: -11rem 0 -6rem .9rem;
	}
}



/* Stacked class is used with the iconbar but can be used anywhere this arrangement is needed
**	small screen:
**	{Top Left   }{    Top Right}
**	{Left       }{        Right}
**
**	and fullscreen:
**	{                   TopLeft}{Top Right}{Left}{Right}
*/
.stacked{
	width:100%;
	position:relative;
	background:black;	
}
.stacked::after {
    display: table;
    content: '';
    clear: both;
}

.stacked .stackedTop{
	width: 100%;
	text-align:center;
	background:black;
}
.stacked .stackedTop::after{
	display:table;
	content:'';
	clear:both;
}
.stacked .stackedTopLeft{
	float:left;
}

.stacked .stackedTopRight{
	float:right;
}

.stackedBottom {
	background:black;
	border-bottom: 6px solid #93304a;
}
.stacked .stackedBottom::after{
	display:table;
	content:'';
	clear:both;
}

.stacked .stackedLeft{
	width: 50%;
	float:left;
}

.stacked .stackedRight{
	width:50%;
	float:right;
	text-align:right;
}

@media (min-width:600px){

	.stacked {
		border-bottom: 6px solid #93304a;
	}
	
	.stacked .stackedGroup{
		float:right;
	}
	
	.stacked .stackedTop{
		float:left;
		text-align:right;
		width:unset;
		border-bottom:unset;
	}
	
	.stacked .stackedBottom{
		float:right;
		text-align:right;
		width:unset;
		border-bottom:unset;
	}

	.stacked .stackedLeft{
		float:left;
		text-align:right;
		width:unset;
	}

	.stacked .stackedRight{
		float:left;
		text-align:right;
		width:unset;
	}
}
/* end .stacked */


/*  CONTENT and Sidebar */

#content_area {
		text-align: left;
		padding: 1rem 0;
	}
	

@media (min-width: 550px) and (max-width: 899px) {

}
	
@media (min-width: 900px) and (max-width: 1230px) {

}	
	

#content_wrap {
	margin-top: 0;
	margin-bottom: 0;
	display:flex;
	flex-direction:column;
}


#content{
	order:2; /* put_in-middle_using_flex:; */
}

/* default sidebar behaviour (small screens or default if device has js disabled) */
.sidebarPart{ /*common class for sidebar-top and sidebar_bottom */
	box-sizing:border-box;
}
#sidebar-top{
	margin-top:0;
	margin-bottom:1em;
	margin-left: 1.5rem;
	margin-right: 1.5rem !important;
	order:1; /* above_content_w_flex:; */
}
#sidebar-bottom{
	margin-top:2em;
	order:3; /* below_content_w_flex:; */
}

/* Rules for Content and Sidebar for Desktop
	.cms_desktop_sidebar: class added to content_wrap with js when screen width >=900px and sidebar is present
	#jsSidebarWrap: added with js. This div wraps #sidebar_top/bottom iff screen width >= 900px and sidebar exists
	<div #jsSidebarWrap > <- only exists when sidebar exists and screen width >=900px
		<div #sidebar_top>
		<div #sidebar_bottom>
	
*/
#content_wrap.cms_desktop_sidebar{
	flex-direction:row;
	margin-left: 0;
}
#content_wrap.cms_desktop_sidebar #content{
	flex: 3 0px;
	order:1;
	padding-right:1em;
	
}
#content_wrap.cms_desktop_sidebar #jsSidebarWrap{
	order:2;
	width:20em;
	margin-top: 4em;
}

@media (min-width: 550px) and (max-width: 899px) {
	
	#content_wrap.cms_desktop_sidebar #jsSidebarWrap{
	order:2;
	width:17em;
	margin-top: 4em;
	}
	
}

/*  end CONTENT and Sidebar */

/*********************** Utility CLASSES ****************************/
.clearAfter::after {display:'table';clear:'both';content:'';}
.clear { clear:both; }
.nobr, .nowr {white-space: nowrap;}
.whiteBG {background:white;}
.blackBG {background:black;}
.left {float:left;}
.right {float:right;}
.full {width:100%;}
.leftimg {clear:left; float:left;margin:.3em 2em 2em 0;font-style:italic;}
.rightimg {clear:right; float:right;margin:.3em 0 2em 2em;font-style:italic;}
.leftimg p, .rightimg p {margin:.5em 0 0 0;}
.fullimg {width:100%; margin-bottom:1em;}
.half {width:50%;}
.halfleftimg {float:left; width:48%;margin:1em 0;}
.halfrightimg {float:right; width:48%;margin:1em 0;}
.imgfullwidth {width: 100%;}
.side2sideleft {width: 49%; margin-right:1%;}
.side2sideright {width: 49%; margin-left: 1%;}
.side3sideleft {width: 32%; margin-right:1%;}
.side3sidemid {width: 32%; margin-left: 1%; margin-right: 1%;}
.side3sideright {width: 32%; margin-left: 1%;}
.third {width:35%;}
.center {display:block;margin:2em auto;text-align:center;font-style:italic;width:auto;}
.noscale {max-width:none;}
@media (max-width: 549px) {
	.left, .right {float:none;}
	.leftimg, .rightimg {float:none;margin:2em auto;display:block;text-align:center;font-style:italic;}
	.half, .third  {width:auto;}
	.hideinmobile {display:none;}
}
.width25{
	max-width:25%;display:block;
}
.width50{
	max-width:50%;display:block;
}
.width75{max-width:75%;display:block;}



#content .toggleExpandable,
#content .toggleExpandable p {
	cursor: pointer;
	
	color: #43a6cc;
    font-size: 1rem;
    margin: .5rem 0;
    font-weight: 600;
    text-transform: unset;
}
.toggleExpandable::before {
    content: '\0025BC';
    margin-right: 1rem;
	float:left;
}
.toggleExpandable.open::before {
    content: '\0025B2';
}
.expandableItem {
    display: none;
}


/* JUSTIFY FLOATING DIVS */

ul.justify {
    font-size: 0 !important;
    line-height: 0;
    list-style-type: none;
    margin: 0;
    padding: 0;
    text-align: justify;
    text-justify: distribute-all-lines;
}

ul.justify:after {
    content: "";
    display: inline-block;
    width: 100%;
}

ul.justify li {
    display: inline-block;
    font-size: 1rem;
    line-height: 1rem;
    margin: 0 auto !important; this-will-center-single-objects:;
    padding: 0 !important;
}

/* (untested) IE hacks to make li's line up */
*+html ul.justify li {display: inline;}
* html ul.justify li {display: inline;}


@media screen and (max-width: 549px) {
	#content ul {
    margin-left: 0;
	}
	
	#content ul.longList {
	-webkit-column-count: 1; /* Chrome, Safari, Opera */
    -moz-column-count: 1; /* Firefox */
    column-count: 1;
	}
	
}

/** FORMS **/
form {
    display: flex;
    display: -webkit-flex;
    flex-direction: column;
    -webkit-flex-direction: column;
}
form div {
    display: flex;
    display: -webkit-flex;
    flex-direction: row;
    -webkit-flex-direction: row;
    justify-content: space-between;
}
form label .fmrequire, .fmrequire {
    color: #ff0000;
    margin-left: 3px;
}
form input[type=submit] {
    padding: 3px;
}
#fmMessage {
    padding: 1em;
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    display: none;
}
#fmMessage.fmError {
    background: #fc6c6c;
}
#fmMessage.fmSuccess {
    background: #7cff8c;
}
form div.fmCheckboxRow, form div.fmRadioRow {
    justify-content: flex-start;
    -webkit-justify-content: flex-start;
    margin-bottom: 1rem;
}

form div.fmCheckboxRow label, form div.fmRadioRow label {
    margin-left: 0;
}

form div.fmRadioRow input[type=radio] {
    margin-left: 1em;
}

form input[type=text], form input[type=email], form textarea {
	width:100%;
	background: #ffffff;
	padding:.5rem;
	margin:0 0 1rem 0;
	vertical-align:middle;
	border:1px solid #c0c0c0;
    font-family: 'Poppins', sans-serif;
	font-weight:400;
	font-style:normal;
    font-size: 15px;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	outline: none;
}

form .selectType  {
    width:100%;
    ppheight:2em;
    pppadding-left:1em;
    padding:1rem;
    margin:0 0 1rem 0;
    vertical-align:middle;
    border:1px solid #c0c0c0;
    color: #757579 !important;
    font-family: 'Poppins', sans-serif;
    font-weight:400;
    font-style:normal;
    font-size: 15px;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    line-height: 1.8em;
}
    
form .selectType select, form select {
    color: #757579;
    padding: .5em;
    margin-bottom: 1rem;
}

form textarea {
    margin-bottom: 1rem !important;
    min-height:12em;
}

form #captchaContainer {
    display: block;
    max-width: 330px;
}

form #captcha-image-box {
    display: block;
}

form img#captcha {
    width: 100%;
}

form input[type=submit], form input#button {
	padding: .7rem 1.5rem;
    text-transform: uppercase;
	font-size:1.15em;
	border: 1px solid transparent;
	background:#43a6cc;
	color: white;
	font-weight:400;
	xmargin:1rem 0 0 0;
	letter-spacing: .12rem;
	font-family: 'Poppins', sans-serif;
}

form input[type=submit]:hover, form input#button:hover, form input[type=submit]:active, form input#button:active {
	background:#ebeae8;
    color: #43a6cc;
	cursor: pointer;
	border: 1px solid #43a6cc;
	transition: all .4s;
}




@media (min-width: 900px) {
	#sidebar-bottom.sb_blog.sidebarPart {
		padding-right: 1.25rem;
	}
}

@media (min-width: 550px) and (max-width: 915px) {
	#sidebar-top.sb_blog.sidebarPart {
		display: none;
	}

	#content_area.wrap.blog.hasSidebar {
		display: flex;
		flex-direction: row-reverse;
	}

	#content_area.wrap.blog.hasSidebar #sidebar-bottom {
		flex: 1;
	}

	#content_area.wrap.blog.hasSidebar #sidebar-bottom .blog-list.sidebarIntro {
		padding: 0 1em 0 0;
	}

	.blogposttext {
		word-break: break-word;
	}
}

@media only screen and (max-width: 549px) {
	.blogposttext {
		word-break: break-word;
	}
}
