/* ============================================================
   CUSTOM CSS - LAYOUT & STRUCTURE - JOOMLA 6
   
   ODPOWIEDZIALNOŚĆ: Kompletna stylizacja strony bad60lat.pl
   - Header: zielony pasek AGH z logo BAD (lewo), menu (środek), logo AGH (prawo)
   - Mobile: hamburger menu rozwijane w dół
   - Footer: zielony pasek AGH
   - Banner: czerwone tło AGH z SVG bannerem
   - Linki menu: BIAŁE napisy (CSS variables + direct color)
   
   Kolory AGH: #00693C (zielony), #A71930 (czerwony)
   
   STRUKTURA HTML (identyczna na mobile i desktop):
   <header class="header">
     <div class="grid-child"> (BAD logo)
     <div class="grid-child container-nav">
       <nav class="navbar">
         <button class="navbar-toggler"> (hamburger)
         <div class="navbar-collapse"> (menu items)
       </nav>
       <div id="mod-custom115"> (AGH logo)
     </div>
   </header>
   
   Desktop: [BAD lewo] [Menu items w navbar] [AGH prawo]
   Mobile: [BAD lewo] [☰ hamburger] [AGH prawo] → menu rozwija w dół
   
   MODYFIKACJE:
   - 2026-01-25 17:40: Dodano CSS variables --link-color dla białych linków w menu
   - 2026-01-25 17:40: Dodano direct color rules dla .header .navbar-nav a
   - 2026-01-25 17:40: Dodano dokumentację nagłówkową i komentarze
   ============================================================ */

/* SEKCJA: Header - PEŁNA szerokość ekranu, ZIELONY AGH
   ODPOWIEDZIALNOŚĆ: Główny pasek nawigacyjny na zielonym tle
/* ============================================================
   SEKCJA: GOOGLE FONTS - Josefin Sans + Lato
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400;600;700&family=Lato:wght@300;400;700&display=swap');
/* NADPISANIE CSS VARIABLES - ZIELONY HEADER AGH */
:root {
  --cassiopeia-color-primary: #00693C !important;
  --template-special-color: #00693C !important;
}

/* HEADER - BIAŁE LINKI I SOLIDNE ZIELONE TŁO */
.header,
.container-header {
  --link-color: #FFFFFF !important;
  --link-hover-color: #FFFFFF !important;
  --cassiopeia-color-link: #FFFFFF !important;
  --cassiopeia-color-primary: #00693C !important;
  background-color: #00693C !important;
  background-image: none !important;
  background: #00693C !important;
}

/* NAGŁÓWKI - Josefin Sans (elegancka, geometryczna) */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 600;
}

/* MENU - Josefin Sans (spójność z nagłówkami) */
.header .navbar-nav a,
.header .nav-link,
.header .mod-menu a {
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 400;
}

/* TEKST - Lato (czytelna, profesjonalna) */
body,
/* TEKST - Lato (czytelna, profesjonalna) */
body,
p, li, a, span, div, td, th,
input, textarea, select, button {
  font-family: 'Lato', sans-serif !important;
  font-weight: 400;
}

/* WYJĄTEK: Ikony FontAwesome muszą używać swojej czcionki */
[class^="icon-"],
[class*=" icon-"],
.fa,
.fas,
.far,
.fab {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}
   MODYFIKACJA 2026-01-25: Nadpisanie zmiennych CSS --link-color
   POWÓD: Cassiopeia używa --link-color i --cassiopeia-color-link z template.css
   EFEKT: Wszystkie linki w headerze będą białe niezależnie od ustawień szablonu */
body header.header,
body header.container-header,
body .header,
body .container-header {
  background-color: #00693C !important;
  background-image: none !important;
  color: #FFFFFF !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 15px 20px !important;
  
  /* NADPISANIE CSS VARIABLES - białe linki w menu */
  --link-color: #FFFFFF !important;
  --link-hover-color: #FFFFFF !important;
  --cassiopeia-color-link: #FFFFFF !important;
}

/* Header - flex container, wszystko w jednej linii */
.header {
  display: flex !important;
  align-items: flex-end !important;
  gap: 20px !important;
  flex-wrap: nowrap !important;
}

/* Grid-child z logo BAD (stare z szablonu) - UKRYJ */
.header > .grid-child:has(.navbar-brand) {
  display: none !important;
}

/* Grid-child container-nav - pełna szerokość, flex row: Logo BAD + <nav> + Logo AGH */
.header > .grid-child.container-nav {
  flex: 1 1 100% !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-end !important;
  gap: 20px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}

/* Logo BAD (#mod-custom116) - po lewej, bez flex grow */
.header #mod-custom116 {
  flex: 0 0 auto !important;
  order: -1 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Navbar - rośnie, zawiera hamburger + menu items */
.header .navbar {
  background-color: transparent !important;
  padding: 0 !important;
  flex: 1 1 auto !important;
  display: flex !important;
  align-items: flex-end !important;
}


/* Navbar collapse i toggler - desktop TYLKO >= 992px
   MODYFIKACJA 2026-01-25 21:35: Dodano navbar-toggler do media query
   POWÓD: Hamburger był ukryty globalnie, musi być widoczny na mobile */
@media (min-width: 992px) {
  /* Menu - większa czcionka 150% na desktop */
  .header .navbar-nav a,
  .header .nav-link,
  .header .mod-menu a {
    font-size: 1.5em !important;
  }
  
  /* Hamburger ukryty na desktop */
  .header .navbar-toggler {
    display: none !important;
  }
  .header .navbar-collapse,
  .header .collapse.navbar-collapse {
    display: flex !important;
    flex-basis: auto !important;
    flex-grow: 1 !important;
  }

/* Logo AGH w headerze - wycentrowane */
.header #mod-custom115 {
  flex: 0 0 auto !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.header #mod-custom115 img {
  height: 80px !important;
  max-height: 80px !important;
  width: auto !important;
  display: block !important;
  margin: 0 auto !important;
  filter: brightness(0) invert(1) !important;
}

/* Menu items - desktop layout (flex row)
   MODYFIKACJA 2026-01-25 18:00: Dodano selektory dla metismenu */
