
:root {
  --agh-red: #b30000;
  --agh-grey-dark: #333;
  --agh-grey-light: #f8f9fa; 
  --agh-footer-bg: #111; /* ciemny odcień tła stopki */
  /* --agh-grey-light: #333; */
  --agh-text: #333;
  --agh-black: #000000;
  --agh-white: #111111;
}

body { font-family: "Segoe UI", Tahoma, sans-serif; color: var(--agh-text); margin: 0; padding: 0; }
.site-header { background-color: var(--agh-black); color: white; font-weight: 400; border-bottom: 4px solid var(--agh-red); }
.site-header .nav-link { color: white; font-size: 1.1rem; }
.site-header .nav-link:hover { color: var(--agh-red); font-size: 1.1rem;}
.site-title { margin: 0; font-size: 1.7rem; color: white;  font-weight: 550;} 

h2 { border-bottom: 2px solid var(--agh-red); padding-bottom: 0.3rem; margin-bottom: 1.5rem; }
.person-card img { width:190px; height:190px; object-fit:cover; }
.person-card .card-body { padding-top: .5rem; }

/*
.site-footer {
  background-color: var(--agh-footer-bg); /* ciemnoszara stopka */
  color: white; /* jasny tekst dla kontrastu */
  border-top: 3px solid var(--agh-red); /* czerwony akcent AGH */
  border-top: none;
  border-bottom: 4px solid var(--agh-red);
  padding: 20px 0;
}

.site-footer a {
  color: var(--agh-red);
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.site-footer a:hover {
  opacity: 0.7;
}
*/

.icon-links a { margin-right:8px; color: var(--agh-red); text-decoration:none; }
.icon-links a:hover { text-decoration:underline; }

h3 { border-bottom: 2px ar(--agh-red); padding-bottom: 0.3rem; margin-bottom: 1.0rem; margin-top: 2rem; font-size: 1.5rem;}
.site-footer { background-color: var(--agh-grey-light); color: var(--agh-grey-dark); }
.site-footer a { color: var(--agh-red); }





.footer-dark {
  background-color: #111;
  color: white;
  border-top: 3px solid var(--agh-red);
}


/* --- Sticky footer layout --- */
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}



/* główna zawartość strony */
main {
  flex: 1; /* wypełnia całą przestrzeń między headerem a footerem */
}

/* stopka */
.site-footer {
  background-color: var(--agh-black);
  color: white;
  border-top: 3px solid var(--agh-red);
  padding: 20px 0;
  text-align: center;
}





#backToTop {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 9999;          /* bardzo wysoki, żeby zawsze być na wierzchu */
  font-size: 18px;
  border: none; 
  /*    border-color: var(--agh-red); */
  outline: none;
   background-color:  var(--agh-red);
   color: white; 
  /*    background-color: white;
      color: var(--agh-red); */
  cursor: pointer;
  padding: 7px 14px;
  /* border-radius: 10%; */
  opacity: 0;
  transform: translateY(10px);
  transform: rotate(90deg);
  transition: opacity 0.35s ease, transform 0.35s ease;
  /* box-shadow: 0 6px 18px rgba(0,0,0,0.12); */
  box-shadow: none; /* usuwa 3D efekt */
  appearance: none; /* usuwa domyślny styl przeglądarki */
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Pokaż przycisk */
#backToTop.show {
  opacity: 1;
  transform: translateY(0);
  transform: rotate(90deg);
}

/* Hover */
#backToTop:hover {
  transform: translateY(0) scale(1.06);
  transform: rotate(90deg);
  background-color: var(--agh-red);
      color: white;
  opacity: 1;
}



ul{
  list-style-type: square;
}

li{
  color: var(--agh-red); /* bullet color */

}
li span {
  color: black; /* text color */
}




/* Publications styling */
.publication {
  align-items: flex-start;
  line-height: 1.4;
}

.pub-number {
  <!font-weight: 700;>
  color: var(--agh-red);
  min-width: 1.0em; /* wyrownanie cyfr w kolumnie */
  <!font-family: 'Courier New', monospace;>
}

.pub-details {
  text-align: justify;
}

.pub-title {
  font-weight: 600;
  color: var(--agh-red);
  text-decoration: none;
}

/* Kolor tytuloww konferencji*/
.talk-title {
  color: var(--agh-red);      /* 🔴 AGH red */
  /*font-weight: bold;     /* pogrubienie tytulow */
  font-weight: 700;  
  <!font-family: 'Courier New', monospace;>
}

/* Kolor linkow */
a {
  color: var(--agh-red);
  text-decoration: none;
}

