/*
    Excite Media Elementor System Styles v0.3

    - use rgb values for colour variable definitions. This allows flexibility with alpha values.

    TODO
    - Better table responsive styles

*/



/***********************
VARIABLES
***********************/

/*
Site namespace: emde
*/

:root {
    
    /* layout */
    --layout-max-width-content: 1240;
    --layout-size-gutter: 10;
    --layout-size-padding: 15;
    --layout-size-line: 1;
    --layout-size-border-radius: 7;
}

/*
STYLE: .primary-font
use primary font override.
*/


/*
STYLE: .secondary-font
use secondary font override.
*/

/*
STYLE: .colour-main
additional colour style, add more as needed.
*/


/*
STYLE: .colour-highlight
additional colour style, add more as needed.
*/



/*
STYLE: .colour-dark
additional colour style, add more as needed.
*/


/*
STYLE: .colour-block
additional colour style, add more as needed.


/***
.em-system-header
***/


/***********************
TYPOGRAPHY
***********************/

/*
MOD: .fs-plus-x
increase fontsize
*/


/*
MOD: .fs-minus-x
decrease fontsize
*/

/*
Mod: .icon-plus-x
Use to increase the size of the icon
*/

.icon-plus-1 {
    --icon-size-mod: 0.2;
}

.icon-plus-2 {
    --icon-size-mod: 0.4;
}

.icon-plus-3 {
    --icon-size-mod: 0.6;
}

.icon-plus-4 {
    --icon-size-mod: 0.8;
}

.icon-plus-5 {
    --icon-size-mod: 1;
}

.icon-plus-6 {
    --icon-size-mod: 1.2;
}

.icon-plus-7 {
    --icon-size-mod: 1.4;
}

.icon-plus-8 {
    --icon-size-mod: 1.6;
}

.icon-plus-9 {
    --icon-size-mod: 1.8;
}

.icon-plus-10 {
    --icon-size-mod: 2;
}

/*
Mod: .icon-minus-x
Use to decrease the size of the icon
*/

.icon-minus-1 {
    --icon-size-mod: -0.2;
}

.icon-minus-2 {
    --icon-size-mod: -0.4;
}

.icon-minus-3 {
    --icon-size-mod: -0.6;
}

.icon-minus-4 {
    --icon-size-mod: -0.8;
}

.icon-minus-5 {
    --icon-size-mod: -1;
}



.elementor .elementor-element .elementor-widget-icon-list .elementor-icon-list-item,
.elementor ol li {
    margin-bottom: calc((var(--layout-size-padding)/2) * 1px);
}

.elementor .elementor-element .elementor-widget-icon-list .elementor-icon-list-item:last-child,
.elementor ol li:last-child {
    margin-bottom: 0;
}

.elementor ol {
    padding-left: 16px;
}

.elementor ol li::marker {
    font-weight: bold;
    color: rgb(var(--colour-list-ordered-marker));
}

/* NAV */



/* HEADINGS */


/***********************
LAYOUT
***********************/

.page-header {
    display: none;
}

.elementor-inner .elementor-section.elementor-section-boxed > .elementor-container,
.elementor .elementor-section.elementor-section-boxed > .elementor-container {
    max-width: calc(var(--layout-max-width-content) * 1px);
}

/* LIST */
.elementor ul li .elementor-icon-list-icon i{
    color: #1A8DB0; /* even older browser fallback */
    color: rgb(var(--colour-list-unordered-marker));
}

/* .em-flex */
.em-flex .elementor-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}


.em-flex .elementor-row > .elementor-element {
    flex: 1 1 calc((((var(--layout-max-width-content)/4)) * 1px));
    margin: calc(var(--layout-size-gutter) * 1px);
}

.em-flex.retain .elementor-row > .elementor-element {
    flex: 0 1 calc((((var(--layout-max-width-content)/4)) * 1px));
}

.em-flex .em-flex .elementor-row > .elementor-element {
    flex: 0 1 calc((((var(--layout-max-width-content)/5)) * 1px));
    margin: calc((var(--layout-size-gutter)/2) * 1px);
}

.em-flex .em-flex.grow .elementor-row > .elementor-element {
    flex: 1 1 calc((((var(--layout-max-width-content)/5)) * 1px));
}