.header .navbar-nav,
.header .mod-menu,
.header .metismenu {
  display: flex !important;
  align-items: flex-end !important;
  gap: 15px !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

.header .metismenu-item {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
} /* END @media (min-width: 992px) */

/* SEKCJA: Menu Links - METODA TEXT-SHADOW (Symulacja Pogrubienia)
   ODPOWIEDZIALNOŚĆ: Stylizacja linków z wykorzystaniem cienia tekstu zamiast zmiany font-weight.
   ZALETA: Zerowe przesunięcia układu (shadow nie wpływa na flow dokumentu).
   ======================================================================================== */
.header .metismenu-item > a,
.header .mod-menu a,
.header .navbar-collapse a,
.header .navbar-nav a,
.header .nav-link {
  color: #FFFFFF !important;
  text-decoration: none !important;
  font-weight: 400 !important;
  font-size: 1.5em !important;
  
  /* STANDARD DISPLAY */
  display: inline-block !important;
  
  /* PADDING & SPACING */
  padding: 8px 15px !important;
  margin: 0 !important;
  
  position: relative !important;
  transition: text-shadow 0.2s ease, border-bottom 0.2s ease !important;
  border-bottom: 2px solid transparent !important;
  outline: none !important;
}

/* Menu link hover - TEXT SHADOW TRICK */
.header .metismenu-item > a:hover,
.header .mod-menu a:hover,
.header .navbar-collapse a:hover,
.header .navbar-nav a:hover,
.header .nav-link:hover {
  /* NIE ZMIENIAMY FONT-WEIGHT! */
  font-weight: 400 !important;
  
  /* Symulacja bolda cieniem: SUBTELNIEJSZA (0.6px) */
  text-shadow: 0.6px 0 0 #FFFFFF !important;
  
  box-shadow: none !important;
  outline: none !important;
  text-decoration: none !important;
}

/* ANTI-JUMP: Ensure :active state behaves exactly like hover/normal */
.header .navbar-nav a:active,
.header .mod-menu a:active,
.header .nav-link:active {
  transform: none !important;
  box-shadow: none !important;
  padding: 8px 15px !important;
  margin: 0 !important;
  font-weight: 400 !important;
  text-shadow: 0.6px 0 0 #FFFFFF !important;
}

/* Active Page - Keep the underline, FIXED GEOMETRY */
.header .navbar-nav .current > a,
.header .navbar-nav .active > a,
.header .nav-link.active {
  border-bottom: 2px solid #FFFFFF !important;
  font-weight: 400 !important;
  /* Active item is also "bolded" by shadow to avoid layout shift */
  text-shadow: 0.6px 0 0 #FFFFFF !important;
}

/* Hover on Active Page - Prevent font-weight change */
.header .navbar-nav .current > a:hover,
.header .navbar-nav .active > a:hover,
.header .nav-link.active:hover {
    font-weight: 400 !important;
    text-shadow: 0.6px 0 0 #FFFFFF !important;
    border-bottom: 2px solid #FFFFFF !important;
    cursor: default; /* Optional: indicate it's already active */
}

/* CLEANUP: Removal of unused Pseudo-elements from previous attempts */
.header .mod-menu a::after,
.header .navbar-nav a::after,
.header .nav-link::after {
  content: none !important;
  display: none !important;
}

.nav-link-text {
  display: inline !important;
}

/* Hover na NIEaktywnym menu - transparent border (wyższy priorytet niż bazowy hover) */
.header .navbar-nav li:not(.current):not(.active) > a:hover,
.header .navbar-nav .nav-item:not(.current):not(.active) > a:hover {
  border-bottom: 2px solid transparent !important;
}

/* Aktywna strona (kliknięta) - białe podkreślenie + subtelny bold cieniem */
.header .metismenu-item.current > a,
.header .metismenu-item.active > a,
.header .navbar-nav .current > a,
.header .navbar-nav .active > a,
.header .nav-link.active {
  border-bottom: 2px solid #FFFFFF !important;
  font-weight: 400 !important; /* CRITICAL: Force normal weight */
  text-shadow: 0.6px 0 0 #FFFFFF !important; /* Bold via shadow only */
  cursor: default;
}
  .header .navbar-collapse.show {
    display: block !important;
  }
  
  .header .navbar-nav {
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    padding: 10px 0 !important;
  }
  
  .header .navbar-nav li {
    width: 100% !important;
    padding: 8px 20px !important;
  }
  
  /* Usunięcie białego prostokąta wokół linków menu */
  .header .navbar-nav a {
    outline: none !important;
  }
  
  .header .navbar-nav a:focus,
  .header .navbar-nav a:active {
    outline: none !important;
    background-color: transparent !important;
  }
  
  /* Usunięcie białego prostokąta wokół linków menu */
  .header .nav-item a,
  .header .navbar-nav a,
  .header .metismenu-item > a,
  .header .mod-menu a,
  .header .mod-list a {
    outline: none !important;
  }
  
  .header .nav-item a:focus,
  .header .nav-item a:active,
  .header .navbar-nav a:focus,
  .header .navbar-nav a:active,
  .header .metismenu-item > a:focus,
  .header .metismenu-item > a:active,
  .header .mod-menu a:focus,
  .header .mod-menu a:active,
  .header .mod-list a:focus,
  .header .mod-list a:active {
    outline: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
    outline-offset: 0 !important;
  }
  
  /* Logo BAD - mniejsze na mobile */
  .header #mod-custom116 img,
  .header .navbar-brand img {
    height: 50px !important;
  }
  
  /* Logo AGH - większe na mobile (jak w module: 128px -> tutaj 64px dla lepszej proporcji) */
  .header #mod-custom115 img {
    max-height: 80px !important;
  }
}

/* Logo - wyrównane do dołu */
.site-branding,
.navbar-brand {
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  line-height: 0 !important;
}

