Wyświetlanie 17–32 z 32 wynikówPosortowane według najnowszych

  • 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

    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

    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

    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

    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


    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


    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

    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


    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

    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

    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

    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

    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

    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

    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

    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