/* JAPI Custom CSS Edit */
/*  - komunikat pustej kategorii Joomla */
.view-category .alert.alert-info,
.com-content-category-blog .alert.alert-info,
.com-content-category-list .alert.alert-info {
    display: flex;
    align-items: center;
    gap: 14px;

    margin: 35px 0;
    padding: 18px 22px;

    color: #f5f5f5 !important;
    background: linear-gradient(135deg, #151515 0%, #090909 100%) !important;

    border: 1px solid rgba(220, 30, 35, 0.55) !important;
    border-left: 4px solid #dc1e23 !important;
    border-radius: 8px;

    box-shadow:
        0 15px 35px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);

    font-size: 16px;
    line-height: 1.5;
}

/* Ikona informacji */
.view-category .alert.alert-info [class*="icon-"],
.view-category .alert.alert-info svg,
.com-content-category-blog .alert.alert-info [class*="icon-"],
.com-content-category-list .alert.alert-info [class*="icon-"] {
    flex: 0 0 auto;
    color: #dc1e23 !important;
    fill: #dc1e23 !important;
    font-size: 22px;
}

/* Usunięcie domyślnego niebieskiego wyglądu Bootstrap/Joomla */
.view-category .alert-info,
.com-content-category-blog .alert-info,
.com-content-category-list .alert-info {
    --bs-alert-color: #f5f5f5;
    --bs-alert-bg: #101010;
    --bs-alert-border-color: rgba(220, 30, 35, 0.55);
}

/* Telefon */
@media (max-width: 767px) {
    .view-category .alert.alert-info,
    .com-content-category-blog .alert.alert-info,
    .com-content-category-list .alert.alert-info {
        align-items: flex-start;
        margin: 25px 0;
        padding: 16px 18px;
        font-size: 14px;
        border-radius: 6px;
    }
}





/* =========================================================
    — SP Easy Image Gallery
   Styl galerii bez wymuszania liczby kolumn
   Kolumny zostają z ustawień modułu / komponentu
   Poprawione kadrowanie: nie ucina góry zdjęć
   Nie rusza lightboxa / popupu
   ========================================================= */


/* Kontener galerii */
.-realizacje-gallery-slot .speasyimagegallery-gallery {
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  overflow: visible !important;
}


/* Wiersz galerii
   Bez grid-template-columns, bez sztywnej liczby kolumn */
.-realizacje-gallery-slot .speasyimagegallery-row {
  width: 100% !important;
  max-width: 100% !important;

  display: flex !important;
  flex-wrap: wrap !important;

  margin-left: -11px !important;
  margin-right: -11px !important;
  padding: 0 !important;

  float: none !important;
  clear: both !important;
}


/* Wyłączenie clearfixów, które mogą mieszać w układzie */
.-realizacje-gallery-slot .speasyimagegallery-row::before,
.-realizacje-gallery-slot .speasyimagegallery-row::after {
  display: none !important;
  content: none !important;
}


/* Kolumny komponentu
   NIE ustawiamy width ani max-width.
   Liczba kolumn zostaje z ustawień SP Easy Image Gallery. */
.-realizacje-gallery-slot .speasyimagegallery-row > div {
  min-width: 0 !important;

  float: none !important;
  clear: none !important;

  box-sizing: border-box !important;

  padding-left: 11px !important;
  padding-right: 11px !important;
  margin-bottom: 22px !important;
}


/* Kafel galerii */
.-realizacje-gallery-slot .speasyimagegallery-gallery-item {
  display: block !important;
  width: 100% !important;
  height: auto !important;

  margin: 0 !important;
  padding: 4px !important;

  background: #0B0E0D !important;
  border-radius: 18px !important;
  overflow: hidden !important;

  text-decoration: none !important;

  box-shadow: 0 16px 38px rgba(0, 0, 0, .22) !important;
  transition: transform .28s ease, box-shadow .28s ease !important;
}


/* Wewnętrzny wrapper zdjęcia */
.-realizacje-gallery-slot .speasyimagegallery-gallery-item > div {
  display: block !important;
  position: relative !important;

  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: hidden !important;
  border-radius: 14px !important;
  background: #111 !important;
}


/* Zdjęcie wypełnia kafel, ale trzyma kadr od góry */
.-realizacje-gallery-slot .speasyimagegallery-gallery-item img {
  position: absolute !important;
  inset: 0 !important;

  display: block !important;

  width: 100% !important;
  height: 100% !important;
  max-width: none !important;

  object-fit: cover !important;
  object-position: center top !important;

  transform-origin: center top !important;

  border-radius: 14px !important;
  transition: transform .35s ease, filter .35s ease !important;
}


/* Ukrycie tytułów / podpisów / numerków na kaflach */
.-realizacje-gallery-slot .speasyimagegallery-gallery-item-content,
.-realizacje-gallery-slot .speasyimagegallery-gallery-item-title {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;

  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;

  overflow: hidden !important;
}


/* Delikatny hover kafla */
.-realizacje-gallery-slot .speasyimagegallery-gallery-item:hover {
  transform: translateY(-2px) scale(1.005) !important;
  box-shadow: 0 22px 52px rgba(0, 0, 0, .30) !important;
}


/* Hover zdjęcia
   Mały zoom i transform-origin top, żeby nie ucinało góry */
.-realizacje-gallery-slot .speasyimagegallery-gallery-item:hover img {
  transform: scale(1.01) !important;
  filter: brightness(.92) contrast(1.04) !important;
}


/* Delikatny ciemny nalot na hover — tylko kafel, nie lightbox */
.-realizacje-gallery-slot .speasyimagegallery-gallery-item > div::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;

  background: rgba(0, 0, 0, .16) !important;
  opacity: 0 !important;

  transition: opacity .28s ease !important;

  pointer-events: none !important;
  z-index: 2 !important;
}

.-realizacje-gallery-slot .speasyimagegallery-gallery-item:hover > div::after {
  opacity: 1 !important;
}


/* Tablet — tylko odstępy, bez zmiany liczby kolumn */
@media (max-width: 991px) {
  .-realizacje-gallery-slot .speasyimagegallery-row {
    margin-left: -9px !important;
    margin-right: -9px !important;
  }

  .-realizacje-gallery-slot .speasyimagegallery-row > div {
    padding-left: 9px !important;
    padding-right: 9px !important;
    margin-bottom: 18px !important;
  }
}


/* Telefon — tylko odstępy i zaokrąglenia, bez zmiany liczby kolumn */
@media (max-width: 767px) {
  .-realizacje-gallery-slot .speasyimagegallery-row {
    margin-left: -6px !important;
    margin-right: -6px !important;
  }

  .-realizacje-gallery-slot .speasyimagegallery-row > div {
    padding-left: 6px !important;
    padding-right: 6px !important;
    margin-bottom: 12px !important;
  }

  .-realizacje-gallery-slot .speasyimagegallery-gallery-item {
    padding: 3px !important;
    border-radius: 14px !important;
  }

  .-realizacje-gallery-slot .speasyimagegallery-gallery-item > div,
  .-realizacje-gallery-slot .speasyimagegallery-gallery-item img {
    border-radius: 11px !important;
  }
}



.sp-scroll-up {
  display: none;
  position: fixed;
  bottom: 60px;
  left: 30px !important;
  right: auto !important;
  width: 36px;
  height: 36px;
  line-height: 36px;
  text-align: center;
  font-size: 16px;
  color: #fff;
  background: rgba(100, 100, 100, 0.4);
  border-radius: 100%;
  z-index: 1000;
  transition: all 0.3s ease;
}