/* Logo BAD - 64px wysokości */
.custom-logo,
.site-logo img,
.navbar-brand img {
  height: 64px !important;
  width: auto !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Logo AGH - białe (ukryte na desktop, widoczne mobile) */
.container-below-top img,
.agh-logo {
  width: auto !important;
  filter: brightness(0) invert(1) !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* BAD logo link - bez podkreślenia */
.bad-logo-link {
  display: block !important;
  text-decoration: none !important;
  line-height: 0 !important;
}

/* BAD logo - biały */
.bad-logo {
  filter: brightness(0) invert(1) !important;
}

/* Usunięcie białego prostokąta wokół linków menu - desktop i mobile */
.header .nav-item a,
.header .navbar-nav a,
.header .nav-link,
.header .metismenu-item > a,
.header .mod-menu a,
.header .mod-list a {
  outline: none !important;
}

.header .nav-item a:focus,
.header .nav-item a:active,
.header .navbar-nav a:focus,
.header .navbar-nav a:active,
.header .nav-link:focus,
.header .nav-link:active,
.header .metismenu-item > a:focus,
.header .metismenu-item > a:active,
.header .mod-menu a:focus,
.header .mod-menu a:active,
.header .mod-list a:focus,
.header .mod-list a:active {
  outline: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  outline-offset: 0 !important;
}

/* Aktywny link (kliknięta strona) - TYLKO białe podkreślenie, BEZ podświetlenia tła */
.nav-link.active,
.navbar .current a,
.navbar .active > a,
.navbar .metismenu-item.current > a,
a[aria-current="page"] {
  color: #FFFFFF !important;
  border-bottom: 2px solid #FFFFFF !important;
  font-weight: 400 !important;
  background-color: transparent !important;
}

/* Ten blok został przeniesiony wyżej - można usunąć jeśli duplikat */

/* Wyłączenie jasnozielonego podkreślenia z Cassiopeia (pseudo-element :after) - dla WSZYSTKICH stanów i hover */
/* KRYTYCZNE: nadpisanie oryginalnego template.css który ma background: #fff */
.container-header .metismenu > li > a:after,
.container-header .metismenu > li > a:hover:after,
.container-header .metismenu > li:hover > a:after,
.container-header .metismenu > li.active > a:after,
.container-header .metismenu > li.current > a:after,
.container-header .metismenu > li > button:before,
.container-header .metismenu > li > button:hover:before,
.header .metismenu > li > a:after,
.header .metismenu > li > a:hover:after,
.header .metismenu > li:hover > a:after,
.header .navbar-nav a:after,
.header .navbar-nav a:hover:after,
.header .navbar-nav li:after,
.header .navbar-nav li:hover:after,
.header .navbar-nav li:hover > a:after,
.header .navbar-nav li.current:after,
.header .navbar-nav li.active:after,
.header .navbar-nav li.current > a:after,
.header .navbar-nav li.active > a:after,
.header .nav-link:after,
.header .nav-link:hover:after,
.navbar-nav .nav-item a:after,
.navbar-nav .nav-item:hover a:after,
.navbar-nav .nav-item:hover > a:after,
.navbar-nav .nav-item.current a:after,
.navbar-nav .nav-item.active a:after {
  background: transparent !important;
  /* display: none !important; - REMOVED to allow bold text reservation using ::after */
  /* content: none !important; - REMOVED to allow bold text reservation */
  /* width: 0 !important;      - REMOVED to allow bold text reservation */
  opacity: 0 !important;
  visibility: hidden !important;
  left: auto !important;
  right: auto !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* Hover na aktywnym linku - MUSI być na końcu! Zachowuje białą kreskę i pogrubia CIENIEM */
.header .navbar-nav .current > a:hover,
.header .navbar-nav .active > a:hover,
.header .navbar-nav li.current > a:hover,
.header .navbar-nav li.active > a:hover,
.header .nav-link.active:hover,
.header a[aria-current="page"]:hover {
  border-bottom: 2px solid #FFFFFF !important;
  font-weight: 400 !important; /* NO REAL BOLD */
  text-shadow: 0.6px 0 0 #FFFFFF !important;
}

/* Stopka - ZIELONA AGH, pełna szerokość */
body footer.footer,
body footer.container-footer,
body .footer,
body .container-footer {
  background-color: #00693C !important;
  background-image: none !important;
  color: #FFFFFF;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/* Stopka - wszystkie nagłówki BIAŁE (nadpisuje globalne) */
.footer h1,
.footer h2,
.footer h3,
.footer h4,
.footer h5,
.footer h6,
.container-footer h1,
.container-footer h2,
.container-footer h3,
.container-footer h4,
.container-footer h5,
.container-footer h6 {
  color: #FFFFFF !important;
}

/* Stopka - teksty i linki białe */
.footer a {
  color: #FFFFFF;
}

.footer a:hover {
  color: rgba(255, 255, 255, 0.8);
}

/* Ukryj ikony edycji */
.icon-edit,
.icon-cog,
.jicons,
.jicon-edit,
a[href*="task=article.edit"],
a[href*="task=edit"],
.edit-icon,
.icons-edit,
dd.edit-icon,
.page-header .dropdown {
  display: none !important;
}

/* ============================================================
   BANNER SECTION - Moduł SVG w pozycji top-a
   ============================================================ */

/* Pozycja top-a - pełna szerokość, czerwone tło */
.container-top-a {
  background-color: rgb(90, 13, 26) !important; /* Stonowana czerwień AGH - elegancki bordowy */
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
}

/* Ukryj card wrapper wewnątrz top-a */
.container-top-a .card,
.container-top-a .card-body {
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Moduł w top-a - centruj i bez paddingu */
.container-top-a > .grid-child {
  text-align: center !important;
  padding: 0 !important;
}

/* SVG w top-a - responsywny */
.container-top-a img {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
}

/* Mobile - mniejszy banner */
@media (max-width: 991px) {
  /* Banner 75% szerokości na mobile */
  .container-top-a img {
    max-width: 75% !important;
  }
}

/* ============================================================
   AGH RED BACKGROUND CLASS
   ============================================================ */

.agh-red-bg,
article.agh-red-bg {
  background-color: #7A1428 !important;
  color: #FFFFFF !important;
}

.agh-red-bg h1,
.agh-red-bg h2,
.agh-red-bg h3,
.agh-red-bg h4,
.agh-red-bg h5,
.agh-red-bg h6,
article.agh-red-bg h1,
article.agh-red-bg h2,
article.agh-red-bg h3,
article.agh-red-bg h4,
article.agh-red-bg h5,
article.agh-red-bg h6 {
  color: #FFFFFF !important;
}

.agh-red-bg p,
.agh-red-bg div,
.agh-red-bg span,
article.agh-red-bg p,
article.agh-red-bg div {
  color: #FFFFFF;
}
.edit-icon,
.icons-edit,
dd.edit-icon,
.page-header .dropdown {
  display: none !important;
}

/* ============================================================
   BANNER SECTION - Moduł SVG w pozycji top-a
   ============================================================ */

/* Pozycja top-a - pełna szerokość, czerwone tło */
.container-top-a {
  background-color: rgb(90, 13, 26) !important; /* Stonowana czerwień AGH - elegancki bordowy */
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
}

/* Ukryj card wrapper wewnątrz top-a */
.container-top-a .card,
.container-top-a .card-body {
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Moduł w top-a - centruj i bez paddingu */
.container-top-a > .grid-child {
  text-align: center !important;
  padding: 0 !important;
}

/* SVG w top-a - responsywny */
.container-top-a img {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
}

/* Mobile - mniejszy banner */
@media (max-width: 991px) {
  /* Banner 75% szerokości na mobile */
  .container-top-a img {
    max-width: 75% !important;
  }
}

/* ============================================================
   AGH RED BACKGROUND CLASS
   ============================================================ */

.agh-red-bg,
article.agh-red-bg {
  background-color: #7A1428 !important;
  color: #FFFFFF !important;
}

.agh-red-bg h1,
.agh-red-bg h2,
.agh-red-bg h3,
.agh-red-bg h4,
.agh-red-bg h5,
.agh-red-bg h6,
article.agh-red-bg h1,
article.agh-red-bg h2,
article.agh-red-bg h3,
article.agh-red-bg h4,
article.agh-red-bg h5,
article.agh-red-bg h6 {
  color: #FFFFFF !important;
}

.agh-red-bg p,
.agh-red-bg div,
.agh-red-bg span,
article.agh-red-bg p,
article.agh-red-bg div {
  color: #FFFFFF;
}

/* ============================================================
   MOBILE - HAMBURGER MENU
   ============================================================ */

/* ============================================================
   MOBILE - HAMBURGER MENU (MINIMAL CLEAN VERSION)
   ============================================================ */
@media (max-width: 991px) {
  /* Mobile hamburger - CLEAN VERSION bez auto-expand */
  
  /* Hamburger button */
  .header .navbar-toggler {
    display: block !important;
  }
  
  /* Navbar collapse - absolute overlay, ZAMKNIĘTE domyślnie */
  .header .navbar-collapse {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    width: 100% !important;
    background-color: #00693C !important;
    z-index: 1000 !important;
    padding: 15px !important;
  }
  
  /* Menu links */
  .header .navbar-nav .nav-link {
    color: #FFFFFF !important;
    padding: 10px 15px !important;
  }
}

/* Nadpisanie Cassiopeia .navbar-expand-lg - MOBILE TYLKO */
/* ============================================================
   BANNER - CZERWONE TŁO AGH Z SVG
   ============================================================ */
.container-banner {
  background-color: #5A0D1A !important; /* Stonowana czerwień AGH (Burgund) */
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 20px 0 !important;
  text-align: center !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.container-banner img {
  width: 90% !important;
  max-width: 1400px !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
  
  /* ANIMACJA - Wydłużona do 3s dla płynności */
  opacity: 0;
  animation: svgFadeIn 3s ease-in-out forwards;
}

/* Mobile - mniejszy banner */
@media (max-width: 991px) {
  .container-banner {
    padding: 15px 0 !important;
    background-color: #5A0D1A !important; /* Stonowana czerwień AGH (Burgund) */
  }
  
  .container-banner img {
    /* Upewniamy się, że obrazek nie wychodzi poza ekran */
    width: auto !important;
    max-width: 65% !important;
    
    /* ANIMACJA - Wydłużona do 3s dla płynności */
    opacity: 0;
    animation: svgFadeIn 3s ease-in-out forwards;
  }
}

/* ============================================================
   BANNER ANIMATIONS - tło wysuwa się, potem SVG fade in
   ============================================================ */
@keyframes bannerSlideDown {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes svgFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* ============================================================
   SEKCJA: SPONSORZY - Usunięcie ramki i separatory
   ============================================================ */

/* Usunięcie ramki z kontenera sponsorów */
.bottom-a.card {
  border: none !important;
  box-shadow: none !important;
}

/* ============================================================
   RSFORM - Custom Arrow Buttons
   ============================================================ */
/* ============================================================
   RSFORM - Custom Arrow Buttons & Fixes
   ============================================================ */
   
/* Ensure buttons are clickable and not blocked */
.rsform-button,
button[id*="Next"],
button[onclick*="rsfp_changePage"] {
  cursor: pointer !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 10 !important;
}

/* Fix for disabled state */
.rsform-button:disabled {
  pointer-events: none !important;
  opacity: 0.5 !important;
}

.custom-arrow-btn {
  cursor: pointer !important;
  pointer-events: auto !important;
  display: inline-block !important;
  padding: 10px 30px !important;
  font-size: 1.1em !important;
  border: none !important;
  background-color: #00693C !important;
  color: #FFFFFF !important;
  border-radius: 5px !important;
  transition: background-color 0.3s ease !important;
}

.custom-arrow-btn:hover {
  background-color: #004d2a !important;
  color: #FFFFFF !important;
}

.custom-arrow-btn:active,
.custom-arrow-btn:focus {
  outline: none !important;
  box-shadow: 0 0 5px rgba(0, 105, 60, 0.5) !important;
}

/* Hide PREV buttons in RSForm */
.rsform-prev-button,
button[name*="form[prev]"],
input[value="WSTECZ"],
input[value="< WSTECZ"],
button[id*="Prev"] {
  display: none !important;
}

/* Separator między kategoriami sponsorów - cienka linia antracyt */
.sponsor-tier {
  padding-bottom: 40px !important;
  margin-bottom: 40px !important;
}

.sponsor-tier:not(:last-child) {
  border-bottom: 0.5px solid #3A3A3A !important;
}

/* ============================================================

/* ============================================================
   SEKCJA: MOBILE - Hamburger Icon + Menu
   (Cleaned up broken/orphaned CSS block)
   ============================================================ */

@media (max-width: 767px) {
  /* Menu mobile - większa czcionka 150% */
  body .header .navbar-collapse .nav-item a,
  body .header .navbar-collapse .mod-menu a {
    font-size: 1.5em !important;
  }
  body.site footer.footer,
  body.site footer.container-footer,
  body.site .footer,
  body.site .container-footer,
  body footer.footer,
  body footer.container-footer,
  body .footer,
  body .container-footer,
  .footer,
  .container-footer,
  footer.footer,
  footer.container-footer {
    background-color: #00693C !important;
    background-image: none !important;
    background: #00693C !important;
  }
}

/* ============================================================
   Hamburger - simple white color, let Joomla handle the icon
   ============================================================ */
.header .navbar-toggler {
  color: #FFFFFF !important;
  border-color: #FFFFFF !important;
}

.header .navbar-toggler .icon-menu::before {
  color: #FFFFFF !important;
}

/* ============================================================
   BRUTALNE WYŁĄCZENIE ::after i ::before DLA MENU - NA KOŃCU PLIKU
   Musi być ostatnie żeby nadpisać template.css
   ============================================================ */
/* Wyłączenie ::after na <li> - TO TUTAJ JEST ZIELONA KRESKA! */
.container-header .metismenu > li::after,
.container-header .metismenu > li:hover::after,
.container-header .metismenu > li.active::after,
.container-header .metismenu > li.current::after,
.header .navbar-nav li::after,
.header .navbar-nav li:hover::after,
.navbar-nav .nav-item::after,
.navbar-nav .nav-item:hover::after,
nav li::after,
nav li:hover::after,
/* Wyłączenie ::after na <a> wewnątrz <li> */
.container-header .metismenu > li > a::after,
.container-header .metismenu > li > a:hover::after,
.container-header .metismenu > li:hover > a::after,
.container-header .metismenu > li.active > a::after,
.container-header .metismenu > li.current > a::after,
.header .navbar-nav li > a::after,
.header .navbar-nav li > a:hover::after,
.header .navbar-nav li:hover > a::after,
.navbar-nav .nav-item > a::after,
.navbar-nav .nav-item > a:hover::after,
.navbar-nav .nav-item:hover > a::after,
nav li > a::after,
nav li > a:hover::after {
  display: none !important;
  content: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* ============================================================
   FONT BOLD NA HOVER - MAKSYMALNY PRIORYTET (na końcu pliku)
   BLOCK REMOVED: Causing layout shift on active items.
   Replaced by Text-Shadow method above.
   ============================================================ */
/*
.header .navbar-nav .nav-item a:hover,
...
*/

/* ============================================================
   CUSTOM FORM STYLING - RSFORM PRO
   Checkboxes replaced with images & Custom Select Arrows
   ============================================================ */

/* Style dla Checkboxów (celujemy bezpośrednio w input, bo klasa jest nadana jemu) */
input[type="checkbox"].check-lotka {
    appearance: none !important;
    -webkit-appearance: none !important;
    
    /* PUSTY BOX (niezaznaczony) */
    width: 25px !important;
    height: 25px !important;
    
    background-color: #ffffff !important; /* Białe tło */
    border: 1px solid #4a4a4a !important; /* Grafitowa ramka */
    border-radius: 4px !important;
    
    background-image: none !important; /* BRAK obrazka lotki */
    
    cursor: pointer;
    vertical-align: middle;
    margin-right: 15px;
    box-shadow: none !important;
    outline: none !important;
    transition: all 0.2s ease;
    flex-shrink: 0 !important;
}

/* Stan zaznaczony - POJAWIA SIĘ LOTKA + RAMKA ZOSTAJE */
input[type="checkbox"].check-lotka:checked {
    /* Zostawiamy białe tło i ramkę */
    background-color: #ffffff !important;
    border: 1px solid #4a4a4a !important; /* Grafitowa ramka */
    
    /* Obrazek lotki */
    background-image: url('/images/check_lotka_2.svg') !important;
    background-size: 100% !important; /* Lotka wypełnia cały box (brak paddingu) */
    background-repeat: no-repeat !important;
    background-position: center !important;
    
    /* Reset transformacji */
    transform: none !important;
}

/* Strzałka dla dropdowna - RESET (user request: usunąć custom strzałkę) */
select.select-strzalka {
    /* Przywracamy domyślny wygląd przeglądarki */
    appearance: auto !important;
    -webkit-appearance: auto !important;
    background-image: none !important;
    padding-right: 12px !important;
}

/* ============================================================
   STYLIZACJA PRZYCISKU "WYŚLIJ" (BTN PRIMARY) i STRZAŁEK
   ============================================================ */
   
/* Nadpisanie kolorów Bootstrapa na AGH Green */
.btn-primary, 
.rsform-submit-button,
.custom-arrow-btn {
    background-color: #00693C !important;
    border-color: #00693C !important;
    color: #FFFFFF !important;
    font-weight: 700 !important;
    padding: 12px 60px 12px 30px !important; /* Więcej miejsca z prawej na strzałkę */
    position: relative !important;
    transition: all 0.3s ease !important;
}

/* Hover / Focus / Active - Ciemniejszy zielony, bez fioletu */
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.rsform-submit-button:hover, .rsform-submit-button:focus, .rsform-submit-button:active,
.custom-arrow-btn:hover, .custom-arrow-btn:focus, .custom-arrow-btn:active {
    background-color: #004d2c !important;
    border-color: #004d2c !important;
    box-shadow: none !important; /* Usuwa niebieską poświatę focusa */
    color: #FFFFFF !important;
}

/* Biała strzałka na przycisku (::after) */
.btn-primary::after,
.rsform-submit-button::after,
.custom-arrow-btn::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px; /* Duża strzałka */
    height: 30px;
    background-image: url('/images/bad_arrow_2_www.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    /* Odwrócenie kolorów (czarna strzałka -> biała) */
    filter: brightness(0) invert(1);
    pointer-events: none;
}

/* ============================================================
   LINIE ROZDZIELAJĄCE - SEPARATORY SEKCYJNE
   ============================================================ */

/* Linia pod polem Telefon (koniec sekcji danych kontaktowych) */
#rsform-row-Telefon,
.rsform-block-telefon {
    border-bottom: 1px solid #e0e0e0 !important; /* Bardzo jasna szara */
    padding-bottom: 25px !important;
    margin-bottom: 25px !important;
}

/* Linie pod grupami checkboxów i polami warunkowymi */
/* TypGry + pola partnera to jedna grupa - linia dopiero pod PartnerNazwisko */
#rsform-row-PartnerNazwisko, .rsform-block-partnernazwisko,
#rsform-row-ChcePakiet, .rsform-block-chcepakiet,
#rsform-row-Nocleg, .rsform-block-nocleg {
    border-bottom: 1px solid #e0e0e0 !important; /* Bardzo jasna szara */
    padding-bottom: 25px !important;
    margin-bottom: 25px !important;
}

/* TypGry bez linii - będzie część grupy z polami partnera */
#rsform-row-TypGry, .rsform-block-typgry {
    border-bottom: none !important;
    padding-bottom: 15px !important;
    margin-bottom: 0 !important;
}

/* Pola partnera bez górnego marginesu - przylegają do TypGry */
#rsform-row-PartnerImie, .rsform-block-partnerimie {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Większy odstęp między etykietą (pytaniem) a checkboxami/opcjami */
.rsform-block-typgry > .form-label,   #rsform-row-TypGry > .form-label,
.rsform-block-chcepakiet > .form-label, #rsform-row-ChcePakiet > .form-label,
.rsform-block-nocleg > .form-label,   #rsform-row-Nocleg > .form-label,
#rsform-row-TypGry label, 
#rsform-row-ChcePakiet label,
#rsform-row-Nocleg label {
    margin-bottom: 15px !important;
    display: block !important;
}

/* Wyróżniony kafelek informacji o grach podwójnych (gry_podwone_info) */
#rsform-row-gry_podwone_info,
.rsform-block-gry-podwone-info,
.rsform-block-gry_podwone_info {
    position: relative !important; /* Niezbędne do pozycjonowania linii */
    background-color: #edf7ed !important; /* Bardzo jasny pastelowy zielony */
    border: 1px solid #c2e0c6 !important; /* Subtelna zielona ramka */
    border-left: 5px solid #00693C !important; /* Akcent AGH Green */
    border-radius: 4px !important;
    padding: 15px 20px !important;
    margin-top: 10px !important;
    margin-bottom: 50px !important; /* Zwiększony margines dolny na linię */
}

/* Linia rozdzielająca pod kafelkiem (pseudo-element) */
#rsform-row-gry_podwone_info::after,
.rsform-block-gry-podwone-info::after,
.rsform-block-gry_podwone_info::after {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    bottom: -25px; /* Linia w połowie marginesu dolnego */
    width: 100%;
    height: 1px;
    background-color: #e0e0e0; /* Kolor separatora (jasnoszary) */
}

/* Stylizacja tekstu wewnątrz kafelka */
#rsform-row-gry_podwone_info p,
.rsform-block-gry_podwone_info p,
.rsform-block-gry_podwone_info > p {
    margin: 0 0 5px 0 !important;
    padding: 0 !important;
    color: #000 !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
}

#rsform-row-gry_podwone_info p:last-child,
.rsform-block-gry_podwone_info p:last-child {
    margin-bottom: 0 !important;
}

/* ============================================================
   FONT SIZE: Lato 16px w formularzach RSForm
   Elementy z czcionką Lato (body text) mają 16px
   Nagłówki (h1-h6, Josefin Sans) pozostają bez zmian
   ============================================================ */

/* Paragrafy w labelach pól (opisy Nocleg, Impreza) */
.form-label p,
.formControlLabel p,
span.form-label p {
    font-size: 16px !important;
    line-height: 1.5 !important;
}

/* Nagłówki h5 w labelach - zmniejszony odstęp do następnej linii */
.form-label h5,
.formControlLabel h5,
span.form-label h5 {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Ukrycie <br> bezpośrednio po h5 (redukuje odstęp) */
.form-label h5 + br,
.formControlLabel h5 + br {
    display: none !important;
}

/* Separator przed sekcją Impreza */
.rsform-block-impreza,
#rsform-row-Impreza {
    padding-top: 20px !important;
    margin-top: 20px !important;
    border-top: 1px solid #e0e0e0 !important;
}

/* ULTRA-WYMUSZENIE dla całej sekcji Impreza (nadpisanie Bootstrap) */
.rsform-block-impreza,
.rsform-block-impreza *,
.rsform-block-impreza .formControls,
.rsform-block-impreza fieldset,
.rsform-block-impreza .rsfp-fieldset,
.rsform-block-impreza .form-check,
.rsform-block-impreza .form-check-inline,
.rsform-block-impreza input,
.rsform-block-impreza label {
    display: revert !important;
    visibility: visible !important;
    opacity: 1 !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    position: static !important;
}

/* Przywróć flexbox dla containerów checkbox */
.rsform-block-impreza .form-check,
.rsform-block-impreza .form-check-inline {
    display: flex !important;
    clear: none !important;
}

/* Fieldset block */
.rsform-block-impreza fieldset,
.rsform-block-impreza .rsfp-fieldset {
    display: block !important;
}

/* Checkboxy i labele inline */
.rsform-block-impreza input[type="checkbox"],
.rsform-block-impreza .form-check-input {
    display: inline-block !important;
    width: 25px !important;
    height: 25px !important;
}

.rsform-block-impreza label,
.rsform-block-impreza .form-check-label {
    display: inline-block !important;
}

.rsform-block-impreza .rsfp-fieldset legend {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
}

/* Tekst bezpośrednio w spanach label (po <br>) */
.form-label,
.formControlLabel {
    font-size: 16px !important;
}

/* Etykiety checkboxów */
.form-check-label {
    font-size: 16px !important;
}

/* Pola input i textarea */
#userForm input[type="text"],
#userForm input[type="email"],
#userForm input[type="tel"],
#userForm textarea,
#userForm select {
    font-size: 16px !important;
}

/* Zmniejszenie odstępów między wierszami w opisach */
.form-label p,
.formControlLabel p {
    margin-bottom: 4px !important;
    line-height: 1.3 !important;
}

/* Separator przed sekcją ChcePakiet (Koszulka jubileuszowa) */
.rsform-block-chcepakiet {
    padding-top: 20px !important;
    margin-top: 20px !important;
    border-top: 1px solid #e0e0e0 !important;
}

/* ============================================================
   NAPRAWA UKŁADU CHECKBOXÓW (MULTI-LINE)
   ============================================================ */
/* Wymuszenie Flexboxa dla kontenera checkboxa i etykiety */
/* Dotyczy: WhatsApp, TypGry, Pakiety, Nocleg, Impreza, GryPokazowe, PreferencjePokazowe */
.rsform-block-whatsapp .form-check,   #rsform-row-WhatsApp .form-check,
.rsform-block-typgry .form-check,     #rsform-row-TypGry .form-check,
.rsform-block-chcepakiet .form-check, #rsform-row-ChcePakiet .form-check,
.rsform-block-nocleg .form-check,     #rsform-row-Nocleg .form-check,
.rsform-block-impreza .form-check,    #rsform-row-Impreza .form-check,
.rsform-block-grypokazowe .form-check, #rsform-row-GryPokazowe .form-check,
.rsform-block-preferencjepokazowe .form-check, #rsform-row-PreferencjePokazowe .form-check,
.rsform-block-whatsapp .form-check-inline,
.rsform-block-typgry .form-check-inline,
.rsform-block-chcepakiet .form-check-inline,
.rsform-block-nocleg .form-check-inline,
.rsform-block-impreza .form-check-inline,
.rsform-block-grypokazowe .form-check-inline,
.rsform-block-preferencjepokazowe .form-check-inline {
    display: flex !important;
    align-items: flex-start !important; /* Wyrównanie do góry (aby tekst nie opadał) */
    padding-left: 0 !important; /* Resetujemy padding Bootstrapa */
    margin-bottom: 15px !important; /* Odstęp między opcjami */
    clear: none !important; /* FIX: wyłączam clear:left który wypychał checkboxy */
}



/* Dostosowanie samego Inputa (Checkboxa) wewnątrz Flexa */
.rsform-block-whatsapp .form-check-input,
.rsform-block-typgry .form-check-input,
.rsform-block-chcepakiet .form-check-input,
.rsform-block-nocleg .form-check-input,
.rsform-block-impreza .form-check-input,
.rsform-block-grypokazowe .form-check-input,
.rsform-block-preferencjepokazowe .form-check-input {
    float: none !important; /* Wyłączamy float Bootstrapa */
    margin-left: 0 !important; /* Wyłączamy ujemny margines */
    margin-right: 12px !important; /* Odstęp od tekstu */
    margin-top: 3px !important; /* Optyczna korekta w pionie */
    flex-shrink: 0 !important; /* Zapobiega zgniataiu checkboxa */
}

/* Etykieta obok checkboxa */
.rsform-block-whatsapp .form-check-label,
.rsform-block-typgry .form-check-label,
.rsform-block-chcepakiet .form-check-label,
.rsform-block-nocleg .form-check-label,
.rsform-block-impreza .form-check-label,
.rsform-block-grypokazowe .form-check-label,
.rsform-block-preferencjepokazowe .form-check-label {
    padding-top: 2px !important; /* Optyczna korekta tekstu w pionie */
    line-height: 1.4 !important;
}

/* ============================================================
   UKRYCIE PRZYCISKU "PREV" (WSTECZ)
   ============================================================ */
/* Ukrywa przycisk "Poprzedni" w formularzach, aby zapobiec cofaniu 
   się do ekranu wpisywania kodu */
.rsform-button-prev,
button.rsform-button-prev,
input.rsform-button-prev {
    display: none !important;
}

/* ============================================================
   UKRYCIE BŁĘDÓW WALIDACJI przed pierwszym submitem
   ============================================================ */
/* Zapobiega wyświetlaniu czerwonych błędów walidacji zanim user 
   w ogóle wypełni formularz. Klasa .was-submitted dodawana przez JS 
   UWAGA: NIE ukrywamy .is-invalid (inputy), tylko komunikaty błędów 
   Dodano .formError bo to WEWNĘTRZNY span który nadpisuje .formValidation 
   
   FIX 2026-02-12: Ukrywaj TYLKO błędy formularza (Page 1), 
   NIE ukrywaj błędów kodu dostępu (Page 0) */
#userForm:not(.was-submitted) #rsform_5_page_1 .formValidation,
#userForm:not(.was-submitted) #rsform_5_page_1 .formError,
#userForm:not(.was-submitted) #rsform_5_page_1 .formControlError,
#userForm:not(.was-submitted) #rsform_5_page_1 .rsform-error {
    display: none !important;
}

/* ZAWSZE pokazuj błędy walidacji kodu dostępu (Page 0) */
#userForm #rsform_5_page_0 .formValidation,
#userForm #rsform_5_page_0 .formError,
#userForm #rsform_5_page_0 .formControlError,
#userForm #rsform_5_page_0 .rsform-error {
    display: block !important;
    visibility: visible !important;
}

/* NADPISZ RSForm visibility:hidden - POKAŻ błędy po submicie */
#userForm.was-submitted .formValidation,
#userForm.was-submitted .formError {
    visibility: visible !important;
}

/* NADPISZ visibility na CAŁEJ hierarchii RSForm (cascade przez wszystkie nested divs) */
#userForm.was-submitted .formContainer,
#userForm.was-submitted .formContainer > *,
#userForm.was-submitted .row,
#userForm.was-submitted .col-md-12,
#userForm.was-submitted .rsform-block,
#userForm.was-submitted .formControls {
    visibility: visible !important;
}

/* Ukryj czerwone ramki i ikony Bootstrap .is-invalid przed submitem */
/* WYKLUCZAMY checkboxy - mają własne tło (lotka) */
#userForm:not(.was-submitted) input.is-invalid:not([type="checkbox"]),
#userForm:not(.was-submitted) select.is-invalid {
    border-color: #dee2e6 !important; /* Neutralny kolor Bootstrap */
    background-image: none !important; /* Usuń wykrzyknik (ale NIE lotkę!) */
}

