@charset "UTF-8";
/* CSS Document */

body, h1, h2, h3, h4, h5, h6 {
  font-family: "Montserrat", sans-serif;
}

body {
	font-weight: 300;
  font-size: 23px;
  line-height: 1.4em;
	letter-spacing: .1px;
  background: #f5f5f5;
}

h1 {font-size: 200%;}
h2 {font-size: 180%;}
h3 {font-size: 160%;}
h4 {font-size: 140%;}
h5 {font-size: 120%;}
h6 {font-size: 100%;}

h1, h2, h3, h4, h5, h6 {
	background: none;
  border: none;
	box-shadow: none;
	text-shadow: none;
	font-weight: 900;
	padding: 0 0 17px;
	margin: 0;
	line-height: 1.1;
}


.blog-items .blog-item {
  border: 1px solid #ddd;
  padding: 1vw;
  border-radius: 23px;
  box-shadow: 0 0 67px rgba(0,0,0,.05);
}







/*** structural *****************************************************************************/

body .container-header {
  background: url(../images/top-bg.png);
  background-size: 100% 100%;
  z-index: 2;
  position: fixed;
  width: 100%;
  transition: all 1s ease-in-out;
}

body:not(.homepage) .container-header {
  background: url(../images/top-bg.png), url(../images/cityscape.jpg);
  background-repeat: no-repeat, no-repeat;
  background-size: cover, cover;
  background-position: center center, left center;
}

body .logo {
  height: auto;
  max-width: 700px;
  margin: 0px 0 -87px;
  transition: all 1s ease-in-out;
}

body .request-phone {
  position: absolute;
  top: 1vw;
  right: 1vw;
  z-index: 3;
  max-width: 600px;
  transition: all .5s ease-in-out;
}

body:not(.homepage) .site-grid {
  margin-top: calc(194px + (100vw - 992px) * (72 / 6008));
  margin-left: auto;
  margin-right: auto;
  max-width: 1740px;
}

/* Force background video to fill banner */
.container-banner video,
.container-banner .ls-bg-video,
.container-banner .ls-html5-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body .container-banner {
  background: none;
  z-index: 1;
  margin: 0;
}

.site-grid > .container-banner { /* make banner full-width */
  grid-column: 1 / -1;
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: none;
  box-sizing: border-box;
}


html, body { /* kill the tiny horizontal scroll globally */
  overflow-x: hidden;
}



body .grid-child.container-nav {
  width: 100%;
  max-width: 100%;
}

body .container-component > :first-child, 
body .container-sidebar-left > :first-child, 
body .container-sidebar-right > :first-child, 
body .container-component > * + *, 
body .container-sidebar-left > * + *, 
body .container-sidebar-right > * + * {
  margin-top: 0;
}

body .site-grid .container-component {
  background: #fff;
  box-shadow: 0 0 200px rgba(0,0,0,.1);
}

body:not(.has-sidebar-right) .site-grid .container-component {
  grid-column-end: full-end;
}
body:not(.has-sidebar-left) .site-grid .container-component {
  grid-column-start: full-start;
}

body.has-sidebar-right .site-grid {
  column-gap: 0;
}

body .container-sidebar-right {
  background: #fff;
  box-shadow: 100px 0 100px rgba(0,0,0,.05);
}


body .container-sidebar-right .sidebar-right {
  margin-bottom: 0;
}

body .container-sidebar-right .sidebar-right:first-child {
  margin-top: 0;
}

body:not(.homepage) .site-grid .container-component {
  padding: 2vw;
}

body .grid-child {
  max-width: none;
}

body .mod-breadcrumbs.px-3 {
  background: none;
  margin: 0 0 23px;
  padding: 0 !important;
  font-size: 87%;
  font-weight: 400;
}

body .breadcrumb-item + .breadcrumb-item::before {
  content: var(--breadcrumb-divider,"|");
}

body .breadcrumb-item a {
  text-decoration: none;
}

body.wrapper-fluid header > .grid-child,
body.wrapper-fluid footer > .grid-child {
  padding-left: 0;
  padding-right: 0;
}

