 body { 
	background: #fcfdfe; 
	font-family: 'Open Sans', Arial, Helvetica, sans-serif;
	}
    .topbar { background: #fff; border-bottom: 1px solid #e5e5e5; font-size: .98rem; }
    .navbar-nav .nav-link { font-weight: 500; color: #232323; }
    .navbar-nav .nav-link.active, .navbar-nav .nav-link:focus { color: #d9251d; }
    .hero-slider { min-height: 580px; }
    .feature-icon { font-size: 2.6rem; color: #444; }
    .feature-card { background: #fff; border-radius: 1.2rem; box-shadow: 0 2px 14px 0 rgba(80,80,80,.08); border: none; }
    .news-card { border-radius: 1.2rem; box-shadow: 0 2px 12px rgba(0,0,0,0.07); border: none; background: #fff; transition: box-shadow 0.2s; }
    .news-card:hover { box-shadow: 0 4px 24px rgba(0,0,0,0.16); }
	
	
    .quicklink-card {
      min-width: 110px; min-height: 110px; background: #454954; color: #fff; border-radius: 1rem;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      font-size: 1rem; transition: background 0.2s;
      box-shadow: 0 1px 4px rgba(30,30,40,.07);
    }
    .quicklink-card:hover { background: #d9251d; color: #fff; }
    .quicklink-icon { font-size: 2.2rem; margin-bottom: .5rem; }
    .footer-bg { background: #1b1b1b; color: #eee; }
    .footer-link { color: #ccc; text-decoration: none; }
    .footer-link:hover { text-decoration: underline; color: #fff; }
    .carousel-item video,
    .carousel-item img { object-fit: cover; width: 100%; height: 580px; }
    /* .glide__slide { display: flex; align-items: center; justify-content: center; }
    .glide__slide img { max-height: 130px; max-width: 130px; filter: grayscale(0.2); transition: filter 0.2s; }
    .glide__slide img:hover { filter: grayscale(0) drop-shadow(0 2px 8px rgba(60,60,60,0.12)); } */
	.glide__slide {
	  display: flex;
	  align-items: center;
	  justify-content: center;
	  position: relative;
	  overflow: visible; /* żeby nic nie ucięło ramki */
	}

	.logo {
	  position: relative;
	  display: inline-grid;
	  place-items: center;
	  width: 130px;   /* rozmiar „ramki” */
	  height: 130px;
	  text-decoration: none;
	  isolation: isolate; /* poprawny stacking context */
	}

	.logo img {
	  max-width: 100%;
	  max-height: 100%;
	  filter: grayscale(0.2);
	  transition: filter 0.25s ease;
	  z-index: 1;
	}

	/* Ramka – wszystkie boki naraz */
	.logo::before {
	  content: '';
	  position: absolute;
	  inset: 0; /* ramka wewnątrz boxa, bez wychodzenia */
	  pointer-events: none;
	  z-index: 2;
	  color: #969aa4;
	  border-radius: 30px;
	  background:
		linear-gradient(currentColor 0 0) 0    0    / 0    1px  no-repeat, /* top */
		linear-gradient(currentColor 0 0) 100% 0    / 1px  0    no-repeat, /* right */
		linear-gradient(currentColor 0 0) 100% 100% / 0    1px  no-repeat, /* bottom */
		linear-gradient(currentColor 0 0) 0    100% / 1px  0    no-repeat; /* left */

	  transition: background-size 0.45s ease;
	}

	.logo:hover img {
	  filter: grayscale(0);
	}

	.logo:hover::before {
	  background-size: 100% 1px, 1px 100%, 100% 1px, 1px 100%;
	}



    @media (max-width: 768px) {
      .carousel-item video, .carousel-item img { height: 340px; }
	  .hero-slider {max-height: 130px;}
	  .hero-slider { min-height: 130px; }
      .glide__slide img { max-height: 100px; }
    }

/* Definiowanie stałych */	
.fs-14 {
  font-size: 14px !important;
}

.fs-5-uppercase {
  text-transform: uppercase;
}

.gap-c-left-10 {
  margin-left: 10px	
}

.header-gray {
	color: #434343!important;
	}

.card-img-top {
  height: 250px;           /* stała wysokość obrazka – możesz zmienić */
  /*object-fit: cover;       przycina, zachowując proporcje */
  object-position: center; /* wyśrodkowanie kadru */
  width: 100%;            /* pełna szerokość */
  border-radius: 15px 15px 0 0;
}

.mb-4 {
  margin-bottom: 3rem !important;
}

.mb-1 {
  margin-bottom: 1rem !important;
}

.text-primary-custom {
    color: #ff242c!important;
}

.btn-outline-primary-custom {
	border-radius: 30px;
	border-color:  #ff242c!important;
	color: #ff242c!important;
}
.btn-outline-primary-custom:hover {
	background-color: #ff242c!important;
	color: #fff!important;
}
	
/* Uniwersalnie poprawia strzałki karuzeli Bootstrap 5 na mobile */
@media (max-width: 768px) {
  .carousel-control-prev, .carousel-control-next {
    width: 48px;
    height: 48px;
    top: 35%; /* przesunięcie w pionie */
    opacity: 1; /* zawsze widoczne */
  }
  .carousel-control-prev-icon,
  .carousel-control-next-icon {
    background-size: 60% 60%;
    width: 36px;
    height: 36px;
    filter: drop-shadow(0 2px 6px rgba(255,255,255,0.30)) invert(1); /* białe strzałki, lepszy kontrast */
  }
  /* Jeśli chcesz, możesz dać tło pod strzałką, np.: */
  .carousel-control-prev, .carousel-control-next {
    background: rgba(255,255,255,0.40);
    border-radius: 50%;
  }
}

/* Przyciski więcej */
.button-more {
  text-transform: uppercase;
  background: #63aa0c !important;
  border-color: #63aa0c !important;
  color: #fff !important;
  transition: background 0.16s;
  font-weight: 600;
  align-self: center!important;
  min-width: 0;    
  width: auto;  

}
.button-more:hover,
.button-more:focus {
  background: #d9251d !important;  /* ciemniejszy odcień na hover */
  border-color: #d9251d !important;
  color: #fff !important;
}

/* Przyciski więcej */
.button-readmore {
  text-transform: uppercase;
  background: #454954 !important;  /* ciemniejszy odcień na hover */
  border-color: #454954 !important;
  color: #fff !important;
  transition: background 0.16s;
  font-weight: 600;
  align-self: center!important;
  min-width: 0;    
  width: auto;   
  padding-top: 10px!important;
  padding-bottom: 10px!important;  
}
.button-readmore:hover,
.button-readmore:focus {
  background: #d9251d !important;
  border-color: #d9251d !important;
  color: #fff !important;
}

/* Przyciski więcej outline*/
.button-readmore-outline {
  text-transform: uppercase;
  background: #ffffff !important;  /* ciemniejszy odcień na hover */
  border-color: #454954 !important;
  color: #666666 !important;
  transition: background 0.16s;
  font-weight: 600;
  align-self: center!important;
  min-width: 0;    
  width: auto;   
  padding-top: 10px!important;
  padding-bottom: 10px!important;  
}
.button-readmore-outline:hover,
.button-readmore-outline:focus {
  background: #d9251d !important;
  border-color: #d9251d !important;
  color: #fff !important;
}


.feature-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.feature-desc {
  flex: 1 1 auto;
  font-weight: 300!important;
}

.feature-card .btn {
  align-self: flex-start;
  min-width: 0;
  width: auto;
}


.news-thumb {
  aspect-ratio: 16/9;    /* równe proporcje */
  object-fit: cover;     /* przytnij, żeby nie rozciągało */
  width: 100%;
  display: block;
}

@supports not (aspect-ratio: 1/1) {
  .news-thumb {
    height: 300px;       /* fallback dla starszych przeglądarek */
  }
}

/* MENU GŁÓWNE */

.main-navbar-bg {
  background: #454954 !important;
  /* gradient: */
  /* background: linear-gradient(90deg, #d6001c 0%, #f33 100%) !important; */
  /* lub obrazek: */
  /* background: url('twoj_obrazek.jpg') center/cover no-repeat; */
}


.navbar-nav .nav-link {
    display: inline-block;       /* kluczowe! */
  position: relative;
  
  transition: color 0.18s cubic-bezier(.5,1.3,.7,1);
  z-index: 1;
}
.navbar-nav .nav-link::after {
  content: '';
  position: absolute;
  width: 64%;   
  left: 18%;   
  bottom: 6px;
  height: 2.5px;
  background: #ff242c; 
  border-radius: 3px;
  opacity: 0;
  transform: scaleX(0.5);
  transition: 
    opacity 0.32s cubic-bezier(.41,1.7,.7,1), 
    transform 0.28s cubic-bezier(.41,1.7,.7,1);
  pointer-events: none;
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  color: #bdbdbd !important;  
}
.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link:focus::after {
  opacity: 1;
  transform: scaleX(1);
}

/* Wysuwanie 2+ poziomu w bok */
.dropdown-submenu { position: relative; }
.dropdown-submenu > .dropdown-menu {
top: 0;
  left: 100%;
  margin-top: -.25rem;
  margin-left: .1rem;
  min-width: 220px;
  max-width: 280px;  /* ograniczenie szerokości */
}

/* Na wszelki wypadek — pokaż, gdy ma .show */
#mainNavbar .dropdown-menu { display: none; }
#mainNavbar .dropdown-menu.show { display: block; }



/* --- WYMUSZENIE SZEROKOŚCI SUBMENU (desktop) --- */
/* Zerujemy min-width Bootstrapa i ustawiamy nasz zakres */
#mainNavbar .dropdown-menu {
  --bs-dropdown-min-width: 0 !important;           /* zabija 10rem Bootstrapa */
  width: clamp(220px, 28vw, 280px) !important;     /* stało‑responsywna szerokość */
  max-width: 90vw;                                  /* asekuracja przy bardzo wąskich ekranach */
  white-space: normal;                               /* łam tekst */
  overflow-wrap: anywhere;                           /* łam nawet długie ciągi */
  word-break: break-word;                            /* wsparcie dla starszych przeglądarek */
}

#mainNavbar .dropdown-menu .dropdown-item {
  white-space: normal;       /* upewnij się, że linki też się łamią */
  line-height: 1.25;
}

/* Drugi poziom – ta sama szerokość */
#mainNavbar .dropdown-submenu > .dropdown-menu {
  --bs-dropdown-min-width: 0 !important;
  width: clamp(220px, 28vw, 280px) !important;
  max-width: 90vw;
}

/* --- MOBILE: pełna szerokość listy wewnątrz collapse --- */
@media (max-width: 991.98px){
  #mainNavbar .dropdown-menu,
  #mainNavbar .dropdown-menu .dropdown-menu {
    width: 100% !important;
    max-width: none !important;
  }
}

/* ✅ WARIANT A — gdy w dropdownie są <li><a class="dropdown-item">…</a></li> */
#mainNavbar .dropdown-menu > li > a.dropdown-item {
  display: block; /* żeby linia była na pełną szerokość */
  padding: .55rem .9rem;
}
#mainNavbar .dropdown-menu > li:not(.dropdown-divider):not(:last-child) > a.dropdown-item {
  border-bottom: 1px solid rgba(0,0,0,.1);
}

/* Wyłącza domyślne „trójkąty” Bootstrapa */
#mainNavbar .dropdown-toggle::after {
  display: none !important;
}


/* Podświetlenie pozycji w submenu */
#mainNavbar .dropdown-menu .dropdown-item:hover,
#mainNavbar .dropdown-menu .dropdown-item:focus {
  background-color: #d9251d;   /* 👈 Twój własny kolor tła */
  color: #ffffff;              /* 👈 kolor czcionki na hover */
}

/* Opcjonalnie: normalny stan (nieaktywny) też w swoim kolorze */
#mainNavbar .dropdown-menu .dropdown-item {
  color: #333333;              /* kolor czcionki normalnie */
}


/* Minimalistyczny hamburger – kasuje border i ramki */
.minimal-hamburger {
  border: none !important;
  background: transparent !important;
  outline: none;
  box-shadow: none !important;
  padding: 8px 15px;
  position: relative;
  z-index: 30;
}

/* Kasowanie starego hamburgera Bootstrapa */
.minimal-hamburger .navbar-toggler-icon {
  display: none !important;
}

/* Twoja minimalistyczna ikona */
.minimal-hamburger .hamburger-icon,
.minimal-hamburger .hamburger-icon::before,
.minimal-hamburger .hamburger-icon::after {
  display: block;
  width: 38px;
  height: 2px;
  background: #fff;
  border-radius: 3px;
  position: absolute;
  left: 0;
  transition: all 0.33s cubic-bezier(.68,-0.55,.27,1.55);
  content: '';
}

.minimal-hamburger .hamburger-icon {
  position: relative;
  top: 0px;
}

.minimal-hamburger .hamburger-icon::before {
  content: '';
  top: -9px;
  position: absolute;
}
.minimal-hamburger .hamburger-icon::after {
  content: '';
  top: 9px;
  position: absolute;
}

/* Animacja do X */
.minimal-hamburger:not(.collapsed) .hamburger-icon {
  background: transparent;
}
.minimal-hamburger:not(.collapsed) .hamburger-icon::before {
  top: 0;
  transform: rotate(45deg);
}
.minimal-hamburger:not(.collapsed) .hamburger-icon::after {
  top: 0;
  transform: rotate(-45deg);
}

@media (max-width: 991px) {
  .navbar,
  .navbar > .container-xl {
    min-height: 50px;
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .minimal-hamburger {
    padding: 12px 18px;
  }
}

/* TYLKO w navbarze: zamknięty, gdy NIE ma .show */
.navbar .navbar-collapse.collapse:not(.show) { 
  display: none !important;
}
/* Otwarty, gdy MA .show */
.navbar .navbar-collapse.collapse.show { 
  display: block !important;
}
/* Na ≥992px – tryb desktop (bez burgera) */
@media (min-width: 992px) {
  .navbar .navbar-collapse { display: flex !important; }
}

/* Neutralizacja groźnych nadpisań (częsta przyczyna „zawsze otwarty”) */
.navbar .collapse { visibility: visible !important; }
.navbar .show { /* celowo pusto – nie wymuszaj display tutaj! */ }

/* Mobile: dropdowny niech zachowują się jak lista, bez pozycji absolutnej */
@media (max-width: 991.98px) {
  #mainNavbar .dropdown-menu {
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
  }
  /* wyłącz czerwony pasek pod linkami na mobile */
  .navbar-nav .nav-link::after { display: none !important; }
}



/* Obrazy w treści artykułów – dopasuj do szerokości kontenera */
.news-card .card-body img,
.content img,
.article img,
.post-content img,
img.img-responsive {
  max-width: 100% !important;
  width: 100% !important;   /* nadpisuje width="650" */
  height: auto !important;  /* nadpisuje height="924" */
  display: block !important;
}

/* (opcjonalnie) limit wysokości, jeśli chcesz równe „ramki” */
.content img.limit-height,
.news-card .card-body img.limit-height {
  max-height: 320px !important;
  object-fit: cover;
  object-position: center;
}

/* MOBILE (≤991.98px): collapse zamknięty bez .show, otwarty z .show */
@media (max-width: 991.98px) {
  .navbar .navbar-collapse.collapse:not(.show) { 
    display: none !important;
  }
  .navbar .navbar-collapse.collapse.show {
    display: block !important;
  }
}

/* DESKTOP (≥992px): zawsze pokazuj w układzie poziomym */
@media (min-width: 992px) {
  .navbar-expand-lg .navbar-collapse {
    display: flex !important;
    flex-basis: auto;            /* klasyczny bootstrapowy układ */
  }
}


.text-secondary {
font-size: 13px!important;
}

@media (min-width: 992px) {
  .col-lg-5ths {
    flex: 0 0 20%;
    max-width: 20%;
  }
}

.mlrb {
	padding-left: 40px;
	padding-right: 40px;
	padding-bottom: 40px;
	border-left: 2px dotted #ccc;
	border-right: 2px dotted #ccc;
	border-bottom: 2px dotted #ccc;
	border-radius: 30px;
}

.font-custom-date {
	font-size: 14px;
	text-align: right;
}

.text-primary-custom {
	color: #dc3545;
}	

  .list-group-hover .list-group-item {
    transition: background-color 0.3s, transform 0.2s;
    cursor: pointer;
	
  }
  .list-group-hover .list-group-item:hover {
    background-color: rgba(69, 73, 84, 0.15); /* delikatny niebieski */
    transform: translateX(4px); /* lekkie przesunięcie w prawo */
	text-decoration: underline;
  }
  .list-group-hover .list-group-item:hover a {
    color: #0d6efd; /* bootstrapowy primary */
    text-decoration: underline;
  }
  
.text-justify,
.text-justify p {
  text-align: justify;
}

.hover-frame {
  --color: #fff;          /* kolor linii */
  --thickness: 1px;       /* grubość linii */
  --offset: 12px;         /* odsunięcie ramki od krawędzi obrazka */
  --gap: 18px;            /* długość przerwy w narożnikach */
  --speed: .35s;          /* czas animacji */
  position: relative;
  display: inline-block;
}

.hover-frame img {
  display: block;
  transition: transform var(--speed) ease;
}

/* delikatny zoom przy najechaniu – opcjonalnie */
.hover-frame:hover img {
  transform: scale(1.06);
}

/* rysowanie 4 linii jednym pseudo-elementem */
.hover-frame::after {
  content: "";
  position: absolute;
  inset: 0;                /* pokryj cały obszar linku */
  pointer-events: none;
  z-index: 2;

  /* 4 tła = 4 linie: top, bottom, left, right */
  background-image:
    linear-gradient(var(--color), var(--color)),  /* top */
    linear-gradient(var(--color), var(--color)),  /* bottom */
    linear-gradient(var(--color), var(--color)),  /* left */
    linear-gradient(var(--color), var(--color));  /* right */
  background-repeat: no-repeat;

  /* pozycje linii (z odsunięciem od krawędzi i przerwami w narożnikach) */
  background-position:
    left var(--gap)   top  calc(var(--offset)),                                         /* top */
    left var(--gap)   bottom calc(var(--offset)),                                       /* bottom */
    left  calc(var(--offset)) top var(--gap),                                           /* left */
    right calc(var(--offset)) top var(--gap);                                           /* right */

  /* początkowo długość 0 – animacja „rysowania” */
  background-size:
    0 var(--thickness),                                                                 /* top */
    0 var(--thickness),                                                                 /* bottom */
    var(--thickness) 0,                                                                 /* left */
    var(--thickness) 0;                                                                 /* right */

  transition: background-size var(--speed) ease;
}

/* po hover – linie rozciągają się między przerwami */
.hover-frame:hover::after {
  background-size:
    calc(100% - 2*var(--gap)) var(--thickness),                                         /* top */
    calc(100% - 2*var(--gap)) var(--thickness),                                         /* bottom */
    var(--thickness) calc(100% - 2*var(--gap)),                                         /* left */
    var(--thickness) calc(100% - 2*var(--gap));                                         /* right */
}

.bg-light-custom {
	background-color: rgb(238, 238, 238) !important
}

/* Styl tylko dla linków w .content-links */
.content-links a {
  color: var(--bs-primary);
  text-decoration: none;
  font-weight: 500;
  transition: all 0.2s ease-in-out;
  position: relative;
  padding-right: 1.2em; /* miejsce na ikonkę */
}

.content-links a:hover {
  color: var(--bs-primary-dark, #0a58ca);
  text-decoration: underline;
}

/* Ikonka po prawej w kolorze czerwonym */
.content-links a::after {
  content: "↗"; /* np. strzałka */
  font-size: 0.9em;
  margin-left: 0.3em;
  color: var(--bs-danger); /* czerwony bootstrap */
  transition: transform 0.2s ease;
}

.content-links a:hover::after {
  transform: translateX(3px);
}

/* Galeria w stylu "Zobacz również" */
.list-group-item {
  border: none;
  margin-bottom: 8px;
  background: #ffffff;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}

.list-group-item a {
  display: block;
  color: #123679; /* granat */
  font-weight: 500;
}

.list-group-item i {
  color: #d32f2f; /* czerwony akcent */
  margin-right: 8px;
}

.list-group-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

.list-group-item:hover a {
  color: #0d47a1; /* ciemniejszy granat */
  text-decoration: underline;
}

/* Skip link – widoczny dopiero po fokusie */
.skip-link {
  position: absolute;
  left: 0.5rem;
  top: 0.5rem;
  padding: .5rem .75rem;
  background: #fff;
  color: #000;
  border: 2px solid #000;
  border-radius: .375rem;
  z-index: 2000;
  text-decoration: none;
  transform: translateY(-200%);
}
.skip-link:focus {
  transform: translateY(0);
  outline: none;
}


:focus { outline: 2px solid #000; outline-offset: 3px; }


@media print {
  .btn, .d-flex, .mb-3 {
    display: none !important; /* ukryj przyciski w PDF/drukowaniu */
  }
}