/* Dla checkboxów - tylko neutralna ramka, BEZ usuwania background-image */
#userForm:not(.was-submitted) input[type="checkbox"].is-invalid {
    border-color: #4a4a4a !important; /* Grafitowa ramka (jak normalnie) */
}

/* Ukryj czerwony tekst przy dropdownach */
#userForm:not(.was-submitted) .is-invalid,
#userForm:not(.was-submitted) .is-invalid option {
    color: inherit !important; /* Przywróć normalny kolor tekstu */
}

/* Ukryj czerwony tekst przy labelach checkboxów */
#userForm:not(.was-submitted) .is-invalid ~ label,
#userForm:not(.was-submitted) .is-invalid + label {
    color: inherit !important; /* Przywróć normalny kolor labela */
}

/* ============================================================
   FIX: Menu na stronie RSForm Thank You Message
   ============================================================ */
/* Napraw rozjechane menu gdy wyświetla się komunikat podziękowania */
body:has(.rsform-thankyou-wrap) .header,
body:has(.rsform-thankyou-button) .header {
    position: relative !important;
    z-index: 1000 !important;
}

body:has(.rsform-thankyou-wrap) .navbar-collapse,
body:has(.rsform-thankyou-button) .navbar-collapse {
    position: static !important;
}
/* ============================================================
   PHOCA GALLERY - Ukrycie bannera i RSS + Wyśrodkowanie miniaturek
   ============================================================ */
