.elementor-40187 .elementor-element.elementor-element-fbadc28{--display:flex;--min-height:150px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--overlay-opacity:1;--margin-top:0px;--margin-bottom:-150px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;--z-index:999;}.elementor-40187 .elementor-element.elementor-element-fbadc28:not(.elementor-motion-effects-element-type-background), .elementor-40187 .elementor-element.elementor-element-fbadc28 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0B5763;}.elementor-40187 .elementor-element.elementor-element-fbadc28::before, .elementor-40187 .elementor-element.elementor-element-fbadc28 > .elementor-background-video-container::before, .elementor-40187 .elementor-element.elementor-element-fbadc28 > .e-con-inner > .elementor-background-video-container::before, .elementor-40187 .elementor-element.elementor-element-fbadc28 > .elementor-background-slideshow::before, .elementor-40187 .elementor-element.elementor-element-fbadc28 > .e-con-inner > .elementor-background-slideshow::before, .elementor-40187 .elementor-element.elementor-element-fbadc28 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-40187 .elementor-element.elementor-element-a9c27cd{width:var( --container-widget-width, 20% );max-width:20%;--container-widget-width:20%;--container-widget-flex-grow:0;}.elementor-40187 .elementor-element.elementor-element-a9c27cd img{width:215px;}.elementor-40187 .elementor-element.elementor-element-1dfec00{width:var( --container-widget-width, 50% );max-width:50%;--container-widget-width:50%;--container-widget-flex-grow:0;}.elementor-40187 .elementor-element.elementor-element-1dfec00.elementor-element{--flex-grow:1;--flex-shrink:0;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-menu-toggle{margin:0 auto;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu .elementor-item{font-family:"source-sans-3", Sans-serif;font-size:0.9em;font-weight:700;text-transform:uppercase;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--main .elementor-item{color:#FFF8EE;fill:#FFF8EE;padding-left:18px;padding-right:18px;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--main .elementor-item:hover,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--main .elementor-item:focus{color:#FF5A21;fill:#FF5A21;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a, .elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-menu-toggle{color:var( --e-global-color-3a39bf9 );fill:var( --e-global-color-3a39bf9 );}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown{background-color:var( --e-global-color-primary );border-radius:4px 4px 4px 4px;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a:hover,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a:focus,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a.highlighted,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-menu-toggle:hover,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-menu-toggle:focus{color:var( --e-global-color-3a39bf9 );}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a:hover,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a:focus,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown a.highlighted{background-color:var( --e-global-color-accent );}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown .elementor-item, .elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:1.1em;text-transform:uppercase;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown li:first-child a{border-top-left-radius:4px;border-top-right-radius:4px;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown li:last-child a{border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.elementor-40187 .elementor-element.elementor-element-1dfec00 .elementor-nav-menu--dropdown li:not(:last-child){border-style:solid;border-color:#2F3637;border-bottom-width:1px;}.elementor-40187 .elementor-element.elementor-element-898a190{--display:flex;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--z-index:10;}.elementor-40187 .elementor-element.elementor-element-898a190.e-con{--flex-grow:0;--flex-shrink:1;}.elementor-40187 .elementor-element.elementor-element-a0922ec{width:initial;max-width:initial;}.elementor-40187 .elementor-element.elementor-element-c9f14b3 .elementor-button{background-color:var( --e-global-color-accent );text-transform:uppercase;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-ec6fd5e );}.elementor-40187 .elementor-element.elementor-element-c9f14b3 .elementor-button:hover, .elementor-40187 .elementor-element.elementor-element-c9f14b3 .elementor-button:focus{background-color:var( --e-global-color-accent );border-color:var( --e-global-color-accent );}.elementor-40187 .elementor-element.elementor-element-c9f14b3{width:var( --container-widget-width, 25% );max-width:25%;--container-widget-width:25%;--container-widget-flex-grow:0;}.elementor-40187 .elementor-element.elementor-element-ae5d9c5{--display:flex;}.elementor-40187 .elementor-element.elementor-element-08c9316{width:var( --container-widget-width, 20% );max-width:20%;--container-widget-width:20%;--container-widget-flex-grow:0;}.elementor-40187 .elementor-element.elementor-element-08c9316 img{width:215px;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1{width:var( --container-widget-width, 50% );max-width:50%;--container-widget-width:50%;--container-widget-flex-grow:0;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1.elementor-element{--flex-grow:1;--flex-shrink:0;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-menu-toggle{margin-left:auto;background-color:var( --e-global-color-secondary );}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu .elementor-item{font-family:"source-sans-3", Sans-serif;font-size:0.9em;font-weight:700;text-transform:uppercase;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--main .elementor-item{color:#FFF8EE;fill:#FFF8EE;padding-left:18px;padding-right:18px;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--main .elementor-item:hover,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a, .elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-menu-toggle{color:var( --e-global-color-3a39bf9 );fill:var( --e-global-color-3a39bf9 );}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown{background-color:var( --e-global-color-primary );border-radius:4px 4px 4px 4px;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a:hover,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a:focus,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a.highlighted,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-menu-toggle:hover,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-menu-toggle:focus{color:var( --e-global-color-3a39bf9 );}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a:hover,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a:focus,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown a.highlighted{background-color:var( --e-global-color-accent );}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown .elementor-item, .elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:1.1em;text-transform:uppercase;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown li:first-child a{border-top-left-radius:4px;border-top-right-radius:4px;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown li:last-child a{border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 .elementor-nav-menu--dropdown li:not(:last-child){border-style:solid;border-color:#2F3637;border-bottom-width:1px;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 div.elementor-menu-toggle{color:var( --e-global-color-3a39bf9 );}.elementor-40187 .elementor-element.elementor-element-2ab1fe1 div.elementor-menu-toggle svg{fill:var( --e-global-color-3a39bf9 );}.elementor-40187 .elementor-element.elementor-element-d8028d1{--display:flex;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--z-index:10;}.elementor-40187 .elementor-element.elementor-element-d8028d1.e-con{--flex-grow:0;--flex-shrink:1;}.elementor-40187 .elementor-element.elementor-element-08ae692{width:initial;max-width:initial;}.elementor-40187 .elementor-element.elementor-element-bcb9470 .elementor-button{background-color:var( --e-global-color-secondary );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-secondary );}.elementor-40187 .elementor-element.elementor-element-bcb9470 .elementor-button:hover, .elementor-40187 .elementor-element.elementor-element-bcb9470 .elementor-button:focus{background-color:var( --e-global-color-accent );border-color:var( --e-global-color-accent );}.elementor-40187 .elementor-element.elementor-element-bcb9470{width:var( --container-widget-width, 25% );max-width:25%;--container-widget-width:25%;--container-widget-flex-grow:0;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-40187 .elementor-element.elementor-element-fbadc28{--content-width:1600px;}.elementor-40187 .elementor-element.elementor-element-898a190{--width:15%;}.elementor-40187 .elementor-element.elementor-element-d8028d1{--width:15%;}}@media(max-width:1024px){.elementor-40187 .elementor-element.elementor-element-fbadc28{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-40187 .elementor-element.elementor-element-a9c27cd{--container-widget-width:30%;--container-widget-flex-grow:0;width:var( --container-widget-width, 30% );max-width:30%;}.elementor-40187 .elementor-element.elementor-element-08c9316{--container-widget-width:30%;--container-widget-flex-grow:0;width:var( --container-widget-width, 30% );max-width:30%;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1{--container-widget-width:70%;--container-widget-flex-grow:0;width:var( --container-widget-width, 70% );max-width:70%;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1.elementor-element{--flex-grow:0;--flex-shrink:0;}}@media(max-width:767px){.elementor-40187 .elementor-element.elementor-element-fbadc28{--margin-top:0px;--margin-bottom:-150px;--margin-left:0px;--margin-right:0px;}.elementor-40187 .elementor-element.elementor-element-a9c27cd{--container-widget-width:50%;--container-widget-flex-grow:0;width:var( --container-widget-width, 50% );max-width:50%;}.elementor-40187 .elementor-element.elementor-element-08c9316{--container-widget-width:50%;--container-widget-flex-grow:0;width:var( --container-widget-width, 50% );max-width:50%;}.elementor-40187 .elementor-element.elementor-element-2ab1fe1{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--container-widget-width:30%;--container-widget-flex-grow:0;width:var( --container-widget-width, 30% );max-width:30%;}}/* Start custom CSS for image, class: .elementor-element-a9c27cd */.elementor-40187 .elementor-element.elementor-element-a9c27cd {
  transition: transform 0.8s ease, filter 0.3s ease;
  transform-origin: center;
}

.elementor-40187 .elementor-element.elementor-element-a9c27cd:hover  {
  transform: scale(1.04) translateY(-4px);
  filter: brightness(1.05);
}/* End custom CSS */
/* Start custom CSS for nav-menu, class: .elementor-element-2ab1fe1 */.elementor-40187 .elementor-element.elementor-element-2ab1fe1 {
  transition: transform 0.8s ease, filter 0.3s ease;
  transform-origin: center;
}

.elementor-40187 .elementor-element.elementor-element-2ab1fe1:hover  {
  transform: scale(1.04) translateY(-4px);
  filter: brightness(1.05);
}/* End custom CSS */
/* Start custom CSS *//* JUSTIN PATTON — HEADER CUSTOM CSS
 * Header template document Custom CSS.
 * This is separate from the hero CSS. Existing widget custom CSS stays in place.
 * Responsive header with a shared tablet/phone menu.
 * Elementor continues to own sticky positioning and dropdown interactions.
 */
.mmg-social-bar {
	--mmg-social-icon-color: #FFF8EE;
	--mmg-social-icon-hover-color: var(--jp-brand-accent);
	--mep-social-icon-size:1.17rem !important;
	--mep-social-link-size:1.85rem !important;
	--mep-social-gap: 3px !important;
}

.mmg-menu-bigger
{
    font-size:1.1em;
}


/* =========================================================
   JUSTIN PATTON — HEADER SYSTEM
   ========================================================= */


/* BASE HEADER
--------------------------------------------------------- */

.jp-header {
	--jp-header-max-width: 1500px;
	--jp-header-fade-duration: 550ms;
	--jp-header-resize-duration: 420ms;
	--jp-header-resize-easing: cubic-bezier(.22, 1, .36, 1);
	--jp-header-fade-easing: ease-in-out;
	--jp-header-side-space: clamp(28px, 3.5vw, 56px);

	position: relative;
	z-index: 1000;
	isolation: isolate;

	background-color: rgba(0, 31, 37, 0) !important;

	box-shadow: none;

	transition:
		background-color var(--jp-header-fade-duration) var(--jp-header-fade-easing),
		box-shadow var(--jp-header-fade-duration) var(--jp-header-fade-easing),
		min-height var(--jp-header-resize-duration) var(--jp-header-resize-easing),
		padding-top var(--jp-header-resize-duration) var(--jp-header-resize-easing),
		padding-bottom var(--jp-header-resize-duration) var(--jp-header-resize-easing);
}


/* REPEATING DUST TEXTURE */

.jp-header::after {
	content: "";

	position: absolute;
	inset: 0;
	z-index: 0;

	background-image:
		url("https://justinpatton.local/wp-content/uploads/2026/09/JP_Grain_Overlay_01.png");

	background-position: top left;
	background-repeat: repeat;
	background-size: 9% auto;

	opacity: 0;

	pointer-events: none;

	transition: opacity var(--jp-header-fade-duration) var(--jp-header-fade-easing);
}


/* KEEP HEADER CONTENT ABOVE THE TEXTURE */

.jp-header > .e-con-inner {
	position: relative;
	z-index: 1;

	width: 100%;
	max-width: var(--jp-header-max-width);

	margin-inline: auto;
}


/* STICKY/SCROLLED STATE
--------------------------------------------------------- */

.jp-header.elementor-sticky--effects {
	background-color: #001f25 !important;

	box-shadow:
		0 8px 24px
		rgba(10, 18, 20, 0.14);
}

.jp-header.elementor-sticky--effects::after {
	opacity: 1;
}


/* REDUCED MOTION
--------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .jp-header { --jp-header-resize-duration: 0ms; }

	.jp-header,
	.jp-header::after {
		transition: none;
	}
}


/* LOGO
--------------------------------------------------------- */

.jp-header__logo {
	flex: 0 0 auto;
}

.jp-header__logo img {
	display: block;

	width: 100%;
	height: auto;
}


/* =========================================================
   DESKTOP HEADER
   ========================================================= */

/* Desktop columns retain the approved 1536px geometry. Compact widths
   recover space from gutters and padding before reducing useful content. */
@media (min-width: 1025px) {
    .jp-header {
        --jp-header-side-space: clamp(8px, calc(9vw - 84.48px), 56px);
        --jp-header-social-padding: clamp(0px, calc((100vw - 1100px) * 0.073394495413), 32px);
        --jp-header-button-padding: clamp(16px, calc(5vw - 38.8px), 38px);
        --jp-header-logo-width: clamp(160px, 16vw, 240px);
    }

    /* Compact scrolled header; retain the generous opening state. */
    .jp-header.elementor-sticky--effects {
        --jp-header-logo-width: 144px;
        --jp-btn-height: 44px;
        --jp-btn-padding-y: 10px;
        min-height: 76px !important;
        padding-block: 8px !important;
    }

    .jp-header.elementor-sticky--effects > .e-con-inner {
        min-height: 0 !important;
        padding-block: 0 !important;
    }

    .jp-header.elementor-sticky--effects .jp-header__socials {
        min-height: 0 !important;
        padding-block: 0 !important;
    }

    .jp-header > .e-con-inner {
        display: grid !important;
        grid-template-columns: var(--jp-header-logo-width) minmax(0, 1fr) max-content max-content;
        transition: grid-template-columns var(--jp-header-resize-duration) var(--jp-header-resize-easing);
        align-items: center;
        gap: clamp(10px, 1.1vw, 22px);
        width: calc(100% - 2 * var(--jp-header-side-space)) !important;
        max-width: var(--jp-header-max-width) !important;
        margin-inline: auto !important;
        padding-inline: 0 !important;
    }

    body .elementor .jp-header .elementor-element.jp-header__logo {
        width: var(--jp-header-logo-width) !important;
        transition: width var(--jp-header-resize-duration) var(--jp-header-resize-easing), transform .8s ease, filter .3s ease;
        max-width: 240px;
    }

    .jp-header__nav {
        width: 100% !important;
        min-width: 0 !important;
    }

    .jp-header__nav .elementor-nav-menu--main {
        width: 100%;
    }

    /* Only the top-level list is a horizontal row. Elementor owns submenus. */
    .jp-header__nav .elementor-nav-menu--main > .elementor-nav-menu {
        display: flex;
        flex-wrap: nowrap !important;
        align-items: center;
        justify-content: center;
        width: 100%;
    }

    .jp-header__nav .elementor-nav-menu--main > .elementor-nav-menu > li {
        flex: 0 0 auto;
    }

    .jp-header__nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item {
        padding: 12px clamp(7px, 0.75vw, 14px) !important;
        font-size: clamp(14px, 1vw, 17px) !important;
        line-height: 1 !important;
        letter-spacing: 0 !important;
        white-space: nowrap !important;
    }

    .jp-header__nav .mmg-menu-bigger > a {
        font-size: inherit !important;
    }

    .jp-header__socials,
    .jp-header__cta {
        flex: 0 0 auto;
        width: auto !important;
        white-space: nowrap;
    }

    .jp-header .jp-header__socials {
        padding-inline: var(--jp-header-social-padding) !important;
        transition: padding-block var(--jp-header-resize-duration) var(--jp-header-resize-easing), min-height var(--jp-header-resize-duration) var(--jp-header-resize-easing);
    }

    body .elementor .jp-header .elementor-element.elementor-widget.jp-header__cta .elementor-button {
        padding-inline: var(--jp-header-button-padding) !important;
        transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, padding var(--jp-header-resize-duration) var(--jp-header-resize-easing), min-height var(--jp-header-resize-duration) var(--jp-header-resize-easing) !important;
    }

    .jp-header a:focus-visible {
        outline: 2px solid #fff8ed;
        outline-offset: 3px;
    }

    .jp-mobile-menu {
        display: none !important;
    }
}


/* DESKTOP NAV — shared link/caret states and hover lift */
.jp-header {
    --jp-accent: var(--jp-brand-accent, #FF5A21);
}

@media (min-width: 1025px) {
    .jp-header .jp-header__nav .elementor-nav-menu--main
    > .elementor-nav-menu > li > a.elementor-item {
        color: var(--jp-cream, #fff8ed) !important;
        transition: color 200ms ease;
    }

    /* Elementor adds highlighted/aria-expanded while Speaking is open. */
    .jp-header .jp-header__nav .elementor-nav-menu--main
    > .elementor-nav-menu > li:focus-within > a.elementor-item,
    .jp-header .jp-header__nav .elementor-nav-menu--main
    > .elementor-nav-menu > li > a.elementor-item:is(
        .highlighted, .elementor-item-active, [aria-expanded="true"], :focus-visible
    ) {
        color: var(--jp-accent) !important;
    }

    /* Caret follows the link's animated color instead of its own old fill. */
    .jp-header .jp-header__nav .elementor-nav-menu--main
    > .elementor-nav-menu > li > a.elementor-item .sub-arrow,
    .jp-header .jp-header__nav .elementor-nav-menu--main
    > .elementor-nav-menu > li > a.elementor-item .sub-arrow * {
        color: inherit !important;
        fill: currentColor !important;
        transition: none !important;
    }
    
    .jp-header .jp-header__nav
    .elementor-nav-menu--main .sub-menu
    a.elementor-sub-item:is(:hover, :focus, .highlighted) {
        background-color: var(--jp-accent) !important;
        color: #fff8ed !important;
    }
    
}

@media (min-width: 1025px) and (hover: hover) {
    .jp-header__nav .elementor-nav-menu--main > .elementor-nav-menu > li {
        transform: translateY(0);
        transition: transform 580ms cubic-bezier(0.22, 1, 0.36, 1);
    }

    .jp-header__nav .elementor-nav-menu--main
    > .elementor-nav-menu > li:is(:hover, :focus-within) {
        transform: translateY(-3px);
    }

    .jp-header .jp-header__nav .elementor-nav-menu--main
    > .elementor-nav-menu > li:hover > a.elementor-item {
        color: var(--jp-accent) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .jp-header { --jp-header-resize-duration: 0ms; }
    .jp-header__nav .elementor-nav-menu--main > .elementor-nav-menu > li,
    .jp-header .jp-header__nav .elementor-nav-menu--main
    > .elementor-nav-menu > li > a.elementor-item {
        transition: none !important;
    }
}

/* =========================================================
DESKTOP SOCIAL ICONS — HOVER LIFT
========================================================= */

@media (min-width: 1025px) and (hover: hover) {

	.jp-header__socials .mmg-social-bar__item {
		transform: translateY(0);
		transition: transform 580ms cubic-bezier(0.22, 1, 0.36, 1);
	}

	.jp-header__socials .mmg-social-bar__item:hover,
	.jp-header__socials .mmg-social-bar__item:focus-within {
		transform: translateY(-3px);
	}

}

@media (prefers-reduced-motion: reduce) {
    .jp-header { --jp-header-resize-duration: 0ms; }

	.jp-header__socials .mmg-social-bar__item {
		transition: none;
	}

}

/* COMPACT HEADER — shared tablet/phone menu, up to 1024 CSS pixels.
   Elementor retains toggle/submenu behavior and sticky positioning. */
@media (max-width: 1024px) {
    .jp-header {
        --jp-menu-ink: #fff8ed;
        --jp-menu-accent: var(--jp-brand-accent);
        --jp-menu-top: 0px;
    }

    body.admin-bar .jp-header {
        --jp-menu-top: 32px;
    }

    .jp-header > .e-con-inner {
        display: flex !important;
        align-items: center;
        justify-content: space-between !important;
        gap: 20px;
        width: 90vw !important;
        padding: 18px 0 !important;
    }

    .jp-header__logo {
        width: 190px !important;
        max-width: 190px;
    }

    .jp-header__nav,
    .jp-header__socials,
    .jp-header__cta,
    .jp-mobile-menu__logo,
    .jp-mobile-menu__social,
    .jp-mobile-menu__cta {
        display: none !important;
    }

    .jp-header .jp-mobile-menu,
    .jp-header .jp-mobile-menu__nav {
        display: block !important;
        position: relative;
        width: 44px !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: 0 0 auto;
        margin: 0 !important;
        padding: 0 !important;
    }

    .jp-mobile-menu__nav .elementor-menu-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 44px !important;
        height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0;
        color: var(--jp-menu-ink) !important;
        background: transparent !important;
    }

    .jp-mobile-menu__nav .elementor-menu-toggle svg {
        width: 24px !important;
        height: 24px !important;
        fill: currentColor !important;
    }

    .jp-header .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) {
        position: fixed !important;
        inset: var(--jp-menu-top) 0 0 !important;
        z-index: 99999;
        display: grid !important;
        grid-template-rows: 110px minmax(0, 1fr) auto auto;
        gap: 16px;
        width: 100% !important;
        height: calc(100dvh - var(--jp-menu-top)) !important;
        padding: 0 5% max(24px, env(safe-area-inset-bottom)) !important;
        overflow: hidden;
        background: #0c1011;
    }

    .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) .jp-mobile-menu__logo {
        display: block !important;
        position: absolute;
        top: 24px;
        left: 5%;
        width: 175px !important;
        z-index: 4;
    }

    .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) .jp-mobile-menu__nav {
        position: static !important;
        grid-row: 2;
        width: 100% !important;
        min-height: 0;
        overflow: auto;
        /* Widget hover filters/transforms create a containing block that would
           move the absolute close control into this scrolling region. */
        transform: none !important;
        filter: none !important;
        transition: none !important;
        overscroll-behavior: contain;
    }

    .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) .elementor-menu-toggle {
        position: absolute !important;
        top: 24px;
        right: 5%;
        z-index: 5;
    }

    .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) nav.elementor-nav-menu--dropdown {
        position: static !important;
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 8px 12px 16px !important;
        background: transparent !important;
    }

    .jp-mobile-menu nav.elementor-nav-menu--dropdown > ul.elementor-nav-menu {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: clamp(8px, 1.5dvh, 18px);
        margin: 0 !important;
        padding: 0 !important;
    }

    .jp-mobile-menu nav.elementor-nav-menu--dropdown > ul > li {
        width: auto;
        text-align: center;
    }

    .jp-mobile-menu nav.elementor-nav-menu--dropdown > ul > li > a.elementor-item {
        display: flex !important;
        align-items: center;
        justify-content: center;
        gap: 14px;
        min-height: 44px;
        padding: 4px 12px !important;
        color: var(--jp-menu-ink) !important;
        background: transparent !important;
        font-family: "kaneda-gothic", sans-serif !important;
        font-size: clamp(40px, 5vw, 48px) !important;
        font-weight: 700 !important;
        line-height: 1.05 !important;
        letter-spacing: 0 !important;
        text-transform: uppercase;
        text-decoration: none !important;
        transform: none !important;
    }

    .jp-mobile-menu nav.elementor-nav-menu--dropdown ul.sub-menu {
        position: static !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 8px 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    .jp-mobile-menu nav.elementor-nav-menu--dropdown a.elementor-sub-item {
        justify-content: center;
        min-height: 44px;
        padding: 10px 12px !important;
        font: 500 18px/1.3 "source-sans-3", sans-serif !important;
        color: var(--jp-menu-ink) !important;
        background: transparent !important;
        text-decoration: none !important;
    }

    .jp-mobile-menu nav.elementor-nav-menu--dropdown a:hover {
        color: var(--jp-menu-accent) !important;
    }

    .jp-mobile-menu .sub-arrow {
        padding: 0 !important;
    }

    .jp-mobile-menu .sub-arrow svg {
        width: 12px;
        height: 16px;
        fill: currentColor;
    }

    .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) .jp-mobile-menu__social,
    .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) .jp-mobile-menu__cta {
        display: block !important;
        position: static !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: none !important;
        text-align: center;
    }

    .jp-mobile-menu__social { grid-row: 3; }
    .jp-mobile-menu__cta { grid-row: 4; }

    .jp-mobile-menu__social .mmg-social-bar__list {
        display: flex !important;
        justify-content: center !important;
        gap: 12px !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .jp-mobile-menu__social .mmg-social-bar a {
        min-width: 44px;
        min-height: 44px;
    }

    .jp-mobile-menu__cta .elementor-button {
        min-height: 48px;
        padding: 16px 24px !important;
        font: 700 16px/1.2 "source-sans-3", sans-serif !important;
        text-transform: uppercase;
    }

    .jp-mobile-menu a:focus-visible,
    .jp-mobile-menu .elementor-menu-toggle:focus-visible {
        outline: 2px solid var(--jp-menu-ink) !important;
        outline-offset: 3px;
    }

    body:has(.jp-mobile-menu .elementor-menu-toggle[aria-expanded="true"]) {
        overflow: hidden !important;
    }
}

@media (max-width: 782px) {
    body.admin-bar .jp-header {
        --jp-menu-top: 46px;
    }
}

/* PHONE HEADER: compact height and controls; shared menu owns scrolling. */
@media (max-width: 767px) {
    .jp-header.elementor-element {
        min-height: 100px !important;
        margin-bottom: -100px !important;
        padding: 0 !important;
    }

    .jp-header > .e-con-inner {
        min-height: 100px;
        padding: 12px 0 !important;
    }

    .jp-header .jp-header__logo {
        width: 160px !important;
        max-width: 160px !important;
    }

    .jp-header .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) {
        grid-template-rows: 88px minmax(0, 1fr) auto auto;
        gap: 12px;
        padding-bottom: max(16px, env(safe-area-inset-bottom)) !important;
    }

    .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) .jp-mobile-menu__logo {
        top: max(16px, env(safe-area-inset-top));
        width: 145px !important;
        max-width: 145px !important;
    }

    .jp-mobile-menu:has(.elementor-menu-toggle[aria-expanded="true"]) .elementor-menu-toggle {
        top: max(16px, env(safe-area-inset-top));
    }
}/* End custom CSS */