/* ================================================================================================= */
/* X
/* X
/* ================================================================================================= */

/* ------------------------------------------------------------------------------------------------- */
/* Base
/* ------------------------------------------------------------------------------------------------- */

body {
    background-color: #FFFFFF;
    line-height: 1.7;
}


/* Typography
/* ------------------------------------------------------------------------------------------------- */

body {
    color: #565656;
    font-family: 'Raleway', sans-serif;
    font-variant-numeric: lining-nums;
}

p {
    line-height: 1.7;
}

.text--small,
.text--small p {
    font-size: 13px;
}


/* Headings
/* -------------------------------------------------- */

/* Headline */
.text--headline {
    font-size: 32px;
    line-height: 1.2;
}

h1,
.h1 {
    color: #112027;
    font-size: 39px;
    font-weight: 700;
    letter-spacing: -0.2px;
    line-height: 1.3;
    margin-bottom: 24px;
}

h2,
.h2 {
    color: #112027;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -0.14px;
    line-height: 1.35;
    margin-bottom: 24px;
}

h3,
.h3 {
    color: #112027;
    font-size: 25px;
    font-weight: 700;
    letter-spacing: -0.1px;
    line-height: 1.35;
    margin-bottom: 16px;
}

h4,
.h4 {
    color: #112027;
    font-size: 19px;
    font-weight: bold;
    letter-spacing: -0.08px;
    line-height: 1.4;
    margin-bottom: 8px;
}

h5 {
    color: #0389C2;
    letter-spacing: 0.4px;
    line-height: 1.5;
    text-transform: uppercase;
}

/* Adjust @large breakpoint */
@media (min-width: 800px) {
    
    /* Adjust headline */
    .text--headline {
        font-size: 64px;
        letter-spacing: -0.4px;
        line-height: 1.1;
    }

}


/* Horizontal rule
/* -------------------------------------------------- */

hr {
    background-color: rgba(0, 0, 0, 0.1);
    border: 0 none;
    height: 1px;
}

hr.divider--zero {
    margin: 0;
}


/* Links
/* -------------------------------------------------- */

p a,
.link--base {
    color: #0389C2;
    font-weight: bold;
    transition: color 0.15s ease-out;
}

p a:hover,
.link--base:hover {
    color: #025274;
}

.link--base::after {
    content: "\f345";
    font-family: Dashicons;
    font-size: 90%;
    margin-left: 4px;
    vertical-align: bottom;
}


/* ------------------------------------------------------------------------------------------------- */
/* Utilities
/* ------------------------------------------------------------------------------------------------- */

/* Alignment
/* ------------------------------------------------------------------------------------------------- */

/* Block
/* -------------------------------------------------- */

/* Push center */
.push--center {
    margin-left: auto;
    margin-right: auto;
}

/* Text
/* -------------------------------------------------- */

/* Align center */
.align--center {
    text-align: center;
}


/* Blend modes
/* ------------------------------------------------------------------------------------------------- */

.blend--multiply {
    mix-blend-mode: multiply;
}


/* Color
/* ------------------------------------------------------------------------------------------------- */

/* Background — Solid
/* -------------------------------------------------- */

.bg-color__alt {
    background-color: #EFF5F8;
}

.bg-color__primary--dark {
    background-color: #0389C2;
}


/* Background — Split
/* -------------------------------------------------- */

.bg-split-color__alt {
    position: relative;
}

.bg-split-color__alt::before {
    background-color: #EFF5F8;
    bottom: 0;
    content: '';
    height: 50%;
    left: 0;
    position: absolute;
    right: 0;
}


/* Text
/* -------------------------------------------------- */

.text-color__white {
    color: #FFFFFF;
}

.text-color__body--light {
    color: #777777;
}


/* Theme
/* -------------------------------------------------- */

.theme--dark,
.theme--dark p,
.theme--dark h1,
.theme--dark h2,
.theme--dark h3,
.theme--dark h4,
.theme--dark h5 {
    color: #FFFFFF;
}


/* Positioning
/* ------------------------------------------------------------------------------------------------- */

.position--relative {
    position: relative;
}

/* Z-indexing
/* -------------------------------------------------- */

.z--1 {
    z-index: 1;
}

.z--2 {
    z-index: 2;
}

.z--3 {
    z-index: 3;
}


/* Spacing
/* ------------------------------------------------------------------------------------------------- */

/* Margin
/* -------------------------------------------------- */

.mb--0 {
    margin-bottom: 0;
}

.mb--1 {
    margin-bottom: 4px;
}

.mb--2 {
    margin-bottom: 8px;
}

.mb--3 {
    margin-bottom: 16px;
}

.mb--4 {
    margin-bottom: 24px;
}