/* Ukryj banner "60 LAT SEKCJI BADMINTONA" na stronach galerii */
.com_phocagallery .container-banner {
    display: none !important;
}

/* Ukryj wszystkie linki RSS feed (pomarańczowa ikona w rogu) */
a[type="application/rss+xml"],
a[href*="format=feed"],
link[type="application/rss+xml"] + a,
.feed-icon,
[class*="rss-"],
[class*="feed-"] {
    display: none !important;
}

/* Wyśrodkuj miniaturki w kontenerze galerii (masonry layout) */
.pg-photoswipe.pg-msnr-container.pg-category-items-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px; /* Odstęp między miniaturkami */
}

.pg-item-box {
    flex: 0 0 auto; /* Nie rozciągaj elementów */
}

/* Przycisk uploadu zdjęć w galerii dla grupy Zawodnicy */
.pg-upload-button .btn {
    background-color: #00693C; /* Zielony AGH */
    color: #FFFFFF;
    border: none;
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 8px;
    display: inline-block;
    font-weight: 600;
    transition: background-color 0.3s ease;
}

.pg-upload-button .btn:hover {
    background-color: #004d2a; /* Ciemniejszy zielony na hover */
    color: #FFFFFF;
    text-decoration: none;
}

/* PHOCA GALLERY - Ukryj upload tabs w widoku galerii */
.phTabs {
    display: none !important;
}