a:hover {
  text-decoration: underline; /* Dodaje podkreslenie po najechaniu */
}

.pub-title:visited {
  color: var(--agh-red);          /* zachowaj czerwony po kliknieciu */
}

.pub-title:hover {
  color: #b00000;
  text-decoration: underline;
}

.navbar-brand {
  font-weight: 700;
  font-size: 1.4rem;
  letter-spacing: 1px;
  color: var(--agh-red) !important;
  text-transform: uppercase;
}

.navbar-brand:hover {
  color: #b00000 !important;
  text-decoration: none;
}

.section-title {
  font-weight: 700;
  color: var(--agh-red);
  letter-spacing: 1px;
}

.subsection-title {
  font-weight: 600;
  color: #333;
  border-left: 5px solid var(--agh-red);
  padding-left: 10px;
}

ul {
  margin-left: 1.2rem;
}

ul li {
  margin-bottom: 0.4rem;
}


/* --- Funding logos section --- */
.funding-logos {
  margin-top: 2rem;
}

.funding-item {
  flex: 0 1 150px;
  text-align: center;
}

.funding-item img {
  max-width: 600px;
  max-height: 90px;
  object-fit: contain;
  filter: grayscale(10%);
  opacity: 0.9;
  transition: all 0.2s ease-in-out;
}

.funding-item img:hover {
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.03);
}


/* --- Research Summary --- */
.research-summary {
  margin-top: 2rem;
}

.focus-subtitle {
  font-weight: 600;
  color: #444;
}

