/* font.css (modern baseline + legacy-friendly) */

:root{
  color-scheme: light;
  --text: #003366;
  --link: #AA0000;
  --bg: #FFFFFF;
  --focus: #1a73e8;
}

/* Minimalny reset bez „ciężkich” frameworków */
*,
*::before,
*::after{
  box-sizing: border-box;
}

html{
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body{
  margin: 10px 10px 20px;
  font-family: Verdana, Arial, Helvetica, sans-serif;
  font-size: 12px;
  line-height: 17px;
  background-color: var(--bg);
  color: var(--text);
}

/* Twoje tło */
.body_zim0a{
  background-image: url("img/zima2.jpg");
  background-repeat: repeat-x;
  background-position: top center;
}

/* Typografia bazowa */
p{ margin: 0; padding: 0; }
table, tr, td, th, ul, select, input, textarea{
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
td{
  vertical-align: top;
  text-align: left;
}

/* Linki globalne (poza menu) */
a:link,
a:active,
a:visited{
  color: var(--link);
  text-decoration: none;
}
a:hover,
a:focus{
  color: var(--link);
  text-decoration: underline;
}

/* Focus tylko dla elementów interaktywnych */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}

/* Nie pokazuj focus dla dużych kontenerów */
div:focus-visible,
table:focus-visible,
td:focus-visible,
tr:focus-visible{
  outline: none;
}

/* Formularze – odrobina porządku */
select, input, textarea{
  margin: 3px;
}
form{ margin: 5px 0 0; }

/* HR */
hr{ border: 0; border-top: 1px solid #ff0000; }

/* Klasy legacy (zostawione, bo mogą być używane w .raf) */
.wazne{ color: var(--link); font-weight: 700; }
.img_ramka{ border: 1px solid #D4D4D4; }
.ramka_wazne{
  border: 1px solid #249238;
  padding: 10px;
  background-color: #EDFFEA;
}

/* Separator pionowy/stopka – kompatybilnie */
.dzielnik_lewa_prawa{
  background-image: url("../img/kropki_vert.gif");
  background-repeat: repeat-y;
  background-position: 50% 50%;
  padding: 100px 0;
}
.dzielnik_stopka{
  background-image: url("../img/kropki_horiz.gif");
  background-repeat: repeat-x;
  padding: 0;
}

/* Preferencje użytkownika */
@media (prefers-reduced-motion: reduce){
  *{
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}


/* lepsza czytelność i focus */
.menu_box, .menu_list { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; }
.menu_list a { text-decoration:none; }
.menu_list a:hover { text-decoration: underline; }

a:focus { outline: 2px dotted #AA0000; outline-offset: 2px; }
img { border: 0; }

/* lepsza czytelność menu */
.menu_box, .menu_list{
  font-family: Verdana, Arial, Helvetica, sans-serif;
  font-size: 16px;
}

.menu_list a:hover{ text-decoration: underline; }

/* focus globalny (żeby było widać gdzie jesteś klawiaturą) */
a:focus{ outline:2px dotted #AA0000; outline-offset:2px; }

/* trochę nowocześniej, ale bez psucia reszty strony */
.menu_box, .menu_list{
  font-family: Verdana, Arial, Helvetica, sans-serif;
  font-size: 12px;
}

.menu_list a{ line-height: 1.20; }

/* ===========================
   A11Y: rozmiar tekstu + kontrast
   =========================== */

body { font-size: 11px; } /* Twoja baza */

body.font-size-1 { font-size: 10px; }
body.font-size-2 { font-size: 11px; } /* normal */
body.font-size-3 { font-size: 12px; }
body.font-size-4 { font-size: 13px; }
body.font-size-5 { font-size: 14px; }

/* dziedziczenie w starym layoucie */
body.font-size-1, body.font-size-2, body.font-size-3, body.font-size-4, body.font-size-5,
body.font-size-1 table, body.font-size-2 table, body.font-size-3 table, body.font-size-4 table, body.font-size-5 table,
body.font-size-1 td, body.font-size-2 td, body.font-size-3 td, body.font-size-4 td, body.font-size-5 td,
body.font-size-1 a, body.font-size-2 a, body.font-size-3 a, body.font-size-4 a, body.font-size-5 a {
  font-size: inherit;
  line-height: 1.55;
}

/* Kontrast: prosto i czytelnie */
body.contrast {
  background: #000 !important;
  color: #fff !important;
}

body.contrast a { color: #00e5ff !important; }
body.contrast a:hover, body.contrast a:focus { color: #ffff66 !important; }

body.contrast .okno_ogolne,
body.contrast .page,
body.contrast .news,
body.contrast .infobox,
body.contrast .start_nagl,
body.contrast .start_butas,
body.contrast .menu_osrodek,
body.contrast .menu {
  background: #000 !important;
  color: #fff !important;
}

/* Żeby nie ginęły ramki */
body.contrast .tab_ramka,
body.contrast .tab_ramka td,
body.contrast .tab_ramka_poziom,
body.contrast .tab_ramka_poziom td {
  border-color: #fff !important;
}

/* =========================
   A11Y: rozmiar tekstu
   ========================= */

/* Domyślnie u Ciebie było 11px — robimy 4 stopnie */
body.fs0 { font-size: 11px; }
body.fs1 { font-size: 12px; }
body.fs2 { font-size: 14px; }
body.fs3 { font-size: 16px; }

/* Pilnujemy, żeby linki i tabelki brały rozmiar z body */
body, table, td, th, p, li, a, span, div, input, select, textarea {
  font-size: inherit;
}

/* =========================
   A11Y: wysoki kontrast
   ========================= */
body.hc {
  background: #000 !important;
  color: #0ff !important;
}

body.hc a:link,
body.hc a:visited,
body.hc a:hover,
body.hc a:active {
  color: #0ff !important;
  text-decoration: underline;
}

body.hc .page_tytul,
body.hc .start_aktualnosci_tytul,
body.hc .news_tytul {
  color: #0ff !important;
  background: #000 !important;
  border-color: #0ff !important;
}
/* =========================================================
   FIX: nie pokazuj ramki focus na kontenerach (kliknięcie w treść)
   Zostaw focus na elementach interaktywnych (WCAG)
   ========================================================= */

/* 1) Domyślnie nie rysuj outline na "blokach" treści */
div:focus,
table:focus,
tr:focus,
td:focus,
p:focus,
span:focus,
img:focus {
  outline: none !important;
  box-shadow: none !important;
}

/* 2) Focus ma być widoczny na elementach interaktywnych */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid #1e90ff !important;  /* możesz zmienić kolor */
  outline-offset: 2px !important;
  box-shadow: none !important;
}

/* 3) Jeśli przeglądarka wspiera focus-visible, to tylko klawiatura */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible) {
  outline: none !important;
}

/* usuń ramkę focus z głównego kontenera treści */
#main:focus,
main:focus{
  outline: none !important;
  border: none !important;
  box-shadow: none !important;
}
#topBar{
  width: 700px;
  min-height: 26px;
  line-height: 1.3;
  margin: 0;
}

#topBarLeft{
  float: left;
  width: 250px;
  text-align: left;
  white-space: nowrap;
  color: #003366;
}

#topBarRight{
  float: right;
  text-align: right;
  color: #AA0000;
  white-space: nowrap;
}

#topBarRight .topLinks{
  display: inline-block;
  margin-right: 12px;
  white-space: nowrap;
}

#a11yBar{
  display: inline-block;
  white-space: nowrap;
}

#a11yBar .a11yBtn{
  display: inline-block;
  font-weight: bold;
  color: #AA0000;
  text-decoration: none;
  margin: 0 2px;
}

