/* ========================= GALERIA (siatka + lightbox) ========================= */ /* Siatka galerii: 3 kolumny desktop, 2 tablet, 1 mobile */ .gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; justify-items: center; align-items: start; } @media (max-width: 960px) { .gallery { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 600px) { .gallery { grid-template-columns: 1fr; } } /* Karta miniatury */ .shot { aspect-ratio: 16 / 10; width: 100%; max-width: 400px; border-radius: var(--radius); background: #0c0f19; border: 1px solid var(--ring); overflow: hidden; } /* Obraz miniatury */ .shot img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; cursor: pointer; transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease; } .shot img:hover, .shot img:focus-visible { transform: scale(1.04); box-shadow: 0 10px 20px rgba(0,0,0,0.4); outline: none; } /* ========================= LIGHTBOX (czysty, bez białych „kulek”) ========================= */ #lightbox { position: fixed; inset: 0; display: none; justify-content: center; align-items: center; background: rgba(0,0,0,0.92); z-index: 9999; padding: 0; } #lightbox.is-open { display: flex; } body.lightbox-open { overflow: hidden; } #lightbox .lb-image { max-width: min(96vw, 1400px); max-height: 86vh; border-radius: 16px; box-shadow: 0 10px 40px rgba(0,0,0,.6); animation: lb-in .18s ease-out both; } /* Licznik (jeśli używasz) */ #lightbox .lb-counter { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #fff; background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.18); padding: 6px 10px; border-radius: 999px; font-size: 12px; } /* Strzałki i biały X — same znaki, bez obramowania */ #lightbox .lb-prev, #lightbox .lb-next, #lightbox .lb-close { position: absolute; background: none; border: none; color: #fff; font-size: 40px; line-height: 1; cursor: pointer; user-select: none; padding: 0; box-shadow: none; text-shadow: 0 2px 10px rgba(0,0,0,.6); transition: transform 0.2s ease, opacity 0.2s ease; } /* Delikatny hover/focus – bez tła */ #lightbox .lb-prev:hover, #lightbox .lb-next:hover, #lightbox .lb-close:hover, #lightbox .lb-prev:focus-visible, #lightbox .lb-next:focus-visible, #lightbox .lb-close:focus-visible { transform: scale(1.2); opacity: 0.9; outline: none; } /* Pozycje elementów sterujących */ #lightbox .lb-prev { left: 24px; top: 50%; transform: translateY(-50%); } #lightbox .lb-next { right: 24px; top: 50%; transform: translateY(-50%); } /* Biały X w lewym górnym rogu */ #lightbox .lb-close { left: 24px; top: 24px; font-size: 36px; transform: none; } /* Niewidoczna, ale większa „strefa kliku” (łatwiejsze trafienie) */ #lightbox .lb-prev::after, #lightbox .lb-next::after, #lightbox .lb-close::after { content: ""; position: absolute; inset: -12px; } /* Telefony – trochę większe znaki i ciaśniejsze odległości od krawędzi */ @media (max-width: 640px) { #lightbox .lb-prev, #lightbox .lb-next { font-size: 34px; } #lightbox .lb-close { font-size: 38px; } #lightbox .lb-prev { left: 8px; } #lightbox .lb-next { right: 8px; } #lightbox .lb-close { left: 8px; top: 8px; } } /* Animacja wejścia obrazu */ @keyframes lb-in { from { transform: scale(.98); opacity: .6; } to { transform: scale(1); opacity: 1; } }