.focus-area h4 {
  color: var(--agh-red);
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.focus-text p {
  text-align: justify;
  margin-bottom: 0;
}


/* ----- Research areas -----*/
/* Styl obrazkow po prawej stronie */
.focus-image img {
  max-width: 127%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.focus-image img:hover {
  transform: scale(1.15);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.15);
}

/* Responsywnosc dla mniejszych ekranow */
@media (max-width: 768px) {
  .focus-image {
    margin-top: 1rem;
  }
}

/* --- Adjust image vertical alignment in Focus Areas --- */
@media (min-width: 768px) {
  .focus-image img {
    margin-top: 1.8rem; /* przesuniecie w dol wzgledem naglowka */
  }
}


/* Justify text inside lists */ 
ul li,
ol li {
  text-align: justify;
  text-justify: inter-word;
}

.icon-link {
  display: inline-block;
  margin-right: 8px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.icon-link:hover {
  transform: scale(1.1);
  opacity: 0.8;
}
/* End of Justify text inside lists */ 



/* --- Hidden part of biography --- */ 
.more-text {
  display: none;
  transition: max-height 0.6s ease, opacity 0.4s ease;
  margin-top: 0.0rem;
}

.more-btn {
  display:  inline; 
  background: none;
  border: none;
  color: var(--agh-red);
  font-weight: 600;
  cursor: pointer;
  margin-top: 0.0rem;
  margin-bottom: 0.5rem;
  padding: 0;
  transition: color 0.2s ease;
}

.more-btn:hover {
  color: #800000;
}
/* --- End of Hidden part of biography --- */ 




/* --- News-slider ---*/

.news-slider {
  position: relative;
  overflow: hidden;
  width: 100%;

  opacity: 1;

  /*transition: opacity 1s ease-in-out;  /* 🔹 płynne przenikanie */
  margin: 0 auto;
  height: 550px;
  max-width: 1300px;
  border-radius: 5px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  margin-bottom: 3rem;
  margin-top: 1rem;
}

.news-slider .slide { 
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out; 
  /* animation: fadeOut 5s forwards; */ 
}

.content-wrapper {
  max-width: 1200px;    /*  szerokość strony (dopasuj do swojego layoutu) */ 
  margin: 0 auto;       /*  wyśrodkowanie */ 
  padding: 0 20px;      /*  wewnętrzne marginesy po bokach */ 
}

.news-slider .slide.active {
  opacity: 1;
  /*  transition: opacity 1s ease-in-out;
  animation: fadeIn 2s forwards; */
}

.news-slider img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --- End News-slider ---*/

/*
@keyframes fadeIn {
  from { opacity: 1; transform: scale(1.0); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes fadeOut {
  from { opacity: 1; transform: scale(1); }
  to { opacity: 1; transform: scale(1); }
} */

/* --- slider-container ---*/
/*
.slider-container {
  position: relative;
  max-width: 1200px;      /* dopasuj do szerokości strony 
  margin: 0 auto;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
} 
*/


/*
.slide {
  display: none;
  
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 1;
  transition: opacity 1s ease-in-out;  /* 🔹 płynne przenikanie */
  top: 0;
  left: 0;
} 
*/


.slide.active {
  display: block;
  opacity: 1;
}

.slide-content {
  display: flex;
  flex-direction: row;    /* 🔹 zdjęcie po lewej, opis po prawej */
  width: 100%;
  height: 100%;
}

.slide-image {
  flex: 0 0 70%;          /* 🔹 70% szerokości dla zdjęcia */
  position: relative;
  z-index: 5;           /* obrazek na wierzchu */
}

.slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slide-caption {
  flex: 0 0 30%;          /* 🔹 30% szerokości dla tekstu */
  background-color: #111;
  color: white;
  padding: 30px;
  /* display: flex; */
  flex-direction: column;
  justify-content: center;  
  
  position: relative;
   z-index: 3; /* jeśli chcesz, żeby caption było na wierzchu, wówczas link musi być w caption lub w JS */

}


.slide-caption h2 {
  margin: 0 0 0.4rem;
  margin-bottom: 10px;
  font-size: 1.8rem;
  color: #fff;
}

.slide-caption p {
  margin: 0;
  text-align: justify;
  line-height: 1.5;
  font-size: 1.1rem;
  color: #fff;
}

/* --- End slider-container ---*/

/* Buttons */
.news-slider .prev,
.news-slider .next {
  position: absolute;
  top: 44%;
  width: 2%; 
  display: flex; 
 /*  justify-content: space-between; */
  background: rgba(0, 0, 0, 0.0);
  color: #111;
  border: none;
  font-size: 3.0rem;
  /* padding: 0.2rem 0.8rem; */
  /* padding: 10px 15px; */
  cursor: pointer;
  border-radius: 100%;
  transition: background-color 0.3s, opacity 0.3s;
  opacity: 0.3;
  z-index: 10; 
}



.news-slider .prev:hover,
.news-slider .next:hover {
  background: rgba(0, 0, .1, 0.0);
  color: #8b0000;
  opacity: 1;                            /* zmniejszenie przezroczystosci po najechaniu */
}

.news-slider .prev {
  left: 1rem;
}
.news-slider .next {
  right: 26rem;
}




/* --- Slider dots navigation --- */
.dots {
  position: absolute;       /* 🔹 ustawiamy względem slidera */
  bottom: 15px;             /* 🔹 odległość od dolu */
  right: 32px;              /* 🔹 odległość od prawej krawedzi */
  display: flex;
  gap: 8px;                 /* odlehłosc miedzy kropkami */
  z-index: 10;              /* 🔹 nad obrazem i caption */
}

.dot {
  width: 7px;
  height: 7px;
  background-color: #ccc;
  /* border: 1px solid var(--agh-red); */
  border-radius: 10%;
  cursor: pointer;
  transition: all 0.3s ease;
}

.dot.active {
  background-color: var(--agh-red);   /* 🔴 AGH red */
  transform: scale(1.4); 
  /* height: 18px; */
} 




.slide-images.angled {
  position: relative;
  display: flex;
  flex: 0 0 70%;
  overflow: hidden;
}

/* Lewy obraz z przycięciem po prawej stronie */
.left-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  clip-path: polygon(0 0, 80% 0, 50% 100%, 0% 100%);
  border-radius: 4px;
}

/* Prawy obraz, z odwrotnym przycięciem po lewej */
.right-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  clip-path: polygon(75% 0, 100% 0, 100% 100%, 20% 100%);
  border-radius: 4px;
}


/*
.slide-image.dual {
  display: flex;
  gap: 5px;               /* odstęp między zdjęciami */
}


.slide-image.dual img {
  width: 50%;             /* każde zdjęcie po połowie szerokości */
  height: auto;
  object-fit: cover;
  border-radius: 4px;
}
*/


@media (max-width: 768px) {
  .slide-image.dual {
    flex-direction: column;
  }
  .slide-image.dual img {
    width: 100%;
  }
}



/* -------  Publication filters -------  */

/*

.filters {
  margin: 20px 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}



.filter-btn {
  border: 2px solid #b30000;
  background-color: white;
  color: #b30000;
  padding: 6px 14px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 0.9em;
}

.filter-btn:hover {
  background-color: #b30000;
  color: white;
}



.filter-btn.active {
  background-color: #b30000;
  color: white;
}

.sort-select {
  margin-left: auto;
  border: 2px solid #b30000;
  border-radius: 20px;
  padding: 6px 12px;
  background-color: white;
  color: #b30000;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.3s ease;
}

.sort-select:hover {
  background-color: #b30000;
  color: white;
}

.publications-list {
  margin-top: 20px;
}

.publication-item {
  margin-bottom: 15px;
  text-align: justify;
}
*/



