/* ================================================================
   VPSMAKERS HEADER - Elementor + VPSMakers Mega Menu
   Replace the whole header-02.css with this file (UTF-8).
   Tree:
   header.elementor-location-header            <- the sticky element
     .vm-header
        .vm-top > .vm-top-in > (.vm-live-chat + .vm-top-links)
        .vm-main > (.vm-logo + .vm-nav + .vm-actions)
   ================================================================ */

/* 00 - STICKY ----------------------------------------------------
   html/body with overflow-x:hidden become a scroll container and kill
   sticky; `clip` clips the same way without creating one.
   The sticky element is the <header> wrapper (direct child of body). */
html,
body {
    overflow-x: clip !important;
    overflow-y: visible !important;
}

header.elementor-location-header {
/*     position: relative !important; */
    top: 0 !important;
    z-index: 9999 !important;
}
body.admin-bar header.elementor-location-header { top: 0px !important; }
@media (max-width: 782px) { body.admin-bar header.elementor-location-header { top: 46px !important; } }
@media (max-width: 600px) { body.admin-bar header.elementor-location-header { top: 0 !important; } }

/* extra top-level container inside <header> must not add empty height */
header.elementor-location-header > .e-con:not(.vm-header) {
    --padding-top: 0px !important;
    --padding-bottom: 0px !important;
    --padding-left: 0px !important;
    --padding-right: 0px !important;
    min-height: 0 !important;
    padding: 0 !important;
}
header.elementor-location-header > .e-con:not(.vm-header) > .e-con-inner {
    padding: 0 !important;
    min-height: 0 !important;
}

/* 01 - HEADER SURFACE -------------------------------------------- */
.vm-header {
    position: relative !important;
    isolation: isolate;

    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;

    background: rgba(5, 7, 25, .97) !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .10) !important;
    color: #fff !important;
    font-family: 'Roboto', Arial, sans-serif !important;
    box-sizing: border-box !important;
    transition: background-color .25s ease, box-shadow .25s ease;
}

.vm-header.vm-scrolled {
    background: rgba(4, 5, 20, .985) !important;
    box-shadow: 0 12px 40px -16px rgba(0, 0, 0, .75) !important;
}

/* blur lives on a pseudo-element: backdrop-filter on .vm-header itself would
   become the containing block of the position:fixed mega panels / search modal */
.vm-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    backdrop-filter: blur(18px) saturate(150%);
}

.vm-header, .vm-header *, .vm-header *::before, .vm-header *::after {
    box-sizing: border-box;
}

/* 02 - ELEMENTOR CONTAINER NORMALIZATION -------------------------
   Kill Elementor's default 10px padding / 20px gap variables and the
   1140px boxed content width. */
.vm-header,
.vm-header .e-con {
    --padding-top: 0px !important;
    --padding-right: 0px !important;
    --padding-bottom: 0px !important;
    --padding-left: 0px !important;
    --gap: 0px !important;
    --row-gap: 0px !important;
    --column-gap: 0px !important;
}

.vm-header > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    gap: 0 !important;
}

.vm-header .vm-top,
.vm-header .vm-top-in,
.vm-header .vm-main,
.vm-header .vm-logo,
.vm-header .vm-nav,
.vm-header .vm-actions,
.vm-header .vm-live-chat,
.vm-header .vm-top-links {
    min-width: 0 !important;
    margin: 0 !important;
    box-shadow: none;
}

/* 03 - TOP BAR ---------------------------------------------------- */
.vm-header .vm-top {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
    background: transparent !important;
}

/* side padding 14px + item padding 10px = 24px -> text lines up with the
   logo on the left and the Sign Up button on the right */
.vm-header .vm-top-in {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: 1240px !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 3px 14px !important;
    margin: 0 auto !important;
    gap: 18px !important;
    background: transparent !important;
}