#a11yBar .a11yBtn:hover,
#a11yBar .a11yBtn:focus{
  text-decoration: underline;
}

.a11ySep{
  color: #666666;
  margin: 0 2px;
}
/* TRYB KONTRASTU – czytelny i spójny */

body.hc{
  background:#000 !important;
  color:#ffffff !important;
}

/* teksty artykułów */
body.hc td,
body.hc p,
body.hc li{
  color:#ffffff !important;
}

/* linki */
body.hc a{
  color:#ffff00 !important;
  text-decoration:underline;
}

/* hover */
body.hc a:hover{
  color:#00ffff !important;
}

/* nagłówki */
body.hc h1,
body.hc h2,
body.hc h3{
  color:#ffffff !important;
}

/* ramki sekcji */
body.hc table{
  border-color:#ffffff !important;
}

/* menu boczne */
body.hc #menu a{
  color:#ffff00 !important;
}

/* aktywna pozycja */
body.hc #menu .active{
  background:#222 !important;
}

/* focus klawiatury – bardzo ważne dla dostępności */
body.hc a:focus,
body.hc button:focus{
  outline:3px solid #ffff00;
  outline-offset:2px;
}
body.hc,
body.hc div,
body.hc span,
body.hc p,
body.hc td,
body.hc li,
body.hc font,
body.hc strong,
body.hc b,
body.hc u,
body.hc i {
  color:#ffffff !important;
}
body.contrast,
body.contrast div,
body.contrast span,
body.contrast p,
body.contrast td,
body.contrast li,
body.contrast font,
body.contrast strong,
body.contrast b,
body.contrast u,
body.contrast i {
  color: #ffffff !important;
}

