/**
 * GLOBAL STYLES
 */
:root {
    --color-brand-blue: #039be5;
    --color-brand-green: #00c853;
    --color-brand-yellow: #ffdd00;
    --color-blue: var(--color-brand-blue);
    --color-blue-lt: #edf8fd;
    /*
    --color-brand-blue-highlight: #4ec2fa;
    --color-brand-green-highlight: #00db5b;
    */
    --color-brand-blue-highlight: #0075af; /* Dark highlights per Todd */
    --color-brand-green-highlight: #009f42; /* Dark highlights per Todd */
    --color-text-reverse-on-blue-highlight: #ffffffa8; /* 66% opacity */
    --color-text-reverse-on-green-highlight: #ffffffa8; /* 66% opacity */
    --color-gray-dk: #939393;
    --color-gray-md: #b6b6b6; /* i.e. form text input text */
    --color-gray-lt: #d9d9d9; /* i.e. disabled carousel nav arrows */
    --color-gray-xlt: #f1f1f1; /* i.e. form text input backgrounds */

    --icon-arrow-button: url('data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2019%2022.1%22%20width%3D%2219%22%20height%3D%2222.1%22%3E%0A%20%20%3Cpath%20d%3D%22M18.6%2C10L9%2C.4c-.6-.6-1.5-.6-2.1%2C0-.6.6-.6%2C1.5%2C0%2C2.1l7%2C7H1.6c-.9%2C0-1.6.7-1.6%2C1.5s.7%2C1.5%2C1.6%2C1.5h12.3l-7%2C7c-.6.6-.6%2C1.5%2C0%2C2.1.6.6%2C1.5.6%2C2.1%2C0l9.5-9.5c.6-.6.6-1.5%2C0-2.1Z%22%2F%3E%0A%3C%2Fsvg%3E');
    --icon-plus-mark: url('data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20height%3D%2220%22%3E%0A%20%20%3Cpath%20d%3D%22M18.5%2C11.5H1.5c-.8%2C0-1.5-.7-1.5-1.5s.7-1.5%2C1.5-1.5h17c.8%2C0%2C1.5.7%2C1.5%2C1.5s-.7%2C1.5-1.5%2C1.5Z%22%20fill%3D%22%23231f20%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M8.5%2C18.5V1.5c0-.8.7-1.5%2C1.5-1.5s1.5.7%2C1.5%2C1.5v17c0%2C.8-.7%2C1.5-1.5%2C1.5s-1.5-.7-1.5-1.5Z%22%20fill%3D%22%23231f20%22%2F%3E%0A%3C%2Fsvg%3E');
    --arrow-chevron-left: url('data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2017%2040%22%20width%3D%2217%22%20height%3D%2240%22%3E%0A%20%20%3Cpath%20d%3D%22M15.3%2C38.4%22%20fill%3D%22none%22%20stroke%3D%22%23e1dd00%22%20stroke-linecap%3D%22round%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%223%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M16.5%2C37.4c.6.7.5%2C1.5%2C0%2C2-.6.6-1.7.6-2.3-.2S.6%2C21.1.6%2C21.1c0%2C0-.5-.6-.5-1.1s.5-1.1.5-1.1L14.2.8c.5-.6%2C1.4-.7%2C2.1-.2s.7%2C1.4.2%2C2.1L3.5%2C20.1s12.4%2C16.6%2C13%2C17.3Z%22%2F%3E%0A%3C%2Fsvg%3E');
    --arrow-chevron-right: url('data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2017%2040%22%20width%3D%2217%22%20height%3D%2240%22%3E%0A%20%20%3Cpath%20d%3D%22M1.7%2C38.4%22%20fill%3D%22none%22%20stroke%3D%22%23e1dd00%22%20stroke-linecap%3D%22round%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%223%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M13.6%2C20.1L.6%2C2.7C0%2C2%2C0%2C1.1.8.6s1.6-.4%2C2.1.2l13.6%2C18.1s.5.6.5%2C1.1-.5%2C1.1-.5%2C1.1c0%2C0-13%2C17.3-13.6%2C18.1s-1.7.8-2.3.2c-.5-.5-.6-1.3%2C0-2s13-17.3%2C13-17.3Z%22%2F%3E%0A%3C%2Fsvg%3E');
    /* Wave right-to-left, begins flat */
    /* NOTE: Be sure to add preserveAspectRatio="none" to wave SVGs and set --mask-wave-top-height-px and --mask-wave-bottom-height-px to the SVG height */
    --mask-wave-top: url('data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20preserveAspectRatio%3D%22none%22%20viewBox%3D%220%200%2015360%20151%22%20width%3D%2215360%22%20height%3D%22151%22%3E%0A%20%20%3Cpath%20d%3D%22M15360%2C151H0v-.5c203-42.9%2C255.1-67.5%2C636-83.7%2C476.1-20.3%2C1748.9%2C59.8%2C2343.9%2C59.8s732.9-49.2%2C860.5-75.8c127.6-26.6%2C208.6-39.7%2C463.2-45.4%2C636.9-14.2%2C999.5%2C120.1%2C1903.1%2C120.1s798.2-87.5%2C1688.9-87.5%2C952.7%2C69.8%2C1405.3%2C72.7c452.5%2C2.9%2C964.1-61.3%2C1326.3-61.3s565.2%2C25.8%2C893.1%2C25.8h3839.8v75.8Z%22%2F%3E%0A%3C%2Fsvg%3E'), linear-gradient(#000000, #000000);
    --mask-wave-bottom: url('data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20preserveAspectRatio%3D%22none%22%20viewBox%3D%220%200%2015360%20151%22%20width%3D%2215360%22%20height%3D%22151%22%3E%0A%20%20%3Cpath%20d%3D%22M0%2C150.5c203-42.9%2C255.1-67.5%2C636-83.7%2C476.1-20.3%2C1748.9%2C59.8%2C2343.9%2C59.8s732.9-49.2%2C860.5-75.8c127.6-26.6%2C208.6-39.7%2C463.2-45.4%2C636.9-14.2%2C999.5%2C120.1%2C1903.1%2C120.1s798.2-87.5%2C1688.9-87.5%2C952.7%2C69.8%2C1405.3%2C72.7c452.5%2C2.9%2C964.1-61.3%2C1326.3-61.3s565.2%2C25.8%2C893.1%2C25.8h3839.8V0H0v150.5Z%22%2F%3E%0A%3C%2Fsvg%3E'), linear-gradient(#000000, #000000);
    /* Todd's wave right-to-left, begons flat */
    --mask-wave-top: url('data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2015360%20151%22%20width%3D%2215360%22%20height%3D%22151%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%3Cpath%20d%3D%22M0%2C150.5s275.6-70.3%2C636-83.7%2C729.8%2C10.4%2C1178.7%2C29.6c448.9%2C19.2%2C783.4%2C27.1%2C1165.2%2C30.2s640.5-6.5%2C860.5-28.4c220-21.9%2C314.5-28.4%2C547.2-28.4s527.6%2C10.3%2C776.1%2C21.1c270.7%2C11.7%2C316%2C23.9%2C1043%2C23.9s950.5-33%2C1688.9-33%2C952.7%2C20.1%2C1405.3%2C23%2C964.1-12%2C1326.3-12%2C405.1%2C12%2C893.1%2C12h3839.8v46.2H0v-.5Z%22%2F%3E%0A%3C%2Fsvg%3E'), linear-gradient(#000000, #000000);
    --mask-wave-bottom: url('data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2015360%20151%22%20width%3D%2215360%22%20height%3D%22151%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%3Cpath%20d%3D%22M15360%2C104.8h-3839.8c-488%2C0-530.9-12-893.1-12s-873.8%2C14.9-1326.3%2C12-666.9-23-1405.3-23-962%2C33-1688.9%2C33-772.3-12.2-1043-23.9c-248.4-10.7-543.4-21.1-776.1-21.1s-327.2%2C6.5-547.2%2C28.4c-220%2C21.9-417.4%2C28.4-860.5%2C28.4-918.9%2C0-1867.8-80.1-2343.9-59.8C255.1%2C83%2C0%2C151%2C0%2C150.5V0h15360v104.8Z%22%2F%3E%0A%3C%2Fsvg%3E'), linear-gradient(#000000, #000000);


    --content-padding-horz: 0px;

    --radius-lg: 36px;
    --radius-sm: 18px; /* NOTE: Used primarily for desktop nav menus, so be sure to check those if changing */
}
.e-con-boxed {
    --content-padding-horz: 30px;
    --container-max-width: calc(1140px + (var(--content-padding-horz) * 2));
}
.e-con-boxed > .e-con-inner {
    padding-left: var(--content-padding-horz);
    padding-right: var(--content-padding-horz);
}
@media (max-width: /* 1139px */1129px) /* Value from --container-width-max + --content-padding-horz (mobile) */ {
    :root {
        --content-padding-horz: 30px;
    }
}
@media (max-width: 1023px) {}
@media (max-width: 879px) {}
@media (max-width: 767px) {}
@media (max-width: 479px) {
    :root {
        --content-padding-horz: 20px;
    }
    .e-con-boxed {
        --content-padding-horz: 20px;
    }
}
html {
    font-family: "Source Sans 3", sans-serif;
    font-size: 18px;
    line-height: 1.4;
}
:is(p, h1, h2, h3, h4, h5, h6, ul, ol, ul > li, ol > li) {
    margin-bottom: 1rem;
}
:is(p, a, h1, h2, h3, h4, h5, h6, ul, ol, ul > li, ol > li):last-child {
    margin-bottom: 0;
}
sup, sub, sup *, sub * {
    font-weight: 400 !important;
    font-style: normal !important;
    text-transform: none !important;
    text-decoration: none !important;
}
sup, sub {
    position: relative;
    top: -0.75em;
    font-size: 0.5em;
    vertical-align: baseline;
}
sub {
    top: 0.25em;
}
sup *, sub * {
    font-size: 1em !important;
}
.h1, .h1 :is(*, p, h1, h2, h3, h4, h5, h6) {
    color: var(--color-brand-blue);
    font-size: 100px;
    line-height: 1;
    font-weight: 700;
}
.h2, .h2 :is(*, p, h1, h2, h3, h4, h5, h6) {
    color: var(--color-brand-blue);
    font-size: 2rem;
    line-height: 1.2;
    font-weight: 500;
}
.h3, .h3 :is(*, p, h1, h2, h3, h4, h5, h6) {
    color: #000000;
    font-size: 1rem;
    line-height: 1.4;
    font-weight: 700;
}
@media (max-width: 1023px) {
    .h1, .h1 :is(*, p, h1, h2, h3, h4, h5, h6) {
        font-size: 80px;
    }
    .h2, .h2 :is(*, p, h1, h2, h3, h4, h5, h6) {
        font-size: 1.6rem;
    }
    .h3, .h3 :is(*, p, h1, h2, h3, h4, h5, h6) {}
}
@media (max-width: 767px) {
    .h1, .h1 :is(*, p, h1, h2, h3, h4, h5, h6) {
        font-size: 48px;
    }
    .h2, .h2 :is(*, p, h1, h2, h3, h4, h5, h6) {
        font-size: 1.44rem;
    }
    .h3, .h3 :is(*, p, h1, h2, h3, h4, h5, h6) {}
}

@media (min-width: 1024px) {
    .mobile-only {
        display: none;
    }
}
@media (max-width: 1023px) {
    .desktop-only {
        display: none;
    }
}

.text-shadow,
.text-shadow :is(p, a, h1, h2, h3, h4, h5, h6, li, blockquote) {
    text-shadow: 0 0 0.5em rgba(0, 0, 0, 0.8);
}
.text-shadow a.elementor-button {
    text-shadow: none;
}


/** Button **/
.elementor-widget-button {
    font-size: 1.11rem;
}
/* [type="button"], */
.elementor-widget-button .elementor-button,
.elementor-form .elementor-button {
    min-width: 200px;
    /* min-height: 46px; */
    min-height: 52px;
    margin: 0;
    padding: 12px 36px;
    color: #ffffff;
    background-color: var(--color-brand-green);
    border: none;
    border-radius: 50px 0 50px 0;
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 700;
    font-size: 1em;
    line-height: 1.2;
    text-decoration: none;
    text-align: center;
}
.elementor-widget-button a.elementor-button:not([href]):not([tabindex]),
.elementor-widget-button a.elementor-button:not([href]):not([tabindex]):focus,
.elementor-widget-button a.elementor-button:not([href]):not([tabindex]):hover {
    color: var(--color-text-reverse-on-green-highlight);
}
.elementor-form .elementor-button {
    font-size: 1.11rem;
}
/*
[type="button"] {
    font-size: 1.11rem;
}
*/
/* [type="button"]:hover, */
.elementor-widget-button .elementor-button:hover,
.elementor-form .elementor-button:hover {
    color: #ffffff;
    background-color: var(--color-brand-green-highlight);
}
/* Text button/link */
.elementor-widget-button.button-text {}
.elementor-widget-button.button-text .elementor-button {
    min-width: unset;
    min-height: unset;
    padding: 0;
    color: var(--color-brand-blue);
    background: unset;
    border-radius: 0;
}
.elementor-widget-button.button-text .elementor-button:hover {
    color: var(--color-brand-blue-highlight);
}
/* Buttons with icons */
.button-icon-after-arrow-right .elementor-button .elementor-button-text::after {
    content: '';
    display: inline-block;
    width: 16px;
    height: 1.4em;
    margin: 0 0 0 5px;
    background-color: var(--color-brand-blue);
    mask-image: var(--icon-arrow-button);
    mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    vertical-align: text-top;
    transition: all .3s;
}
.button-icon-after-arrow-right .elementor-button:hover .elementor-button-text::after {
    background-color: var(--color-brand-blue-highlight);
}
/* Heading text links (used on News single post template; same as .button-text) */
.elementor-widget-button.button-text {}
.elementor-widget-button.button-text > p,
.elementor-widget-button.button-text > p > a {
    min-width: unset;
    min-height: unset;
    margin: 0;
    padding: 0;
    color: var(--color-brand-blue);
    background: unset;
    border: none;
    border-radius: 0;
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 700;
    font-size: 1.11rem;
    line-height: 1.2;
    text-decoration: none;
    text-align: left;
    transition: all .3s;
}
.elementor-widget-button.button-text > p > a:hover {
    color: var(--color-brand-blue-highlight);
}
.elementor-widget-button.button-text.button-icon-after-arrow-right > p > a::after {
    content: '';
    display: inline-block;
    width: 16px;
    height: 1.4em;
    margin: 0 0 0 5px;
    background-color: var(--color-brand-blue);
    mask-image: var(--icon-arrow-button);
    mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    vertical-align: text-top;
    transition: all .3s;
}
.elementor-widget-button.button-text.button-icon-after-arrow-right > p > a:hover::after  {
    background-color: var(--color-brand-blue-highlight);
}


/**
 * FORMS
 */
/* Text inputs */
.elementor-form input[type="date"],
.elementor-form input[type="email"],
.elementor-form input[type="number"],
.elementor-form input[type="password"],
.elementor-form input[type="search"],
.elementor-form input[type="tel"],
.elementor-form input[type="text"],
.elementor-form input[type="url"] {
    padding: 0.25em 0.75em;
}
.elementor-form textarea {
    padding: 0.5em 0.75em;
}
.elementor-form input[type="date"],
.elementor-form input[type="email"],
.elementor-form input[type="number"],
.elementor-form input[type="password"],
.elementor-form input[type="search"],
.elementor-form input[type="tel"],
.elementor-form input[type="text"],
.elementor-form input[type="url"],
.elementor-form textarea {
    color: #000000;
    background-color: var(--color-gray-xlt);
    border: none;
    border-radius: 0.4em;
}
.elementor-form input[type="date"]::placeholder,
.elementor-form input[type="email"]::placeholder,
.elementor-form input[type="number"]::placeholder,
.elementor-form input[type="password"]::placeholder,
.elementor-form input[type="search"]::placeholder,
.elementor-form input[type="tel"]::placeholder,
.elementor-form input[type="text"]::placeholder,
.elementor-form input[type="url"]::placeholder,
.elementor-form textarea::placeholder {
    color: var(--color-gray-dk);
}
.elementor-field-group .elementor-field-textual:focus {
    box-shadow: none;
}
/* Checkboxes and Radios */
.elementor-field-option:has(> input[type="checkbox"]),
.elementor-field-option:has(> input[type="radio"]) {
    margin: 0 0 0.5em 0;
    display: flex;
    align-items: center;
}
.elementor-field-option input[type="checkbox"],
.elementor-field-option input[type="radio"] {
    zoom: 1.5;
}
.elementor-field-option input[type="checkbox"] + label,
.elementor-field-option input[type="radio"] + label {
    margin: 0 0 0 0.5em;
}
/* Select */
.elementor-form select {
    padding: 0.25em 0.75em;
}
/* Submit button */
.elementor-field-type-submit {
    margin-top: 0.9em;
}


/**
 * MASKS
 */
/**
 * Wave mask
 */
:root {
    --mask-wave-top-height-px: 245px;
    --mask-wave-bottom-height-px: 266px;
    --mask-wave-mask-size: 200%;
    --mask-wave-start-pos: -200%; /* Mask tiled/repeated 2x */
    --mask-wave-end-pos: right;
    --mask-wave-animation-duration: 2400ms;

    /* New mask params */
    --mask-wave-top-height-px: 151px;
    --mask-wave-bottom-height-px: 151px;
    --mask-wave-mask-size: 400%;
    --mask-wave-start-pos: right; /* Mask not tiled/repeated; start at 0px and animate Y-position left-to-right */
    --mask-wave-end-pos: 0px;
    --mask-wave-animation-duration: 1800ms;

    --mask-wave-top-height: var(--mask-wave-top-height-px);
    --mask-wave-bottom-height: var(--mask-wave-bottom-height-px);

    --mask-wave-overlap: 0.2px;

    /* Slower mask wave animation per Todd */
    --mask-wave-animation-duration: 4000ms;
}
@media (max-width: 1023px) {
    :root {
        --mask-wave-top-height: calc(var(--mask-wave-top-height-px) * 0.66);
        --mask-wave-bottom-height: calc(var(--mask-wave-bottom-height-px) * 0.66);
    }
}
@media (max-width: 767px) {
    :root {
        --mask-wave-top-height: calc(var(--mask-wave-top-height-px) * 0.5);
        --mask-wave-bottom-height: calc(var(--mask-wave-bottom-height-px) * 0.5);
    }
}
@media (max-width: 550px) {
    :root {
        --mask-wave-top-height: calc(var(--mask-wave-top-height-px) * 0.33);
        --mask-wave-bottom-height: calc(var(--mask-wave-bottom-height-px) * 0.33);
    }
}
@keyframes wave-slide-in-top {
	0% {
		mask-position: var(--mask-wave-start-pos) top, bottom left;
		-webkit-mask-position: var(--mask-wave-start-pos) top, bottom left;
	}
	100% {
		mask-position: var(--mask-wave-end-pos) top, bottom left;
		-webkit-mask-position: var(--mask-wave-end-pos) top, bottom left;
	}
}
@keyframes wave-slide-in-bottom {
	0% {
		mask-position: var(--mask-wave-start-pos) bottom, top left;
		-webkit-mask-position: var(--mask-wave-start-pos) bottom, top left;
	}
	100% {
		mask-position: var(--mask-wave-end-pos) bottom, top left;
		-webkit-mask-position: var(--mask-wave-end-pos) bottom, top left;
	}
}
/* Add pseudo element to appropriate element before or after to provide underlap */
/* NOTE: :is(.elementor, .elementor-section-wrap) = Elementor content parent or the Elementor editor section wrap */
:is(.elementor, .elementor-section-wrap) > .elementor-element:has(+ .elementor-element.mask-wave-top)::after,
:is(.elementor, .elementor-section-wrap) > .elementor-element:has(+ .elementor-element .mask-wave-top)::after,
:has(+ footer > .mask-wave-top) .page-content > .elementor > :last-child::after,
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-bottom + *::before,
:is(.elementor, .elementor-section-wrap) > .elementor-element:has(.mask-wave-bottom) + *::before,
.elementor.elementor-location-archive:has(+ footer > .mask-wave-top) > :last-child::after /* Search Results template */,
.elementor.elementor-location-single:has(+ footer > .mask-wave-top) > :last-child::after /* Single Post template */ {
    content: '';
    position: relative;
    display: block;
    height: calc(var(--mask-wave-top-height) * 0.75);
}
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-top /** Wave mask on section element **/,
:is(.elementor, .elementor-section-wrap) > .elementor-element .mask-wave-top /** Wave mask on section descendent **/ {
	mask-image: var(--mask-wave-top);
	-webkit-mask-image: var(--mask-wave-top);
	mask-position: var(--mask-wave-end-pos) top, bottom left;
	-webkit-mask-position: var(--mask-wave-end-pos) top, bottom left;
}
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-bottom /** Wave mask on section element **/,
:is(.elementor, .elementor-section-wrap) > .elementor-element .mask-wave-bottom /** Wave mask on section descendent **/ {
	mask-image: var(--mask-wave-bottom);
    -webkit-mask-image: var(--mask-wave-bottom);
    mask-position: var(--mask-wave-end-pos) bottom, top left;
    -webkit-mask-position: var(--mask-wave-end-pos) bottom, top left;
}
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-top /** Wave mask on section element **/,
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-bottom /** Wave mask on section element **/,
:is(.elementor, .elementor-section-wrap) > .elementor-element .mask-wave-top /** Wave mask on section descendent **/,
:is(.elementor, .elementor-section-wrap) > .elementor-element .mask-wave-bottom /** Wave mask on section descendent **/ {
    mask-size: var(--mask-wave-mask-size) var(--wave-height), 100% calc(100% - var(--wave-height));
    -webkit-mask-size: var(--mask-wave-mask-size) var(--wave-height), 100% calc(100% - var(--wave-height));

    mask-repeat: repeat-x, no-repeat;
    -webkit-mask-repeat: repeat-x, no-repeat;
    mask-mode: luminance;
    -webkit-mask-mode: luminance;

    /* New masks do not repeat use black for the visible area */
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-mode: initial;
    -webkit-mask-mode: initial;

    /* Fix hairline at seam issue seen specifically in Safari */
    mask-size: var(--mask-wave-mask-size) calc(var(--wave-height) + var(--mask-wave-overlap)), 100% calc(100% - var(--wave-height) + var(--mask-wave-overlap));
    -webkit-mask-size: var(--mask-wave-mask-size) calc(var(--wave-height) + var(--mask-wave-overlap)), 100% calc(100% - var(--wave-height) + var(--mask-wave-overlap));
}
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-top /** Wave mask on section element **/,
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-bottom /** Wave mask on section element **/ {
    position: relative;
    z-index: 1;
}
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-top /** Wave mask on section element **/,
:is(.elementor, .elementor-section-wrap) > .elementor-element:has(.mask-wave-top) /** Wave mask on section descendent **/ {
    --wave-height: var(--mask-wave-top-height);
    margin-top: calc(-1 * var(--wave-height));
	padding-top: calc((var(--wave-height) * 0.75) + 10px);

    padding-top: calc(var(--wave-height) + 10px);
}
:is(.elementor, .elementor-section-wrap) > .elementor-element.mask-wave-bottom /** Wave mask on section element **/,
:is(.elementor, .elementor-section-wrap) > .elementor-element:has(.mask-wave-bottom) /** Wave mask on section descendent **/ {
    --wave-height: var(--mask-wave-bottom-height);
    /* margin-bottom: calc(-1 * (var(--wave-height) / 2)); */
    /* margin-bottom: calc(-1 * (var(--wave-height) * 0.75)); */
    margin-bottom: calc(-1 * var(--wave-height));
    padding-bottom: calc((var(--wave-height) * 0.75) + 10px);

    padding-bottom: calc(var(--wave-height) + 10px);
}
/* Wave mask animation */
.mask-wave-top.entrance-animation {
    mask-position: var(--mask-wave-start-pos) top, bottom left;
    -webkit-mask-position: var(--mask-wave-start-pos) top, bottom left;
}
.mask-wave-bottom.entrance-animation {
    mask-position: var(--mask-wave-start-pos) bottom, top left;
    -webkit-mask-position: var(--mask-wave-start-pos) bottom, top left;
}
.mask-wave-top.animate {
	/* animation: wave-slide-in-top var(--mask-wave-animation-duration) cubic-bezier(0.25, 0.1, 0.1, 1.0) forwards; */
    animation: wave-slide-in-top var(--mask-wave-animation-duration) cubic-bezier(0.21, 0.77, 0, 0.97) forwards;
}
.mask-wave-bottom.animate {
	/* animation: wave-slide-in-bottom var(--mask-wave-animation-duration) cubic-bezier(0.25, 0.1, 0.1, 1.0) forwards; */
	animation: wave-slide-in-bottom var(--mask-wave-animation-duration) cubic-bezier(0.21, 0.77, 0, 0.97) forwards;
}


/**
 * Hero floating cutout image
 */
:has(> .hero-floating-cutout-image) {
    position: relative;
}
/* Inline anchor container */
.hero-floating-cutout-image {
    position: absolute;
    height: 0;
    bottom: calc((-1 * var(--wave-height) * 0.50) - 10px);
    margin: 0;
    padding: 0;
}
/* Floating positioining container (needed because animating image element will break positioning) */
.hero-floating-cutout-image-inner {
    position: absolute;
    /* right: 0; */
    right: var(--content-padding-horz);
    width: 36%;
    aspect-ratio: 1 / 1;
    margin: 0;
    padding: 0;
    transform: translateY(-50%);
}
.hero-floating-cutout-image .elementor-widget-image {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}
.hero-floating-cutout-image .elementor-widget-image img {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    object-fit: contain;
    object-position: center;
}
@media (max-width: 767px) {
    .hero-floating-cutout-image-inner {
        width: 50%;

        /* Fixed-size floating cutout image */
        width: 300px;
    }
}
@media (max-width: 479px) {
    .hero-floating-cutout-image-inner {
        right: calc(50% / 2);

        /* Fixed-size floating cutout image */
        right: calc((100% - 300px) / 2);
    }
}


/**
 * Header
 */
header {
    position: sticky;
    top: 0;
    z-index: 100;
}
#header {}
/** Desktop **/
#header-desktop {}
#header-desktop .header-bkgd-container {}
#header-desktop .header-content {}
/* Desktop nav menu */
#header-desktop-nav-menu {}
#header-desktop-nav-menu nav.elementor-nav-menu__container {}
#header-desktop-nav-menu ul.elementor-nav-menu {
    width: 100%;
    justify-content: space-around;
}
/* Unset unneeded Elementor clearfix that causes unwanted flex gap after the menus */
.elementor-nav-menu::before,
.elementor-nav-menu::after {
    content: none;
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item {}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item:has(> a.elementor-item.highlighted) {
    background-color: var(--color-brand-blue);
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.2));
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item-has-children {}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item {
    padding: 15px;
    border-radius: var(--radius-sm);
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.has-submenu {
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.elementor-item-active,
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item.current-page-ancestor > a.elementor-item {
    color: var(--color-brand-blue);
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.highlighted,
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.elementor-item-active.highlighted,
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item.current-page-ancestor > a.elementor-item.highlighted {
    color: #ffffff;
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.has-submenu:hover {
    color: #ffffff;
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.has-submenu > .sub-arrow {
    padding: 0; /* Required to remove padding added by Elementor, if no padding is needed */
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.has-submenu > .sub-arrow > i {}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu {
    min-width: 175% !important;
    padding: 0;
    border-radius: 0 var(--radius-sm) var(--radius-sm) var(--radius-sm);
    overflow: hidden;
    background-color: #ffffff;
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item {}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item:has( > a.elementor-sub-item:is(:hover, :focus, :active)) {}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item > a.elementor-sub-item {
    padding: 15px;
    border: none;
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item:first-of-type > a.elementor-sub-item {
    border-radius: 0 var(--radius-sm) 0 0;
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item:last-of-type > a.elementor-sub-item {
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item > a.elementor-sub-item.elementor-item-active {
    color: var(--color-brand-blue);
    background: none;
}
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item > a.elementor-sub-item:is(:hover, :focus, :active),
#header-desktop-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item > a.elementor-sub-item.elementor-item-active:is(:hover, :focus, :active) {
    color: #ffffff;
    background-color: var(--color-brand-blue);
}










/* Off-Canvas Nav menu */
#header-off-canvas-nav-menu {}
#header-off-canvas-nav-menu nav.elementor-nav-menu__container {}
#header-off-canvas-nav-menu ul.elementor-nav-menu {}
/* Unset unneeded Elementor clearfix that causes unwanted flex gap after the menus */
.elementor-nav-menu::before,
.elementor-nav-menu::after {
    content: none;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item:has(> a.elementor-item.highlighted) {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item-has-children {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item {
    padding: 0.4629629em 0.6944em; /* 10px 15px */
    color: #ffffff;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.has-submenu {
    color: #ffffff;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.elementor-item-active/*,
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item.current-page-ancestor > a.elementor-item*/ {
    color: #000000;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item:hover,
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.highlighted {
    color: var(--color-text-reverse-on-blue-highlight);
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.elementor-item-active.highlighted,
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item.current-page-ancestor > a.elementor-item.highlighted {
    color: #000000;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.has-submenu:hover {
    color: var(--color-text-reverse-on-blue-highlight);
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.has-submenu > .sub-arrow {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > a.elementor-item.has-submenu > .sub-arrow > i {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu {
	position: relative;
	width: 100%;
    padding: 0 0 0.277em 0; /* 5px */
	display: block !important;
    background: none;

    /* Prevent flash from Elementor applying JavaScript-driven inline styling for menu UI, specifically display and opacity */
    opacity: 1 !important;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item:has( > a.elementor-sub-item:is(:hover, :focus, :active)) {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item > a.elementor-sub-item {
    padding: 0.555em 0.83em 0.555em calc(0.83em * 2); /* 10px 15px 10px 30px */
    color: #ffffff;
    background-color: unset;
    border: unset;
    text-decoration: none;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item:first-of-type > a.elementor-sub-item {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item:last-of-type > a.elementor-sub-item {}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item > a.elementor-sub-item.elementor-item-active {
    color: #000000;
    background: none;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item > a.elementor-sub-item:hover {
    color: var(--color-text-reverse-on-blue-highlight);
    background: none;
}
#header-off-canvas-nav-menu ul.elementor-nav-menu > li.menu-item > ul.sub-menu > li.menu-item > a.elementor-sub-item.elementor-item-active:hover {
    color: rgba(0, 0, 0, 0.4);
    background: none;
}


/* Search control */
.elementor-widget-search .e-search {}
.elementor-widget-search .e-search-form {
    padding: 0 calc((1rem * 1.4) + var(--e-search-icon-clear-size)) 0 calc((1rem * 1.4) + var(--e-search-icon-submit-size));
    background-color: var(--color-gray-xlt);
    border-radius: calc(1rem * 1.4 + (10px * 2)) 0 calc(1rem * 1.4 + (10px * 2)) 0;
}
.elementor-widget-search .e-search-label {}
.elementor-widget-search .e-search-input-wrapper {}
.elementor-widget-search .e-search-input-wrapper .e-search-input {
    min-height: unset;
    padding: 9px;
    background: none;
    border: none;
    font-size: 1rem;
    line-height: 1.4;
}
.elementor-widget-search .e-search-input-wrapper > svg:is(svg) {
    inset-inline-end: -14px;
    fill: var(--color-brand-blue);
}
.elementor-widget-search .e-search-input-wrapper > svg:is(svg):hover {
    fill: var(--color-brand-blue-highlight);
}
.elementor-widget-search .e-search-input-wrapper .e-search-results-container {
    display: none !important;
}
.elementor-widget-search .e-search .e-search-submit {
    position: absolute;
    top: 50%;
    left: calc(1rem * 1.4);
    margin: 0;
    padding: 0;
    transform: translateY(-50%);
    background: none;
}
.elementor-widget-search .e-search .e-search-submit > svg:is(svg) {
    fill: var(--color-brand-blue);
}
.elementor-widget-search .e-search .e-search-submit:hover > svg:is(svg) {
    fill: var(--color-brand-blue-highlight);
}
/* Add Elementor breakpoint at 880px; desktop nave needs to change to mobile nav at 880px */
@media (max-width: 879px) {
}

/** Off-Canvas Nav Button/Hamburger Button **/
#header-off-canvas-nav-button-container {
    position: absolute;
    top: 0;
    right: 0;
    width: fit-content;
    height: 100%;
    z-index: 99999;
}
/* Keep the button visible if the off-canvas nav is visible so we can always close the off-canvas nav */
#header-off-canvas-nav-button-container:has(.hamburger.is-active) {
    display: inherit !important; /* Should inherit flex or block, but needs to inherit something other than none */
}

/** Off-Canvas Nav **/
#header-off-canvas-nav {}
#header-off-canvas-nav .e-off-canvas {
    z-index: 99998;
}
/* Off-Canvas Nav search control */
#header-off-canvas-nav .elementor-widget-search .e-search-form {
    background-color: #ffffff;
}


/**
 * Footer
 */
#footer,
#footer :is(p, a) {
    line-height: 1.5;
}
#footer a,
.elementor-social-icon {
    color: #ffffff;
    opacity: 1;
    text-decoration: none;;
}
#footer a:hover,
.elementor-social-icon:hover {
    color: var(--color-text-reverse-on-blue-highlight);
    opacity: 1;
    text-decoration: none;;
}
.elementor-social-icon svg {
    fill: #ffffff;
    opacity: 1;
}
.elementor-social-icon:hover svg {
    fill: var(--color-text-reverse-on-blue-highlight);
    opacity: 1;
}
#footer {}
.footer-bkgd {}
.footer-content {}
.footer-logo-col {}
.footer-content-cols {}
.footer-content-row {}


/**
 * Hero
 */
.hero {}
.hero-bkgd-container {
    position: absolute;
    width: 100%;
    height: 100%;
}
.hero-content {
    width: 100%;
    min-height: min(47vw, 540px);
}
.hero-content > .e-con-inner {
    /* NOTE: This will override padding from editor, but this is the right element to add the padding to to follow Elementor's method and to make sure the cutout image is positioned correctly. */
    padding-top: 100px;
    padding-bottom: 50px;
}
/* Hero with wave mask */
.elementor-element.mask-wave-bottom + .hero-content > .e-con-inner,
.elementor-element:has(.mask-wave-bottom) + .hero-content > .e-con-inner {
    padding-bottom: 20px;
}
/* Hero with wave mask and floating cutout image */
.elementor-element.mask-wave-bottom + .hero-content:has(.hero-floating-cutout-image) > .e-con-inner,
.elementor-element:has(.mask-wave-bottom) + .hero-content:has(.hero-floating-cutout-image) > .e-con-inner {
    padding-bottom: 70px;
}
@media (max-width: 767px) {
    .elementor-element.mask-wave-bottom + .hero-content:has(.hero-floating-cutout-image) > .e-con-inner,
    .elementor-element:has(.mask-wave-bottom) + .hero-content:has(.hero-floating-cutout-image) > .e-con-inner {
        /* Fixed-size floating cutout image */
        padding-bottom: 130px;
    }
}


/**
 * GLOBAL SECTIONS
 */

/**
 * Loop Grid
 */
/* Archive */
.loop-grid-archive-posts {}
.loop-grid-archive-posts .elementor-pagination {
    font-size: 1.11rem;
}
.loop-grid-archive-posts .elementor-pagination .page-numbers,
.loop-grid-archive-posts .elementor-pagination a.page-numbers,
.loop-grid-archive-posts .elementor-pagination a.page-numbers:is(:hover, :focus, :active) {
    display: inline-block;
    line-height: 1.2;
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 700;
    font-size: 1em;
    line-height: 1.2;
    text-decoration: none;
    text-align: center;
    transition: all .3s;
}
.loop-grid-archive-posts .elementor-pagination .page-numbers {
    color: var(--color-gray-lt);
}
.loop-grid-archive-posts .elementor-pagination .page-numbers.current {
    color: #000000;
}
.loop-grid-archive-posts .elementor-pagination a.page-numbers,
.loop-grid-archive-posts .elementor-pagination a.page-numbers:is(:hover, :focus, :active) {
    color: var(--color-brand-blue);
}
.loop-grid-archive-posts .elementor-pagination a.page-numbers:hover {
    color: var(--color-brand-blue-highlight);
}
.loop-grid-archive-posts .elementor-pagination .page-numbers.prev::before,
.loop-grid-archive-posts .elementor-pagination .page-numbers.next::after {
    content: '';
    display: inline-block;
    width: 16px;
    height: 1.4em;
    margin: 0 0 0 5px;
    vertical-align: text-top;
    mask-image: var(--icon-arrow-button);
    -webkit-mask-image: var(--icon-arrow-button);
    mask-size: contain;
    -webkit-mask-size: contain;
    mask-position: center;
    -webkit-mask-position: center;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    transition: all .3s;
}
.loop-grid-archive-posts .elementor-pagination .page-numbers.prev::before {
    transform: scaleX(-1);
    margin: 0 5px 0 0;
}
.loop-grid-archive-posts .elementor-pagination .page-numbers.prev::before,
.loop-grid-archive-posts .elementor-pagination .page-numbers.prev::before:is(:hover, :focus, :active),
.loop-grid-archive-posts .elementor-pagination .page-numbers.next::after,
.loop-grid-archive-posts .elementor-pagination .page-numbers.next::after:is(:hover, :focus, :active) {
    background-color: var(--color-gray-lt);
}
.loop-grid-archive-posts .elementor-pagination a.page-numbers.prev::before,
.loop-grid-archive-posts .elementor-pagination a.page-numbers.next::after {
    background-color: var(--color-brand-blue);
}
.loop-grid-archive-posts .elementor-pagination a.page-numbers.prev:hover::before,
.loop-grid-archive-posts .elementor-pagination a.page-numbers.next:hover::after {
    background-color: var(--color-brand-blue-highlight);
}

/**
 * Loop Items
 */
/* Archive */
[class*="loop-item-archive"] h3 a,
[class*="loop-item-archive"] h3 a:is(:hover, :focus, :active) {
    text-decoration: none;
}
.loop-item-archive-posts {}
.loop-item-archive-posts .elementor-widget-post-info.elementor-widget {}
.loop-item-archive-posts .elementor-widget-post-info.elementor-widget .elementor-icon-list-items {
    margin-inline: unset;
}
.loop-item-archive-posts .elementor-widget-post-info.elementor-widget .elementor-icon-list-items .elementor-icon-list-item {
    margin-inline: unset;
}
.loop-item-archive-posts .elementor-widget-post-info .elementor-post-info .elementor-icon-list-item:not(:last-child)::after {
    content: '-';
    display: inline-block;
    inset-inline: unset !important;
    margin: 0 5px;
    border: none !important;
    border-inline: none !important;
}
.loop-item-archive-posts-with-post-type {}


/**
 * Single Post
 */
body.single-post .elementor-post-info__item-prefix,
body.single-news .elementor-post-info__item-prefix {
    font-weight: 700;
}
body.single-post .elementor-widget-theme-post-content h1,
body.single-news .elementor-widget-theme-post-content h1 {
    font-size: 60px;
}
body.single-post .elementor-widget-theme-post-content h2,
body.single-news .elementor-widget-theme-post-content h2 {
}
body.single-post .elementor-widget-theme-post-content h3,
body.single-news .elementor-widget-theme-post-content h3 {
    color: var(--color-brand-blue);
}
body.single-post .elementor-widget-theme-post-content h3,
body.single-news .elementor-widget-theme-post-content h3 {
}
@media (max-width: 1023px) {
    body.single-post .elementor-widget-theme-post-content h1,
    body.single-news .elementor-widget-theme-post-content h1 {
        font-size: 48px;
    }
}


/**
 * How It Works
 */
.how-it-works-steps,
.how-it-works-steps.e-con-full.e-flex {
    --ordinal-width: 75px;
    --ordinal-gap: 15px;
    --ordinal-font-size: 120px;
    --ordinal-vertical-shift: 0.13;
    --ordinal-height-calc: calc(var(--ordinal-font-size) * (1 - var(--ordinal-vertical-shift)));
    --timeline-circle-width: 21px;
    --timeline-stroke-width: 2px;
    --timeline-vertical-shift: 37px;
    --gap-column: 80px;
    --gap-row: 50px;
    counter-reset: step-number;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    gap: var(--gap-row) var(--gap-column);
}
.how-it-works-steps:has(.how-it-works-step),
.how-it-works-steps.e-con-full.e-flex:has(.how-it-works-step) {
    padding-top: calc(var(--timeline-vertical-shift) + (var(--timeline-circle-width) / 2));
}
.how-it-works-step {
    position: relative;
    min-height: var(--ordinal-height-calc);
    flex: 1 1 0;
    padding: 0 0 0 calc(var(--ordinal-width) + var(--ordinal-gap));
}
/* Ordinal */
.how-it-works-step > .elementor-element:not(.elementor-element ~ .elementor-element)::before { /* This is more convoluted that it needs to be so it will work in the Elementor editor, too. Otherwise, we're really just trying to target the first .elementor-element (.elementor-element:first-child) and add a pseudo element to it. */
    counter-increment: step-number;
    content: counter(step-number);
    position: absolute;
    top: calc(-1em * var(--ordinal-vertical-shift));
    left: calc(-1 * (var(--ordinal-width) + var(--ordinal-gap)));
    height: auto;
    width: var(--ordinal-width);
    display: block;
    color: var(--color-brand-green);
    font-size: var(--ordinal-font-size);
    line-height: 1;
    font-weight: 700;
    text-align: center;
}
/* Timeline */
/* Circle */
.how-it-works-step::before {
    content: '';
    display: block;
    position: absolute;
    top: calc(-1 * var(--timeline-vertical-shift));
    left: calc(50% - (var(--timeline-circle-width) / 2));
    width: var(--timeline-circle-width);
    height: var(--timeline-circle-width);
    border: var(--timeline-stroke-width) solid var(--color-brand-blue);
    border-radius: 50%;
    box-sizing: border-box;
    transform: translateY(-50%);
}
/* Line segment */
.how-it-works-step:has(~ .how-it-works-step)::after {
    content: '';
    display: block;
    position: absolute;
    width: calc(100% + var(--gap-column) - var(--timeline-circle-width));
    height: 0;
    top: calc(-1 * var(--timeline-vertical-shift));
    left: calc(50% + (var(--timeline-circle-width) / 2));
    border-top: var(--timeline-stroke-width) solid var(--color-brand-blue);
    box-sizing: border-box;
    transform: translateY(-50%);
}
@media (max-width: 1023px) {
    .how-it-works-steps,
    .how-it-works-steps.e-con-full.e-flex {
        --gap-column: 50px;
    }
}
/** Vertical variation **/
@media (max-width: 879px) {
    .how-it-works-steps,
    .how-it-works-steps.e-con-full.e-flex {
        --ordinal-width: 60px;
        --ordinal-font-size: 90px;
        --timeline-vertical-shift: 30px;
        flex-direction: column;
    }
    .how-it-works-steps:has(.how-it-works-step),
    .how-it-works-steps.e-con-full.e-flex:has(.how-it-works-step) {
        padding-top: 0;
        padding-left: calc(var(--timeline-vertical-shift) + (var(--timeline-circle-width) / 2));
    }
    /* Timeline */
    /* Circle */
    .how-it-works-step::before {
        top: calc((var(--ordinal-height-calc) / 2) - (var(--timeline-circle-width) / 2));
        left: calc(-1 * var(--timeline-vertical-shift));
        transform: translateX(-50%);
    }
    /* Line segment */
    .how-it-works-step:has(~ .how-it-works-step)::after {
        top: calc((var(--ordinal-height-calc) / 2) + (var(--timeline-circle-width) / 2));
        left: calc(-1 * var(--timeline-vertical-shift));
        width: 0;
        height: calc(100% + var(--gap-row) - var(--timeline-circle-width));
        border-top: unset;
        border-left: var(--timeline-stroke-width) solid var(--color-brand-blue);
        transform: translateX(-50%);
    }
}


/**
 * Industries section
 */
.industries-cards,
.industries-cards.e-con-full.e-flex {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0;
    align-items: stretch;

    /* Grid */
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
}
.industries-cards-4-col,
.industries-cards-4-col.e-con-full.e-flex {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 1fr;
}
.industries-card,
.industries-card.e-con.e-flex,
.industries-card.e-con-full.e-flex {
    /* flex: 1 1 0; */
    /* flex: 0 0 50%; /* Content is too long to try to squeeze into 4 columns. Do a 2 x 2 flex-based grid instead. */
    /* aspect-ratio: 1 / 1.194; */

    /* For grid */
    aspect-ratio: 1 / 1;

    /* For grid, no-body-text version */
    aspect-ratio: 1 / 1.194;
}
.industries-card-link {
    position: absolute;
    inset: 0;
    z-index: 1;
}
.industries-card-bkgd {
    position: absolute;
    inset: 0;
    z-index: -3;
}
/* Color overlay */
/* White layer to screen background image on hover so it's washed out when tinted yellow */
.industries-card-bkgd::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -2;
    background-color: #ffffff;
    opacity: 0;
    transform: background-color 0.3s, opacity 0.3s;
}
/* Color tint */
.industries-card-bkgd::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-brand-blue);
    mix-blend-mode: multiply;
    transform: background-color 0.3s;
}
.industries-card:is(:hover, :focus, :active) .industries-card-bkgd::before {
    opacity: 0.8;
}
.industries-card:is(:hover, :focus, :active) .industries-card-bkgd::after {
    background-color: var(--color-brand-yellow);
}
.industries-card:is(:hover, :focus, :active),
.industries-card:is(:hover, :focus, :active) :is(div, p, a, h1, h2, h3, h4, h5, h6, li, blockquote) {
    color: #000000 !important;
}
.industries-card-content {
    width: 50%;
    margin: 50px 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;

    /* No-body-text version */
    width: 75%;
    margin: 0;
}
@media (max-width: 879px) {
    .industries-cards,
    .industries-cards.e-con-full.e-flex {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* @media (max-width: 767px) { */
@media (max-width: 549px) {
    .industries-cards,
    .industries-cards.e-con-full.e-flex {
        grid-template-columns: 1fr;
    }
    .industries-card,
    .industries-card.e-con.e-flex,
    .industries-card.e-con-full.e-flex {
        /* flex: 0 0 100%; */
        /* aspect-ratio: 1.194 / 1; */

        /* Grid */
        aspect-ratio: 5 / 3;
    }
    .industries-card-content {
        width: 66%;
        margin: 50px 0;

        /* No-body-text version */
        width: 75%;
        margin: 0;
    }
}


/**
 * Resources cards
 */
.resources-cards,
.resources-cards.e-flex {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 30px 3%;

    /* Grid */
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
}
.resources-card,
.resources-card.e-flex {
    margin: 0;
    padding: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    overflow: hidden;
}
.resources-card-content,
.resources-card-content.e-flex {
    margin: 0;
    padding: 36px 24px calc(24px + 15px + (1.11rem * 1.4)) 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: left;
    gap: 0;
}
.resources-card-button {
    position: absolute;
    bottom: 24px;
}
.resources-card-image,
.resources-card-image.e-flex {
    width: 100%;
    aspect-ratio: 3 / 2;
    margin: 0;
    padding: 0;
    flex: 0;
}
@media (max-width: 767px) {
    .resources-cards,
    .resources-cards.e-flex {
        flex-direction: column;

        /* Grid */
        grid-template-columns: 1fr;
    }
    .resources-card-image,
    .resources-card-image.e-flex {
        aspect-ratio: 5 / 3;
    } 
}


/**
 * SUCCESS STORIES/SEE THE RESULTS PAGE
 */

/**
 * Success Stories sections
 */
/* UNUSED
.success-stories {}
.success-story {}
.success-story:nth-child(odd) {
    background-color: var(--color-blue-lt);
}
.success-story-content {}
.success-story-content.e-con.e-flex > .e-con-inner {
    padding: 50px 0;
    display: flex;
    flex-direction: row-reverse;
    gap: 35px 50px;
}
.success-story:nth-child(odd) .success-story-content.e-con.e-flex > .e-con-inner {
    flex-direction: row;
}
.success-story-content .elementor-widget-image {
    width: 25%;
    height: auto;
    flex: 0 0 auto;
    aspect-ratio: 1 / 1;
}
.success-story-content .elementor-widget-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
*/
/**
 * Success Stories cards
 */
.success-stories-cards,
.success-stories-cards.e-flex {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    gap: 30px 3%;
}
.success-stories-card,
.success-stories-card.e-flex {
    margin: 0;
    padding: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    overflow: hidden;
}
.success-stories-card-content,
.success-stories-card-content.e-flex {
    margin: 0;
    padding: 36px 24px 24px 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: left;
    gap: 0;
}
.success-stories-card-image,
.success-stories-card-image.e-flex {
    width: 100%;
    aspect-ratio: 3 / 2;
    margin: 0;
    padding: 0;
    flex: 0;
}
@media (max-width: 767px) {
    .success-stories-cards,
    .success-stories-cards.e-flex {
        flex-direction: column;

        /* Grid */
        grid-template-columns: 1fr;
    }
    .success-stories-card-image,
    .success-stories-card-image.e-flex {
        aspect-ratio: 5 / 3;
    } 
}


/**
 * Success Stories Testimonials carousel
 */
#testimonials-carousel {}
#testimonials-carousel .elementor-main-swiper.swiper {
    /* Elementor and/or Swiper.js does a terrible job of sizing the swiper containers, so we need to intervene here */
    width: calc(100% - (5% * 2) - (17px * 2));
}
#testimonials-carousel .swiper-slide {
    /* Elementor and/or Swiper.js does a terrible job of sizing the swiper containers, so we need to intervene here */
    padding: 0;
    display: flex;
    align-items: center;
}
#testimonials-carousel .elementor-testimonial {
    flex-direction: row;
    align-items: stretch;
    gap: 30px 5%;
}
#testimonials-carousel .elementor-testimonial__content {
    flex: 1;
}
#testimonials-carousel .elementor-testimonial__content .elementor-testimonial__text {}
#testimonials-carousel .elementor-testimonial__content .elementor-testimonial__cite {}
#testimonials-carousel .elementor-testimonial__footer {
    width: fit-content;
    padding: 0;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
}
#testimonials-carousel .elementor-testimonial__image {}
#testimonials-carousel .elementor-testimonial__image img {
    width: 120px;
    height: unset;
    aspect-ratio: 1 / 1;
    box-sizing: border-box;
}
/* Pagination */
#testimonials-carousel .elementor-swiper-button {
    /* Elementor and/or Swiper.js does a terrible job of sizing the swiper containers, so we need to intervene here */
    width: 17px;
    height: 40px;
}
#testimonials-carousel .elementor-swiper-button svg {
    display: none;
}
#testimonials-carousel .elementor-swiper-button::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background-color: var(--color-brand-green);
    mask-size: contain;
}
#testimonials-carousel .elementor-swiper-button.elementor-swiper-button-prev {
    /* Elementor and/or Swiper.js does a terrible job of sizing the swiper containers, so we need to intervene here */
    left: 0;
}
#testimonials-carousel .elementor-swiper-button.elementor-swiper-button-next {
    /* Elementor and/or Swiper.js does a terrible job of sizing the swiper containers, so we need to intervene here */
    right: 0;
}
#testimonials-carousel .elementor-swiper-button.elementor-swiper-button-prev::before {
    mask-image: var(--arrow-chevron-left);
}
#testimonials-carousel .elementor-swiper-button.elementor-swiper-button-next::before {
    mask-image: var(--arrow-chevron-right);
}
#testimonials-carousel .elementor-swiper-button:hover::before {
    background-color: var(--color-brand-green-highlight);
}
#testimonials-carousel .elementor-swiper-button.swiper-button-disabled {
    opacity: 1;
}
#testimonials-carousel .elementor-swiper-button.swiper-button-disabled:hover {
    cursor: initial;
}
#testimonials-carousel .elementor-swiper-button.swiper-button-disabled::before,
#testimonials-carousel .elementor-swiper-button.swiper-button-disabled:hover::before {
    background-color: var(--color-gray-lt);
}
@media (max-width: 767px) {
    #testimonials-carousel .elementor-testimonial {
        flex-direction: column;
    }
    #testimonials-carousel .elementor-testimonial__footer {
        width: 100%;
    }
}


/**
 * ACCORDION
 */
/* Add a custom rotating "+" mark
/* Hide default icons */
.e-n-accordion-item-title-icon .e-opened,
.e-n-accordion-item-title-icon .e-closed {
    display: none !important;
}
.e-n-accordion-item-title-icon {}
.e-n-accordion-item-title .e-n-accordion-item-title-icon::before {
    content: '';
    display: block;
    width: 20px;
    aspect-ratio: 1 / 1;
    background-color: var(--color-brand-blue);
    mask-image: var(--icon-plus-mark);
    mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    -webkit-mask-image: var(--icon-plus-mark);
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    transform: rotate(0deg);
	transition: transform 0.2s ease-out, background-color 0.2s;
}
.e-n-accordion-item-title[aria-expanded="false"]:hover .e-n-accordion-item-title-icon::before {
    background-color: var(--color-brand-blue-highlight);
}
.e-n-accordion-item-title[aria-expanded="true"] .e-n-accordion-item-title-icon::before {
    transform: rotate(45deg);
}


/**
 * ELEMENTOR EDITOR
 */
/* Keep add new section drop area on top of normal theme elements */
#elementor-add-new-section {
    z-index: 55555;
}