/* Live Chat group + top links: shared pill look */
.vm-header .vm-live-chat,
.vm-header .vm-top-link {
    padding: 4px 10px !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: #c7cbe6 !important;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.vm-header .vm-live-chat:hover,
.vm-header .vm-top-link:hover {
/*     background: rgba(95, 109, 255, .16) !important; */
    color: #fff !important;
    transform: translateY(-1px);
}

.vm-header .vm-live-chat {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex: 0 1 auto !important;
    width: auto !important;
    max-width: max-content !important;
    gap: 7px !important;
    margin-right: auto !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
}

.vm-header .vm-top-link {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    max-width: max-content !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    white-space: nowrap !important;
}

.vm-header .vm-top-links {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: max-content !important;
    gap: 10px !important;
    padding: 0 !important;
    margin-left: auto !important;
    background: transparent !important;
    color: #c7cbe6 !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
}

/* .vm-top-links is a boxed container: the real flex row is its inner div */
.vm-header .vm-top-links > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    gap: inherit !important;
}

.vm-header .vm-live-chat > .elementor-widget,
.vm-header .vm-top-links .elementor-widget {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: max-content !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font: inherit !important;
}

.vm-header .vm-live-chat .elementor-widget-container,
.vm-header .vm-top-links .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
}

/* text was typed as <pre>/<p>: strip theme monospace / padding / colour */
.vm-header .vm-live-chat p,
.vm-header .vm-top-link p,
.vm-header .vm-top-link pre {
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: inherit !important;
    font: inherit !important;
    white-space: nowrap !important;
    overflow: visible !important;
}

.vm-header .vm-live-chat a,
.vm-header .vm-top-link a {
    color: inherit !important;
    text-decoration: none !important;
    font: inherit !important;
    white-space: nowrap !important;
}

/* green dot */
.vm-header .vm-live {
    display: block !important;
    flex: 0 0 7px !important;
    width: 7px !important;
    height: 7px !important;
    min-width: 7px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #3ce0a0 !important;
    box-shadow: 0 0 8px rgba(60, 224, 160, .9) !important;
    animation: vm-header-pulse 2s infinite;
}
/* fallback when the Live Chat group has no .vm-live element */
.vm-header .vm-live-chat:not(:has(.vm-live))::before {
    content: "" !important;
    width: 0.5em !important;
    height: 0.5em !important;
    flex: 0 0 0.5em !important;
	margin-top: 7px !important;
    margin-right: 5px !important;
    background: var(--Light-Blue) !important;
    border-radius: 50% !important;
    box-shadow: 0 0 0 3px rgba(95, 109, 255, .16), 0 0 14px rgba(95, 109, 255, .45) !important;
    display: inline-block !important;
    animation: vm-header-pulse 2s infinite;
}
@keyframes vm-header-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(60, 224, 160, .5); }
    50% { box-shadow: 0 0 0 5px rgba(60, 224, 160, 0); }
}

/* 04 - MAIN ROW: logo | menu | actions ---------------------------- */
.vm-header .vm-main {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: 1240px !important;
    min-height: 78px !important;
    padding: 12px 24px !important;
    margin: 0 auto !important;
    gap: 22px !important;
    background: transparent !important;
}

/* 05 - LOGO (real Elementor image widget + text) -----------------
   One variable drives the size: --vm-logo-h (image height).
   The text widget is forced to the same height and centred with flex,
   so it always sits exactly in the middle of the image.
   If the wordmark still looks 1-2px high/low (font metrics or empty
   space inside the logo file), nudge --vm-logo-text-shift. */
.vm-header .vm-logo {
    --vm-logo-h: 52px;
    --vm-logo-text-size: 22px;
    --vm-logo-text-shift: 3px;

    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: max-content !important;
    min-height: 0 !important;
    gap: 11px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    color: #fff !important;
}