/*
.em-icon-text
Use to display an elementor icon and text side by side, place on the parent container
*/

.em-icon-text .elementor-widget-wrap > .elementor-widget {
    display: inline-block;
    width: unset;
    margin: unset;
}

.em-icon-text .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title {
    font-size: calc((var(--font-size-max) * var(--font-size-modifier)) * 1px);
    color: rgb(var(--colour));
    font-family: var(--font-primary);
}

.em-icon-text .elementor-widget-wrap > .elementor-widget-icon i,
.em-icon-text .elementor-widget-wrap > .elementor-widget-icon svg {
    font-size: calc((var(--font-size-max) * var(--font-size-modifier)) * 1px);
    margin-right: calc((var(--layout-size-padding)/2) * 1px);
    color: rgb(var(--colour));
}

.em-icon-text.icon-right .elementor-widget-wrap > .elementor-widget-icon i,
.em-icon-text.icon-right .elementor-widget-wrap > .elementor-widget-icon svg {
    margin-right: unset;
    margin-left: calc((var(--layout-size-padding)/2) * 1px);
}

/*
.em-panel-text-wrapper
*/

.elementor .elementor-widget-wrap .em-panel-text-100 {
    width: 100%;
    margin: auto;
    padding: calc(var(--layout-size-padding)*1px) 4vw;
    position: relative;
}

.elementor .elementor-widget-wrap .em-panel-text-50 {
    width: clamp(47ch, 60%, 60%);
    margin: auto;
    padding: calc(var(--layout-size-padding)*1px) 4vw;
    position: relative;
}


/***********************
FORMS
***********************/

.em-form .gform_wrapper ul.gform_fields {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.em-form .gform_wrapper ul.gform_fields li.gfield {
    flex: 0 1 100%;
    padding: calc(var(--layout-size-gutter) * 1px);
    margin: unset;
}

.em-form .gform_wrapper ul.gform_fields li.half {
    flex: 1 1 clamp(190px,50%,100%);
}

.em-form .gform_wrapper ul.gform_fields li.third {
    flex: 1 1 clamp(190px,33.33%,100%);
}

.em-form .gform_wrapper ul.gform_fields li.quarter {
    flex: 1 1 clamp(190px,25%,100%);
}

.em-form .gform_wrapper ul.gform_fields li .ginput_container input, body.elementor-page .gform_wrapper textarea,
.gform_wrapper.gravity-theme .gfield input,
.gform_wrapper.gravity-theme .gfield select {
    background-color: #FAF8F5;
    width: 100%;
}

.em-form .gform_wrapper label.gfield_label,
.gform_wrapper.gravity-theme .gfield_label {
    font-size: 1.2rem;
    font-weight: 400;
}

body.elementor-page input,
body.elementor-page .gform_wrapper input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
body.elementor-page .gform_wrapper textarea {
    border-color: #F0EDE7;
    padding: 14px 10px;
}
body.elementor-page input:focus,
body.elementor-page textarea:focus {
    border-color: rgb(var(--colour-highlight));
}

.em-form .gform_wrapper .gfield_required {
    color: rgb(var(--colour-highlight));
}

.em-subscribe .gform_wrapper {
    margin: 0;
    position: relative;
}
.em-subscribe .gform_wrapper .gform_body .gfield {
    padding: 0 !important;
}
.em-subscribe .gform_wrapper .gform_body .gfield .ginput_container {
    margin-top: 0;
}
.em-subscribe .gform_wrapper .gform_body .gfield input {
    border-radius: 0;
    margin-top: 0 !important;
    padding: 14px 25px !important;
    padding-right: 170px !important;
}
.em-subscribe .gform_wrapper .gform_footer {
    margin-top: 0;
    padding: 0 !important;
    text-align: right;
    width: 100% !important;
    max-width: 100% !important;
}
.em-subscribe .gform_wrapper .gform_footer input {
    background-color: #484848;
    border-radius: 0 8px 8px 0;
    margin-right: 0 !important;
    padding: calc(var(--layout-size-padding) * 0.93px) calc((var(--layout-size-padding)*2.89) * 1px);
    position: absolute;
    right: 0;
    bottom: 0;
}
.em-subscribe .gform_wrapper form.gf_simple_horizontal div.gform_body {
    max-width: 100%;
    width: 100%;
}
body.elementor-page .em-subscribe .gform_wrapper input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]) {
    border-radius: 8px;
}