/* ------- Sortowanie --------- */

/*

.publications-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1em;
  flex-wrap: wrap;
  gap: 10px;
}


#searchInput, #sortSelect {
  padding: 6px 10px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 6px;
}
*/


/* Wyszukiwarka po artykułach */

/* Przyciski filtrowania po typach publikacji: All, Patents, Journal papers, ... */
.filters {
  margin: 20px 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.filter-btn {
  border: 2px solid var(--agh-red);
  background-color: white;
  color: var(--agh-red);;
  padding: 6px 14px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 0.9em;
}

.filter-btn:hover {
  background-color: var(--agh-red);
  color: white;
}

.filter-btn.active {
  background-color: var(--agh-red);
  color: white;
}

/* Przycisk wyszukiwarki */

/* 
.search-input {
  margin-left: auto;
  border: 2px solid var(--agh-red);;
  border-radius: 20px;
  padding: 6px 12px;
  font-size: 0.9em;
  width: 200px;
  transition: all 0.3s ease;
}



.search-input:focus {
  outline: none;
  border-color: #800000;
  box-shadow: 0 0 5px rgba(179, 0, 0, 0.3);
}
*/

.publications-list {
  margin-top: 20px;
}

.publication-item {
  margin-bottom: 15px;
  text-align: justify;
}


/* ------------------- */
.publications-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5em;
  flex-wrap: wrap;
  gap: 12px;
}


#searchInput {
  margin-left: auto;
  border: 2px solid var(--agh-red);
  border-radius: 20px;
  padding: 6px 12px;   /* Wymiary przycisku */
  font-size: 0.9em;
  width: 200px;
  transition: all 0.3s ease;
}

#sortSelect {
  margin-left: auto;

  border: 2px solid var(--agh-red);


  width: 130px;        /*  szerokość przycisku */
  height: 36px;        /*  wysokość */
  font-size: 14px;     /*  rozmiar tekstu */
  padding: 6px 10px;   /*  odstęp wewnętrzny */
  border-radius: 20px;
    
  background-color: var(--agh-red);
  color: white;
  cursor: pointer;
  /* font-weight: 500; */
  transition: all 0.3s ease;
}

#sortSelect:hover {
  background-color: white;   /* kolor po najechaniu kursorem */
  color: var(--agh-red); 
}



#searchInput:focus {
  outline: none;
  border-color: var(--agh-red);
  box-shadow: 0 0 10px rgba(179, 0, 0, 0.3);
}

#sortSelect:focus {
  outline: none;
  border-color: var(--agh-red);
  /* box-shadow: 0 0 5px rgba(179, 0, 0, 0.3); */
}


/* Styl do wylistowanych publikacji */
.pub-entry {
  margin-bottom: 1.2em;
  line-height: 1.4em;
  text-align: justify;  
}

.pub-link {
  color: var(--agh-red);               /* AGH red */
  text-decoration: none;
  transition: color 0.3s ease;
}

.pub-link:hover {
  color: #7a0000;
  text-decoration: underline;
}




/* naprzemienne tła dla listy publikacji (tzw. „zebra stripes”) */

.publication-item:nth-child(odd) {
  background-color: #f7f7f7; /* bardzo jasny szary */
}

.publication-item:nth-child(even) {
  /* background-color: #e9e9e9; /* lekko ciemniejszy szary */ 
}

.publication-item {
  /* padding: 10px 18px; */
  padding: 0.2px 0px;
  /* border-left: 4px solid var(--agh-red); */
  border-radius: 4px;
  margin-bottom: 8px;
  transition: background-color 0.3s ease;
}

/* efekt hover (opcjonalny) */
.publication-item:hover {
  /* background-color: #e6e6e6; */
  background-color: rgba(179, 0, 0, 0.1); /* delikatny czerwony z przeźroczystością */
}











/* === NEWS PREVIEW SECTION === */
.news-preview-section {
  background-color: none;
  padding: 0px 0;
}

.news-preview-section h2 {
  text-align: center;
  border-bottom: 2px solid var(--agh-red);
  display: inline-block;
  margin: 0 auto 1.8rem;
}


/* Siatka kart */
.news-preview-grid {
  max-width: 100%; /* lub 90% */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 20px;
  align-items: stretch;
  margin-bottom: 25px;
}

