@font-face {
    font-family: 'TP Manrope';
    src: url('/wp-content/mu-plugins/assets/fonts/Manrope-variable.ttf') format('truetype');
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}

/* Desktop reference layout: primary tabs above the white service row. */
@media (min-width: 1025px) {
    body .elementor-34 {
        padding: 0 32px;
        border-top: 2px solid #d71920;
        background: linear-gradient(#071f46 0 48px, #fff 48px);
        border-bottom: 0;
    }
    body .elementor-34 .elementor-element.elementor-element-3b72541 {
        position: relative;
        padding: 0;
        margin: 0 auto;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        --padding-left: 0px;
        --padding-right: 0px;
        --margin-bottom: 0px;
    }
    body .elementor-34 .elementor-element.elementor-element-3b72541 > .e-con-inner {
        grid-template-columns: clamp(140px, 13vw, 176px) minmax(0, 1fr) 205px;
        grid-template-areas: 'nav nav nav' 'logo services call';
        grid-template-rows: 48px 130px;
        column-gap: 26px;
        row-gap: 0;
        position: static;
    }
    body .elementor-34 .elementor-element.elementor-element-3ac46ef {
        grid-area: logo;
        width: 100%;
        justify-self: start;
        transform: none;
    }
    body .elementor-34 .elementor-element.elementor-element-3e3511b {
        grid-area: nav;
        align-self: stretch;
        justify-content: center;
        position: static;
        border: 0;
    }
    body .elementor-34 .elementor-element.elementor-element-0548bb4 {
        grid-area: call;
        width: 205px;
        justify-self: end;
        transform: none;
    }
    /* Centre the complete visible contact group between navy bar and home hero. */
    body.home .elementx-template-content-header:not(.tp-header-sticky) .elementor-34 .elementor-element.elementor-element-0548bb4 {
        transform: translateY(-7px);
    }
    body .elementor-34 .elementor-element-3344604,
    body .elementor-34 .elementor-element-3344604 > .elementor-widget-container,
    body .elementor-34 .elementor-element-3344604 .elementx-nav-menu-wrap,
    body .elementor-34 .elementor-element-3344604 .elementx-nav-menu,
    body .elementor-34 .elementor-element-3344604 .elementskit-navbar-nav,
    body .elementor-34 .elementor-element-3344604 .elementskit-navbar-nav > li {
        position: static;
    }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementskit-navbar-nav {
        justify-content: flex-start;
        gap: clamp(4px, 1.1vw, 18px);
        height: 48px;
        align-items: flex-end;
    }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li > a {
        min-height: 40px;
        padding: 9px clamp(9px, 1.1vw, 17px) 15px;
        font: 600 13px/1.2 'TP Manrope', sans-serif;
        letter-spacing: .1px;
        color: #fff;
        border-radius: 8px 8px 0 0;
        background: transparent;
        box-shadow: none;
        transition: color .18s ease, background-color .18s ease;
    }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li.current-menu-item > a,
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li.current-menu-ancestor > a,
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li.tp-submenu-open > a,
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li > a:focus-visible,
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li:hover > a {
        color: #071f46;
        background: #fff;
        box-shadow: none;
    }
    body .elementor-34.tp-has-submenu .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li:not(.tp-submenu-open):not(:hover) > a:not(:focus-visible) {
        background: transparent;
        color: #fff;
    }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .menu-item-has-children > a::after { display: none; }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .sub-menu {
        position: absolute;
        top: 48px;
        left: calc(clamp(140px, 13vw, 176px) + 46px);
        right: 231px;
        width: auto;
        min-width: 0;
        height: 130px;
        padding: 0;
        margin: 0;
        gap: clamp(16px, 2.2vw, 36px);
        align-items: center;
        justify-content: flex-start;
        flex-wrap: nowrap;
        list-style: none;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        background: transparent;
    }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .sub-menu::before { display: none; }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .sub-menu > li { flex: 0 1 auto; min-width: 0; }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .sub-menu > li > a {
        padding: 12px 0;
        border-radius: 0;
        font: 600 clamp(13px, calc(.9vw + 3px), 15px)/1.5 'TP Manrope', sans-serif;
        letter-spacing: .6px;
        text-transform: uppercase;
        color: #000;
        background: transparent;
        text-decoration: none;
        box-shadow: none;
        white-space: nowrap;
        transition: color .18s ease, box-shadow .18s ease;
    }
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .sub-menu > li > a:hover,
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .sub-menu > li > a:focus-visible,
    body .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .sub-menu > li.current-menu-item > a {
        color: #000;
        background: transparent;
        text-decoration: none;
        box-shadow: none;
    }
    body .elementor-34.tp-horizontal-ready .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li > .sub-menu { display: none !important; }
    body .elementor-34.tp-horizontal-ready .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li.tp-submenu-open > .sub-menu { display: flex !important; }
    /* Progressive fallback if JavaScript cannot run. */
    body .elementor-34:not(.tp-horizontal-ready) .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li:hover > .sub-menu,
    body .elementor-34:not(.tp-horizontal-ready) .elementor-element.elementor-element-3344604 .elementx-nav-menu .elementskit-navbar-nav > li:focus-within > .sub-menu { display: flex; }
    body .elementor-34 .tp-header-call,
    body .elementor-34 .tp-header-call:hover,
    body .elementor-34 .tp-header-call:focus-visible {
        justify-content: flex-end;
        padding: 0;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        animation: none;
        color: #0b203e;
        gap: 12px;
    }
    body .elementor-34 .tp-header-call svg {
        width: 32px;
        height: 32px;
        flex-basis: 32px;
        padding: 4px;
        color: #0761f6;
        background: transparent;
        border-radius: 0;
        box-shadow: none;
    }
    body .elementor-34 .tp-header-call-copy { position: relative; }
    body .elementor-34 .tp-header-call-label { position: absolute; bottom: calc(100% + 4px); left: 0; white-space: nowrap; font: 700 9px/1.2 'TP Manrope', sans-serif; color: #637182; letter-spacing: 1.5px; animation: tp-lets-talk-pulse 2.4s ease-in-out infinite; }
    @keyframes tp-lets-talk-pulse {
        0%, 100% { color: #637182; text-shadow: 0 0 0 rgba(7,97,246,0); }
        50% { color: #0761f6; text-shadow: 0 0 9px rgba(7,97,246,.2); }
    }
    body .elementor-34 .tp-header-call-number { color: #054bc4; font: 800 17px/1.2 'TP Manrope', sans-serif; }
    body .elementor-34 .tp-phone-prefix { color: #d71920; }
    body .elementor-34 .tp-header-call svg.tp-outline-phone {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
        padding: 0;
        animation: none;
        overflow: visible;
    }
    body .elementor-34 .tp-outline-phone-handset {
        color: #071f46;
        stroke-width: 2.8;
        transform-box: fill-box;
        transform-origin: center;
        animation: tp-outline-phone-ring .7s ease-in-out infinite;
    }
    body .elementor-34 .tp-outline-phone-wave {
        color: #0761f6;
        stroke-width: 2.2;
        transform-box: fill-box;
        transform-origin: bottom left;
        animation: tp-outline-phone-signal 1.2s ease-in-out infinite;
    }
    body .elementor-34 .tp-wave-far { animation-delay: -.3s; }
    body .elementor-34 .tp-outline-phone-light { color: #0761f6; animation: tp-outline-phone-light 1.2s ease-in-out infinite; }
    @keyframes tp-outline-phone-ring {
        0%, 100% { transform: rotate(-5deg); }
        50% { transform: rotate(5deg); }
    }
    @keyframes tp-outline-phone-signal {
        0%, 100% { opacity: .35; transform: scale(.92); }
        50% { opacity: 1; transform: scale(1); }
    }
    @keyframes tp-outline-phone-light {
        0%, 100% { opacity: .4; }
        50% { opacity: 1; }
    }
}
@media (min-width: 1025px) {
    body .elementx-template-content-header.tp-header-sticky .elementor-34 .elementor-element.elementor-element-3b72541 > .e-con-inner {
        grid-template-rows: 48px 110px;
    }
    body .elementx-template-content-header.tp-header-sticky .elementor-34 .elementor-element.elementor-element-3ac46ef,
    body .elementx-template-content-header.tp-header-sticky .elementor-34 .elementor-element.elementor-element-0548bb4 {
        transform: none;
    }
    body .elementx-template-content-header.tp-header-sticky .elementor-34 .elementor-element.elementor-element-3344604 .elementx-nav-menu .sub-menu {
        height: 110px;
    }
}
@media (min-width: 1025px) and (prefers-reduced-motion: reduce) {
    body .elementor-34 .elementor-element-3344604 a { transition: none; }
    body .elementor-34 .tp-outline-phone-handset,
    body .elementor-34 .tp-outline-phone-wave,
    body .elementor-34 .tp-outline-phone-light,
    body .elementor-34 .tp-header-call-label { animation: none; }
}