/* PHOCA GALLERY - Przycisk powrotu do galerii w upload form */
.pg-upload-return {
  text-align: center;
  margin-top: 20px;
  padding-top: 15px;
  border-top: 1px solid #ddd;
}

.pg-upload-return a {
  background-color: #00693C;
  color: #FFFFFF;
  font-weight: 500;
  transition: background-color 0.3s ease;
  position: relative;
}

.pg-upload-return a:hover {
  background-color: #004d2a;
}

/* Shared layout for upload buttons */
.plupload_button,
.pg-upload-return a {
  width: 300px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  height: 50px !important;
  padding: 0 20px !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  margin: 0 !important;
}

/* PHOCA GALLERY - Page Heading (H4) customization */
#phocagallery-ucp h4 {
  font-size: 1.5rem;         /* Rozmiar czcionki (24px przy default 16px) - większy niż H5 */
  font-weight: 600;          /* Grubość */
  color: #00693C;            /* Zielony AGH */
  margin-bottom: 1.5rem;     /* Odstęp od treści poniżej */
  margin-top: 0;             /* Brak odstępu góra */
  line-height: 1.3;          /* Wysokość linii */
  text-align: left;          /* Wyrównanie */
}

/* PHOCA GALLERY - Warunki techniczne uploadu (H6) - czarny tekst */
#phocagallery-ucp h6,
#phocagallery-multipleupload h6 {
  font-size: 0.875rem;       /* Mniejszy rozmiar (14px) */
  font-weight: 400;          /* Normalna grubość */
  color: #000000;            /* Czarny (nie zielony!) */
  margin-bottom: 1rem;       /* Odstęp od treści poniżej */
  margin-top: 0;             /* Brak odstępu góra */
  line-height: 1.4;
  text-align: left;
}

