.elementor-kit-39444{--e-global-color-primary:#001F25;--e-global-color-secondary:#117D8D;--e-global-color-text:#001F25;--e-global-color-accent:#FF3B30;--e-global-color-3a39bf9:#FFF8ED;--e-global-color-4d2ab32:#FFFFFF;--e-global-color-ec6fd5e:#FF3B30;--e-global-color-3082235:#D8ECE8;--e-global-color-b034e1a:#F2D77B;--e-global-color-36f3dd0:#E9DED0;--e-global-typography-primary-font-family:"kaneda-gothic";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"kaneda-gothic";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"source-sans-3";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"source-sans-3";--e-global-typography-accent-font-weight:700;background-color:var( --e-global-color-3a39bf9 );color:var( --e-global-color-primary );font-family:"source-sans-3", Sans-serif;font-size:18px;font-weight:400;line-height:1.5em;}.elementor-kit-39444 button,.elementor-kit-39444 input[type="button"],.elementor-kit-39444 input[type="submit"],.elementor-kit-39444 .elementor-button{background-color:var( --e-global-color-accent );font-family:"source-sans-3", Sans-serif;font-size:17px;font-weight:700;text-transform:uppercase;line-height:1.2em;letter-spacing:0.025em;color:var( --e-global-color-3a39bf9 );border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-accent );border-radius:0px 0px 0px 0px;padding:16px 30px 16px 30px;}.elementor-kit-39444 button:hover,.elementor-kit-39444 button:focus,.elementor-kit-39444 input[type="button"]:hover,.elementor-kit-39444 input[type="button"]:focus,.elementor-kit-39444 input[type="submit"]:hover,.elementor-kit-39444 input[type="submit"]:focus,.elementor-kit-39444 .elementor-button:hover,.elementor-kit-39444 .elementor-button:focus{background-color:var( --e-global-color-3a39bf9 );color:var( --e-global-color-primary );border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-accent );}.elementor-kit-39444 e-page-transition{background-color:#FFBC7D;}.elementor-kit-39444 a{color:var( --e-global-color-secondary );font-family:"source-sans-3", Sans-serif;font-weight:600;}.elementor-kit-39444 a:hover{color:var( --e-global-color-accent );}.elementor-kit-39444 h1{font-family:"kaneda-gothic", Sans-serif;font-size:80px;font-weight:800;text-transform:uppercase;line-height:0.94em;letter-spacing:0em;}.elementor-kit-39444 h2{font-family:"kaneda-gothic", Sans-serif;font-size:60px;font-weight:800;text-transform:uppercase;line-height:0.98em;letter-spacing:0em;}.elementor-kit-39444 h3{font-family:"kaneda-gothic", Sans-serif;font-size:42px;font-weight:800;text-transform:uppercase;line-height:1.04em;letter-spacing:0em;}.elementor-kit-39444 h4{font-family:"kaneda-gothic", Sans-serif;font-size:30px;font-weight:700;text-transform:uppercase;line-height:1.12em;letter-spacing:0em;}.elementor-kit-39444 h5{font-family:"kaneda-gothic", Sans-serif;font-size:23px;font-weight:700;text-transform:uppercase;line-height:1.2em;letter-spacing:0em;}.elementor-kit-39444 h6{font-family:"source-sans-3", Sans-serif;font-size:16px;font-weight:700;line-height:1.3em;letter-spacing:0.02em;}.elementor-kit-39444 label{color:var( --e-global-color-primary );font-family:"source-sans-3", Sans-serif;font-size:18px;font-weight:600;line-height:1.3em;}.elementor-kit-39444 input:not([type="button"]):not([type="submit"]),.elementor-kit-39444 textarea,.elementor-kit-39444 .elementor-field-textual{font-family:"source-sans-3", Sans-serif;font-size:18px;font-weight:400;line-height:1.4em;color:#001F25;background-color:#FFFDF8;border-style:solid;border-width:1px 1px 1px 1px;border-color:#8F9C9B;border-radius:0px 0px 0px 0px;transition:400ms;padding:13px 15px 13px 15px;}.elementor-kit-39444 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-39444 textarea:focus,.elementor-kit-39444 .elementor-field-textual:focus{color:var( --e-global-color-primary );background-color:#FFFDF8;border-style:solid;border-width:1px 1px 1px 1px;border-color:#117D8D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:32px;--container-default-padding-right:32px;--container-default-padding-bottom:32px;--container-default-padding-left:32px;}.elementor-widget:not(:last-child){--kit-widget-spacing:24px;}.elementor-element{--widgets-spacing:24px 24px;--widgets-spacing-row:24px;--widgets-spacing-column:24px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-39444{font-size:18px;}.elementor-kit-39444 h1{font-size:64px;}.elementor-kit-39444 h2{font-size:48px;}.elementor-kit-39444 h3{font-size:36px;}.elementor-kit-39444 h4{font-size:28px;}.elementor-kit-39444 h5{font-size:22px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;--container-default-padding-top:24px;--container-default-padding-right:24px;--container-default-padding-bottom:24px;--container-default-padding-left:24px;}}@media(max-width:767px){.elementor-kit-39444{font-size:17px;}.elementor-kit-39444 h1{font-size:46px;}.elementor-kit-39444 h2{font-size:38px;}.elementor-kit-39444 h3{font-size:30px;}.elementor-kit-39444 h4{font-size:25px;}.elementor-kit-39444 h5{font-size:21px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:20px;--container-default-padding-right:20px;--container-default-padding-bottom:20px;--container-default-padding-left:20px;}}/* Start custom CSS *//* JUSTIN PATTON — SHARED BUTTON INTERACTIONS
 * Add once to site-wide Custom CSS. Works alongside JP-Hero.css and JP-Header.css.
 * Owns button states only; responsive dimensions and typography stay in those files.
 * Targets existing hero/header buttons and reusable jp-button-solid / jp-button-ghost widgets.
 */
 
:root {
    --jp-brand-accent: #FF3B30;
}
 

.jp-hero .jp-hero-video {
    --jp-button-fill: var(--jp-brand-accent);
}

.jp-header .jp-header__cta {
    --jp-button-fill: var(--jp-accent, var(--jp-brand-accent));
}

.jp-header .jp-mobile-menu__cta {
    --jp-button-fill: var(--e-global-color-secondary, #16899a);
}

/* REUSABLE VARIANTS — add one class to an Elementor Button widget.
   Elementor controls size, typography, and placement. */
.elementor-widget:is(.jp-button-solid, .jp-button-ghost) {
    --jp-button-fill: var(--jp-accent, var(--jp-brand-accent, #FF5A21));
    --jp-button-hover-background: var(--jp-button-fill);
    --jp-button-pressed-background: var(--jp-button-fill);
}

.elementor-widget.jp-button-solid {
    --jp-button-background: var(--jp-button-fill);
}

.elementor-widget.jp-button-ghost {
    --jp-button-background: transparent;
}

.elementor-element.elementor-widget:is(.jp-button-solid, .jp-button-ghost)
.elementor-button {
    border: 1px solid var(--jp-button-fill) !important;
    color: var(--jp-cream, #fff8ed) !important;
}

/* The shared .elementor-kit-39444 overrides Elementor at the existing widget boundary.
   Explicit transitions prevent font size, padding, or width animating on resize. */
:is(
    .jp-hero.elementor-element .jp-hero-video.elementor-widget,
    .jp-header.elementor-element .elementor-widget:is(.jp-header__cta, .jp-mobile-menu__cta),
    .elementor-widget.jp-button-solid,
    .elementor-widget.jp-button-ghost
) .elementor-button {
    --jp-button-lift: -2px;
    --jp-button-duration: 200ms;
    --jp-button-press-duration: 80ms;
    --jp-button-shadow: 0 8px 18px rgb(0 8 18 / 28%);
    --jp-button-focus: #fff8ed;

    background-color: var(--jp-button-background, var(--jp-button-fill)) !important;
    border-color: var(--jp-button-fill) !important;
    transform: translateY(0) !important;
    filter: brightness(1) !important;
    box-shadow: none !important;
    transition:
        background-color var(--jp-button-duration) ease-out,
        transform var(--jp-button-duration) ease-out,
        filter var(--jp-button-duration) ease-out,
        box-shadow var(--jp-button-duration) ease-out !important;
}

/* DESKTOP CONTACT — ghost variant. The border is present in every state,
   so filling the button never changes its dimensions. */
@media (min-width: 1025px) {
    .jp-header .jp-header__cta {
        --jp-button-background: transparent;
        --jp-button-hover-background: var(--jp-button-fill);
        --jp-button-pressed-background: var(--jp-button-fill);
    }

    /* Match the state that fades in the header background. */
    .jp-header.elementor-sticky--effects .jp-header__cta {
        --jp-button-background: var(--jp-button-fill);
    }

    .jp-header.elementor-element .jp-header__cta.elementor-widget .elementor-button {
        border: 1px solid var(--jp-button-fill) !important;
        color: var(--jp-cream, #fff8ed) !important;
    }
}

/* Mouse/trackpad hover only: no persistent lift on touchscreens. */
@media (hover: hover) and (pointer: fine) {
    :is(
    .jp-hero.elementor-element .jp-hero-video.elementor-widget,
    .jp-header.elementor-element .elementor-widget:is(.jp-header__cta, .jp-mobile-menu__cta),
    .elementor-widget.jp-button-solid,
    .elementor-widget.jp-button-ghost
)
    .elementor-button:hover:not(:disabled):not([aria-disabled="true"]) {
        background-color: var(--jp-button-hover-background, var(--jp-button-background, var(--jp-button-fill))) !important;
        transform: translateY(var(--jp-button-lift)) !important;
        filter: brightness(1.06) !important;
        box-shadow: var(--jp-button-shadow) !important;
    }
}

/* Pressed state follows hover so it wins for both pointer and touch input. */
:is(
    .jp-hero.elementor-element .jp-hero-video.elementor-widget,
    .jp-header.elementor-element .elementor-widget:is(.jp-header__cta, .jp-mobile-menu__cta),
    .elementor-widget.jp-button-solid,
    .elementor-widget.jp-button-ghost
)
.elementor-button:active:not(:disabled):not([aria-disabled="true"]) {
    transform: translateY(0) !important;
    background-color: var(--jp-button-pressed-background, var(--jp-button-background, var(--jp-button-fill))) !important;
    filter: brightness(.96) !important;
    box-shadow: 0 2px 5px rgb(0 8 18 / 18%) !important;
    transition-duration: var(--jp-button-press-duration) !important;
}

:is(
    .jp-hero.elementor-element .jp-hero-video.elementor-widget,
    .jp-header.elementor-element .elementor-widget:is(.jp-header__cta, .jp-mobile-menu__cta),
    .elementor-widget.jp-button-solid,
    .elementor-widget.jp-button-ghost
)
.elementor-button:focus-visible {
    outline: 3px solid var(--jp-button-focus) !important;
    outline-offset: 5px !important;
}

/* Keep state feedback while removing movement and animated transitions. */
@media (prefers-reduced-motion: reduce) {
    :is(
    .jp-hero.elementor-element .jp-hero-video.elementor-widget,
    .jp-header.elementor-element .elementor-widget:is(.jp-header__cta, .jp-mobile-menu__cta),
    .elementor-widget.jp-button-solid,
    .elementor-widget.jp-button-ghost
)
    .elementor-button {
        --jp-button-lift: 0px;
        --jp-button-press-duration: 0ms;
        transition: none !important;
    }
}/* End custom CSS */