.mb--5 {
    margin-bottom: 32px;
}

.mb--6 {
    margin-bottom: 48px;
}

.mb--7 {
    margin-bottom: 56px;
}

.mb--8 {
    margin-bottom: 64px;
}


/* ------------------------------------------------------------------------------------------------- */
/* Layout
/* ------------------------------------------------------------------------------------------------- */

/* Containers
/* ------------------------------------------------------------------------------------------------- */

/* Responsive media container
/* -------------------------------------------------- */

.container--responsive-media { 
    position: relative; 
    padding-bottom: 56.25%; 
    height: 0; 
    overflow: hidden; 
    max-width: 100%; 
} 

.container--responsive-media iframe, 
.container--responsive-media object, 
.container--responsive-media embed { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
}


/* Sections
/* ------------------------------------------------------------------------------------------------- */

section {
    overflow: hidden;
}

/* Section — Small */
.section--small {
    padding: 40px 24px;
}

/* Section — Base */
.section--base {
    padding: 80px 24px;
}


/* Wraps
/* ------------------------------------------------------------------------------------------------- */

/* Wrap — Xsmall */
.wrap--xsmall {
    max-width: 620px;
    width: 100%;
}

/* Wrap — Small */
.wrap--small {
    max-width: 848px;
    width: 100%;
}

/* Wrap — Base */
.wrap--base {
    max-width: 1180px;
    width: 100%;
}


/* ------------------------------------------------------------------------------------------------- */
/* Components
/* ------------------------------------------------------------------------------------------------- */

/* Carousel
/* ------------------------------------------------------------------------------------------------- */

/* Carousel — Testimonials
/* '!important' declarations required to override inherited styles
/* -------------------------------------------------- */

.carousel--testimonials {
    position: relative;
}

.carousel--testimonials .caroufredsel_wrapper {
    margin: 0 auto !important;
    max-width: 848px !important;
    padding: 0 56px;
    text-align: center !important;
}

.carousel--testimonials .caroufredsel_wrapper ul {
    text-align: center !important;
}

.carousel--testimonials .caroufredsel_wrapper ul li p {
    font-size: 18px !important;
}

.carousel--testimonials .caroufredsel_wrapper ul li h5 {
    color: #565656;
    font-size: 15px;
    font-weight: 400;
    text-transform: none;
}

.carousel--testimonials a.caro-next,
.carousel--testimonials a.caro-prev {
    border: 0 none;
    padding: 0;
    position: absolute;
    top: 50%;
    text-indent: 0 !important;
    transform: translateY(-50%);
}

.carousel--testimonials a.caro-next {
    right: -16px;
}

.carousel--testimonials a.caro-prev {
    left: -16px;
}

.carousel--testimonials a.caro-next::before,
.carousel--testimonials a.caro-prev::before {
    color: #999999;
    font-family: 'Dashicons';
    font-size: 48px;
}

.carousel--testimonials a.caro-next::before {
    content: "\f345";
}

.carousel--testimonials a.caro-prev::before {
    content: "\f341";
}


/* Form
/* '!important' declarations required to override inherited Gravity Forms styles
/* ------------------------------------------------------------------------------------------------- */

/* Button */
.button , body .warranty-btn {
    background-color: #7ebe0f;
    border-radius: 4px;
    border: 0 none;
    color: #fff;
    display: inline-block;
    font-family: 'Raleway';
    font-size: 19px;
    font-weight: 700;
    line-height: 3;
    padding: 0 32px;
    text-transform: none;
}

.button:hover , body .warranty-btn:hover {
    background-color: #679B0C;
    color: #FFFFFF;
}


/* Grids
/* ------------------------------------------------------------------------------------------------- */

/* Grid — Awards
/* -------------------------------------------------- */

/* Grid structure */
.grid--awards {
    align-items: center;
    display: flex;
}

.grid--awards .item img {
    max-height: 72px;
    max-width: 140px;
}

/* Adjust @large breakpoint */
@media (min-width: 800px) {

    /* Adjust grid structure */
    .grid--awards {
        justify-content: space-between;
    }

}


/* Grid — Auto (2-column)
/* -------------------------------------------------- */

/* Adjust @large breakpoint */
@media (min-width: 800px) {
 
    .grid--auto-2 {
        column-count: 2;
        column-gap: 48px
    }

}


/* Grid — Cards
/* -------------------------------------------------- */

/* Grid structure */
.grid--cards {
    display: grid;
    grid-row-gap: 16px;
}

/* Grid item */
.grid--cards .item {
    justify-content: space-between;
    background-color: #FFFFFF;
    display: flex;
    flex-direction: column;
    padding: 32px;
    transition: box-shadow 0.3s ease-out;
}