body .footer {
  background: none;
  margin: 0;
}

body .com-content-article.item-page .convertforms .cf-form-wrap {
  padding: 0;
}





/*** scrolled ****************************************************************************************************/

body.scrolled .logo {
  max-width: 301px;
  margin-bottom: -57px;
}

body.scrolled .request-phone {
  right: -700px;
}

body.scrolled .container-header {
  border-bottom: 1px solid #000;
}






/* widget kit slider */

body .uk-scope {
    padding: 1vw 0;
}

body .uk-scope .logo-slider .uk-grid-item-match > :not([class*="uk-width"]), 
body .uk-scope .logo-slider .uk-grid-match > * > :not([class*="uk-width"]) {
  background-size: contain;
}

.com-content-article ul.uk-slider-items, /* Cassiopeia override: don't clip UIkit/WidgetKit slider track */
.com-content-article ol.uk-slider-items,
.com-content-article .uk-slider-items {
  overflow: visible !important;
}

.uk-scope .logo-slider .uk-slider-items { /* Widgetkit / UIkit slider: slow the slide movement */
  transition-duration: 4000ms !important;
  transition-timing-function: ease-in-out !important;
}







/*** top menu *******************************************************************************/

/* hide stupid useless white underline */
body .container-header .metismenu > li > a:hover::after, 
body .container-header .metismenu > li > button:hover::before, 
body .container-header .metismenu > li.active > a::after, 
body .container-header .metismenu > li.active > button::before {
	background: none;
}

.metismenu.mod-menu .mm-toggler {  /* hide arrow to indicate dropdowns */
    display: none !important;
}

body .metismenu.mod-menu .metismenu-item:hover .mm-collapse { /* make menu drop down on hover */
    display: block !important;
}

body .menu {
  width: 100%;
  padding-right: 1vw;
}

body .mod-menu_dropdown-metismenu {
  justify-content: right;
}

body .container-header .container-nav {
  padding: 0 1vw;
}

body .metismenu.mod-menu .metismenu-item {
  padding: 0;
  margin: 0;
  line-height: inherit;
}

body .metismenu.mod-menu .metismenu-item a:hover:not(.search),
body .metismenu.mod-menu .metismenu-item.active > a:not(.search) {
  background: linear-gradient(to bottom, rgba(255,255,255,.3), rgba(255,255,255,0));
  text-decoration: none;
}

body .metismenu.mod-menu .metismenu-item a {
  padding: .6vw .7vw .6vw .9vw;
  margin: 0;
  font-size: 23px;
  letter-spacing:  .2em;
  line-height: 1;
  text-transform: uppercase;
}



/*** search icon ***/

body .metismenu-item.level-1 a.search {
  background: url(../images/search.png) 50% 50% no-repeat;
  background-size: contain;
  color: rgba(0,0,0,0) !important;
  max-width: 39px;
  max-height: 39px;
}




/*** dropdowns ***/
body .metismenu.mod-menu .metismenu-item .mm-collapse {
  background: #474747;
}

body .metismenu.mod-menu .metismenu-item .mm-collapse a {
  color: #fff;
  font-size: 83%;
  letter-spacing: .1rem;
  width: 100%;
  justify-content: right;
}

body .metismenu.mod-menu .metismenu-item a:hover,
body .metismenu.mod-menu .metismenu-item.current a {
  text-decoration: none;
}

body .metismenu.mod-menu_dropdown-metismenu .metismenu-item {
  justify-content: right;
}

body .metismenu.mod-menu .metismenu-item:not(.level-1) > ul, 
body .metismenu.mod-menu .metismenu-item:not(.level-2) > ul {
  margin-inline-end: 0;
}











/*** tag cloud ***/