/* PHOCA GALLERY - Info o autoryzacji (zielony H4 po warunkach technicznych) */
#phocagallery-multipleupload h4.phoca-auth-notice {
  font-size: 1.5rem;         /* Jak zwykły H4 */
  font-weight: 600;          /* Pogrubiony */
  color: #00693C;            /* Zielony AGH */
  margin-bottom: 1.5rem;
  margin-top: 0.5rem;        /* Mały odstęp od warunków technicznych */
  line-height: 1.3;
  text-align: left;
}

.plupload_button > i,
.pg-upload-return a i {
  margin-right: 0.6rem;
}

@media (max-width: 768px) {
  .plupload_button,
  .pg-upload-return a {
    margin: 0 auto 10px !important;
  }
}

.plupload_buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 0 auto 10px !important;
  width: 100%;
}

/* Custom button class - zielony AGH */
.btn-phoca-return {
  background-color: #00693C !important;
  border-color: #00693C !important;
  color: #FFFFFF !important;
  padding-right: 50px !important;
  transition: background-color 0.3s ease !important;
}

.btn-phoca-return::after {
  content: "";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  width: 40px;
  height: 40px;
  background-image: url('/images/bad_arrow_2_www.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  filter: invert(100%);
}

/* PLUPLOAD - Przycisk "Rozpocznij przesyłanie zdjęć" (tłumaczenie w i18n/pl.js) */
.plupload_button.plupload_start {
    background-color: #00693C !important;
    border-color: #00693C !important;
    color: #FFFFFF !important;
    height: 50px !important;
    line-height: 50px !important;
  padding: 0 70px 0 20px !important;
    transition: background-color 0.3s ease !important;
    position: relative !important;
}

.plupload_button.plupload_start::after {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
  width: 40px;
  height: 40px;
    background-image: url('/images/bad_arrow_2_www.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.plupload_button.plupload_start:hover:not(.plupload_disabled) {
    background-color: #004d2a !important;
    border-color: #004d2a !important;
    color: #FFFFFF !important;
    text-decoration: none !important;
}

/* PLUPLOAD - Przycisk "Dodaj obrazy" */
.plupload_button.plupload_add {
  background-color: #00693C !important;
  border-color: #00693C !important;
  color: #FFFFFF !important;
  height: 50px !important;
  line-height: 50px !important;
  transition: background-color 0.3s ease !important;
  justify-content: center !important;
}

.plupload_button.plupload_add:hover {
    background-color: #004d2a !important;
    border-color: #004d2a !important;
    color: #FFFFFF !important;
    text-decoration: none !important;
}

/* ========================================
   CRITICAL CSS OVERRIDES - Bootstrap conflicts
   Added: 2026-02-09
   Purpose: Force black color and 16px font on form descriptions
   ======================================== */

/* Override Bootstrap .text-muted for RSForm descriptions */
small.form-text.text-muted.rsform-description,
.form-text.text-muted.rsform-description,
small.rsform-description.form-text {
    color: #000 !important;
    font-size: 16px !important;
}

/* Override heading styles for gry_podwone_info paragraph */
div#rsform-row-gry_podwone_info p,
div.rsform-block-gry_podwone_info p,
.rsform-block-gry_podwone_info > p,
#rsform-row-gry_podwone_info > p {
    color: #000 !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    margin: 0 0 5px 0 !important;
}

/* ============================================================
   SEKCJA: MAP OVERLAY - Glass Shield & Navigation Button
   DODANO: 2026-02-11 12:40
   ODPOWIEDZIALNOŚĆ: Blokada przesuwania map OpenStreetMap na mobile
   ============================================================ */

/* Map Container - relative positioning for absolute overlay */
.map-container {
    position: relative;
    width: 100%;
    margin-bottom: 15px; /* Space before nav button */
}

/* Glass Shield - transparent overlay to block map interactions */
.map-glass-shield {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
    background: transparent;
    pointer-events: none; /* Allow scroll, block drag/zoom */
    cursor: default;
}

/* Optional: Show visual hint on hover (desktop only) */
@media (min-width: 769px) {
    .map-glass-shield:hover {
        background: rgba(0, 105, 60, 0.03); /* Subtle green tint */
    }
}

/* Navigation Button - AGH green, full width on mobile */
.btn-naviguj {
    display: inline-block;
    width: 100%;
    padding: 16px 24px;
    margin: 0 0 25px 0;
    
    /* Colors: AGH green */
    background-color: #00693C !important;
    color: #FFFFFF !important;
    border: none;
    
    /* Typography */
    font-family: 'Lato', sans-serif;
    font-size: 18px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    
    /* Visual */
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    
    /* Flex for icon alignment */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Navigation Button - Hover effect (desktop) */
@media (min-width: 769px) {
    .btn-naviguj {
        width: auto; /* Not full width on desktop */
        min-width: 300px;
        margin: 0 auto 25px auto; /* Center on desktop */
    }
    
    .btn-naviguj:hover {
        background-color: #004d2a !important; /* Darker green */
        color: #FFFFFF !important;
        box-shadow: 0 6px 12px rgba(0,0,0,0.15);
        transform: translateY(-2px); /* Subtle lift */
    }
}

/* Navigation Button - Active state (click) */
.btn-naviguj:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* SVG icon inside button - ensure proper alignment */
.btn-naviguj svg {
    flex-shrink: 0; /* Don't shrink icon */
    margin-right: 8px;
}

/* Ensure iframes inside map-container are responsive */
.map-container iframe {
    width: 100%;
    height: 350px;
    border: none; /* Removed border - OpenStreetMap iframe has its own */
    border-radius: 0; /* Let OSM use its default styling */
}

/* Desktop: Larger map height */
@media (min-width: 769px) {
    .map-container iframe {
        height: 450px;
    }
}

/* ============================================================
   FORMID=6 (ZAWODNICY AZS) STYLING - 2026-02-12
   User requirements: 0.5px grafit separators, larger labels, centered fields
   ============================================================ */

/* HORIZONTAL SEPARATORS - 1px grafit (#4a5568) ONLY after Telefon onwards
   User requirement: No separators between Imię/Nazwisko/Email - first separator AFTER Telefon */
.rsform-block-numertelefonu,
.rsform-block-grypokazowesobota,
.rsform-block-imiepartnerapokazowego,
.rsform-block-nazwiskopartnerapokaz,
.rsform-block-turniejniedzielny,
.rsform-block-imiepartneradeblowego,
.rsform-block-nazwiskopartneradeblowego,
.rsform-block-wieczornaimpreza,
.rsform-block-koszulkajubileuszowa,
.rsform-block-rozmiar,
.rsform-block-zakwaterowanie {
    border-bottom: 1px solid #4a5568 !important;
    padding-bottom: 25px !important;
    margin-bottom: 25px !important;
}

/* No separator under submit button */
#rsform_6_page_0 .rsform-block-submitbutton {
    border-bottom: none !important;
}

/* LABEL SIZING - enlarge formControlLabel + left align above fields
   User requirement: Labels left-aligned, match field width (1320px) */
#rsform_6_page_0 .formControlLabel {
    font-size: 18px !important;
    font-weight: 600 !important;
    margin-bottom: 15px !important;
    display: block !important;
    color: #1f2937 !important;
    text-align: left !important;
    max-width: 1320px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* FIELD CENTERING & STRETCHING - match FormId=4 (Goście) layout */
#rsform_6_page_0 .formControls {
    max-width: 100% !important;
    width: 100% !important;
}