body.contrast a:link,
body.contrast a:visited,
body.contrast a:active {
  color: #ffff00 !important;
  text-decoration: underline !important;
}

body.contrast a:hover,
body.contrast a:focus {
  color: #00ffff !important;
  text-decoration: underline !important;
}

body.contrast table,
body.contrast td,
body.contrast th {
  border-color: #ffffff !important;
}

body.contrast #topBarLeft,
body.contrast #topBarRight,
body.contrast #a11yBar .a11yBtn,
body.contrast .a11ySep {
  color: #ffff00 !important;
}

/* ===== aktualności – nowszy wygląd ===== */
.news-card{
  position:relative;
  background:#ffffff;
  border:1px solid #d7e2ec;
  border-radius:14px;
  box-shadow:0 10px 24px rgba(19,44,71,0.08);
  margin:0 0 22px 0;
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease;
}
.news-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(19,44,71,0.14);
}
.news-header{
  padding:16px 18px 12px 18px;
  background:linear-gradient(180deg,#ffffff 0%, #f7fbff 100%);
  border-bottom:1px solid #e7eef5;
}
.news-section{
  display:inline-block;
  font-size:11px;
  font-weight:bold;
  letter-spacing:.3px;
  color:#fff;
  padding:4px 10px;
  margin:0 0 8px 0;
  border-radius:999px;
  text-transform:uppercase;
}
.news-header-row{
  overflow:hidden;
}
.news-header-main{
  float:left;
  width:72%;
}
.news-meta{
  margin-top:4px;
  font-size:0.85em;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.news-meta .meta-item{
  display:inline-flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
}
.news-meta .meta-item + .meta-item{
  margin-left:10px;
}
.news-title{
  margin:0 0 6px 0;
  font-size:1.55em;
  line-height:1.22;
  font-weight:bold;
  position:relative;
  padding-bottom:8px;
  max-width:88%;
}
.news-accent{
  width:40px;
  height:3px;
  margin-top:8px;
  border-radius:2px;
}
.news-body{
  padding:18px 20px;
  font-size:1.15em !important;
  line-height:1.7;
  color:#173a5d;
}
.news-body:after,
.news-header-row:after{
  content:"";
  display:block;
  clear:both;
}
.news-image{
  float:right;
  margin:0 0 12px 18px;
  border:1px solid #e5edf5;
  border-radius:12px;
  padding:5px;
  background:#ffffff;
  box-shadow:0 6px 16px rgba(23,58,93,0.08);
}
.news-image img{
  display:block;
  max-width:230px;
  height:auto;
  border-radius:8px;
}
.news-footer{
  clear:both;
  padding:12px 18px 14px 18px;
  border-top:1px solid #e7eef5;
  background:#fbfdff;
  font-size:12px;
}
.news-footer .news-more{
  display:inline-block;
  color:#b02828;
  text-decoration:none;
  font-weight:600;
  padding:4px 10px;
  border-radius:999px;
  background:#fff5f5;
  border:1px solid #e6bcbc;
  font-size:0.9em;
}
.news-footer .news-more:hover{
  background:linear-gradient(180deg,#fff1f1 0%, #ffdede 100%);
  box-shadow:0 3px 8px rgba(170,0,0,0.12);
  transform:translateY(-1px);
  text-decoration:none;
}
.news-meta-label{
  color:#66717d;
}
.news-archive-title{
  text-align:center;
  margin:0 0 16px 0;
  line-height:1.4;
}
.news-archive-title b{
  letter-spacing:.2em;
}

/* ===== aktualności – finalne dopracowanie ===== */
.news-card{
  border:1px solid #e3ebf3;
}
.news-section{
  font-size:11px;
  letter-spacing:.3px;
  padding:4px 10px;
  margin:0 0 8px 0;
}
.news-header-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.news-header-main{
  float:none;
  width:auto;
  flex:1 1 auto;
  min-width:0;
}
.news-meta{
  margin-top:4px;
  font-size:0.85em;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.news-meta .meta-item{
  display:inline-flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
}
.news-title{
  margin:0 0 6px 0;
  font-size:1.55em;
  line-height:1.22;
  font-weight:bold;
  position:relative;
  padding-bottom:8px;
  max-width:88%;
}
.news-accent{
  width:40px;
  height:3px;
  margin-top:8px;
  border-radius:2px;
}
.news-image{
  border:1px solid #e5edf5;
}
.news-footer .news-more{
  display:inline-block;
  color:#b02828;
  text-decoration:none;
  font-weight:600;
  padding:4px 10px;
  border-radius:999px;
  background:#fff5f5;
  border:1px solid #e6bcbc;
  font-size:0.9em;
}
.news-footer .news-more:hover{
  background:#ffeaea;
  border-color:#d9a3a3;
  box-shadow:none;
  transform:none;
  text-decoration:none;
}
.news-meta-label{
  display:none;
}
.meta-icon{
  width:12px;
  height:12px;
  fill:currentColor;
  vertical-align:-2px;
}


/* =========================================================
   FINALNE DOPRACOWANIE UKŁADU STRONY
   - wyrównanie do jednej osi
   - lepsza belka A11Y / licznik
   - bez psucia działania A+, A, A-, kontrast
   ========================================================= */

/* główny układ 1000px wyśrodkowany */
table[width="1000"]{
  margin-left:auto !important;
  margin-right:auto !important;
}

/* prawa kolumna i treść mają tę samą optyczną oś */
table[width="700"]{
  margin-left:0 !important;
}

/* górna belka z licznikiem i A11Y */
#topBar{
  width:700px !important;
  min-height:24px !important;
  margin:0 0 4px 0 !important;
  line-height:1.35 !important;
}

#topBarLeft{
  float:left !important;
  width:250px !important;
  font-size:11px !important;
  white-space:nowrap !important;
}

#topBarRight{
  float:right !important;
  text-align:right !important;
  white-space:nowrap !important;
}

#topBarRight .topLinks{
  display:inline-block !important;
  margin-right:10px !important;
  white-space:nowrap !important;
}