/* image widget: same height as the image, no inline-baseline gap */
.vm-header .vm-logo > .elementor-widget-image,
.vm-header .vm-logo > .vm-logo-image {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: max-content !important;
    min-width: 0 !important;
    height: var(--vm-logo-h) !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.vm-header .vm-logo .elementor-widget-image .elementor-widget-container,
.vm-header .vm-logo .elementor-widget-image a,
.vm-header .vm-logo .vm-logo-image .elementor-widget-container {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    max-width: max-content !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.vm-header .vm-logo img {
    display: block !important;
    width: auto !important;
    max-width: 190px !important;
    height: var(--vm-logo-h) !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform-origin: center center;
    transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), filter .35s ease;
}

/* hover: tilt + slight grow, with a soft glow */
.vm-header .vm-logo:hover img {
    transform: rotate(-10deg) scale(1.1);
    filter: drop-shadow(0 6px 14px rgba(59, 68, 255, .55));
}

/* text widget: same height as the image, content centred both ways */
.vm-header .vm-logo > .elementor-widget-text-editor,
.vm-header .vm-logo > .elementor-widget-heading {
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: max-content !important;
    min-width: 0 !important;
    height: var(--vm-logo-h) !important;
    margin: 0 !important;
    padding: 0 !important;
}
.vm-header .vm-logo > .elementor-widget-text-editor > .elementor-widget-container,
.vm-header .vm-logo > .elementor-widget-heading > .elementor-widget-container {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.vm-header .vm-logo .elementor-widget-text-editor p,
.vm-header .vm-logo .elementor-heading-title {
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
    font-family: 'Roboto', Arial, sans-serif !important;
    font-size: var(--vm-logo-text-size) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: -.02em !important;
    white-space: nowrap !important;
    transform: translateY(var(--vm-logo-text-shift));
}

/* 06 - NAV: container only, the Mega Menu plugin styles its own items */
.vm-header .vm-nav {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
.vm-header .vm-nav > .elementor-widget,
.vm-header .vm-nav > .e-con {
    display: block !important;
    flex: 0 1 auto !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}
.vm-header .vm-nav > .elementor-widget > .elementor-widget-container {
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 07 - ACTIONS: Login / Sign Up / burger (Elementor button widgets) */
.vm-header .vm-actions {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: max-content !important;
    min-width: 0 !important;
    min-height: 0 !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

/* reset the widget's OUTER box; the real button is styled below */
.vm-header .vm-actions > .elementor-widget-button,
.vm-header .vm-actions > .vm-btn,
.vm-header .vm-actions > .vm-burger {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: max-content !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
.vm-header .vm-actions .elementor-widget-button .elementor-widget-container {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

.vm-header .vm-actions .vm-btn > .elementor-button,
.vm-header .vm-actions .vm-btn > .elementor-widget-container > .elementor-button,
.vm-header .vm-actions a.vm-btn {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: auto !important;
    max-width: max-content !important;
    min-width: 0 !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    border-radius: 11px !important;
    font-family: 'Roboto', Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    transition: background-color .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.vm-header .vm-actions .vm-btn .elementor-button-text {
    color: inherit !important;
    font: inherit !important;
    white-space: nowrap !important;
}

.vm-header .vm-actions .vm-login > .elementor-button,
.vm-header .vm-actions .vm-login > .elementor-widget-container > .elementor-button,
.vm-header .vm-actions a.vm-login {
    color: #fff !important;
    background: rgba(255, 255, 255, .03) !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;
    box-shadow: none !important;
}
.vm-header .vm-actions .vm-login .elementor-button:hover,
.vm-header .vm-actions a.vm-login:hover {
    color: #fff !important;
    border-color: rgba(95, 109, 255, .7) !important;
    background: rgba(95, 109, 255, .14) !important;
}

.vm-header .vm-actions .vm-signup > .elementor-button,
.vm-header .vm-actions .vm-signup > .elementor-widget-container > .elementor-button,
.vm-header .vm-actions a.vm-signup {
    color: #fff !important;
    background: linear-gradient(120deg, #3b44ff, #5f6dff) !important;
    border: 1px solid transparent !important;
    box-shadow: 0 10px 26px -8px rgba(59, 68, 255, .75) !important;
}
.vm-header .vm-actions .vm-signup .elementor-button:hover,
.vm-header .vm-actions a.vm-signup:hover {
    color: #fff !important;
    background: linear-gradient(120deg, #4b55ff, #707bff) !important;
    box-shadow: 0 12px 28px -8px rgba(95, 109, 255, .85) !important;
}
.vm-header .vm-actions .vm-signup .elementor-button-content-wrapper {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: auto !important;
}
.vm-header .vm-actions .vm-signup .elementor-button-icon {
    display: inline-flex !important;
    margin: 0 !important;
}
.vm-header .vm-actions .vm-signup svg {
    width: 16px !important;
    height: 16px !important;
    color: #fff !important;
    fill: currentColor;
}

/* 08 - BURGER (hidden on desktop, shown in the responsive block) */
.vm-header .vm-actions > .vm-burger { display: none !important; }
.vm-header .vm-burger > .elementor-button,
.vm-header .vm-burger > .elementor-widget-container > .elementor-button,
.vm-header button.vm-burger,
.vm-header a.vm-burger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: rgba(255, 255, 255, .04) !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    border-radius: 11px !important;
}
.vm-header .vm-burger svg {
    width: 21px !important;
    height: 21px !important;
    color: #fff !important;
    fill: currentColor;
}

/* 09 - RESPONSIVE ------------------------------------------------- */
@media (max-width: 1100px) {
    .vm-header .vm-main {
        gap: 16px !important;
    }

    .vm-header .vm-actions > .vm-login {
        display: none !important;
    }

    /* Keep the existing Elementor burger in the actions row. */
    .vm-header .vm-actions > .vm-burger {
        display: inline-flex !important;
    }

    /*
     * The real Mega Menu must remain mounted so its fixed mobile panel can open,
     * but it must not participate in the header flex layout on tablet/mobile.
     */
    .vm-header .vm-nav {
        display: block !important;
        position: absolute !important;
        width: 0 !important;
        height: 0 !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: 0 0 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }
}

@media (max-width: 560px) {
    /* side padding 8px + item padding 8px = 16px = .vm-main side padding */
    .vm-header .vm-top-in { padding: 3px 8px !important; gap: 10px !important; }
    .vm-header .vm-live-chat,
    .vm-header .vm-top-links,
    .vm-header .vm-top-link { font-size: 11px !important; }
    .vm-header .vm-live-chat,
    .vm-header .vm-top-link { padding: 4px 8px !important; }
    .vm-header .vm-top-links { gap: 2px !important; }

    .vm-header .vm-main { min-height: 62px !important; padding: 10px 16px !important; gap: 10px !important; }
    .vm-header .vm-logo { --vm-logo-h: 40px; --vm-logo-text-size: 18px; gap: 8px !important; }
    .vm-header .vm-logo img { max-width: 125px !important; }

    .vm-header .vm-actions { gap: 7px !important; }
    .vm-header .vm-actions .vm-signup > .elementor-button,
    .vm-header .vm-actions .vm-signup > .elementor-widget-container > .elementor-button,
    .vm-header .vm-actions a.vm-signup { height: 38px !important; min-height: 38px !important; padding: 0 11px !important; font-size: 12px !important; }
    .vm-header .vm-actions .vm-signup .elementor-button-icon { display: none !important; }
    .vm-header .vm-burger > .elementor-button,
    .vm-header .vm-burger > .elementor-widget-container > .elementor-button,
    .vm-header button.vm-burger,
    .vm-header a.vm-burger { width: 38px !important; height: 38px !important; min-width: 38px !important; min-height: 38px !important; }
}

@media (max-width: 400px) {
    .vm-header .vm-live-chat,
    .vm-header .vm-top-links,
    .vm-header .vm-top-link { font-size: 10px !important; }
    .vm-header .vm-main { gap: 7px !important; }
    .vm-header .vm-logo { --vm-logo-text-size: 16px; }
    .vm-header .vm-actions { gap: 5px !important; }
}

@media (max-width: 360px) {
    .vm-header .vm-main { gap: 5px !important; }
    .vm-header .vm-logo { --vm-logo-h: 34px; --vm-logo-text-size: 15px; gap: 6px !important; }
    .vm-header .vm-logo img { max-width: 44px !important; }
    .vm-header .vm-actions .vm-signup > .elementor-button,
    .vm-header .vm-actions .vm-signup > .elementor-widget-container > .elementor-button,
    .vm-header .vm-actions a.vm-signup { padding: 0 8px !important; }
}

@media (prefers-reduced-motion: reduce) {
    .vm-header,
    .vm-header .vm-live,
    .vm-header .vm-live-chat,
    .vm-header .vm-top-link,
    .vm-header a,
    .vm-header button { animation: none !important; transition: none !important; }
    .vm-header .vm-live-chat:hover,
    .vm-header .vm-top-link:hover { transform: none; }
    .vm-header .vm-logo img { transition: none !important; }
    .vm-header .vm-logo:hover img { transform: none; }
}
