/* UNIFIED NAVBAR STYLES - Najwyższa specyficzność dla wszystkich stron */

/* Navbar główny - desktop i mobile */
nav.navbar {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 0 !important;
    background: #ffffff !important;
    box-shadow: 0 2px 20px rgba(0,0,0,0.2) !important;
    height: clamp(60px, 8vw, 80px) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 99998 !important; /* ZWIĘKSZONY Z-INDEX - navbar poniżej menu mobilnego (99999) */
    backdrop-filter: blur(10px) !important;
    border-bottom: 1px solid #e2e8f0 !important;
    width: 100% !important;
    max-width: 100vw !important; /* ZAPOBIEGA WYJŚCIU POZA EKRAN */
    box-sizing: border-box !important;
    margin: 0 !important;
    left: 0 !important;
    right: 0 !important;
}

/* Navbar container - responsywny */
.navbar-container {
    width: 100% !important;
    max-width: min(1320px, 100%) !important;
    margin: 0 auto !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 0 clamp(1rem, 4vw, 2rem) !important;
    height: clamp(60px, 8vw, 80px) !important;
    flex-wrap: nowrap !important;
    position: relative !important;
    overflow: visible !important;
    box-sizing: border-box !important; /* ZAPOBIEGA PRZEKRACZANIU VIEWPORT */
}

/* Mobile - navbar container nie może ograniczać menu */
@media (max-width: 48em) {
    .navbar-container {
        overflow: visible !important;
        position: relative !important;
        /* KRYTYCZNE: Nie może tworzyć nowego stacking context */
        isolation: auto !important;
        contain: none !important;
        transform: none !important;
        will-change: auto !important;
    }
    
    nav.navbar {
        overflow: visible !important;
        isolation: auto !important;
        contain: none !important;
    }
    
    /* Menu musi być pozycjonowane względem viewport, nie kontenera */
    .navbar-container .navbar-menu,
    nav.navbar .navbar-menu,
    .navbar-menu {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        /* Wymusza pozycjonowanie względem viewport */
        margin-left: 0 !important;
        margin-right: 0 !important;
        transform: translateY(-100%) translateZ(0) !important;
    }
}