body .tag-cloud {
  background: linear-gradient(to bottom, #3c7ba7, #083e5e);
  font-weight: 900;
  letter-spacing: .3em;
  font-size: 115%;
  padding: 47px 23px;
}

body .tag-cloud,
body .tag-cloud a {
  color: #fff;
  text-decoration: none;
}

body .tag-cloud a:hover {
  text-decoration: underline;
}





/*** creative slider ***/

body .ls-layer, body .ls-layer a {
  color: #fff !important;
}

body .ls-layer h1 {
  font-size: 600%;
  text-shadow: 2px 2px 5px rgba(0,0,0,.3);
}
body .ls-layer h3 {
  font-size: 400%;
  text-shadow: 2px 2px 5px rgba(0,0,0,.3);
}

body .ls-layer .learn-more-button {
  background: url(../images/btn-bg.png) no-repeat;
  background-size: 100% 100%;
  padding: 10px 25px;
  border: none;
  border-radius: 0;
  font-size: 200%;
  display: inline-block;
  letter-spacing: .1em;
  margin-top: 15px;
  color: #fff;
  text-decoration: none;
}

body .ls-layer  .learn-more-button:hover {
  padding: 15px 30px;
  margin-top: 10px;
  text-decoration: none;
}




/*** sp pagebuilder ****************************************************************************/

/* =========================================================
   SP Page Builder: vertical-align columns (SCOPED)
   Add class "vcenter-row" to the SECTION you want centered
   ========================================================= */

@media (min-width: 768px) {

  /* only affect that one section */
  .vcenter-row .sppb-row {
    display: flex;
    align-items: stretch;
  }

  .vcenter-row .sppb-row > [class*="sppb-col-"] {
    display: flex;
    flex-direction: column;

    /* IMPORTANT: prevents horizontal overflow in flex layouts */
    min-width: 0;
  }

  .vcenter-row .sppb-column-addons {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1 1 auto;

    /* also helps prevent tiny overflow */
    min-width: 0;
  }
}

/* If any media inside the centered section is wider than its column */
.vcenter-row img,
.vcenter-row video,
.vcenter-row iframe {
  max-width: 100%;
}

body .sppb-button-wrapper a {
  text-decoration: none;
}

/* The “boxed width” usually happens on an inner wrapper */
#section-id-cade84f8-17be-4a4a-a547-8420d65fa88d .sppb-row-container,
#section-id-cade84f8-17be-4a4a-a547-8420d65fa88d .sppb-container {
  max-width: none !important;
  width: 100% !important;
}




/* services 3 up */

body .services-3up .sppb-row-container {
  background: #fff;
  box-shadow: 0 0 123px rgba(0,0,0,.2);
}

body .services-3up .sppb-column-addons {
  transition: all 0.3s ease-out;
}

body .services-3up .sppb-column-addons:hover {
  margin-top: -19px;
}

body .services-3up .sppb-row-container {
  padding-left: 53px;
  padding-right: 53px;
}


/*** cgtp code ***/
body .services-3up .sppb-row { /* 1) Make the 3 columns equal height */
  align-items: stretch;
}

body .services-3up .sppb-column-addons { /* 2) Turn each column into a vertical layout */
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 17px; /* spacing between headline / text / button */
}

/* 3) HEADLINE: reserve equal vertical space (responsive via em) This is what makes the middle paragraphs line up. It does NOT “force” a fixed pixel height; it’s a minimum based on font size. */
body .services-3up .addon-root-heading,
body .services-3up .sppb-addon-header {
  min-height: 4.8em;/* reserve space roughly for 4 lines of headline */
  display: flex;
  align-items: flex-end;
  justify-content: center;
  text-align: center;
}

body .services-3up .addon-root-text-block, /* 4) TEXT: take remaining space and center vertically inside its band */
body .services-3up .sppb-addon-text {
  flex: 1 1 auto;
  display: flex;
  align-items: flex-start;      /* vertical */
  justify-content: center;  /* horizontal */
  text-align: center;
}

body .services-3up .addon-root-button, /* 5) BUTTON: push to bottom + keep centered */
body .services-3up .sppb-addon-button {
  margin-top: auto;
  text-align: center;
}












/*** sidebar in this section ***/

body .sidebar-right {
  padding-top: 2vw;
}

body .sidebar-right h3 {
  padding: 0 1vw;
}

body .in-this-section .mod-list {
  padding-inline-start: inherit;
  padding: 0 1vw;
}

