Realizacje Copy

@import url(‘https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap’); /* === RESET & BASE === */ .rl-wrap { font-family: ‘Inter’, -apple-system, BlinkMacSystemFont, sans-serif; max-width: 1280px; margin: 0 auto; padding: 0 24px 60px; -webkit-font-smoothing: antialiased; } .rl-wrap *, .rl-wrap *::before, .rl-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; } /* === HERO SECTION === */ .rl-hero { text-align: center; padding: 50px 20px 40px; position: relative; } .rl-hero::after { content: ”; display: block; width: 60px; height: 3px; background: linear-gradient(90deg, #e87a1e, #f5a623); margin: 0 auto; border-radius: 2px; } .rl-hero__title { font-size: clamp(28px, 4vw, 42px); font-weight: 800; color: #0f2a47; letter-spacing: -0.5px; margin-bottom: 12px; line-height: 1.15; } .rl-hero__subtitle { font-size: clamp(15px, 2vw, 18px); color: #5a6f85; font-weight: 400; max-width: 600px; margin: 0 auto 24px; line-height: 1.6; } /* === STATS BAR === */ .rl-stats { display: flex; justify-content: center; gap: 40px; margin-bottom: 40px; flex-wrap: wrap; } .rl-stat { text-align: center; } .rl-stat__num { font-size: 32px; font-weight: 800; color: #e87a1e; line-height: 1; display: block; } .rl-stat__label { font-size: 13px; color: #8497ab; font-weight: 500; text-transform: uppercase; letter-spacing: 1px; margin-top: 4px; display: block; } /* === FILTER BUTTONS === */ .rl-filters { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 40px; } .rl-filters button { background: #f0f4f8; border: none; color: #3d5a80; padding: 10px 22px; border-radius: 100px; cursor: pointer; font-size: 13px; font-weight: 600; letter-spacing: 0.3px; transition: all 0.3s cubic-bezier(0.4,0,0.2,1); font-family: inherit; position: relative; overflow: hidden; } .rl-filters button::before { content: ”; position: absolute; inset: 0; background: linear-gradient(135deg, #1a3a5c, #2d5f8a); opacity: 0; transition: opacity 0.3s ease; border-radius: inherit; } .rl-filters button span { position: relative; z-index: 1; } .rl-filters button:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(26,58,92,0.15); } .rl-filters button:hover::before { opacity: 1; } .rl-filters button:hover span { color: #fff; } .rl-filters button.active { background: linear-gradient(135deg, #1a3a5c, #2d5f8a); color: #fff; box-shadow: 0 4px 20px rgba(26,58,92,0.25); transform: translateY(-1px); } .rl-filters button.active span { color: #fff; } /* === CARD GRID === */ .rl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; } /* === CARD === */ .rl-card { position: relative; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 20px rgba(0,0,0,0.06); transition: all 0.45s cubic-bezier(0.4,0,0.2,1); cursor: pointer; opacity: 0; animation: rl-fadeUp 0.6s cubic-bezier(0.4,0,0.2,1) forwards; animation-delay: calc(var(–card-index) * 0.07s); } .rl-card:hover { transform: translateY(-10px) scale(1.01); box-shadow: 0 20px 50px rgba(15,42,71,0.12), 0 8px 20px rgba(15,42,71,0.08); } .rl-card__img-wrap { position: relative; width: 100%; height: 300px; overflow: hidden; } .rl-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s cubic-bezier(0.4,0,0.2,1); } .rl-card:hover .rl-card__img-wrap img { transform: scale(1.08); } .rl-card__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,42,71,0) 0%, rgba(15,42,71,0.3) 50%, rgba(15,42,71,0.92) 100%); opacity: 0; transition: opacity 0.45s ease; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; } .rl-card:hover .rl-card__overlay { opacity: 1; } .rl-card__badge { position: absolute; top: 16px; left: 16px; background: rgba(255,255,255,0.15); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: #fff; padding: 6px 14px; border-radius: 100px; font-size: 11px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; border: 1px solid rgba(255,255,255,0.2); opacity: 0; transform: translateY(-8px); transition: all 0.3s ease 0.1s; } .rl-card:hover .rl-card__badge { opacity: 1; transform: translateY(0); } .rl-card__overlay-content { transform: translateY(16px); opacity: 0; transition: all 0.4s ease 0.15s; } .rl-card:hover .rl-card__overlay-content { transform: translateY(0); opacity: 1; } .rl-card__desc { color: rgba(255,255,255,0.85); font-size: 14px; line-height: 1.5; margin-bottom: 12px; } .rl-card__cta { display: inline-flex; align-items: center; gap: 6px; color: #f5a623; font-size: 13px; font-weight: 600; letter-spacing: 0.3px; } .rl-card__cta svg { transition: transform 0.3s ease; } .rl-card:hover .rl-card__cta svg { transform: translateX(4px); } .rl-card__count { position: absolute; top: 16px; right: 16px; background: rgba(15,42,71,0.7); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; padding: 6px 12px; border-radius: 100px; font-size: 12px; font-weight: 600; z-index: 2; display: flex; align-items: center; gap: 5px; border: 1px solid rgba(255,255,255,0.1); } .rl-card__body { padding: 20px 22px; } .rl-card__title { font-size: 17px; font-weight: 700; color: #0f2a47; line-height: 1.3; margin-bottom: 4px; } .rl-card__subtitle { font-size: 13px; color: #8497ab; font-weight: 500; } /* Hidden state for filtering */ .rl-card–hidden { display: none; } /* === ANIMATIONS === */ @keyframes rl-fadeUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } /* === LIGHTBOX === */ .rl-lb { display: none; position: fixed; inset: 0; background: rgba(8,20,34,0.95); z-index: 99999; justify-content: center; align-items: center; flex-direction: column; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } .rl-lb.active { display: flex; animation: rl-lbIn 0.3s ease; } @keyframes rl-lbIn { from { opacity: 0; } to { opacity: 1; } } .rl-lb__wrap { position: relative; max-width: 92%; max-height: 92vh; display: flex; flex-direction: column; align-items: center; } .rl-lb__wrap img { max-width: 100%; max-height: 78vh; object-fit: contain; border-radius: 12px; box-shadow: 0 25px 60px rgba(0,0,0,0.4); animation: rl-imgIn 0.35s ease; } @keyframes rl-imgIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } .rl-lb__close { position: fixed; top: 20px; right: 24px; color: rgba(255,255,255,0.7); font-size: 32px; cursor: pointer; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 100000; transition: all 0.3s ease; line-height: 1; } .rl-lb__close:hover { color: #fff; background: rgba(255,255,255,0.12); transform: rotate(90deg); } .rl-lb__nav { position: fixed; top: 50%; transform: translateY(-50%); color: rgba(255,255,255,0.7); font-size: 28px; cursor: pointer; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; z-index: 100000; } .rl-lb__nav:hover { background: rgba(255,255,255,0.15); color: #fff; } .rl-lb__nav–prev { left: 20px; } .rl-lb__nav–next { right: 20px; } .rl-lb__info { text-align: center; margin-top: 16px; } .rl-lb__title { color: #fff; font-size: 18px; font-weight: 600; } .rl-lb__counter { color: rgba(255,255,255,0.5); font-size: 13px; margin-top: 6px; font-weight: 500; } /* === RESPONSIVE === */ @media (max-width: 1024px) { .rl-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } .rl-card__img-wrap { height: 260px; } .rl-stats { gap: 28px; } } @media (max-width: 640px) { .rl-wrap { padding: 0 16px 40px; } .rl-hero { padding: 30px 10px 30px; } .rl-grid { grid-template-columns: 1fr; gap: 16px; } .rl-card__img-wrap { height: 240px; } .rl-filters { gap: 6px; } .rl-filters button { padding: 8px 16px; font-size: 12px; } .rl-stats { gap: 20px; } .rl-stat__num { font-size: 26px; } .rl-lb__nav { width: 42px; height: 42px; font-size: 22px; } .rl-lb__close { width: 40px; height: 40px; font-size: 26px; } }

Nasze Realizacje

Specjalizujemy się w projektowaniu i wykonawstwie systemów HVAC dla najbardziej wymagających branż przemysłowych.

9 Projektów
5 Branż
32 Zdjęć
15+ Lat doświadczenia
Cleanroom ISO 7 — Kontrola parametrów powietrza
Clean Room

Kompleksowy system wentylacji i klimatyzacji pomieszczenia czystego klasy ISO 7.

Zobacz galerię
7

Cleanroom ISO 7

Kontrola parametrów powietrza

Clean Room #2 — Produkcja precyzyjna
Clean Room

Pomieszczenie czyste zaprojektowane z myślą o procesach wymagających najwyższej czystości.

Zobacz galerię
3

Clean Room #2

Produkcja precyzyjna

Strefa Utwardzania — Kontrola temperatury i wilgotności
HVAC Przemysłowy

System precyzyjnej regulacji parametrów powietrza w strefie utwardzania.

Zobacz galerię
2

Strefa Utwardzania

Kontrola temperatury i wilgotności

HAGS — Linia Powder Coat — System wentylacji linii lakierniczej
HVAC Przemysłowy

Wydajny system wentylacji i odprowadzania oparów dla linii lakierowania proszkowego.

Zobacz galerię
2

HAGS — Linia Powder Coat

System wentylacji linii lakierniczej

Hartowanie Szkła — Wentylacja strefy hartowania
Przemysł Szklarski

Dedykowany system wentylacji i chłodzenia dla procesu hartowania szkła.

Zobacz galerię
3

Hartowanie Szkła

Wentylacja strefy hartowania

HOBAS — Hala Produkcyjna — Klimatyzacja hali produkcyjnej
HVAC Przemysłowy

System klimatyzacji i wentylacji dla wielkopowierzchniowej hali produkcyjnej HOBAS.

Zobacz galerię
2

HOBAS — Hala Produkcyjna

Klimatyzacja hali produkcyjnej

Maszyna do Zespalania Szyb — Kontrola środowiska maszyny
Przemysł Szklarski

Precyzyjny system kontroli środowiska dla maszyny do laminowania szkła.

Zobacz galerię
3

Maszyna do Zespalania Szyb

Kontrola środowiska maszyny

Pomieszczenie Produkcji Szyb — Klimatyzacja produkcji
Przemysł Szklarski

Kompleksowy system klimatyzacji pomieszczenia produkcyjnego w branży szklanej.

Zobacz galerię
4

Pomieszczenie Produkcji Szyb

Klimatyzacja produkcji

RCKIK — Centrum Krwiodawstwa — System HVAC sektora medycznego
Sektor Medyczny

Zaawansowany system HVAC dla Regionalnego Centrum Krwiodawstwa i Krwiolecznictwa.

Zobacz galerię
6

RCKIK — Centrum Krwiodawstwa

System HVAC sektora medycznego

document.addEventListener(‘DOMContentLoaded’, function() { // === FILTERS === var filterBtns = document.querySelectorAll(‘.rl-filters button’); var cards = document.querySelectorAll(‘.rl-card’); filterBtns.forEach(function(btn) { btn.addEventListener(‘click’, function() { filterBtns.forEach(function(b) { b.classList.remove(‘active’); }); this.classList.add(‘active’); var filter = this.getAttribute(‘data-filter’); var visibleIdx = 0; cards.forEach(function(card) { if (filter === ‘all’ || card.getAttribute(‘data-category’) === filter) { card.classList.remove(‘rl-card–hidden’); card.style.animation = ‘none’; card.offsetHeight; // trigger reflow card.style.animation = ‘rl-fadeUp 0.5s cubic-bezier(0.4,0,0.2,1) forwards’; card.style.animationDelay = (visibleIdx * 0.06) + ‘s’; visibleIdx++; } else { card.classList.add(‘rl-card–hidden’); } }); }); }); // === LIGHTBOX === var lb = document.getElementById(‘rl-lightbox’); if (!lb) return; var lbImg = lb.querySelector(‘.rl-lb__img’); var lbTitle = lb.querySelector(‘.rl-lb__title’); var lbCounter = lb.querySelector(‘.rl-lb__counter’); var currentImages = []; var currentIdx = 0; var currentTitle = ”; cards.forEach(function(card) { card.addEventListener(‘click’, function() { try { var imgsStr = this.getAttribute(‘data-images’); var imgs = JSON.parse(imgsStr.replace(/"/g, ‘”‘)); var titleEl = this.querySelector(‘.rl-card__title’); currentTitle = titleEl ? titleEl.textContent : ”; if (imgs.length === 0) return; currentImages = imgs; currentIdx = 0; showImage(); lb.classList.add(‘active’); document.body.style.overflow = ‘hidden’; } catch(e) { console.error(e); } }); }); function showImage() { lbImg.style.animation = ‘none’; lbImg.offsetHeight; lbImg.style.animation = ‘rl-imgIn 0.35s ease’; lbImg.src = currentImages[currentIdx]; lbImg.alt = currentTitle; if (lbTitle) lbTitle.textContent = currentTitle; if (lbCounter) lbCounter.textContent = (currentIdx + 1) + ‘ / ‘ + currentImages.length; } function closeLightbox() { lb.classList.remove(‘active’); document.body.style.overflow = ”; } lb.querySelector(‘.rl-lb__close’).addEventListener(‘click’, closeLightbox); lb.addEventListener(‘click’, function(e) { if (e.target === lb) closeLightbox(); }); lb.querySelector(‘.rl-lb__nav–prev’).addEventListener(‘click’, function(e) { e.stopPropagation(); currentIdx = (currentIdx – 1 + currentImages.length) % currentImages.length; showImage(); }); lb.querySelector(‘.rl-lb__nav–next’).addEventListener(‘click’, function(e) { e.stopPropagation(); currentIdx = (currentIdx + 1) % currentImages.length; showImage(); }); document.addEventListener(‘keydown’, function(e) { if (!lb.classList.contains(‘active’)) return; if (e.key === ‘Escape’) closeLightbox(); if (e.key === ‘ArrowLeft’) { currentIdx = (currentIdx – 1 + currentImages.length) % currentImages.length; showImage(); } if (e.key === ‘ArrowRight’) { currentIdx = (currentIdx + 1) % currentImages.length; showImage(); } }); // === TOUCH SWIPE for lightbox === var touchStartX = 0; lb.addEventListener(‘touchstart’, function(e) { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); lb.addEventListener(‘touchend’, function(e) { var diff = e.changedTouches[0].screenX – touchStartX; if (Math.abs(diff) > 50) { if (diff > 0) { currentIdx = (currentIdx – 1 + currentImages.length) % currentImages.length; } else { currentIdx = (currentIdx + 1) % currentImages.length; } showImage(); } }, { passive: true }); });