/* Item icon */
.grid--cards .item .item__icon {
    height: 48px;
    margin-bottom: 16px;
}

/* Grid item » state:hover */
.grid--cards .item:hover {
    box-shadow: 0 8px 24px 0 rgba(0, 0, 0, 0.1);
}


/* Adjust @large breakpoint */
@media (min-width: 800px) {

    /* Adjust grid structure */
    .grid--cards {
        grid-column-gap: 16px;
        grid-template-columns: 1fr 1fr 1fr;
    }

    /* Adjust grid item */
    .grid--cards .item {
        padding: 40px;
    }

}


/* Grid — Cards (Small)
/* -------------------------------------------------- */

/* Grid structure */
.grid--cards-small {
    display: grid;
    grid-column-gap: 16px;
    grid-row-gap: 16px;
    grid-template-columns: 1fr 1fr;
}

/* Grid item */
.grid--cards-small .item {
    justify-content: space-between;
    background-color: #FFFFFF;
    display: flex;
    flex-direction: column;
    padding: 32px;
    transition: box-shadow 0.3s ease-out;
}

/* Item icon */
.grid--cards-small .item .item__icon {
    height: 48px;
    margin-bottom: 16px;
}

/* Grid item » state:hover */
.grid--cards-small .item:hover {
    box-shadow: 0 8px 24px 0 rgba(0, 0, 0, 0.1);
}


/* Adjust @large breakpoint */
@media (min-width: 800px) {

    /* Adjust grid structure */
    .grid--cards-small {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    }

    /* Adjust grid item */
    .grid--cards-small .item {
        /* padding: 40px; */
    }

}


/* Icons
/* ------------------------------------------------------------------------------------------------- */

.icon--base {
    width: 40px;
}


/* Navigation
/* ------------------------------------------------------------------------------------------------- */

/* Inline
/* -------------------------------------------------- */

.nav--inline li {
    display: inline-block;
}

.nav--inline li:not(:last-child) {
    margin-right: 16px;
}


/* Reviews
/* ------------------------------------------------------------------------------------------------- */

/* Review rating badge
/* -------------------------------------------------- */

/* Hide review carousel */
.container-fluid.gallery-view,
.embed-reviews-slider {
    display: none !important;
}

/* Adjust badge text */
.sub-title-box {
    color: #FFF;
    font-family: 'Raleway', sans-serif;
    font-size: 13px;
    padding: 0;
    text-align: left;
}


/* Sections — 'Home' Template
/* ------------------------------------------------------------------------------------------------- */

/* Hero
/* -------------------------------------------------- */

/* Section container */
#section--hero {
    background-position: center;
    background-size: cover;
    padding: 64px 24px;
    position: relative;
    text-align: center;
}

/* Gradient image overlay */
#section--hero .overlay--gradient {
    background: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
    bottom: 0;
    left: 0;
    opacity: 0.4;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 0;
}


/* Adjust @large breakpoint */
@media (min-width: 800px) {

    /* Adjust section container */
    #section--hero {
        padding: 120px 24px;
    }

}


/* Territories
/* -------------------------------------------------- */

.interactive-map-content {
    background-color: #FFFFFF;
    padding: 56px 48px;
}


/* CTA
/* -------------------------------------------------- */

#section--cta-form {
    text-align: center;
}


/* History
/* -------------------------------------------------- */

#section--history .grid--cards-small > .item:nth-of-type(1) {
    border-top: 8px solid #C5DE9E;
}

#section--history .grid--cards-small > .item:nth-of-type(2) {
    border-top: 8px solid #A4D29E;
}

#section--history .grid--cards-small > .item:nth-of-type(3) {
    border-top: 8px solid #84C99E;
}

#section--history .grid--cards-small > .item:nth-of-type(4) {
    border-top: 8px solid #7DCCC7;
}

#section--history .grid--cards-small > .item:nth-of-type(5) {
    border-top: 8px solid #72D0F4;
}

#section--history .grid--cards-small > .item:nth-of-type(6) {
    border-top: 8px solid #0397D6;
}


/* Hide inherited sections/components
/* -------------------------------------------------- */

.page-template-template-home article.short-contact {
    display: none;
}



/* ------------------------------------------------------------------------------------------------- */
/* Migrate to global stylesheet
/* ------------------------------------------------------------------------------------------------- */

/* Layout
/* ------------------------------------------------------------------------------------------------- */

header {
    position: relative;
    z-index: 10;
}


/* Header — Secondary
/* -------------------------------------------------- */

/* Block container */
#header--default #header__container--secondary {
    background-color: #0389C2;
    color: #FFFFFF;
    padding: 8px 24px;
}

/* Grid structure */
#header--default #header__container--secondary .container--grid {
    align-items: center;
    display: grid;
    grid-column-gap: 16px;
}