#rsform_6_page_0 .formBody {
    max-width: 100% !important;
    width: 100% !important;
}

#rsform_6_page_0 input[type="text"],
#rsform_6_page_0 input[type="email"],
#rsform_6_page_0 input[type="tel"],
#rsform_6_page_0 select {
    width: 100% !important;
    max-width: 1320px !important; /* Changed from 600px - match navbar width */
    margin: 0 auto !important;
    display: block !important;
    padding: 0.6rem 1rem !important; /* Changed from 12px 15px - match FormId=4 */
    font-size: 16px !important;
    border: 1px solid #ced4da !important; /* Changed from #d1d5db - match FormId=4 */
    border-radius: 8px !important;
    transition: border-color 0.3s ease !important;
}

#rsform_6_page_0 input[type="text"]:focus,
#rsform_6_page_0 input[type="email"]:focus,
#rsform_6_page_0 input[type="tel"]:focus,
#rsform_6_page_0 select:focus {
    border-color: #8893aa !important; /* Changed from #00693C - subtle gray-blue like FormId=4 */
    outline: none !important;
    box-shadow: 0 0 0 0.25rem rgba(136, 147, 170, 0.25) !important; /* Match FormId=4 focus */
}

/* CHECKBOX/RADIO SPACING */
#rsform_6_page_0 .formCheck {
    margin-bottom: 12px !important;
}

#rsform_6_page_0 .formCheck label {
    font-size: 16px !important;
    color: #374151 !important;
}

/* VALIDATION ERRORS STYLING */
#rsform_6_page_0 .formValidation {
    color: #dc2626 !important;
    font-size: 14px !important;
    margin-top: 5px !important;
    display: block !important;
}

/* SUBMIT BUTTON OVERRIDES - minimalist style like FormId=4 (Goście)
   User requirement: "minimalistycznie bez tych kurwa cieni przesadnych" */
#rsform_6_page_0 .rsform-submit-button {
    background-color: #00693C !important;
    color: #FFFFFF !important;
    padding: 12px 60px 12px 30px !important; /* Arrow space on right */
    font-size: 18px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    margin-top: 30px !important;
    width: auto !important;
    position: relative !important; /* For SVG arrow (global CSS) */
    /* Removed: box-shadow (too aggressive), text arrow (use global SVG instead) */
}

#rsform_6_page_0 .rsform-submit-button:hover {
    background-color: #004d2c !important;
    /* Removed: transform translateY, excessive box-shadow - minimalist hover */
}

/* WIECZORNA IMPREZA - REMOVED (now using inline CSS in Caption)
   User requirement: Title OUTSIDE yellow box, checkboxes BELOW box
   Implementation: Caption HTML updated with inline styles, CSS no longer needed */

/* RESPONSIVE - Mobile adjustments */
@media (max-width: 768px) {
    #rsform_6_page_0 .formControlLabel {
        font-size: 16px !important;
    }
    
    #rsform_6_page_0 input[type="text"],
    #rsform_6_page_0 input[type="email"],
    #rsform_6_page_0 input[type="tel"],
    #rsform_6_page_0 select {
        max-width: 100% !important;
        font-size: 14px !important;
    }
    
    #rsform_6_page_0 .rsform-submit-button {
        width: 100% !important;
        padding: 14px 20px !important;
        font-size: 16px !important;
    }
}