body .in-this-section .mod-list a {
  text-decoration: none;
  line-height: 1;
  font-weight: 400;
  display: flex;
  border: 7px solid rgba(255,255,255,0);
  margin: -5px -11px;
  padding: 5px 11px;
}

body .in-this-section .nav-item.current a,
body .in-this-section .mod-list a:hover,
body .in-this-section .mod-list a.active {
  text-decoration: none;
  background: linear-gradient(to bottom, #0963a2, #053a60);
  color: #fff;
  border: 7px solid rgba(255,255,255,.9);
}




/*** homepage logo slider ***/

body .main-bottom {
  padding: 2vw 0;
  background: #fff;
}



/*** joomla core accessibility ***/

body ._access-icon.material-icons._access {
  background: #fff url(../images/accesibility-icon.png) !important;
  background-size: auto;
  background-size: cover !important;
  font-size: 0 !important;
  border-radius: 100px;
  min-height: 61px;
  min-width: 61px;
  left: 19px !important;
  bottom: 19px !important;
}

body ._access-menu {
  width: auto;
  height: auto;
  border: solid 1px #f1f0f1;
  font-family: inherit;
  min-width: 343px;
  border-radius: 13px;
  box-shadow: 0 0 53px rgba(0,0,0,.3);
}

body ._access-menu.left {
  left: 13px;
}
body ._access-menu.bottom {
  bottom: 18px;
}


/*** footer ***************************************************************************************************/

/* Footer layout */
.footer .grid-child {
  display: flex;
  flex-wrap: wrap;                 /* allow second row */
  justify-content: space-between;  /* even spacing for first row */
  align-items: stretch;
  margin: 0;
  padding: 0;
}

/* First 3 footer blocks */
.footer .grid-child > .footer:not(.copyright) {
  flex: 0 0 calc((100% - (2 * 0px)) / 3);  /* 3-up layout */
  background: #08578f;
  padding: 1vw;
  align-content: center;
}

/* Copyright row */
.footer .grid-child > .footer.copyright {
  flex: 0 0 100%;                  /* full width */
  max-width: 100%;
  text-align: center;              /* optional */
  color: #000;
  padding: 2vw;
}

/* logo column */

.footer .grid-child .btm-logo button {
  background: url(../images/btn-bg.png) no-repeat;
  background-size: auto;
  background-size: 100% 100%;
  border-radius: 0;
  border: none;
  padding: 15px 20px;
  min-width: 200px;
}

.footer .grid-child .btm-logo button a {
  color: #ccc;
  font-size: 83%;
  text-decoration: none;
}
.footer .grid-child .btm-logo button a:hover {
  color: #fff;
  font-size: 91%;
  text-decoration: none;
}


/* btn menu */

.footer .grid-child > .footer.btm-menu {
  text-align: right;
  text-transform: uppercase;
}

.footer .grid-child > .footer.btm-menu .nav-item a {
  text-decoration: none;
  line-height: 2;
}

.footer .grid-child > .footer.btm-menu .nav-item.current a,
.footer .grid-child > .footer.btm-menu .nav-item a:hover {
  text-decoration: none;
  font-weight: 400;
}











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

body .request-phone {
  max-width: 60%;
}

body .sppb-row-container {
  max-width: 100%;
}

}



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

body .logo {
  max-width: 80%;
}

body:not(.homepage) .site-grid {
  margin-top: 191px;
}

body .banner {
  margin-top: -191px;
}
  
body .sidebar-right {
  margin: auto;
}

.footer .grid-child .footer,
.footer .grid-child .footer.btm-menu  {
  text-align: center;
}

.footer .grid-child > .footer:not(.copyright) {
  padding: 4vw 1vw 2vw;
  align-content: center;
}

/*** menu ***/

.container-header .navbar-toggler {
  color: #ccc;
  cursor: pointer;
  border: 1px solid #ccc;
  box-shadow: none;
  margin-left: auto;
  margin-bottom: 3px;
}

body .navbar-collapse {
  position: absolute;
  right: 0px;
  top: 31px;
  background: #474747;
}

body .navbar-collapse .mod-menu {
    text-align: right;
}




}




