/* Grid item — EmbedSocial reviews */
#header--default #header__container--secondary .container--grid #item--reviews {
    align-items: center;
    display: grid;
    grid-template-columns: 72px 1fr;
    max-height: 16px !important;
    overflow: hidden;
}


/* Adjust @large breakpoint */
@media (min-width: 800px) {

    /* Adjust grid structure */
    #header--default #header__container--secondary .container--grid {
        grid-template-columns: 1fr max-content max-content;
        justify-content: space-between;
    }

}


/* Header — Primary
/* -------------------------------------------------- */

/* Block container */
#header--default #header__container--primary {
    padding: 16px 24px;
}

/* Grid structure */
#header--default #header__container--primary .container--grid {
    align-items: center;
    display: grid;
    grid-template-columns: max-content 48px;
    justify-content: space-between;
}

#header--default #nav__trigger {
    color: #777777;
}

#header--default #nav__trigger span {
    font-size: 48px;
    line-height: 0.7;
}

/* Adjust @large breakpoint */
@media (min-width: 1024px) {

    /* Adjust grid structure */
    #header--default #header__container--primary .container--grid {
        grid-template-columns: max-content max-content;
    }

}

.logo--header {
    height: 80px;
}


/* Navigation
/* ------------------------------------------------------------------------------------------------- */

/* Navigation — Primary (Mobile)
/* -------------------------------------------------- */

#nav--primary-mobile {
    background-color: #EFF5F8;
    box-shadow: 0 32px 48px rgba(0, 0, 0, 0.16);
    list-style: none;
    margin: 0 !important;
	opacity: 0;
	padding: 24px;
	pointer-events: none;
	position: absolute;
	transition: all 0.3s ease-in-out;
	visibility: hidden;
	width: 100%;
	/* z-index: 20; */
}

/* Reveal on active state trigger */
header.state--has-active-menu #nav--primary-mobile {
	opacity: 1;
	pointer-events: all;
	visibility: visible;
}

#nav--primary-mobile li {
    line-height: 2.4;
}

#nav--primary-mobile li.state--active > a {
    color: #0389C2;
}

#nav--primary-mobile li a {
    color: #777777;
    transition: color 0.3s ease-in-out;
}

#nav--primary-mobile li.menu-item-has-children > a::after {
    content: "\f347";
    float: right;
    font-family: Dashicons;
    pointer-events: none;
}

#nav--primary-mobile > li > a {
    font-size: 20px;
    font-weight: 600;
}

#nav--primary-mobile > li > ul {
    display: none;
    list-style: none;
    margin: 0 0 16px 0;
}

#nav--primary-mobile > li > ul > li {
    font-size: 14px;
    line-height: 2.4;
}

#nav--primary-mobile > li > ul > li > a {
    display: block;
    width: 100%;
}


/* Navigation — Secondary (Desktop)
/* -------------------------------------------------- */

#nav-secondary-desktop {
    margin: 0;
    padding: 0;
}

#nav-secondary-desktop li {
    font-weight: 600;
}

#nav-secondary-desktop li a {
    color: #FFFFFF;
}


/* Navigation — Primary (Desktop)
/* -------------------------------------------------- */

#nav--primary-desktop {
    margin: 0;
    padding: 0;
}

#nav--primary-desktop > li {
    display: inline-block;
    line-height: 56px;
    position: relative;
}

#nav--primary-desktop > li:not(:last-child) {
    margin-right: 24px;
}

#nav--primary-desktop > li > a {
    font-weight: bold;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

#nav--primary-desktop li a {
    color: #777777;
    transition: color 0.3s ease-in-out;
}

#nav--primary-desktop li.current-menu-item a {
    color: #112027;
}

#nav--primary-desktop li:hover > a {
    color: #0389C2;
}

/* Sub-menu */
#nav--primary-desktop ul {
    background-color: #FFFFFF;
    box-shadow: 0 40px 32px 0 rgba(0, 0, 0, 0.08);
    opacity: 0;
    padding: 16px 24px;
    pointer-events: none;
    position: absolute;
    top: 100%;
    left: -48px;
    transition: all 0.3s ease-in-out;
    visibility: hidden;
    width: 256px;
}

#nav--primary-desktop li:hover ul {
    opacity: 1;
    pointer-events: all;
    visibility: visible;
}

/* Sub-menu */
#nav--primary-desktop ul li {
    display: block;
    line-height: 2.4;
}

#nav--primary-desktop ul li a {
    display: block;
    transition: all 0.15s ease-out;
}

#nav--primary-desktop ul li:hover a {
    padding-left: 4px;
} 


#header__container--primary .col--logo img {
	display: block;
	max-width: 220px;
	width: 100%;
}