/* Navbar logo */
.navbar-logo {
    display: flex !important;
    align-items: center !important;
    margin-right: 30px !important;
    margin-left: 0 !important;
    padding: 10px 0 !important;
    flex: 0 0 auto !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Navbar logo img - responsywny */
.navbar-logo img {
    max-height: clamp(36px, 6vw, 48px) !important;
    width: auto !important;
    height: auto !important;
    display: block !important;
    background: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Navbar menu - desktop */
.navbar-menu {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-wrap: nowrap !important;
    position: relative !important;
    visibility: visible !important;
}

/* Navbar menu links - responsywne */
.navbar-menu a {
    text-decoration: none !important;
    color: #0B1A17 !important;
    font-family: 'Montserrat', Arial, sans-serif !important;
    font-weight: 600 !important;
    font-size: clamp(0.75rem, 1.5vw, 0.875rem) !important;
    padding: clamp(0.375rem, 1vw, 0.5rem) clamp(0.75rem, 2vw, 1rem) !important;
    border-radius: 0.375rem !important;
    transition: all 0.3s ease !important;
    background: none !important;
    border: none !important;
    white-space: nowrap !important;
    min-width: fit-content !important;
}

/* Navbar menu hover */
.navbar-menu a:hover {
    color: #064F3D !important;
    background: rgba(6, 79, 61, 0.1) !important;
}

/* Navbar menu active */
.navbar-menu a.active {
    color: #064F3D !important;
    background: rgba(6, 79, 61, 0.15) !important;
    font-weight: 700 !important;
}

/* Navbar consult button */
.navbar-menu a.consult-btn {
    color: #ffffff !important;
    background: linear-gradient(135deg, #064F3D 0%, #0B1A17 100%) !important;
    border-radius: 6px !important;
    padding: 8px 16px !important;
    font-family: 'Montserrat', Arial, sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    box-shadow: 0 2px 8px rgba(6, 79, 61, 0.3) !important;
    white-space: nowrap !important;
    min-width: fit-content !important;
}

.navbar-menu a.consult-btn:hover {
    color: #ffffff !important;
    background: linear-gradient(135deg, #0B1A17 0%, #064F3D 100%) !important;
    box-shadow: 0 4px 15px rgba(6, 79, 61, 0.4) !important;
    transform: translateY(-1px) !important;
}

/* Mobile menu button */
.mobile-menu-btn {
    display: none !important;
    background: none !important;
    border: none !important;
    color: #0B1A17 !important;
    font-size: 1.5rem !important;
    cursor: pointer !important;
    padding: 8px !important;
    border-radius: 4px !important;
    transition: all 0.3s ease !important;
    position: relative !important;
    z-index: 1002 !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
}

.mobile-menu-btn:hover {
    background: rgba(6, 79, 61, 0.1) !important;
    color: #064F3D !important;
}

.mobile-menu-btn:active {
    background: rgba(6, 79, 61, 0.15) !important;
    transform: scale(0.95) !important;
}

/* ===== RESPONSIVE BREAKPOINTS - Ustandaryzowane ===== */

/* Very small phones (320px - 479px) */
@media (max-width: 29.9375em) { /* 479px */
    .navbar-container {
        padding: 0 clamp(0.75rem, 3vw, 1rem) !important;
    }
    
    .navbar-logo {
        margin-right: clamp(0.5rem, 2vw, 1rem) !important;
    }
    
    .navbar-logo img {
        max-height: clamp(36px, 8vw, 42px) !important;
    }
    
    .mobile-menu-btn {
        font-size: clamp(1.25rem, 5vw, 1.5rem) !important;
        padding: clamp(0.5rem, 2vw, 0.75rem) !important;
    }
}

/* Small phones (480px - 767px) */
@media (min-width: 30em) and (max-width: 47.9375em) { /* 480px - 767px */
    .navbar-container {
        padding: 0 clamp(1rem, 3vw, 1.25rem) !important;
    }
    
    .navbar-logo img {
        max-height: clamp(40px, 7vw, 48px) !important;
    }
}

/* Mobile styles (do 768px) */
@media (max-width: 48em) { /* 768px */
    /* Show mobile menu button */
    .mobile-menu-btn {
        display: block !important;
        z-index: 100000 !important; /* ZWIĘKSZONY Z-INDEX - przycisk musi być klikalny */
        position: relative !important;
    }
    
    /* Hide desktop menu on mobile */
    .navbar-menu {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        width: 100vw !important; /* PEŁNA SZEROKOŚĆ EKRANU */
        max-width: 100vw !important;
        position: fixed !important;
        top: clamp(60px, 8vw, 80px) !important; /* ZACZYNA SIĘ TUŻ POD NAVBAR */
        left: 0 !important;
        right: 0 !important;
        margin: 0 !important;
        background: #ffffff !important;
        background-color: #ffffff !important; /* Dodatkowe zabezpieczenie - w pełni nieprzezroczyste tło */
        padding: clamp(1.5rem, 6vw, 2rem) clamp(1rem, 4vw, 1.5rem) !important;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
        z-index: 99999 !important; /* ZWIĘKSZONY Z-INDEX - menu musi być nad WSZYSTKIM */
        border-radius: 0 !important;
        transform: translateY(-100%) translateZ(0) !important; /* translateZ(0) wymusza nowy stacking context */
        opacity: 0 !important;
        visibility: hidden !important;
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, visibility 0.3s ease !important;
        pointer-events: none !important;
        gap: clamp(1rem, 4vw, 1.25rem) !important; /* WIĘKSZY ODSTĘP MIĘDZY PRZYCISKAMI */
        max-height: calc(100vh - clamp(60px, 8vw, 80px)) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        border-bottom: 1px solid #e9ecef !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
        backdrop-filter: blur(10px) !important; /* Dodatkowe tło rozmyte dla lepszej widoczności */
        -webkit-backdrop-filter: blur(10px) !important;
        box-sizing: border-box !important;
    }
    
    /* Show mobile menu when active - maksymalna specyficzność */
    nav.navbar .navbar-container .navbar-menu.active,
    nav.navbar .navbar-menu.active,
    .navbar-container .navbar-menu.active,
    .navbar-menu.active {
        transform: translateY(0) translateZ(0) !important; /* translateZ(0) wymusza nowy stacking context */
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        display: flex !important;
        z-index: 99999 !important; /* ZWIĘKSZONY Z-INDEX - menu aktywne musi być nad WSZYSTKIM */
        background: #ffffff !important;
        background-color: #ffffff !important; /* W pełni nieprzezroczyste tło */
        width: 100vw !important; /* PEŁNA SZEROKOŚĆ EKRANU */
        max-width: 100vw !important;
        left: 0 !important;
        right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        /* KRYTYCZNE: Wymusza pozycjonowanie względem viewport */
        position: fixed !important;
        /* Usuń wszystkie transformacje rodziców */
        isolation: isolate !important;
    }
    
    /* Upewnij się że linki są klikalne gdy menu aktywne */
    .navbar-menu.active a {
        pointer-events: auto !important;
        cursor: pointer !important;
        z-index: 100000 !important; /* ZWIĘKSZONY Z-INDEX dla linków */
        position: relative !important;
        user-select: none !important;
        -webkit-user-select: none !important;
        background: #f8f9fa !important; /* Tło dla lepszej widoczności */
    }
    
    /* Overlay tło dla menu - do zamykania - usunięto bo psuło wygląd */
    
    /* Mobile menu links - jednolity, profesjonalny styl */
    .navbar-menu a {
        padding: clamp(1.125rem, 5vw, 1.375rem) clamp(1.25rem, 5vw, 1.75rem) !important;
        text-align: center !important;
        border-radius: clamp(0.625rem, 2vw, 0.75rem) !important;
        background: #f8f9fa !important;
        margin: 0 !important;
        color: #0B1A17 !important;
        text-decoration: none !important;
        transition: all 0.2s ease !important;
        font-family: 'Montserrat', Arial, sans-serif !important;
        font-weight: 600 !important;
        font-size: clamp(1.0625rem, 4.5vw, 1.1875rem) !important;
        border: 1px solid #e9ecef !important;
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        white-space: nowrap !important;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
        min-height: clamp(52px, 10vw, 60px) !important;
        line-height: 1.5 !important;
        pointer-events: auto !important;
        cursor: pointer !important;
        box-sizing: border-box !important;
        position: relative !important;
        z-index: 10001 !important;
        -webkit-tap-highlight-color: rgba(6, 79, 61, 0.15) !important;
        touch-action: manipulation !important;
        -webkit-touch-callout: none !important;
        user-select: none !important;
        -webkit-user-select: none !important;
    }
    
    /* Mobile menu hover - subtelny efekt */
    .navbar-menu a:hover {
        background: #ffffff !important;
        border-color: #064F3D !important;
        transform: translateY(-2px) !important;
        box-shadow: 0 4px 12px rgba(6, 79, 61, 0.2) !important;
        color: #064F3D !important;
        z-index: 1 !important;
        position: relative !important;
    }
    
    /* Mobile menu active link - wyróżnienie aktywnej strony */
    .navbar-menu a.active {
        background: #064F3D !important;
        color: #ffffff !important;
        font-weight: 700 !important;
        border-color: #064F3D !important;
        box-shadow: 0 2px 6px rgba(6, 79, 61, 0.25) !important;
    }
    
    .navbar-menu a.active:hover {
        background: #0B1A17 !important;
        border-color: #0B1A17 !important;
        color: #ffffff !important;
    }
    
    /* Mobile consult button - przycisk CTA - wyróżniony */
    .navbar-menu a.consult-btn {
        background: linear-gradient(135deg, #064F3D 0%, #0B1A17 100%) !important;
        color: #ffffff !important;
        margin-top: clamp(0.5rem, 2vw, 0.75rem) !important;
        border: 1px solid transparent !important;
        box-shadow: 0 4px 12px rgba(6, 79, 61, 0.3) !important;
        font-weight: 700 !important;
        padding: clamp(1.125rem, 4vw, 1.25rem) clamp(1.5rem, 5vw, 2rem) !important;
        min-height: clamp(52px, 10vw, 60px) !important;
        font-size: clamp(1.0625rem, 4vw, 1.1875rem) !important;
    }
    
    .navbar-menu a.consult-btn:hover {
        background: linear-gradient(135deg, #0B1A17 0%, #064F3D 100%) !important;
        color: #ffffff !important;
        transform: translateY(-2px) !important;
        box-shadow: 0 6px 18px rgba(6, 79, 61, 0.4) !important;
    }
    
    .navbar-menu a.consult-btn:active {
        transform: translateY(0) !important;
        box-shadow: 0 2px 8px rgba(6, 79, 61, 0.3) !important;
    }
}

/* Tablet styles (769px - 1024px) */
@media (min-width: 48.0625em) and (max-width: 64em) { /* 769px - 1024px */
    .navbar-menu {
        gap: clamp(0.875rem, 2vw, 1rem) !important;
    }
    
    .navbar-menu a {
        font-size: clamp(0.8125rem, 1.8vw, 0.875rem) !important;
        padding: clamp(0.375rem, 1vw, 0.5rem) clamp(0.625rem, 1.5vw, 0.875rem) !important;
    }
}

/* Laptops and larger (1025px+) */
@media (min-width: 64.0625em) { /* 1025px+ */
    .navbar-menu {
        gap: clamp(1rem, 2vw, 1.25rem) !important;
    }
}

/* Large screens (1440px+) */
@media (min-width: 90em) { /* 1440px+ */
    .navbar-container {
        max-width: 1320px !important;
    }
}

/* 4K / Ultrawide (1920px+) */
@media (min-width: 120em) { /* 1920px+ */
    .navbar-container {
        max-width: min(1600px, 100%) !important;
        padding: 0 clamp(2rem, 5vw, 4rem) !important;
    }
}
