• Męskie szorty taktyczne Brandit Urban Legend w kolorze Olive - model w terenie leśnym prezentujący funkcjonalne kieszenie cargo z zatrzaskami, ściągacze w nogawkach i wytrzymałą konstrukcję z bawełny. Idealne do outdoor, survial i urban exploration.Męskie szorty taktyczne Brandit Urban Legend w kolorze Olive

    Szorty Brandit Urban Legend

    Zakres cen: od 99,00 zł do 199,00 zł

    MISSION BRIEFING – BRANDIT URBAN LEGEND SHORTS TACTICAL FEATURES: 100% bawełna w warstwie zewnętrznej – maksymalna wytrzymałość i oddychalność. Podszewka pasa i kieszeni z mieszanki poliester/bawełna dla dodatkowej trwałości. 6 funkcjonalnych kieszeni – 2 cargo zapinane na zatrzaski + 4 standardowe. Ściągacze w nogawkach i pasie umożliwiające regulację szerokości. Przednie kieszenie naszyte pod kątem dla…

    Wybierz opcjeWczytywanie Gotowe Ten produkt ma wiele wariantów. Opcje można wybrać na stronie produktu
  • Spodnie Brandit Tactical Rip-Stop w akcji - wytrzymały splot RIP-STOP i funkcjonalne kieszenie cargo dla outdoor enthusiast

    Spodnie Brandit Tactical Rip-Stop

    259,00 

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW SPODNI

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ SPODNIE

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć spodnie - instrukcja

    📏 INSTRUKCJA MIERZENIA SPODNI
    A – OBWÓD W PASIE:
    • Połóż spodnie płasko na powierzchni
    • Zmierz szerokość pasa i pomnóż przez 2
    E – DŁUGOŚĆ NOGAWKI OD KROKU:
    • Mierz od szwu krokowego do końca nogawki
    F – DŁUGOŚĆ CAŁKOWITA:
    • Od góry pasa do końca nogawki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR OBWÓD
    W PASIE
    (CM)
    DŁUGOŚĆ
    NOGAWKI
    OD KROKU
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    (CM)
    S 79 78 108
    M 84 78 108,5
    L 89 81 112
    XL 94 81 112,5
    XXL 100 84 116
    3XL 106 84 117
    4XL 111 84 117,5
    5XL 116 84 118
    6XL 121 84 118,5




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoomSpodnie = 1; let isDraggingSpodnie = false; let startXSpodnie, startYSpodnie, scrollLeftSpodnie, scrollTopSpodnie;

    function handlePantsImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('pants-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoomSpodnie(imageSrc) { const modal = document.getElementById('image-function openImageZoomSpodnie(imageSrc) { const modal = document.getElementById('image-zoom-modal-spodnie'); const zoomedImg = document.getElementById('zoomed-image-spodnie'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoomSpodnie = 1; zoomedImg.style.transform = `scale(${currentZoomSpodnie})`; const container = document.getElementById('zoom-container-spodnie'); container.addEventListener('mousedown', startDraggingSpodnie); container.addEventListener('mousemove', dragSpodnie); container.addEventListener('mouseup', stopDraggingSpodnie); container.addEventListener('mouseleave', stopDraggingSpodnie); container.addEventListener('wheel', handleWheelSpodnie); } function closeImageZoomSpodnie() { const modal = document.getElementById('image-zoom-modal-spodnie'); modal.style.display = 'none'; const container = document.getElementById('zoom-container-spodnie'); container.removeEventListener('mousedown', startDraggingSpodnie); container.removeEventListener('mousemove', dragSpodnie); container.removeEventListener('mouseup', stopDraggingSpodnie); container.removeEventListener('mouseleave', stopDraggingSpodnie); container.removeEventListener('wheel', handleWheelSpodnie); } function zoomInSpodnie() { currentZoomSpodnie = Math.min(currentZoomSpodnie + 0.5, 5); document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; } function zoomOutSpodnie() { currentZoomSpodnie = Math.max(currentZoomSpodnie - 0.5, 0.5); document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; } function resetZoomSpodnie() { currentZoomSpodnie = 1; document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; document.getElementById('zoom-container-spodnie').scrollLeft = 0; document.getElementById('zoom-container-spodnie').scrollTop = 0; } function handleWheelSpodnie(e) { e.preventDefault(); if (e.deltaY < 0) { zoomInSpodnie(); } else { zoomOutSpodnie(); } } function startDraggingSpodnie(e) { isDraggingSpodnie = true; const container = document.getElementById('zoom-container-spodnie'); startXSpodnie = e.pageX - container.offsetLeft; startYSpodnie = e.pageY - container.offsetTop; scrollLeftSpodnie = container.scrollLeft; scrollTopSpodnie = container.scrollTop; e.preventDefault(); } function dragSpodnie(e) { if (!isDraggingSpodnie) return; e.preventDefault(); const container = document.getElementById('zoom-container-spodnie'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startXSpodnie) * 2; const walkY = (y - startYSpodnie) * 2; container.scrollLeft = scrollLeftSpodnie - walkX; container.scrollTop = scrollTopSpodnie - walkY; } function stopDraggingSpodnie() { isDraggingSpodnie = false; }

    Wybierz opcjeWczytywanie Gotowe Ten produkt ma wiele wariantów. Opcje można wybrać na stronie produktu
  • Spodnie Brandit Adven Slim Fit

    Spodnie Brandit Adven Slim Fit

    189,00 

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW SPODNI

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ SPODNIE

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć spodnie - instrukcja

    📏 INSTRUKCJA MIERZENIA SPODNI
    A – OBWÓD W PASIE:
    • Połóż spodnie płasko na powierzchni
    • Zmierz szerokość pasa i pomnóż przez 2
    E – DŁUGOŚĆ NOGAWKI OD KROKU:
    • Mierz od szwu krokowego do końca nogawki
    F – DŁUGOŚĆ CAŁKOWITA:
    • Od góry pasa do końca nogawki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR OBWÓD
    W PASIE
    (CM)
    DŁUGOŚĆ
    NOGAWKI
    OD KROKU
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    (CM)
    S 79 78 108
    M 84 78 108,5
    L 89 81 112
    XL 94 81 112,5
    XXL 100 84 116
    3XL 106 84 117
    4XL 111 84 117,5
    5XL 116 84 118
    6XL 121 84 118,5




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoomSpodnie = 1; let isDraggingSpodnie = false; let startXSpodnie, startYSpodnie, scrollLeftSpodnie, scrollTopSpodnie;

    function handlePantsImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('pants-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoomSpodnie(imageSrc) { const modal = document.getElementById('image-function openImageZoomSpodnie(imageSrc) { const modal = document.getElementById('image-zoom-modal-spodnie'); const zoomedImg = document.getElementById('zoomed-image-spodnie'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoomSpodnie = 1; zoomedImg.style.transform = `scale(${currentZoomSpodnie})`; const container = document.getElementById('zoom-container-spodnie'); container.addEventListener('mousedown', startDraggingSpodnie); container.addEventListener('mousemove', dragSpodnie); container.addEventListener('mouseup', stopDraggingSpodnie); container.addEventListener('mouseleave', stopDraggingSpodnie); container.addEventListener('wheel', handleWheelSpodnie); } function closeImageZoomSpodnie() { const modal = document.getElementById('image-zoom-modal-spodnie'); modal.style.display = 'none'; const container = document.getElementById('zoom-container-spodnie'); container.removeEventListener('mousedown', startDraggingSpodnie); container.removeEventListener('mousemove', dragSpodnie); container.removeEventListener('mouseup', stopDraggingSpodnie); container.removeEventListener('mouseleave', stopDraggingSpodnie); container.removeEventListener('wheel', handleWheelSpodnie); } function zoomInSpodnie() { currentZoomSpodnie = Math.min(currentZoomSpodnie + 0.5, 5); document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; } function zoomOutSpodnie() { currentZoomSpodnie = Math.max(currentZoomSpodnie - 0.5, 0.5); document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; } function resetZoomSpodnie() { currentZoomSpodnie = 1; document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; document.getElementById('zoom-container-spodnie').scrollLeft = 0; document.getElementById('zoom-container-spodnie').scrollTop = 0; } function handleWheelSpodnie(e) { e.preventDefault(); if (e.deltaY < 0) { zoomInSpodnie(); } else { zoomOutSpodnie(); } } function startDraggingSpodnie(e) { isDraggingSpodnie = true; const container = document.getElementById('zoom-container-spodnie'); startXSpodnie = e.pageX - container.offsetLeft; startYSpodnie = e.pageY - container.offsetTop; scrollLeftSpodnie = container.scrollLeft; scrollTopSpodnie = container.scrollTop; e.preventDefault(); } function dragSpodnie(e) { if (!isDraggingSpodnie) return; e.preventDefault(); const container = document.getElementById('zoom-container-spodnie'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startXSpodnie) * 2; const walkY = (y - startYSpodnie) * 2; container.scrollLeft = scrollLeftSpodnie - walkX; container.scrollTop = scrollTopSpodnie - walkY; } function stopDraggingSpodnie() { isDraggingSpodnie = false; }

    Wybierz opcjeWczytywanie Gotowe Ten produkt ma wiele wariantów. Opcje można wybrać na stronie produktu
  • Spodnie Brandit M65 Vintage

    Spodnie Brandit M65 Vintage

    Zakres cen: od 199,00 zł do 219,00 zł

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW SPODNI

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ SPODNIE

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć spodnie - instrukcja

    📏 INSTRUKCJA MIERZENIA SPODNI
    A – OBWÓD W PASIE:
    • Połóż spodnie płasko na powierzchni
    • Zmierz szerokość pasa i pomnóż przez 2
    E – DŁUGOŚĆ NOGAWKI OD KROKU:
    • Mierz od szwu krokowego do końca nogawki
    F – DŁUGOŚĆ CAŁKOWITA:
    • Od góry pasa do końca nogawki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR OBWÓD
    W PASIE
    (CM)
    DŁUGOŚĆ
    NOGAWKI
    OD KROKU
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    (CM)
    S 79 78 108
    M 84 78 108,5
    L 89 81 112
    XL 94 81 112,5
    XXL 100 84 116
    3XL 106 84 117
    4XL 111 84 117,5
    5XL 116 84 118
    6XL 121 84 118,5




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoomSpodnie = 1; let isDraggingSpodnie = false; let startXSpodnie, startYSpodnie, scrollLeftSpodnie, scrollTopSpodnie;

    function handlePantsImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('pants-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoomSpodnie(imageSrc) { const modal = document.getElementById('image-function openImageZoomSpodnie(imageSrc) { const modal = document.getElementById('image-zoom-modal-spodnie'); const zoomedImg = document.getElementById('zoomed-image-spodnie'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/11/rozmiar-spodni.webp', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoomSpodnie = 1; zoomedImg.style.transform = `scale(${currentZoomSpodnie})`; const container = document.getElementById('zoom-container-spodnie'); container.addEventListener('mousedown', startDraggingSpodnie); container.addEventListener('mousemove', dragSpodnie); container.addEventListener('mouseup', stopDraggingSpodnie); container.addEventListener('mouseleave', stopDraggingSpodnie); container.addEventListener('wheel', handleWheelSpodnie); } function closeImageZoomSpodnie() { const modal = document.getElementById('image-zoom-modal-spodnie'); modal.style.display = 'none'; const container = document.getElementById('zoom-container-spodnie'); container.removeEventListener('mousedown', startDraggingSpodnie); container.removeEventListener('mousemove', dragSpodnie); container.removeEventListener('mouseup', stopDraggingSpodnie); container.removeEventListener('mouseleave', stopDraggingSpodnie); container.removeEventListener('wheel', handleWheelSpodnie); } function zoomInSpodnie() { currentZoomSpodnie = Math.min(currentZoomSpodnie + 0.5, 5); document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; } function zoomOutSpodnie() { currentZoomSpodnie = Math.max(currentZoomSpodnie - 0.5, 0.5); document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; } function resetZoomSpodnie() { currentZoomSpodnie = 1; document.getElementById('zoomed-image-spodnie').style.transform = `scale(${currentZoomSpodnie})`; document.getElementById('zoom-container-spodnie').scrollLeft = 0; document.getElementById('zoom-container-spodnie').scrollTop = 0; } function handleWheelSpodnie(e) { e.preventDefault(); if (e.deltaY < 0) { zoomInSpodnie(); } else { zoomOutSpodnie(); } } function startDraggingSpodnie(e) { isDraggingSpodnie = true; const container = document.getElementById('zoom-container-spodnie'); startXSpodnie = e.pageX - container.offsetLeft; startYSpodnie = e.pageY - container.offsetTop; scrollLeftSpodnie = container.scrollLeft; scrollTopSpodnie = container.scrollTop; e.preventDefault(); } function dragSpodnie(e) { if (!isDraggingSpodnie) return; e.preventDefault(); const container = document.getElementById('zoom-container-spodnie'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startXSpodnie) * 2; const walkY = (y - startYSpodnie) * 2; container.scrollLeft = scrollLeftSpodnie - walkX; container.scrollTop = scrollTopSpodnie - walkY; } function stopDraggingSpodnie() { isDraggingSpodnie = false; }

    Wybierz opcjeWczytywanie Gotowe Ten produkt ma wiele wariantów. Opcje można wybrać na stronie produktu
  • Kurtka Brandit Lumberjacket Hooded

    Kurtka Brandit Lumberjacket Hooded

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

  • Kurtka damska Brandit M65

    Kurtka damska Brandit M65

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE */ @media (max-width: 768px) { .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    .military-table { position: relative !important; display: table !important; }

    .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK DAMSKICH

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI
    🔍 Kliknij na zdjęcie aby powiększyć
    Jak mierzyć kurtki - instrukcja
    📏 INSTRUKCJA MIERZENIA KURTEK
    SZEROKOŚĆ NA WYSOKOŚCI KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    DŁUGOŚĆ RĘKAWA OD BARKU:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ NA
    WYSOKOŚCI
    KLATKI PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    OD BARKU
    (CM)
    XS 48 78 61
    S 51 79,5 61,5
    M 54 81 62
    L 57 82,5 62,5
    XL 60 84 63
    XXL 63 85,5 63,5
    3XL 67 87 64
    4XL 70 88,5 64,5
    5XL 73 90 65




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć
    Powiększona instrukcja


    let currentZoomDamskie = 1;
    let isDraggingDamskie = false;
    let startXDamskie, startYDamskie, scrollLeftDamskie, scrollTopDamskie;

    function handleJacketImageErrorDamskie(img) {
    const alternatives = [
    'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg',
    'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png'
    ];
    let currentIndex = 0;
    function tryNextFormat() {
    if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; document.getElementById('jacket-text-fallback-damskie').style.display = 'block'; } } tryNextFormat(); } function openImageZoomDamskie(imageSrc) { const modal = document.getElementById('image-zoom-modal-damskie'); const zoomedImg = document.getElementById('zoomed-image-damskie'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; modal.style.display = 'block'; currentZoomDamskie = 1; zoomedImg.style.transform = `scale(${currentZoomDamskie})`; const container = document.getElementById('zoom-container-damskie'); container.addEventListener('mousedown', startDraggingDamskie); container.addEventListener('mous

  • Kurtka damska Brandit Teddyfleece Jacket

    Kurtka damska Brandit Teddyfleece Jacket

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE */ @media (max-width: 768px) { .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    .military-table { position: relative !important; display: table !important; }

    .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK DAMSKICH

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI
    🔍 Kliknij na zdjęcie aby powiększyć
    Jak mierzyć kurtki - instrukcja
    📏 INSTRUKCJA MIERZENIA KURTEK
    SZEROKOŚĆ NA WYSOKOŚCI KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    DŁUGOŚĆ RĘKAWA OD BARKU:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ NA
    WYSOKOŚCI
    KLATKI PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    OD BARKU
    (CM)
    XS 48 78 61
    S 51 79,5 61,5
    M 54 81 62
    L 57 82,5 62,5
    XL 60 84 63
    XXL 63 85,5 63,5
    3XL 67 87 64
    4XL 70 88,5 64,5
    5XL 73 90 65




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć
    Powiększona instrukcja


    let currentZoomDamskie = 1;
    let isDraggingDamskie = false;
    let startXDamskie, startYDamskie, scrollLeftDamskie, scrollTopDamskie;

    function handleJacketImageErrorDamskie(img) {
    const alternatives = [
    'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg',
    'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png'
    ];
    let currentIndex = 0;
    function tryNextFormat() {
    if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; document.getElementById('jacket-text-fallback-damskie').style.display = 'block'; } } tryNextFormat(); } function openImageZoomDamskie(imageSrc) { const modal = document.getElementById('image-zoom-modal-damskie'); const zoomedImg = document.getElementById('zoomed-image-damskie'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; modal.style.display = 'block'; currentZoomDamskie = 1; zoomedImg.style.transform = `scale(${currentZoomDamskie})`; const container = document.getElementById('zoom-container-damskie'); container.addEventListener('mousedown', startDraggingDamskie); container.addEventListener('mous

  • Kurtka Brandit Lord Canterbury Hooded

    Kurtka Brandit Lord Canterbury Hooded

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

  • Kurtka damska Brandit Marsh Lake Parka

    Kurtka damska Brandit Marsh Lake Parka

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE */ @media (max-width: 768px) { .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    .military-table { position: relative !important; display: table !important; }

    .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK DAMSKICH

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI
    🔍 Kliknij na zdjęcie aby powiększyć
    Jak mierzyć kurtki - instrukcja
    📏 INSTRUKCJA MIERZENIA KURTEK
    SZEROKOŚĆ NA WYSOKOŚCI KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    DŁUGOŚĆ RĘKAWA OD BARKU:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ NA
    WYSOKOŚCI
    KLATKI PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    OD BARKU
    (CM)
    XS 48 78 61
    S 51 79,5 61,5
    M 54 81 62
    L 57 82,5 62,5
    XL 60 84 63
    XXL 63 85,5 63,5
    3XL 67 87 64
    4XL 70 88,5 64,5
    5XL 73 90 65




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć
    Powiększona instrukcja


    let currentZoomDamskie = 1;
    let isDraggingDamskie = false;
    let startXDamskie, startYDamskie, scrollLeftDamskie, scrollTopDamskie;

    function handleJacketImageErrorDamskie(img) {
    const alternatives = [
    'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg',
    'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png'
    ];
    let currentIndex = 0;
    function tryNextFormat() {
    if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; document.getElementById('jacket-text-fallback-damskie').style.display = 'block'; } } tryNextFormat(); } function openImageZoomDamskie(imageSrc) { const modal = document.getElementById('image-zoom-modal-damskie'); const zoomedImg = document.getElementById('zoomed-image-damskie'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; modal.style.display = 'block'; currentZoomDamskie = 1; zoomedImg.style.transform = `scale(${currentZoomDamskie})`; const container = document.getElementById('zoom-container-damskie'); container.addEventListener('mousedown', startDraggingDamskie); container.addEventListener('mous

  • Kurtka Brandit Teddyfleece Jacket

    Kurtka Brandit Teddyfleece Jacket

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

  • Kurtka Brandit MA2 Fur Collar

    Kurtka Brandit MA2 Fur Collar

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

  • Kurtka Brandit Summer Windbreaker

    Kurtka Brandit Summer Windbreaker

    159,00 

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

    Wybierz opcjeWczytywanie Gotowe Ten produkt ma wiele wariantów. Opcje można wybrać na stronie produktu
  • Kurtka Brandit Bronx

    Kurtka Brandit Bronx

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

  • Kurtka Brandit Windbreaker

    Kurtka Brandit Windbreaker

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

  • Kurtka Brandit MA1

    Kurtka Brandit MA1

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

  • Kurtka Brandit M65 Giant Olive – klasyczna wojskowa kurtkaKurtka Brandit M65 Giant Olive – klasyczna wojskowa kurtka

    Kurtka Brandit M65 Giant – klasyczna wojskowa kurtka

    299,00 

    /* Stylowanie scrollbara w militarnym stylu */ .military-popup-content::-webkit-scrollbar { width: 12px; }

    .military-popup-content::-webkit-scrollbar-track { background: rgba(45, 74, 45, 0.3); border-radius: 10px; }

    .military-popup-content::-webkit-scrollbar-thumb { background: linear-gradient(145deg, #4a6b4a, #3a5a3a); border-radius: 10px; border: 2px solid rgba(74, 107, 74, 0.5); }

    .military-popup-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(145deg, #5a7b5a, #4a6a4a); }

    /* Blokowanie scrollowania strony gdy popup otwarty */ body.military-popup-open { overflow: hidden !important; }

    /* STICKY COLUMN DLA MOBILE - WZMOCNIONE */ @media (max-width: 768px) { /* Kontener tabeli z poziomym scrollem */ .table-wrapper { position: relative !important; overflow-x: auto !important; overflow-y: visible !important; -webkit-overflow-scrolling: touch !important; display: block !important; }

    /* Reset dla tabeli */ .military-table { position: relative !important; display: table !important; }

    /* Sticky pierwsza kolumna - WZMOCNIONE */ .military-table thead th:first-child, .military-table tbody td:first-child { position: -webkit-sticky !important; /* Safari */ position: sticky !important; left: 0px !important; z-index: 100 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; }

    /* Alternatywna metoda dla starszych przeglądarek */ @supports not (position: sticky) { .military-table thead th:first-child, .military-table tbody td:first-child { position: fixed !important; left: 0 !important; background: linear-gradient(145deg, #4a6b4a, #3a5a3a) !important; } }

    /* Dodatkowy cień dla lepszej widoczności */ .military-table tbody td:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; }

    .military-table thead th:first-child { box-shadow: 3px 0 8px rgba(0, 0, 0, 0.6) !important; border-right: 2px solid #2d4a2d !important; }

    /* Zapewnienie minimalnej szerokości dla pozostałych kolumn */ .military-table th:not(:first-child), .military-table td:not(:first-child) { min-width: 100px; }

    /* Wymuszenie szerokości pierwszej kolumny */ .military-table thead th:first-child, .military-table tbody td:first-child { min-width: 80px !important; max-width: 100px !important; } }

    /* Dodatkowe style dla lepszej responsywności */ @media (max-width: 480px) { .military-popup-content { padding: 15px !important; margin: 20px auto !important; }

    .military-table { font-size: 10px !important; }

    .military-table th, .military-table td { padding: 6px !important; } }

    TABELA WYMIARÓW

    ⚠️ Tabela wymiarów

    TABELA WYMIARÓW KURTEK

    ⚠️ Tolerancja dla podanych wymiarów może wynosić +/- 2 cm
    📱 Na urządzeniach mobilnych: przewijaj tabelę w poziomie, kolumna z rozmiarami pozostanie widoczna

    JAK MIERZYĆ KURTKI

    🔍 Kliknij na zdjęcie aby powiększyć

    Jak mierzyć kurtki - instrukcja

    📏 INSTRUKCJA MIERZENIA KURTEK
    A – SZEROKOŚĆ KLATKI PIERSIOWEJ:
    • Połóż kurtkę płasko na powierzchni
    • Zmierz szerokość od pachy do pachy w najszerszym miejscu
    B – DŁUGOŚĆ RĘKAWA:
    • Mierz od szwu ramienia (punkt łączenia z korpusem)
    • Do końca mankietu rękawa
    C – DŁUGOŚĆ CAŁKOWITA:
    • Od najwyższego punktu kołnierza z tyłu
    • Do najniższego punktu kurtki
    ⚠️ TOLERANCJA: +/- 2cm dla wszystkich wymiarów

    ROZMIAR SZEROKOŚĆ
    W KLATCE
    PIERSIOWEJ
    (CM)
    DŁUGOŚĆ
    RĘKAWA
    (CM)
    DŁUGOŚĆ
    CAŁKOWITA
    PLECY
    (CM)
    S 56 68 84
    M 59 69 85
    L 62 70 86
    XL 65 70 87
    XXL 68 71 88
    3XL 71 71 89
    4XL 75 71 91
    5XL 78 71 91
    6XL 83 71 92
    7XL 88 71 93




    Przewijaj kółkiem myszy lub użyj przycisków • Przeciągnij aby przesunąć • Kliknij poza zdjęciem aby zamknąć

    Powiększona instrukcja

    let currentZoom = 1; let isDragging = false; let startX, startY, scrollLeft, scrollTop;

    function handleJacketImageError(img) { console.log('Próbuję alternatywne formaty obrazka...');

    const alternatives = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpeg', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.jpg', 'https://militariapro.pl/wp-content/uploads/2025/09/kurtki-brandit.png' ];

    let currentIndex = 0;

    function tryNextFormat() { if (currentIndex < alternatives.length) { img.onerror = function() { currentIndex++; setTimeout(tryNextFormat, 100); }; img.src = alternatives[currentIndex]; } else { img.style.display = 'none'; img.onclick = null; img.style.cursor = 'default'; document.getElementById('jacket-text-fallback').style.display = 'block'; } } tryNextFormat(); } function openImageZoom(imageSrc) { const modal = document.getElementById('image-zoom-modal'); const zoomedImg = document.getElementById('zoomed-image'); zoomedImg.src = 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.webp'; zoomedImg.onerror = function() { const fallbacks = [ 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.png', 'https://militariapro.pl/wp-content/uploads/2025/09/Kurtki_brandit.jpg', imageSrc ]; let index = 0; function tryNext() { if (index < fallbacks.length) { zoomedImg.src = fallbacks[index]; index++; if (index < fallbacks.length) { zoomedImg.onerror = tryNext; } } } tryNext(); }; modal.style.display = 'block'; currentZoom = 1; zoomedImg.style.transform = `scale(${currentZoom})`; const container = document.getElementById('zoom-container'); container.addEventListener('mousedown', startDragging); container.addEventListener('mousemove', drag); container.addEventListener('mouseup', stopDragging); container.addEventListener('mouseleave', stopDragging); container.addEventListener('wheel', handleWheel); } function closeImageZoom() { const modal = document.getElementById('image-zoom-modal'); modal.style.display = 'none'; const container = document.getElementById('zoom-container'); container.removeEventListener('mousedown', startDragging); container.removeEventListener('mousemove', drag); container.removeEventListener('mouseup', stopDragging); container.removeEventListener('mouseleave', stopDragging); container.removeEventListener('wheel', handleWheel); } function zoomIn() { currentZoom = Math.min(currentZoom + 0.5, 5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function zoomOut() { currentZoom = Math.max(currentZoom - 0.5, 0.5); document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; } function resetZoom() { currentZoom = 1; document.getElementById('zoomed-image').style.transform = `scale(${currentZoom})`; document.getElementById('zoom-container').scrollLeft = 0; document.getElementById('zoom-container').scrollTop = 0; } function handleWheel(e) { e.preventDefault(); if (e.deltaY < 0) { zoomIn(); } else { zoomOut(); } } function startDragging(e) { isDragging = true; const container = document.getElementById('zoom-container'); startX = e.pageX - container.offsetLeft; startY = e.pageY - container.offsetTop; scrollLeft = container.scrollLeft; scrollTop = container.scrollTop; e.preventDefault(); } function drag(e) { if (!isDragging) return; e.preventDefault(); const container = document.getElementById('zoom-container'); const x = e.pageX - container.offsetLeft; const y = e.pageY - container.offsetTop; const walkX = (x - startX) * 2; const walkY = (y - startY) * 2; container.scrollLeft = scrollLeft - walkX; container.scrollTop = scrollTop - walkY; } function stopDragging() { isDragging = false; } // ROZWIĄZANIE JAVASCRIPT DLA STICKY COLUMN document.addEventListener('DOMContentLoaded', function() { // Funkcja do klonowania pierwszej kolumny function createStickyColumn() { const wrapper = document.querySelector('.table-wrapper'); const table = document.querySelector('.military-table'); if (!wrapper || !table) return; // Sprawdź czy jesteśmy na mobile if (window.innerWidth { const clonedRow = document.createElement('tr'); const firstCell = row.querySelector('td:first-child'); if (firstCell) { const clonedCell = firstCell.cloneNode(true); clonedCell.style.cssText = firstCell.style.cssText + ` box-shadow: 3px 0 8px rgba(0, 0, 0, 0.4) !important; border-right: 2px solid #2d4a2d !important; `; clonedRow.appendChild(clonedCell); } clonedTbody.appendChild(clonedRow); }); clonedTable.appendChild(clonedTbody); }

    // Dodaj sklonowaną tabelę do wrappera wrapper.style.position = 'relative'; wrapper.appendChild(clonedTable);

    // Synchronizuj wysokości wierszy setTimeout(() => { const originalRows = table.querySelectorAll('tr'); const clonedRows = clonedTable.querySelectorAll('tr');

    originalRows.forEach((row, index) => { if (clonedRows[index]) { const originalHeight = row.offsetHeight; clonedRows[index].style.height = originalHeight + 'px'; } }); }, 100);

    // Ukryj oryginalną pierwszą kolumnę podczas scrollowania wrapper.addEventListener('scroll', function() { if (wrapper.scrollLeft > 0) { table.style.marginLeft = '0px'; clonedTable.style.display = 'table'; } else { clonedTable.style.display = 'table'; } }); } }

    // Uruchom funkcję createStickyColumn();

    // Uruchom ponownie przy zmianie rozmiaru okna let resizeTimer; window.addEventListener('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(createStickyColumn, 250); });

    // Dodatkowa obsługa dla urządzeń dotykowych const tableWrapper = document.querySelector('.table-wrapper'); if (tableWrapper) { let touchStartX = 0;

    tableWrapper.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].clientX; }, { passive: true });

    tableWrapper.addEventListener('touchmove', function(e) { if (!touchStartX) return;

    const touchEndX = e.touches[0].clientX; const diff = touchStartX - touchEndX;

    // Przewijanie tylko w poziomie if (Math.abs(diff) > 5) { e.stopPropagation(); } }, { passive: true }); } });

    Wybierz opcjeWczytywanie Gotowe Ten produkt ma wiele wariantów. Opcje można wybrać na stronie produktu