/*REVIEW*/
.elementor .social-review.elementor-widget-blockquote blockquote {
    background-image: url(library/images/google-review@2x.png);
    background-position: left bottom;
    background-size: 107px auto;
    background-repeat: no-repeat;
    padding-bottom: 30px;
}
/***********************
TABLES
***********************/

.em-table {
    display: block;
    margin: 2em auto;
    width: clamp(300px, 90%, 600px);
}

.em-flex-table {
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-flow: row wrap;
    border-left: none;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

.em-flex-table:first-of-type {
    border-top: solid calc(var(--layout-size-line) * 1) rgb(var(--colour));
    border-left: solid calc(var(--layout-size-line) * 1) rgb(var(--colour));
}

.em-flex-table:first-of-type .em-flex-row {
    background: rgb(var(--colour));
    color: rgb(var(--colour-button-text));
    border-color: rgba(var(--colour-button-text), 0.37);
}

.em-flex-table.row:nth-child(even) .em-flex-row {
  background: rgb(var(--colour-highlight));
}

/*.em-flex-table:hover {
  background: rgba(var(--colour), 0.37);
  -webkit-transition: 500ms;
  transition: 500ms;
}*/

.em-flex-row {
    width: calc(100% / 4);
    text-align: center;
    padding: calc(var(--layout-size-padding) * 1px);
    border-right: solid calc(var(--layout-size-line) * 1px) rgba(var(--colour), 0.25);
    border-bottom: none;
    display: grid;
    place-items: center;
}

.em-flex-row.first {
    display: grid;
    place-items: center;
}

.em-flex-row:last-child {
    border-right: none;
}

.rowspan {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
          flex-flow: row wrap;
  -webkit-box-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
          justify-content: center;
}

.column {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-flow: column wrap;
  width: 75%;
  padding: 0;
}
.column .em-flex-row {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
          flex-flow: row wrap;
  width: 100%;
  padding: 0;
  border: 0;
  border-bottom: solid 1px rgba(var(--colour), 0.07);
}

.column .em-flex-row:last-child {
    border-bottom: none;
}

/*.column .em-flex-row:hover {
  background: #F5F5F5;
  -webkit-transition: 500ms;
  transition: 500ms;
}*/

.em-flex-cell {
    width: calc(100% / 3);
    text-align: center;
    padding: calc(var(--layout-size-padding) * 1px);
    border-right: solid calc(var(--layout-size-line) * 1px) rgba(var(--colour), 0.25);
    height: 100%;
    display: grid;
    place-items: center;
}

.em-flex-cell:last-child {
    border-right: none;
}

.em-flex-row:last-child .em-flex-cell {
    border-bottom: none;
}

@media all and (max-width: 767px) {
  .em-flex-row {
    width: calc(100% / 3);
  }
  .em-flex-row.first {
    width: 100%;
  }

  .column {
    width: 100%;
  }
}
@media all and (max-width: 430px) {
  .em-flex-table .em-flex-row {
    border-bottom: 0;
  }
  .em-flex-table .em-flex-row:last-of-type {
    border-bottom: solid 1px #d9d9d9;
  }

  .header .em-flex-row {
    border-bottom: solid 1px;
  }

  .em-flex-row {
    width: 100%;
  }
  .em-flex-row.first {
    width: 100%;
    border-bottom: solid 1px #d9d9d9;
  }

  .column {
    width: 100%;
  }
  .column .em-flex-row {
    border-bottom: solid 1px #d9d9d9;
  }

  .em-flex-cell {
    width: 100%;
  }
}



/* set var for cta stack width */

:root {
    --banner001CTAStackDivide: 7;
    --banner001CTAUnstackedWidth: 375;
    --banner001CTAStackedWidth: 173;
    --banner001TextCol: 255, 255, 255;
}

.elementor .em-banner-001 .elementor-row h2,
.elementor .em-banner-001 .elementor-row p,
.elementor .em-banner-001 .em-icon-text .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title {
    color: rgb(var(--banner001TextCol));
}

.elementor .em-banner-001 .elementor-element.header-nav-column {
    width: unset;
    flex-grow: 1;
}

.elementor .em-banner-001 .elementor-element.header-cta-column {
    width: clamp(calc(var(--banner001CTAStackedWidth) * 1px), 33%, calc(var(--banner001CTAUnstackedWidth) * 1px));
}

@media (max-width: 1440px) {
    .elementor .em-banner-001 .elementor-element.header-cta-column {
        width: 20%;
    }
}

.em-banner-001 .em-flex.retain .elementor-row > .elementor-element .elementor-element-populated {
    padding: 0;
}

.em-banner-001 .elementor-nav-menu--main .elementor-nav-menu a,
.em-banner-001 .elementor-nav-menu--main .elementor-nav-menu a:hover,
.em-banner-001 .elementor-nav-menu--main .elementor-nav-menu a:focus {
    padding: calc(var(--layout-size-padding) * 1px);
    text-decoration: none;
}

.em-banner-001 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
.em-banner-001 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
.em-banner-001 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
.em-banner-001 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus {
    color: rgb(var(--colour));
}

.em-flex.retain .elementor-row > .elementor-element {
    flex: 0 1 calc((((var(--layout-max-width-content)/var(--banner001CTAStackDivide))) * 1px));
    margin: calc((var(--layout-size-padding)/3) * 1px) 0;
}

.em-banner-001 .em-flex.retain .elementor-row > .elementor-element > * {
    width: unset;
    margin: auto;
}

.em-banner-001 .elementor-widget.elementor-widget-icon {
    margin-bottom: 0;
}

/* .em-banner-001 - end */

/* ACCORDION */
.elementor .elementor-accordion .elementor-accordion-item {
    border-bottom: 1px solid #DDDDDD !important;
}

.elementor .elementor-widget-accordion .elementor-accordion .elementor-tab-content p {
    color: rgb(var(--colour-site-text));
    line-height: 26px;
}

/*BREADCRUMBS*/
#breadcrumbs span, #breadcrumbs a {
	font-family: var(--e-global-typography-text-font-family);
	font-size: 1rem;
	color: #525252;
}
#breadcrumbs a {
	text-decoration: underline;
}
.elementor .primary-font .elementor-heading-title {
    font-family: var(--font-primary);
    --font-heading: var(--font-primary);
}
/*PRODUCTS STYLE*/
.overview-wrap p strong {
	font-size: 1.25rem; /* even older browser fallback */
    font-size: max(calc((1 * var(--font-size-modifier)) * 1rem), min(calc((1.125 * var(--font-size-modifier)) * 1vw), calc((1.25 * var(--font-size-modifier)) * 1rem))); /* older browser fallback */
    font-size: clamp(calc((1 * var(--font-size-modifier)) * 1rem), calc((1.125 * var(--font-size-modifier)) * 1vw), calc((1.25 * var(--font-size-modifier)) * 1rem));
	font-weight: 500;
	margin-top: 20px;
    display: inline-block;
}
.overview-wrap p a {
    font-size: 1.25rem;
    font-size: max(calc((1 * var(--font-size-modifier)) * 1rem), min(calc((1.125 * var(--font-size-modifier)) * 1vw), calc((1.25 * var(--font-size-modifier)) * 1rem)));
    font-size: clamp(calc((1 * var(--font-size-modifier)) * 1rem), calc((1.125 * var(--font-size-modifier)) * 1vw), calc((1.25 * var(--font-size-modifier)) * 1rem));
    font-weight: 700;
    background: #7EA746;
    padding: 10px 35px;
    border-radius: 25px;
    color: #FFF;
    margin-top: 15px;
    display: inline-block;
}
.overview-wrap p a:hover {
	color: #FFF !important;
	background-color: #a5c281 !important;
}
.projects-panel .elementor-button-text {
	font-family: var(--font-secondary);
	text-decoration: underline;
}
.elementor .projects-panel .elementor-widget-container h4.elementor-heading-title {
    font-size: 3.5rem;
    font-size: max(calc((3 * var(--font-size-modifier)) * 1rem), min(calc((4 * var(--font-size-modifier)) * 1vw), calc((4.6875 * var(--font-size-modifier)) * 1rem)));
    font-size: clamp(calc((3 * var(--font-size-modifier)) * 1rem), calc((4 * var(--font-size-modifier)) * 1vw), calc((4.6875 * var(--font-size-modifier)) * 1rem));
}