#a11yBar{
  display:inline-block !important;
  white-space:nowrap !important;
}

#a11yBar .a11yBtn{
  display:inline-block !important;
  margin:0 2px !important;
  font-weight:bold !important;
  text-decoration:none !important;
}

#a11yBar .a11yBtn:hover,
#a11yBar .a11yBtn:focus{
  text-decoration:underline !important;
}

/* delikatniejsze tło treści po prawej */
.news-card{
  border-color:#e3ebf3 !important;
}
body.hc .news{
  background:#000 !important;
  color:#fff !important;
  border-color:#fff !important;
}

body.hc .news-title{
  color:#fff !important;
}

body.hc .news-body{
  color:#fff !important;
}

body.hc .news-meta{
  color:#0ff !important;
}

body.hc .news-more{
  background:#000 !important;
  color:#0ff !important;
  border:1px solid #0ff !important;
}
/* ===== kontrast dla systemu wiadomości ===== */

body.hc .news-card,
body.contrast .news-card{
  background:#000 !important;
  color:#fff !important;
  border-color:#fff !important;
}

body.hc .news-header,
body.hc .news-body,
body.hc .news-footer,
body.contrast .news-header,
body.contrast .news-body,
body.contrast .news-footer{
  background:#000 !important;
  color:#fff !important;
  border-color:#fff !important;
}

body.hc .news-title,
body.contrast .news-title{
  color:#fff !important;
}

body.hc .news-body,
body.contrast .news-body{
  color:#fff !important;
}

body.hc .news-meta,
body.contrast .news-meta{
  color:#0ff !important;
}

body.hc .news-footer .news-more,
body.contrast .news-footer .news-more{
  background:#000 !important;
  color:#0ff !important;
  border:1px solid #0ff !important;
}
.menu_list a{
  font-size:12px !important;
  line-height:1.15 !important;
}