@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

@font-face {
  font-family: Afronaut;
  src:  url('../fonts/eot/Afronaut.eot'); /* IE9 Compat Modes */
  src:  url('../fonts/eot/Afronaut.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
      url('../fonts/woff2/Afronaut.woff2') format('woff2'), /* Super Modern Browsers */
      url('../fonts/woff/Afronaut.woff') format('woff'); /* Pretty Modern Browsers */
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}



:root {
  --text-xs: 0.75rem;   /* 12px */
  --text-sm: 0.875rem;  /* 14px */
  --text-base: 1rem;    /* 16px */
  --text-md: 1.125rem;  /* 18px */
  --text-lg: 1.25rem;   /* 20px */
  --text-xlg: 1.375rem; /* 22px */
  --text-2xlg: 1.75rem; /* 28px */
  --text-xl: 2rem;      /* 32px */
  --text-2-5xl: 2.5rem;     /* 40px */
  --text-2xl: 3rem;     /* 48px */
  --text-5xl: 7rem;
  --text-6xl: 10rem;

  --space-xxs: 0.2rem; 
  --space-xs: 0.5rem;   /* 8px   - dla małych przerw, np. ikona obok tekstu */
  --space-sm: 0.75rem;  /* 12px  - (wyjątek z systemu 4px dla precyzji) paddingi małych przycisków */
  --space-md: 1rem;     /* 16px  - domyślny odstęp, np. między akapitami, standardowy padding */
  --space-lg: 1.5rem;   /* 24px  - większe odstępy, paddingi kart */
  --space-xl: 2rem;     /* 32px  - duże odstępy, np. między sekcjami na mobile */
  --space-2xl: 3rem;    /* 48px  - ogromne odstępy, np. marginesy głównych sekcji */
  --space-3xl: 4rem;    /* 64px  - odstępy strukturalne dla desktopu */
  --space-4xl: 5rem; /* 80px */
  --space-5xl: 6.25rem; /* 100px */

  --brand-violet: #784090;
  --brand-lime:   #DEF779;
  --brand-white:  #ffffff;
  --brand-black:  #000000;
  --brand-dark:   #222222;

  --bg-main:       var(--brand-violet); /* Fioletowe tło strony */
  --text-main:     var(--brand-white);  /* Biały tekst */
  --button-bg:     var(--brand-lime);   /* Limonkowe przyciski */
  --text-link: var(--brand-violet);
  --bg-surface: var(--brand-white); /* Normalnie: białe tło */
  --text-on-light: var(--brand-violet);
  --bg-yellow: #FFD700;
  --text-on-yellow: var(--brand-black);
  --text-lime: var(--brand-lime);
  
  /* UWAGA: Biały tekst na limonkowym tle to błąd WCAG! 
     Dlatego zakładam, że tekst na przycisku jest ciemny */
  --button-text:   var(--brand-violet);   
  
  /* Obramowania ukryte w standardowej wersji */
  --border-focus:  2px solid var(--brand-lime);
  --border-high-c: 1px solid transparent;   

  --dot-color: #fff;

  --pagination-active: var(--brand-lime);
  --pagination-link: var(--brand-white);

  --kat-red: #E42C14;
  --txt-kat-red: #fff;

  --kat-lime: var(--brand-lime);
  --kat-txt-lime: var(--text-on-light);

  --btn-lime: var(--brand-lime);
}

body.theme-high-contrast {
  --bg-main:       var(--brand-black); /* Smoliście czarne tło */
  --text-main:     #ffffff;            /* Jaskrawo żółty tekst (Standard WCAG AAA) */
  
  /* Przyciski też robimy żółto-czarne, żeby były maksymalnie widoczne */
  --button-bg:     #ffff00;
  --button-text:   var(--brand-black);
  --text-link: #ffff00;

  --bg-surface: #000000;    /* Białe sekcje stają się czarne */
  --text-on-light: #ffffff;

  --bg-yellow: #000000;
  --text-on-yellow: var(--brand-white);

  /* W trybie kontrastowym włączamy widoczne obramowania kontenerów */
  --border-high-c: 2px solid #ffff00;
  --border-focus:  3px dashed #ffffff; /* Inny styl focusa dla odróżnienia */

  --pagination-active: var(--brand-white);
  --pagination-link: #ffff00;

  --kat-red: #000000;
  --txt-kat-red: var(--brand-white);

  --kat-lime: #000000;
  --kat-txt-lime: var(--brand-white);

  --text-lime: var(--brand-white);
  --btn-lime: #ffff00;
}





    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed, 
    figure, figcaption, footer, header, hgroup, 
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video {
    	margin: 0;
    	padding: 0;
    	border: 0;
    	font: inherit;
    	vertical-align: baseline;
    }
    /* HTML5 display-role reset for older browsers */
    article, aside, details, figcaption, figure, 
    footer, header, hgroup, menu, nav, section {
    	display: block;
    }
    body {
    	line-height: 1;
    }
    
    blockquote, q {
    	quotes: none;
    }
    blockquote:before, blockquote:after,
    q:before, q:after {
    	content: '';
    	content: none;
    }
    table {
    	border-collapse: collapse;
    	border-spacing: 0;
    }
	
*,
*:before,
*:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

 
  a:link {COLOR: inherit; TEXT-DECORATION: none;}
  a:visited {COLOR: inherit; TEXT-DECORATION: none;}
  a:active {COLOR: inherit; TEXT-DECORATION: none;}
  a:hover {COLOR: inherit; TEXT-DECORATION: none;}


button { color: #1b1b1b; }



body {
	color: #fff;
	font-size: var(--text-base);
	line-height: 1.4; 
	font-weight: 400;
  font-family: "Poppins", sans-serif;
  overflow: visible;
  background: var(--bg-main);

}


/* --- Wygląd samych przycisków --- */
.accessibility-tools { display: flex; align-items: center; gap: var(--space-md); }
.font-resizers { display: flex; gap: 2px; }

.accessibility-tools button {
    background: transparent;
    border: 2px solid transparent; /* Miejsce na ładny focus */
    color: inherit;
    cursor: pointer;
    padding-left: var(--space-xs);
    font-weight: bold;
    font-size: var(--text-lg);
}

/* WCAG: Obowiązkowy wyraźny focus klawiaturowy dla naszych nowych narzędzi! */
.accessibility-tools button:focus-visible {
    outline: none;
    border-color: var(--button-bg); 
    border-radius: 4px;
}


html{margin-top: 0px !important;}
em { font-style: italic; }

ul{ margin: var(--space-md) 0 var(--space-lg); list-style: none; margin-left: var(--space-xl) }
ul li{ margin-left: 0px; padding-left: var(--space-lg); margin-bottom: var(--space-xs); position: relative; }
strong { font-weight: 600 }
p a { text-decoration: underline !important; font-weight: 600}
p { margin-bottom: var(--space-lg) }
html.js [class*="anim-"] {
  opacity: 0;
  will-change: transform, opacity;
}

.anim-scale, .anim-scale-max, .anim-zoom, .anim-zoom2 {
  transform: scale(0.8);
}

.anim-left, .anim-left2 { transform: translateX(-30px); }
.anim-right, .anim-right2 { transform: translateX(30px); }
.anim-top, .anim-top2 { transform: translateY(-30px); }
.anim-bottom, .anim-bottom2 { transform: translateY(30px); }

[class*="anim-"] {
  opacity: 0;
}

.theme-high-contrast p a { color: var(--text-link) !important; }
.theme-high-contrast a { color: var(--text-link) !important; }

html {
  scroll-behavior: smooth;
}

/***************** menu res ******************/
  .menuMobileClick{ width: 25px; height: 26px; cursor:pointer; display:none; z-index:980; text-align:right; flex-direction: column; align-items: flex-end;
  -webkit-transition: all .25s linear;
     -moz-transition: all .25s linear;
     -ms-transition: all .25s linear;
     -o-transition: all .25s linear;
    transition: all .25s linear;}
  .menuMobileClick div {
   width: 40px;
  height: 4px;
  background-color: #000;
  display: block;
  margin: 8px 0;
  border-radius: 3px
  }
  .menuFixed{ position: fixed; width: 100%; height: 100%; padding: 0; padding-bottom: 20px;  z-index: 999999; left: 0px; top: 0%; opacity: 0; display: none; overflow-x: hidden; overflow-y: scroll; text-align: center;
    background: var(--bg-main);
    }
  .menuFixed-inner{ width:  94%; margin: auto; margin-top: 100px;  min-height: calc(100vh - 140px); position: relative; overflow: hidden; background: var(--bg-surface);

  border-radius: 30px;
      }
  .closeMenuContainer{ text-align:right; position: absolute; top: 34px; right: 23px;  z-index: 900; }
  .closeX { height: 30px; width: 30px; position: relative; box-sizing: border-box; line-height: 40px; display: inline-block; cursor: pointer; z-index: 900;}
  .closeMenuContainer .closeX { width: 41px; height:29px; cursor:pointer; z-index:980; text-align:right; flex-direction: column; align-items: flex-end;
  -webkit-transition: all .25s linear;
     -moz-transition: all .25s linear;
     -ms-transition: all .25s linear;
     -o-transition: all .25s linear;
    transition: all .25s linear;}

  .closeMenuContainer .closeX div {
     width: 41px;
    height: 3px;
  background-color: var(--text-main);
  display: block;
  margin: 6px 0;

  }
  .closeX::before, .closeX::after {
  width: 40px;
  height: 4px;
  transform: rotate(-45deg);
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -2px;
  margin-left: -15px;
  display: block;
  background-color: var(--text-main);
  transition: all 0.25s ease-out;
  border-radius: 3px;
}
.closeX::after {
  transform: rotate(-135deg);
}
  .menuFixed ul{ margin: 0px; padding: 0px; list-style: none; padding-top: 100px; display: flex; flex-direction: column; }
  .menuFixed ul li{ font-weight: 400; color: #20221E; overflow: hidden; padding: 5px 0px;font-size: 32px; width: 100%; text-align: center;  position: relative; z-index: 100; line-height: 1.2; letter-spacing: 1px; margin-bottom: 35px; }
  .menuFixed ul a{ display: block; text-align: center; }
  .menuFixed a{ color: inherit; text-decoration: none; text-align: left; }
  .menuFixed ul li.active{ letter-spacing: 4px; color: #EFEFEF;}
  .menuFixed-flex { display: flex; align-items: center; height: 100%; position: relative; }
  .menuFixed .logo { width: 230px; position: absolute; left: 24px; top: 33px; }
  .menuFixed .logo-menu { position: absolute; top: 0; left: 3.1%; }
  .logo-menu {display: none;}
  .menuFixed .menu li.menu-btn-blue1, .menuFixed .menu li.menu-btn-blue {font-size: 18px; margin-top: 20px; width: 250px; padding: 12px 20px;}
  .top-fixed .menuMobileClick { position: absolute; right: 0px; top: 6px } 
  .menu-small-mobile { display: none; }

/* --- WCAG: Wygląd i zachowanie Skip Linka --- */
.skip-link { position: absolute; top: -100px; left: 0; background: #005fcc; color: #fff; padding: var(--space-md) var(--space-lg); z-index: 9999; transition: top 0.3s ease;}
.skip-link:focus { top: 0; outline: 3px solid #DEF779;}
.top { position: relative; z-index: 9999 }
.top-inner { position: relative; }
.top-flex { display: flex; justify-content: space-between; align-items: center; margin-top: var(--space-xl);  }
.logo { width: 248px; }
.logo img { width: 100%; display: block; }
.menu { margin: 0; list-style: none; padding: 0; } 
.menu li { display: inline-block; margin-bottom: 0; padding-left: var(--space-xl); position: relative; }
.menu li a, .submenu-toggle { transition: color 0.3s ease; font-weight: 500; display: inline-block; cursor: pointer; }
.submenu-toggle { background: transparent; border: none; padding: 0; font-family: inherit; font-size: inherit; color: inherit; }
.submenu-toggle:after { 
    content: ""; display: inline-block; width: 10px; height: 10px; margin-left: var(--space-xs); background: var(--text-main);
    -webkit-mask-image: url('../img/arrow.svg'); mask-image: url('../img/arrow.svg');
    -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; 
}
.menu li:hover > a, .menu li:hover > .submenu-toggle { color: #DEF779;}
.menu li:hover .submenu-toggle:after { background: #DEF779; }
.menu-social { margin-top: 4px; display: flex; align-items: center; }
.menu-social a { display: inline-block; margin-left: var(--space-md); }
.sub-menu { 
    position: absolute; left: -20px; top: 100%; margin-top: var(--space-xs); background: var(--bg-surface); 
    padding: var(--space-md) var(--space-lg); padding-right: var(--space-2xl); border-radius: var(--space-lg); 
    z-index: 10; visibility: hidden; opacity: 0; transform: translateY(10px); transition: all 0.3s ease;
    list-style: none; /* WCAG */
    -webkit-box-shadow: 3px 3px 10px 3px rgba(0,0,0,0.2);
box-shadow: 3px 3px 10px 3px rgba(0,0,0,0.2);
}

.menu li:hover .sub-menu,
.menu li:focus-within .sub-menu { 
    visibility: visible; opacity: 1; transform: translateY(0); 
}

.sub-menu li { display: block; padding-left: 0; margin-bottom: 5px; white-space: nowrap;}
.sub-menu li:last-of-type { margin-bottom: 0; }
.sub-menu a { color: var(--text-link); display: block; }
.sub-menu a:hover, .sub-menu a:focus { color: #333; } /* WCAG: Ważne, żeby dodać też stan focus! */

.menu li:hover .sub-menu,
.menu li:focus-within .sub-menu,
.sub-menu.open-mobile { 
    visibility: visible; opacity: 1; transform: translateY(0); 
}

/* WCAG: Reset hamburgera mobilnego */
.menuMobileClick { background: transparent; border: none; padding:0px; cursor: pointer; }
.menuMobileClick span { display: block; width: 25px; height: 2px; background: #fff; margin-bottom: 5px; }

.show-on-mobile { display: none !important; } /* Ukrywamy krzyżyk i hamburger na PC */
.hide-on-mobile { display: block; }

.main-menu-wrapper {
    /* Na desktopie wrapper jest przezroczysty i wtapia się w pasek */
    position: static;
    background: transparent;
    display: flex;
    align-items: center;
}

/***********************************/

#backToTop:focus-visible {
  outline: 3px solid #000; /* Wyraźna obwódka dla dostępności */
  outline-offset: 2px;
}

/* Ukrywamy przycisk przed czytnikami, gdy opacity wynosi 0 */
#backToTop:not(.show) {
  pointer-events: none;
  opacity: 0;
}
#backToTop { width: 56px;
  height: 56px;
  border-radius: 50%;
  position: fixed;
  z-index: 9999999999999;
  bottom: var(--space-lg);
  right: var(--space-lg); 
  opacity: 1;
  background: #fff;
  border: 0;
  box-shadow: 0;
  cursor: pointer;
  -webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
-webkit-box-shadow: 3px 3px 10px 3px rgba(0,0,0,0.2);
box-shadow: 3px 3px 10px 3px rgba(0,0,0,0.2);
}
#backToTop span { width: 29px; height: 16px; position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); background: url(../img/arrow-top.svg) no-repeat; background-size: cover; display: block; }


#wpadminbar { display: none; }
.all { overflow: hidden; }


.container { width: 1200px; margin: auto; }

.font-header { font-family: Afronaut;}
a.btn { display: inline-block; font-size: var(--text-lg); color: var(--button-text) !important; background: var(--button-bg); font-weight: 600; border-radius: var(--space-xl); padding: var(--space-xs) var(--space-lg); border: solid 2px #DEF779; 
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;}
a.btn:hover { background:  var(--bg-main); color: #fff !important; border: solid 2px #fff; }
a.btn-small { font-size: var(--text-sm);padding: var(--space-xxs) var(--space-xs);  }

h1 { font-size: var(--text-2xl); font-weight: 700; line-height: 1.2}
h2 { font-size: var(--text-2xl); font-weight: 700; margin-bottom: var(--space-2xl);  }


.txt-center { text-align: center; }

/********* home ************/
section { padding-bottom: var(--space-5xl); }
.main-hero { display: flex; justify-content: space-between; align-items: center; padding: 0 var(--space-5xl); margin-top: var(--space-5xl); padding-bottom: var(--space-5xl);  }
.hero-naglowek { font-size: var(--text-lg); }
.hero-tytul { font-size: var(--text-2xl); margin-bottom: var(--space-xl);  }
.main-hero-right { padding-left: var(--space-2xl); flex: 0 0 50%; }
.main-hero-right img { width: 100% }

.aktualnosci-grid { display: flex; justify-content: space-between; gap: 20px;}
.aktualnosci-grid:not(.owl-loaded) {
    display: flex !important;
    gap: 30px;
    justify-content: center;
}

.aktualnosci-grid:not(.owl-loaded) .aktualnosci-blok {
    width: calc(33.33% - 20px); /* Twoje 3 kolumny */
}
.aktualnosci-blok { flex: 0 0 calc(33.333% - 10px); border-radius: var(--space-xl); overflow: hidden; background: var(--bg-surface); color: var(--text-link); margin-bottom: var(--space-2xl); align-self: flex-start; }
.aktualnosci-blok-foto { position: relative; display: block; }
.aktualnosci-blok-foto:after { content: ""; display: block; padding-top: 66% }
.aktualnosci-blok-foto img { width: 100%; height: 100%; position: absolute; left: 0; top: 0; display: block; }
.aktualnosci-blok-tresc { padding: var(--space-xl) }
.aktualnosci-blok-data { font-size: var(--text-xs); text-transform: uppercase; margin-bottom: var(--space-xs);  }
.aktualnosci-blok h2 { font-weight: 600; font-size: var(--text-xlg); margin-bottom: var(--space-md); }
.aktualnosci-blok-opis { margin-bottom: var(--space-md); color: var(--text-on-light)  }
.btn-czytaj { font-weight: 600; display: inline-block; position: relative; }
.btn-czytaj:after {content: ""; display: inline-block;   width: 8px; height: 8px; background: url(../img/arrow-r.svg) no-repeat; background-size: cover; position: absolute; right: -12px; top: 7px;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out; }
.btn-czytaj:hover:after { right: -18px }

.opinia { border: solid 2px #fff; border-radius: var(--space-xl); padding: var(--space-xl); position: relative; }
.opinia:after { width: 24px; height: 25px; content: ""; background: url(../img/ogonek.svg) no-repeat; background-size: cover; position: absolute; bottom: -24px; left: 30px }
.ocena { width: 180px; margin-bottom: var(--space-lg); }
.ocena img { width: 100%; display: block; }
.opinia .tresc { font-size: var(--text-md); font-weight: 600; margin-bottom: var(--space-xl);}
.owl-carousel .owl-stage-outer { padding-bottom: var(--space-xl) !important }
.owl-theme .owl-dots .owl-dot span { width: 15px !important; height: 15px !important; background: var(--dot-color); margin: 0 var(--space-xs); }
.owl-theme .owl-dots .owl-dot.active span { background: var(--button-bg); }



/******** o nas **********/
.page-header { padding-bottom: 0 }
.page-header h1 { text-align: center; padding-top: var(--space-5xl); padding-bottom: var(--space-2xl) }

.section-white { background: var(--bg-surface); color: var(--text-on-light); padding-top: var(--space-3xl) }
.o-nas-sekcja { display: flex; justify-content: space-between; margin-bottom: var(--space-4xl) }
.o-nas-sekcja:last-of-type { margin-bottom: 0 }
.o-nas-sekcja.o-nas-sekcja-foto:nth-child(2n+2) { flex-direction: row-reverse; }
.o-nas-sekcja .kol { flex:  0 0 48%; }
.o-nas-sekcja img { display: block; width: 100% }
.foto-caption { text-align: right; display: block; font-size: var(--text-xs); margin-top: var(--space-xs) }
.o-nas-sekcja.o-nas-sekcja-txt { display: block;}
.o-nas-sekcja.o-nas-sekcja-txt .kol { width: 800px; margin: auto; }


/********* aktualności ***********/
.post-container { margin: 0 auto;}
.post-item { width: 31%;  margin-bottom: var(--space-lg:); float: left; }
.paginacja-numeryczna { text-align: center; font-size: var(--text-xlg); font-weight: 600; margin-top: var(--space-2xl) }
.page-numbers { margin: 0 var(--space-xs); color: var(--pagination-link) !important; }
.page-numbers.current { color:var(--pagination-active) !important; }

.post-container {
    opacity: 0;
    visibility: hidden;
    /* Dodajemy płynne przejście, żeby pojawienie się nie było gwałtowne */
    transition: opacity 0.4s ease-in-out, visibility 0.4s ease-in-out; 
}

/* 2. Klasa, którą doda JavaScript, gdy wszystko będzie gotowe */
.post-container.masonry-ready {
    opacity: 1;
    visibility: visible;
}

/** artykuł *******/
.single-post article { width: 800px; margin: auto; }
.container-post {margin-top: var(--space-4xl);  margin-bottom: var(--space-4xl);border-radius: var(--space-lg); padding: var(--space-xl); }

.single-post article .entry-header {  margin-bottom: var(--space-lg)  }
.single-post article h1.entry-title {  font-size: var(--text-xl); font-weight: 500 }
.single-post article .entry-meta { font-size: var(--text-xs); text-transform: uppercase; margin-bottom: var(--space-md) }
.single-post article .padding { padding: 0 var(--space-xl); }
.post-thumbnail { position: relative; display: block; margin-bottom:  var(--space-xl) }
.post-thumbnail:after { content: ""; display: block; padding-top: 35% }
.post-thumbnail img { width: 100%; height: 100%; position: absolute; left: 0; top: 0; object-fit: cover; }
.lead { font-size: var( --text-xlg); margin-bottom: var(--space-xl);  font-weight: 600 }

.single-post article h2, .page-template-default  h2{font-size: var( --text-xlg); margin-bottom: var(--space-lg); font-weight: 700}
.single-post article h3, .page-template-default  h3 {font-size: var( --text-lg); margin-bottom: var(--space-lg); font-weight: 700}
.single-post article h4, .page-template-default  h4 {font-size: var( --text-md); margin-bottom: var(--space-lg); font-weight: 700}
.single-post article h5, .page-template-default  h5 {font-size: var( --text-base); margin-bottom: var(--space-lg); font-weight: 700}
.article-foto {margin-bottom: var(--space-xl)}
.article-foto img { width: 100%; display: block;  }
.article-foto2 { display: flex; justify-content: space-between; }
.foto-half { width: 48% }
.article-foto2 img { width: 100%; display: block; }
.social-share { text-align: center; margin-bottom: var(--space-3xl) }
.social-share span { font-size: var( --text-xl); display: block; text-align: center; font-weight: 700; margin-bottom: var(--space-lg) }
.social-share a img {margin: 0 var(--space-sm); display: inline-block;
  -webkit-transition: all 0.2s ease-in-out; 
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;}
.social-share a:hover img { transform: scale(1.1); }


/*********** program ******************/
.page-header-program h2 { font-weight: 400 }
.program { background: var(--bg-surface); color: var(--text-on-light); padding: var(--space-3xl) var(--space-xl); border-radius: var(--space-lg); position: relative; padding-bottom: var(--space-xl); }

:root {
    --minute-height: 1.5px;
    --hour-height: 90px; 
}

.calendar-timeline {
    display: grid;
    grid-template-columns: 50px repeat(var(--total-cols), 1fr);
    grid-template-rows: repeat(var(--total-mins), var(--minute-height));
    gap: 0 15px; 
    position: relative;
    margin-top: 40px;
    
    background-image: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent calc(var(--hour-height) - 1px),
        var(--text-on-light) calc(var(--hour-height) - 1px),
        var(--text-on-light) var(--hour-height)
    );
    background-size: 100% calc(100% - 2px);
    background-repeat: no-repeat;
    border-top: 1px solid var(--text-on-light);
}

.time-marker {
    transform: translateY(-50%); 
    font-size: var(--text-sm);
}

.event-card {
    background: #fdfdfd;
    padding: 10px 15px;
    border-radius: 6px;
    z-index: 2;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border-radius: var(--space-lg);
    font-size: var(--text-sm);

    text-decoration: none;
    color: inherit; 
    transition: all 0.2s ease-in-out; 
    cursor: pointer; 
}



.event-card h4 {
    font-weight: 700;
    text-transform: uppercase;
}

.event-meta span { font-size: var(--text-xs); white-space: nowrap; }
.event-speakers { font-weight: 700 }

.event-card.is-standalone {
    justify-self: start;      
    width: fit-content;   
    min-width: 250px;        
    max-width: 100%;    
}

.inne.event-card { background: var(--bg-main); color: var(--text-main); }
.warsztaty.event-card { background: var(--kat-red); color: var(--txt-kat-red); }
.wykłady.event-card { background: var(--kat-lime); color: var(--kat-txt-lime); }
.event-card:hover { background: var(--bg-main); color: var(--text-main) }
.inne.event-card:hover { background: #5B1C76; color: var(--text-main); }

.event-card:hover {
    height: max-content; 
    min-height: 100%;   
    z-index: 50;          

}
.program-legenda { display: flex; font-size: var( --text-xs) }
.program-legenda div { margin-right: var(--space-md) }
.program-legenda span { width: 12px; height: 12px; border-radius: 50%; display: inline-block; margin-right: 10px;  }
.legenda-warsztaty span { background: var(--kat-red)  }
.legenda-wyklady span { background: var(--kat-lime) }
.legenda-inne span { background: var(--bg-main) }

/*********** program podstrona **********/
.container-wydarzenie  { width: 1000px; border-radius: var(--space-lg); margin: var(--space-4xl) auto; padding: var(--space-2xl) var(--space-5xl); }
.wydarzenie-top { margin-bottom: var(--space-lg)  }
.wydarzenie-top span { display: inline-block; border-radius: var(--space-lg); font-size: var(--text-sm); margin-right: var(--space-md); padding: var(--space-xs) var(--space-md); margin-bottom: var(--space-sm) }
.inne .wydarzenie-top span { background: var(--bg-main); color: var(--text-main); }
.warsztaty .wydarzenie-top span { background: var(--kat-red); color: var(--txt-kat-red); }
.wykłady .wydarzenie-top span { background: var(--kat-lime); color: var(--kat-txt-lime); }

.container-wydarzenie h1 { font-size: var(--text-xl); }
.container-wydarzenie h1 span { display: block; }
.wydarzenie-flex { display: flex; justify-content: space-between; }
.wydarzenie-lewa { flex: 0 0 65%; }
.wydarzenie-prawa { flex: 0 0 32%; text-align: center;  }

.container-wydarzenie h2{ font-size: var(--text-base); margin:  var(--space-xl) 0  }

.wydarzenie-prawa-naglowek {font-size: var(--text-xlg); text-transform: uppercase;}
.wydarzenie-prelegent { font-size: var(--text-lg); font-weight: 700; margin-bottom: var(--space-xl) }


.wydarzenie-publikacje h2.naglowek { font-size: var(--text-lg); font-weight: 700; margin-bottom: var(--space-xl) }
.publikacje-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-lg); margin-bottom: var(--space-2xl);}
.publikacja img { width: 100%; display: block; object-fit: cover; height: auto; margin-bottom:  var(--space-sm) }
.pub-info { font-size: var(--text-sm); line-height: 1.2 }
.pub-autor { text-transform: uppercase; }
.pub-tytul { font-weight: 700; margin: var(--space-xxs) 0;}
.pub-info .btn-small { margin-top: var(--space-sm); display: inline-block; }

.btn-wroc { text-align: right; }

/******** publikacje *******/
.page-single-publikacje .publikacja { margin-bottom: var(--space-xl) }
.page-single-publikacje {  padding-bottom: var(--space-xl) }

/******** prelegenci ******/
.prelegenci-all { text-align: center; }
.prelegenci-grid {  display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-lg); margin-bottom: var(--space-2xl); text-align: center; }
.prelegent-karta { margin-bottom: var(--space-lg) }
.prelegent-karta-info { margin-top: -30px;  }
.prelegent-karta-info .prelegent-karta-instrument, .prelegent-karta-info h3 { font-weight: 700; font-size: var(--text-lg) }
.prelegent-opis-skrocony { margin-top: var(--space-lg) }
.prelegent-btn { color: var(--btn-lime); font-weight: 700; margin-top: var(--space-lg); display: inline-block; }

/********* prelegent *********/
.container-prelegent { width: 1000px; margin: var(--space-4xl) auto}
.prelegent-flex { position: relative; }
.prelegent-flex h1, .prelegent-instrument{font-size: var(--text-xl); font-weight: 700}
.prelegent-flex .font-header { color: var(--text-lime); margin-bottom: var(--space-lg); display: block; font-size: var(--text-md)  }
.prelegent-opis { margin-top: var(--space-xl); line-height: 1.6 }

.prelegent-foto { position: relative; width: 100%; margin: var(--space-lg) auto var(--space-md); padding: 10%;}
.prelegent-foto:after { content: ""; display: block; padding-top: 100% }
.prelegent-foto img { width: 80%; height: 80%; display: block; position: absolute; left: 10%; top: 5%; object-fit: cover; border-radius: 50%; overflow: hidden; 
filter: grayscale(100%); /* Zamiana na czarno-białe */
    -webkit-filter: grayscale(100%); /* Wsparcie dla starszych przeglądarek Safari/Chrome */
    transition: all 0.4s ease;}
.prelegent-nakladka { width: 70%; position: absolute; left: 0; top: 0; z-index: 5 }
.prelegent-nakladka:after { content: ""; display: block; padding-top: 100%;  }

.prelegent-wydarzenie { border-radius: var(--space-lg); padding: var(--space-lg); text-align: left; margin-left: var(--space-3xl); padding-top: 0;margin-bottom: var(--space-lg); }
.prelegent-wydarzenie-nazwa { text-transform: uppercase; font-weight: 700; margin-top:var(--space-xs);  }
.prelegent-wydarzenie-prowadzacy { font-weight: 700; margin-bottom:var(--space-sm)}
.prelegent-wydarzenie-prowadzacy span:after{ content: ","; position: relative;  }
.prelegent-wydarzenie-prowadzacy span:last-of-type:after{display: none;}


.container-prelegent { max-width: 1000px; width: 94%; margin: var(--space-4xl) auto; }
.prelegent-flex { display: flex; flex-direction: column;}
.prelegent-sidebar { display: none;}

@media (min-width: 769px) {
    .prelegent-flex { flex-direction: row; justify-content: space-between; align-items: flex-start; gap: 60px; }
    .prelegent-left { flex: 1; }
    .prelegent-sidebar { display: block; width: 40%; position: sticky;top: 20px; }
}

/** galeria *******/
.no-header { padding-top: var(--space-2xl) }
.galeria-sekcja { text-align: center; margin-bottom: var(--space-3xl); }
.galeria-flex { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-lg); margin-bottom: var(--space-2xl); }
.galeria-item { position: relative; display: block; }
.galeria-item:after { content: ""; display: block; padding-top: 66% }
.galeria-item img { width: 100%; height: 100%; position: absolute; left: 0; top: 0; object-fit: cover;  }


/******* galeria single ******/
.page-header-galeria h1 { padding-bottom: var(--space-lg) }
.page-header-galeria h2 { font-size: var(--text-lg); text-align: center; }
.fr-window-skin-fresco.fr-svg .fr-side-next .fr-side-button-icon { width: 30px; height: 60px; background: url(../img/arrow-next.svg); background-size: cover; opacity: 1 }
.fr-window-skin-fresco.fr-svg .fr-side-previous .fr-side-button-icon { width: 30px; height: 60px; background: url(../img/arrow-back.svg); background-size: cover; opacity: 1 }
.fr-side { width: 30px; height: 60px; margin-top: -30px;  }
.fr-window-skin-fresco.fr-svg .fr-close { right: 20px;  }
.fr-window-skin-fresco.fr-svg .fr-close .fr-close-icon { width: 30px; height: 30px; background: url(../img/close.svg); background-size: cover; opacity: 1 }
.fr-window-skin-fresco.fr-window-ui-outside .fr-close-background { background: transparent; opacity: 0 }
.fr-side-previous { left: 20px; }
.fr-side-next { right: 20px;  }
.fr-overlay-ui-fullclick .fr-overlay-background, .fr-overlay-background { opacity: 0.8 !important }
.fr-window-skin-fresco .fr-content-background, .fr-ui-outside .fr-info-background { background: transparent !important; box-shadow: none }
.fr-stroke { display: none !important }

/********* zapisz się **********/
.zapisz-wstep { margin: var(--space-xl) 0; font-size: var(--text-lg); font-weight: 700; }
.zapisz-foto { width: 500px; margin: var(--space-3xl) auto }
.zapisz-foto img { width: 100%; display: block; }
.zapisz-txt { font-size: var(--text-xs) }


/********* partnerzy ********/
.logotypy-sekcja:first-of-type { margin-top: var(--space-xl); }
.logotypy-sekcja { margin-bottom: var(--space-xl); position: relative; }
.logotypy-sekcja:after { width: 425px; height: 27px; position: relative; margin: auto; margin-top: var(--space-lg); content: ""; display: block; background: url(../img/logotypy-bottom.svg) no-repeat; background-size: cover; }
.logotypy-sekcja:last-of-type:after { display: none;  }
.logotypy-nazwa { text-transform: uppercase; margin-bottom: var(--space-xl) }
.logotypy-sekcja img{ display: inline-block; margin: 0 20px; margin-bottom: var(--space-md) }


/****** 404 ********/

.page_404 h1{ font-size: var(--text-6xl) }
.page_404 .opis { font-size: var(--text-lg); margin-bottom: var(--space-xl) }

/******* podstrony tekstowe *********/
.container-page { width: 800px; margin: auto; }



/*********** kontakt ************/
.sekcja-kontakt { width: 600px; margin: auto; border-radius: var(--space-lg); padding: var(--space-2xl); margin-bottom: var(--space-2xl) }

.formularz { background: var(--bg-surface) }
.custom-form-wrapper { max-width: 600px; margin: 0 auto;}
.form-group { margin-bottom: 20px; display: flex; flex-direction: column;}
.form-group label { font-weight: 600; margin-bottom: 8px; font-size: var(--text-sm); color: var(--text-main);}
.wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox) { width: 100%; padding: 12px 15px; border: 1px solid var(--text-on-light); border-radius: var(--space-xs); font-family: inherit; font-size: var(--text-xs);transition: border-color 0.3s, box-shadow 0.3s;color: var(--text-on-light)}
.wpcf7-form-control:focus { outline: none; border-color: var(--brand-violet); box-shadow: 0 0 0 3px rgba(138, 43, 226, 0.2); }
.wpcf7-acceptance { border: 0 !important; padding: 0 !important; }
.wpcf7-acceptance label { display: flex; align-items: flex-start; }
.wpcf7-acceptance input { display: block; margin-right: 10px; }
.form-submit { text-align: center; }
.form-flex { display: flex; justify-content: space-between; }
.form-flex .form-group { flex: 0 0 48%; }
.form-consent { margin: 20px 0; font-size: 0.9rem; line-height: 1.5;}
.form-consent .wpcf7-list-item { margin-left: 0;}
.wpcf7-submit { 
    cursor: pointer;
    transition: transform 0.2s;
    display: inline-block;
    font-size: var(--text-base);
    color: var(--button-text) !important;
    background: var(--button-bg);
    font-weight: 600;
    border-radius: var(--space-xl);
    padding: var(--space-xs) var(--space-lg);
    border: solid 2px #DEF779;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    -ms-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    margin-left: 72px;
}
.wpcf7-submit:hover { background:  var(--bg-main); color: #fff !important; border: solid 2px #fff; }

body.theme-high-contrast .wpcf7-form-control { background: #000; color: #fff; border: 2px solid #fff;}

body.theme-high-contrast .wpcf7-submit {
    background: #ffff00;
    color: #000;
}

.wpcf7-list-item input[type="checkbox"] { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0;}
.wpcf7-list-item label { position: relative; padding-left: 30px; cursor: pointer;display: inline-block; line-height: 20px;}
.wpcf7-list-item label .wpcf7-list-item-label::before { content: ""; position: absolute; left: 0; top: 4px;  height: 17px;  width:17px; background-color: #fff; border: 1px solid var(--text-on-light); border-radius: 4px;  transition: all 0.2s ease;}
.wpcf7-list-item label:hover input ~ .wpcf7-list-item-label::before {  border-color:  var(--text-on-light);}
.wpcf7-list-item input:checked ~ .wpcf7-list-item-label::before { background-color:  var(--text-on-light); border-color:  var(--text-on-light);}
.wpcf7-list-item label .wpcf7-list-item-label::after {
    content: "";
    position: absolute;
    display: none; 
    left: 6px;
    top: 6px;
    width: 6px;
    height: 11px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
body.theme-high-contrast .wpcf7-list-item label .wpcf7-list-item-label::after { border: solid #000; border-width: 0 2px 2px 0;}
/* 7. Pokazujemy ptaszka, gdy checkbox jest zaznaczony */
.wpcf7-list-item input:checked ~ .wpcf7-list-item-label::after {
    display: block;
}
.wpcf7 form.sent .wpcf7-response-output { border: 0; color: var(--text-on-light);}

.kontakt-yellow { background: var(--bg-surface); color: var(--text-on-light); margin-bottom: var(--space-5xl) }
.kontakt-flex { display: flex; justify-content: space-between; align-items: center;  }
.kontakt-flex .kol { flex: 0 0 50%; font-size: var(--text-xs) }
.kontakt-flex .kol-logo { text-align: center; flex: 0 0 40%; }
.kontakt-flex .kol-logo img { width: 80px; display: inline-block; }
.kontakt-sekcja { margin-bottom: var(--space-lg) }
.kontakt-sekcja:last-of-type { margin-bottom: 0 }
.kontakt-sekcja a { display: block; position: relative; padding-left: 20px; margin-bottom: 2px; }
.kontakt-sekcja .kontakt-tytul { font-weight: 700 }
.kontakt-mail:before { width: 13px; height: 10px; content: ""; background: url(../img/mail.svg) no-repeat; background-size: cover; left: 0; top: 4px; position: absolute; }
.kontakt-tel:before { width: 13.5px; height: 14px; content: ""; background: url(../img/tel.svg) no-repeat; background-size: cover; left: 0; top: 2px; position: absolute;}
.tel-space { margin-top: var(--space-sm); }

/********** footer **********/
.footer-social { background: var(--button-bg); color: var(--button-text); font-size: var(--text-xl); font-weight: 600; padding: var(--space-md) 0;}
.footer-social .container { display: flex; justify-content: space-between; align-items: center; }
.footer-social-in { display: flex; align-items: center;  }
.footer-social-in a { display: block; margin-left: var(--space-xl);
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out; }
.footer-social-in a:hover { transform: scale(1.1); }
.footer-social-in a img { display: block; }
footer { background: var(--bg-surface); color: var(--text-on-light) ; font-size: var(--text-md) }
footer a { color: var(--text-link) !important; }
.footer-flex { display: flex; justify-content: space-between; margin-top: var(--space-2xl); padding-bottom: var(--space-xl); }
.footer-flex .kol { width: 31% }
.footer-flex .kol1 { flex: 0 0 33%; }
.footer-flex .kol2 { flex: 0 0 64%; }
.footer-flex .kol-inner-flex {  display: flex; justify-content: space-between; }
.footer-flex .kol2 .kol-inner { flex: 0 0 48%; }
.logo-footer { width: 190px; display: block; margin-bottom: var(--space-2xl)}
.logo-footer img { width: 100%; display: block; }
.logo-ministerstwo { width: 260px; }
.logo-ministerstwo img { width: 100% }

.logo-picture {
    display: block; /* Opakowanie zachowuje się jak blok */
}

.logo-picture img {
    width: 100%;
    height: auto;
    display: block;
}

.footer-linki { font-size: var(--text-lg); font-weight: 600; text-transform: uppercase; margin-left: 0  }
.footer-linki li { padding-left: 0; margin-bottom: var(--space-md); position: relative; }
.footer-flex a { position: relative; }
.footer-flex a:after { width: 100%; height: 2px; content: ""; display: block; position: absolute; left: 0; bottom: -2px; background: var(--bg-main);
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out; }
.footer-flex a:hover:after { width: 0 }
.logo-pwm { width: 80px; display: block; margin-bottom: var(--space-2xl);  }
.logo-pwm img { width: 100%; display: block; }
.footer-txt { font-weight: 600;  }
.footer-txt span { text-transform: uppercase; display: block; }
.footer-flex .logo-pwm:after, .footer-flex .logo-footer:after { display: none; }
.adres { margin: var(--space-2xl) 0; }
.copy { font-size: var(--text-md); }