/* Pojedyncza karta */
.news-card {
  display: flex;
  flex-direction: column;
  background-color: #111;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0,0,0,0.05);
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 100%; /*  pełna wysokość */
}


.news-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.1);
}



/* Obrazek */
.news-card img {
  width: 100%;
  height: 160px;
  object-fit: cover;  /* rozmycie */
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  image-rendering: auto;
  display: block;
  border-radius: 4px 4px 0 0;
  transition: transform 0.3s ease;
}

/* Treść karty */
.news-card-content {
  flex-grow: 1; /*  równy rozkład wysokości */
  padding: 1px 18px;
}

.news-card-content h3 {
  color: white;
  font-size: 1.1rem;
  margin-top: 10px;
  margin-bottom: 10px;
}

.news-card-content p {
  font-size: 0.95rem;
  color: white;
  line-height: 1.4;
}

/* Responsywność */
@media (max-width: 768px) {
  .news-card img {
    height: 150px;
  }
}





.news-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}


.news-date {
  display: inline-block;
  font-size: 0.9rem;
  font-weight: bold;
  color: var(--agh-red);
  margin-bottom: 4px;
}

.news-more {
  margin-top: 20px;
  font-size: 1.2rem;
  text-align: right;
}

.news-more a {
  color: var(--agh-red);
  text-decoration: none;
  font-weight: bold;
  transition: color 0.3s ease;
}









/* === NEWS PAGE === */
.news-page {
  padding: 30px 0;
}

.news-page h2 {
  border-bottom: 2px solid var(--agh-red);
  padding-bottom: 0.3rem;
  margin-bottom: 2rem;
}


/* Każdy wpis */
.news-entry {
  display: flex;
  /* align-items: flex-start; /* tekst i zdjęcie wyrównane do góry */
  align-items: center; /* pionowe wyśrodkowanie */
  flex-direction: row-reverse; /* 🔁 odwraca kolejność: obraz po prawej */
  gap: 30px;
  margin-bottom: 25px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 25px;
}

/* Zdjęcie po lewej */
.news-image {
  flex: 0 0 33%; /* 30% szerokości */
}

.news-image img {
  width: 100%;
  /*  height: auto; */
  max-height: 250px;
  border-radius: 3px;
  object-fit: cover;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
}

/* Treść po prawej */
.news-content {
  flex: 1;
}

.news-content p {
  display: -webkit-box;
  -webkit-line-clamp: 10;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.news-content h3 {
  /* color: var(--agh-red); */
  color: black;
  margin-bottom: 8px;
}

.news-date {
  display: block;
  font-size: 0.9rem;
  color: #777;
  margin-bottom: 10px;
}

.news-content p {
  line-height: 1.5;
  color: var(--agh-text);
  text-align: justify;
}

/* Efekt hover (opcjonalnie) */
/* .news-entry:hover img {
  transform: scale(1.02);
  transition: transform 0.3s ease;
}
*/

/* Responsywność — na telefonach obraz nad tekstem */
@media (max-width: 768px) {
  .news-entry {
    flex-direction: column;
  }

  .news-image {
    flex: 0 0 100%;
  }
}


.slide-caption .slide-link {
  color: var(--agh-red);   /* zachowuje kolorystyke AGH */
  text-decoration: none;   /* usuwa podkreślenie */
}

.slide-caption .slide-link:hover {
  text-decoration: underline; /* opcjonalnie efekt hover */
}







/* === Przycisk Dark Mode === */
.theme-btn {
  background-color: transparent;
  border: 2px solid var(--agh-red);
  color: white;
  padding: 6px 10px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 0.9rem;
}

.theme-btn:hover {
  background-color: var(--agh-red);
}

/* === Tryb ciemny === */
body.dark-mode {
  background-color: #222;
  color: #eee;
  transition: background-color 0.5s ease, color 0.5s ease;
}

/* Nagłówek i stopka */
body.dark-mode .site-header,
body.dark-mode .site-footer {
  background-color: #000;
  color: #eee;
  border-color: var(--agh-red);
}

/* Linki i akcenty */
body.dark-mode a {
  color: var(--agh-red);
}

body.dark-mode a:hover {
  color: #ff5555;
}

/* Karty, sekcje, publikacje itd. */
body.dark-mode .publication-item,
body.dark-mode .news-item,
body.dark-mode .person-card,
body.dark-mode .news-card {
  background-color: #1a1a1a;
  color: #eee;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}

/* Obrazy delikatnie przyciemnione */
body.dark-mode img {
  filter: brightness(0.9);
}

