/* =============================================================
   KNG Header Builder — Front-end styles
   Criador: Kng
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700;800&display=swap');

/* ── Reset ───────────────────────────────────────────────────── */
.kng-header *, .kng-header *::before, .kng-header *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* Reset de cor/estilo de links herdados do tema */
.kng-header a,
.kng-header a:visited,
.kng-header a:hover,
.kng-header a:focus,
.kng-cta-dropdown a,
.kng-cta-dropdown a:visited {
    color: inherit;
    text-decoration: none;
    outline: none;
}

/* Reset de listas herdadas do tema */
.kng-header ul,
.kng-header li {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* ── Wrapper ─────────────────────────────────────────────────── */
.kng-header {
    width: 100%;
    background: #fff;
    z-index: 1000;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}
.kng-header.kng-sticky {
    position: sticky;
    top: 0;
}

.kng-header-inner {
    max-width: var(--kng-max-width, 1280px);
    margin: 0 auto;
    padding: 16px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

/* ── Logo pill ───────────────────────────────────────────────── */
.kng-logo-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--kng-logo-bg, #F1F2F5);
    border-radius: 9999px;
    padding: 12px 24px;
    text-decoration: none;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
    transition: opacity .2s;
    flex-shrink: 0;
}
.kng-logo-pill:hover { opacity: .88; }

.kng-logo-grid {
    display: grid;
    grid-template-columns: repeat(3, 6px);
    gap: 2px;
}
.kng-logo-dot {
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: var(--kng-logo-dot, #0F172A);
}
.kng-logo-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 900;
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--kng-logo-dot, #0F172A);
    white-space: nowrap;
}
.kng-logo-img {
    height: 32px;
    width: auto;
    object-fit: contain;
}

/* ── Nav pill ────────────────────────────────────────────────── */
.kng-nav-pill {
    background: var(--kng-nav-bg, #F1F2F5);
    border-radius: 9999px;
    padding: 6px;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.kng-nav-list {
    list-style: none;
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
}
.kng-nav-item { position: relative; }

.kng-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 600;
    color: var(--kng-nav-item-clr, #475569);
    text-decoration: none;
    white-space: nowrap;
    transition: color .2s, background .2s;
}
.kng-nav-link:hover { color: #0F172A; }

.kng-active .kng-nav-link {
    background: var(--kng-nav-active-bg, #2F60FF);
    color: var(--kng-nav-active-clr, #fff);
}

.kng-active-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    opacity: .8;
    animation: kng-pulse 2s infinite;
    flex-shrink: 0;
}
@keyframes kng-pulse {
    0%, 100% { opacity: .8; }
    50%       { opacity: .3; }
}

/* Sub-menu */
.kng-sub-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 200px;
    background: #fff;
    border: 1px solid #F1F5F9;
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(0,0,0,.10);
    overflow: hidden;
    list-style: none;
    z-index: 200;
}
.kng-has-sub:hover .kng-sub-menu,
.kng-has-sub:focus-within .kng-sub-menu { display: block; }
.kng-sub-menu .kng-nav-link { border-radius: 0; padding: 12px 20px; width: 100%; }
.kng-sub-menu .kng-nav-link:hover { background: #F1F2F5; color: var(--kng-nav-active-bg, #2F60FF); }
.kng-sub-arrow { margin-left: 4px; transition: transform .2s; }
.kng-has-sub:hover .kng-sub-arrow,
.kng-has-sub:focus-within .kng-sub-arrow { transform: rotate(180deg); }

/* ── Socials pill ────────────────────────────────────────────── */
.kng-socials-pill {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--kng-socials-bg, #F1F2F5);
    border-radius: 9999px;
    padding: 12px 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
    flex-shrink: 0;
}
.kng-social-link {
    display: flex;
    align-items: center;
    color: #334155;
    text-decoration: none;
    transition: color .2s;
}
.kng-social-link:hover { color: #0F172A; }

/* ── CTA ─────────────────────────────────────────────────────── */
.kng-cta-wrap { position: relative; flex-shrink: 0; }

.kng-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--kng-cta-bg, #2F60FF);
    color: var(--kng-cta-clr, #fff);
    border: none;
    border-radius: 9999px;
    padding: 14px 24px;
    font-size: 12px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(47,96,255,.25);
    transition: background .2s, box-shadow .2s;
    white-space: nowrap;
}
.kng-cta-btn:hover {
    filter: brightness(.88);
    box-shadow: 0 6px 20px rgba(47,96,255,.35);
}
.kng-cta-btn.kng-open { background: #1E293B !important; }
.kng-chevron { transition: transform .2s; }
.kng-cta-btn[aria-expanded="true"] .kng-chevron { transform: rotate(180deg); }

.kng-cta-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 224px;
    background: #fff;
    border: 1px solid #F1F5F9;
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(0,0,0,.12);
    overflow: hidden;
    z-index: 500;
    /* Reset contra herança de estilos do tema */
    list-style: none;
    margin: 0;
    padding: 0;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}
.kng-cta-dropdown.kng-open { display: block; }

.kng-dropdown-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    font-size: 12px;
    font-weight: 600;
    color: #334155 !important;
    text-decoration: none !important;
    transition: background .15s, color .15s;
    background: #fff;
}
.kng-dropdown-item:hover { background: #F1F2F5; color: var(--kng-nav-active-bg, #2F60FF); }
.kng-ext-icon { color: #CBD5E1; flex-shrink: 0; }
.kng-dropdown-item:hover .kng-ext-icon { color: var(--kng-nav-active-bg, #2F60FF); }

/* ── Hamburger ───────────────────────────────────────────────── */
.kng-hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: #F1F2F5;
    border: none;
    border-radius: 9999px;
    padding: 12px 14px;
    cursor: pointer;
    margin-left: auto;
}
.kng-hamburger span {
    display: block;
    width: 18px;
    height: 2px;
    background: #334155;
    border-radius: 2px;
    transition: transform .3s, opacity .3s;
}
.kng-hamburger.kng-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.kng-hamburger.kng-open span:nth-child(2) { opacity: 0; }
.kng-hamburger.kng-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── Mobile drawer ───────────────────────────────────────────── */
.kng-mobile-drawer {
    display: none;
    flex-direction: column;
    background: #F1F2F5;
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s ease;
}
.kng-mobile-drawer.kng-open { max-height: 600px; }
.kng-mobile-drawer .kng-nav-pill { border-radius: 0; background: transparent; box-shadow: none; padding: 8px 0; }
.kng-mobile-drawer .kng-nav-list { flex-direction: column; align-items: stretch; }
.kng-mobile-drawer .kng-nav-link { border-radius: 8px; margin: 2px 16px; padding: 12px 16px; }
.kng-mobile-drawer .kng-cta-wrap { padding: 12px 16px 16px; }
.kng-mobile-drawer .kng-cta-btn { width: 100%; justify-content: center; }

/* ── Style: Dark ─────────────────────────────────────────────── */
.kng-style-dark { background: #0F172A; }
.kng-style-dark .kng-hamburger span { background: #94A3B8; }
.kng-mobile-dark { background: #1E293B; }
.kng-mobile-dark .kng-nav-link { color: #94A3B8; }

/* ── Style: Transparent ──────────────────────────────────────── */
.kng-style-transparent {
    background: transparent;
    position: fixed !important;
    top: 0; left: 0; right: 0;
    transition: background .3s, backdrop-filter .3s;
}
.kng-style-transparent.kng-scrolled {
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(12px);
    box-shadow: 0 1px 20px rgba(0,0,0,.07);
}
.kng-style-transparent .kng-nav-link { color: #fff; }
.kng-style-transparent.kng-scrolled .kng-nav-link { color: #475569; }

/* ── Style: Centered ─────────────────────────────────────────── */
.kng-style-centered .kng-header-inner { flex-direction: column; gap: 0; padding-bottom: 0; }
.kng-centered-top-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 16px;
}
.kng-centered-nav-row {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 8px 0;
    border-top: 1px solid #F1F5F9;
}

/* ── Nav layout variants ──────────────────────────────────────── */
.kng-layout-inline .kng-nav-list { gap: 8px; }
.kng-layout-inline .kng-nav-link { background: transparent !important; border-radius: 8px; }
.kng-layout-inline .kng-active .kng-nav-link { background: transparent !important; color: var(--kng-nav-active-bg, #2F60FF) !important; }

.kng-layout-underline .kng-nav-pill { background: transparent !important; box-shadow: none; }
.kng-layout-underline .kng-nav-link { border-radius: 0; border-bottom: 2px solid transparent; padding-bottom: 8px; background: transparent !important; }
.kng-layout-underline .kng-active .kng-nav-link { border-bottom-color: var(--kng-nav-active-bg, #2F60FF); color: var(--kng-nav-active-bg, #2F60FF) !important; background: transparent !important; }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 768px) {
    .kng-header-inner { padding: 12px 16px; flex-wrap: nowrap; }
    /* Hide desktop elements */
    .kng-header-inner > .kng-nav-pill,
    .kng-header-inner > .kng-socials-pill { display: none !important; }
    /* Hide desktop CTA — but NOT the one inside the drawer */
    .kng-header-inner > .kng-cta-wrap { display: none !important; }
    /* Show hamburger */
    .kng-hamburger { display: flex !important; }
    /* Show drawer */
    .kng-mobile-drawer { display: flex !important; }
    .kng-centered-nav-row { display: none !important; }

    /* ── Force nav visible inside drawer ── */
    .kng-mobile-drawer .kng-nav-pill {
        display: block !important;
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 8px 12px 4px !important;
        width: 100% !important;
    }
    .kng-mobile-drawer .kng-nav-list {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 2px !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .kng-mobile-drawer .kng-nav-item {
        display: block !important;
        width: 100% !important;
    }
    .kng-mobile-drawer .kng-nav-link {
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        padding: 13px 18px !important;
        border-radius: 14px !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        color: #334155 !important;
        text-decoration: none !important;
        white-space: normal !important;
    }
    .kng-mobile-drawer .kng-nav-link:hover {
        background: rgba(255,255,255,.6) !important;
    }
    .kng-mobile-drawer .kng-active .kng-nav-link {
        color: #fff !important;
    }

    /* ── Socials inside drawer ── */
    .kng-mobile-drawer .kng-socials-pill {
        display: flex !important;
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        border-top: 1px solid rgba(0,0,0,.08) !important;
        padding: 12px 20px !important;
        gap: 20px !important;
    }

    /* ── CTA inside drawer ── */
    .kng-mobile-drawer .kng-cta-wrap {
        display: block !important;
        padding: 12px 16px 16px !important;
        border-top: 1px solid rgba(0,0,0,.08) !important;
    }
    .kng-mobile-drawer .kng-cta-btn {
        width: 100% !important;
        justify-content: center !important;
        padding: 14px 20px !important;
        font-size: 13px !important;
        border-radius: 16px !important;
    }
    /* CTA dropdown in drawer: static, always visible */
    .kng-mobile-drawer .kng-cta-dropdown {
        position: static !important;
        display: block !important;
        width: 100% !important;
        box-shadow: none !important;
        border: 1px solid #E2E8F0 !important;
        border-radius: 16px !important;
        margin-top: 8px !important;
        overflow: hidden !important;
    }
}

/* ── Mobile drawer — layout aprimorado ───────────────────────── */

/* Nav list inside drawer */
.kng-mobile-drawer .kng-nav-pill {
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 8px 12px 4px;
}
.kng-mobile-drawer .kng-nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
}
.kng-mobile-drawer .kng-nav-item { width: 100%; }
.kng-mobile-drawer .kng-nav-link {
    border-radius: 14px !important;
    margin: 0;
    padding: 13px 18px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    width: 100%;
    justify-content: flex-start;
}
.kng-mobile-drawer .kng-active .kng-nav-link {
    border-radius: 14px !important;
}

/* Sub-menu inside drawer: show inline instead of floating */
.kng-mobile-drawer .kng-sub-menu {
    position: static !important;
    display: block !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding-left: 16px;
    overflow: visible !important;
}
.kng-mobile-drawer .kng-sub-menu .kng-nav-link {
    font-size: 13px !important;
    color: #64748B !important;
    padding: 10px 14px !important;
}

/* Socials inside drawer */
.kng-mobile-drawer .kng-socials-pill {
    display: flex !important;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 8px 24px 12px;
    border-top: 1px solid #E2E8F0;
    gap: 20px;
}

/* CTA inside drawer */
.kng-mobile-drawer .kng-cta-wrap {
    padding: 12px 16px 16px;
    border-top: 1px solid #E2E8F0;
}
.kng-mobile-drawer .kng-cta-btn {
    width: 100%;
    justify-content: center;
    padding: 14px 20px !important;
    font-size: 13px !important;
    border-radius: 16px !important;
}
/* CTA dropdown inside drawer: static */
.kng-mobile-drawer .kng-cta-dropdown {
    position: static !important;
    display: block !important;
    width: 100% !important;
    box-shadow: none !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 16px !important;
    margin-top: 8px;
    overflow: hidden;
}
.kng-mobile-drawer .kng-cta-dropdown .kng-dropdown-item {
    padding: 13px 18px;
    font-size: 13px !important;
}

/* Dark mobile drawer */
.kng-mobile-dark {
    background: #1E293B !important;
    border-top-color: #334155 !important;
}
.kng-mobile-dark .kng-nav-link { color: #94A3B8 !important; }
.kng-mobile-dark .kng-active .kng-nav-link { color: #fff !important; }
.kng-mobile-dark .kng-socials-pill { border-top-color: #334155 !important; }
.kng-mobile-dark .kng-cta-wrap    { border-top-color: #334155 !important; }
.kng-mobile-dark .kng-cta-dropdown { background: #0F172A !important; border-color: #334155 !important; }
.kng-mobile-dark .kng-dropdown-item { color: #CBD5E1 !important; }

/* Shrink effect on sticky scroll */
.kng-header.kng-shrink .kng-header-inner {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}
.kng-header.kng-shrink .kng-logo-pill {
    padding: 8px 18px !important;
}
.kng-header.kng-shrink .kng-cta-btn {
    padding: 10px 18px !important;
}

/* ── Elementor editor: desativa sticky/fixed no editor ───────── */
.elementor-editor-active .kng-header.kng-sticky,
.elementor-editor-active .kng-header.kng-transparent {
    position: relative !important;
    background: rgba(200,210,230,0.08) !important;
}

/* ── Fix: Elementor popup inativo deixa overflow:hidden no body ──
   Quando nenhum diálogo/popup do Elementor está aberto,
   garante que o body pode rolar normalmente.
   ────────────────────────────────────────────────────────────── */
body.dialog-body:not(.elementor-popup-modal-mode) {
    overflow: auto !important;
}

/* ── KNG Mobile Drawer (widget independente) ─────────────────── */
.kng-mob-drawer {
    width: 100%;
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s cubic-bezier(.4,0,.2,1), opacity .25s;
    opacity: 0;
    z-index: 999;
}
.kng-mob-drawer.kng-mob-drawer-open {
    max-height: 100vh;
    opacity: 1;
}
.kng-mob-drawer-inner {
    background: #F1F2F5;
    border-radius: 0 0 20px 20px;
    padding: 8px 0 16px;
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
}

/* Nav list */
.kng-mob-nav-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 4px 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}
.kng-mob-nav-list li { width: 100%; }
.kng-mob-nav-list .kng-nav-link {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 13px 18px !important;
    border-radius: 14px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #334155 !important;
    text-decoration: none !important;
    transition: background .15s !important;
    white-space: nowrap !important;
}
.kng-mob-nav-list .kng-nav-link:hover { background: rgba(255,255,255,.6) !important; }
.kng-mob-nav-list .kng-active .kng-nav-link { color: #fff !important; }

/* CTA section */
.kng-mob-cta-wrap {
    padding: 12px 16px 4px;
    border-top: 1px solid rgba(0,0,0,.06);
    margin-top: 4px;
}
.kng-mob-cta-label {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #94A3B8 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    margin: 0 0 8px !important;
    padding: 0 4px !important;
}
.kng-mob-cta-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    padding: 14px 20px !important;
    border-radius: 16px !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: filter .2s !important;
}
.kng-mob-cta-btn:hover { filter: brightness(.88) !important; }

/* Dropdown list */
.kng-mob-dropdown {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.kng-mob-dropdown-item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 13px 18px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #334155 !important;
    text-decoration: none !important;
    background: transparent !important;
    transition: background .15s !important;
}
.kng-mob-dropdown-item:hover { background: rgba(255,255,255,.6) !important; color: #2F60FF !important; }
.kng-mob-dropdown-item svg { opacity: .4; flex-shrink: 0; }
