/* ==========================================================
   ZSP im. A. Mickiewicza w Lubaniu – nowy motyw
   Kolory: granat szkolny, jasne tło, żółty akcent (ten sam żółty
   co w trybie wysokiego kontrastu na dotychczasowej stronie).
   ========================================================== */

:root {
  --bg: #f4f6fa;
  --surface: #ffffff;
  --text: #182033;
  --muted: #566079;
  --line: #d9dfea;
  --brand: #12284c;
  --brand-2: #1c3a6a;
  --brand-text: #ffffff;
  --brand-muted: #c5d0e6;
  --link: #0b4fa8;
  --accent: #f2b01e;
  --accent-text: #1a1400;
  --focus: #0b4fa8;
  --notice-bg: #fff6db;
  --hero-title: #f5c518;

  --fs: 100%;
  --font-body: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-head: "Newsreader", Georgia, "Times New Roman", serif;
  --maxw: 1180px;
  --gap: clamp(1rem, 3vw, 2rem);
}

/* Wysoki kontrast: czarny tekst na żółtym tle */
[data-contrast="yellow"] {
  --bg: #ffe600;
  --surface: #ffe600;
  --text: #000;
  --muted: #000;
  --line: #000;
  --brand: #000;
  --brand-2: #000;
  --brand-text: #ffe600;
  --brand-muted: #ffe600;
  --link: #000;
  --accent: #000;
  --accent-text: #ffe600;
  --focus: #000;
  --notice-bg: #ffe600;
  --hero-title: #ffe600;
}
[data-contrast="yellow"] a { text-decoration: underline; }

*, *::before, *::after { box-sizing: border-box; }

html { font-size: var(--fs); scroll-padding-top: 5rem; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, p, dl, dd, figure { margin: 0; }
a { color: var(--link); }
a:hover { text-decoration-thickness: 2px; }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.site-header :focus-visible,
.hero :focus-visible,
.recruit :focus-visible,
.site-footer :focus-visible,
.utility :focus-visible { outline-color: var(--accent); }
[data-contrast="yellow"] :focus-visible { outline-color: #000; }
[data-contrast="yellow"] .hero :focus-visible,
[data-contrast="yellow"] .recruit :focus-visible,
[data-contrast="yellow"] .site-footer :focus-visible,
[data-contrast="yellow"] .utility :focus-visible { outline-color: #ffe600; }

.wrap { width: min(100% - 2 * var(--gap), var(--maxw)); margin-inline: auto; }

.skip {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  background: var(--accent); color: var(--accent-text);
  padding: .6rem 1rem; font-weight: 700; border-radius: 4px;
}
.skip:focus { top: 1rem; }

/* ---------- Pasek narzędzi ---------- */
.utility { background: var(--brand); color: var(--brand-muted); font-size: .85rem; }
.utility a { color: var(--brand-muted); }
.utility__in {
  display: flex; flex-wrap: wrap; gap: .4rem 1.5rem;
  align-items: center; justify-content: space-between; padding-block: .5rem;
}
.utility__count { margin-left: 1rem; padding-left: 1rem; border-left: 1px solid currentColor; }
.utility__tools { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; align-items: center; }
.a11y { display: flex; flex-wrap: wrap; gap: .4rem .9rem; align-items: center; }
.a11y button {
  font: inherit; color: var(--brand-text); background: transparent;
  border: 1px solid var(--brand-muted); border-radius: 4px;
  padding: .1rem .55rem; cursor: pointer;
}
.a11y button:hover { background: rgba(255,255,255,.12); }
.a11y button[aria-pressed="true"] { background: var(--accent); color: var(--accent-text); border-color: var(--accent); }
[data-contrast="yellow"] .a11y button[aria-pressed="true"] { background: #ffe600; color: #000; border-color: #ffe600; }
.social { display: flex; gap: 1rem; }

/* ---------- Nagłówek i menu ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--surface); border-bottom: 1px solid var(--line);
}
[data-contrast="yellow"] .site-header { border-bottom: 2px solid #000; }
.header__in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.25rem; }

.brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--text); }
.brand img { width: 44px; height: 44px; object-fit: contain; }
.brand__text { display: flex; flex-direction: column; line-height: 1.2; }
.brand__text strong { font-family: var(--font-head); font-size: 1.1rem; font-weight: 600; }
.brand__text small { color: var(--muted); font-size: .8rem; }

.burger {
  display: none; align-items: center; gap: .6rem;
  font: inherit; font-weight: 600; color: var(--text);
  background: transparent; border: 1px solid var(--line); border-radius: 6px;
  padding: .45rem .8rem; cursor: pointer;
}
.burger__bars, .burger__bars::before, .burger__bars::after {
  display: block; width: 18px; height: 2px; background: currentColor; content: "";
}
.burger__bars { position: relative; }
.burger__bars::before { position: absolute; top: -6px; }
.burger__bars::after { position: absolute; top: 6px; }

.nav__list { display: flex; align-items: center; gap: .1rem; }
.nav__list > li { position: relative; }
.nav__list > li > a,
.nav__list > li > button {
  display: block; font: inherit; font-weight: 600; font-size: .95rem;
  color: var(--text); background: transparent; border: 0; border-radius: 6px;
  padding: .55rem .75rem; cursor: pointer; text-decoration: none;
}
.nav__list > li > a:hover,
.nav__list > li > button:hover,
.nav__list > li > button[aria-expanded="true"] { background: var(--bg); }
[data-contrast="yellow"] .nav__list > li > a:hover,
[data-contrast="yellow"] .nav__list > li > button:hover,
[data-contrast="yellow"] .nav__list > li > button[aria-expanded="true"] { background: #000; color: #ffe600; }

.has-sub > button::after {
  content: ""; display: inline-block; width: .4em; height: .4em; margin-left: .5em;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-.2em) rotate(45deg);
  transition: transform .15s ease;
}
.has-sub.is-open > button::after { transform: translateY(.05em) rotate(225deg); }

.sub {
  display: none; position: absolute; left: 0; top: calc(100% + 10px); z-index: 60;
  min-width: 17rem; gap: 2rem; padding: 1.35rem 1.5rem;
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 16px 40px rgba(18, 40, 76, .16), 0 2px 8px rgba(18, 40, 76, .08);
}
.sub::before {
  content: ""; position: absolute; top: -7px; left: 1.6rem; width: 14px; height: 14px;
  background: var(--surface); border-left: 1px solid var(--line); border-top: 1px solid var(--line);
  border-radius: 2px 0 0 0; transform: rotate(45deg);
}
.sub--right::before { left: auto; right: 1.6rem; }
[data-contrast="yellow"] .sub { border: 2px solid #000; border-radius: 0; box-shadow: none; }
[data-contrast="yellow"] .sub::before { display: none; }

.sub--right { left: auto; right: 0; }
.has-sub.is-open > .sub { display: flex; animation: zsp-sub-in .16s ease; }

@keyframes zsp-sub-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.sub ul { min-width: 13.5rem; padding-right: 2rem; border-right: 1px solid var(--line); }
.sub ul:last-child { padding-right: 0; border-right: 0; }
[data-contrast="yellow"] .sub ul { border-right-color: #000; }

.sub a {
  display: block; margin: 0 -.6rem; padding: .45rem .6rem; border-radius: 7px;
  color: var(--text); text-decoration: none; font-size: .95rem;
  transition: background .12s ease, color .12s ease;
}
.sub a:hover, .sub a:focus-visible { background: var(--bg); color: var(--link); text-decoration: none; }
[data-contrast="yellow"] .sub a:hover,
[data-contrast="yellow"] .sub a:focus-visible { background: #000; color: #ffe600; }

.grp {
  margin-top: 1rem; padding-top: .85rem; border-top: 1px dashed var(--line);
  font-family: var(--font-body); font-weight: 700; font-size: .78rem;
  letter-spacing: .06em; text-transform: uppercase; color: var(--muted);
  color: #022888;  border-bottom: 3px solid var(--accent);
}
.sub ul > .grp:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
[data-contrast="yellow"] .grp { border-top-color: #000; }

/* Bez JavaScriptu menu otwiera się po najechaniu / fokusie */
.no-js .has-sub:hover > .sub,
.no-js .has-sub:focus-within > .sub { display: flex; }

@media (max-width: 960px) {
  .sub::before { display: none; }
  .sub ul { border-right: 0; padding-right: 0; }
}

/* ---------- Hero ---------- */
.hero { background: var(--brand); color: var(--brand-text); }
.hero__in { padding-block: clamp(2.25rem, 5vw, 4rem) clamp(4rem, 7vw, 5.5rem); }
.hero__brand {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1.5rem clamp(1.5rem, 4vw, 3.5rem); align-items: center;
}
.hero__emblem { width: clamp(260px, 32vw, 430px); height: auto; border-radius: 8px; border: 2px solid white; }
.hero__godlo { width: clamp(64px, 8vw, 100px); height: auto; }
.hero__kicker { color: var(--brand-muted); font-weight: 500; margin-bottom: .75rem; }
.hero h1 {
  font-family: var(--font-head); font-weight: 500; color: var(--hero-title);
  font-size: clamp(1.8rem, 3.5vw, 2.9rem); line-height: 1.12; letter-spacing: -.01em;
}
.hero__lead { margin-top: 1.1rem; color: var(--brand-muted); font-size: 1.08rem; max-width: 46ch; }

.btn {
  display: inline-block; padding: .75rem 1.25rem; border-radius: 6px;
  font: inherit; font-weight: 700; text-decoration: none; cursor: pointer;
  border: 2px solid transparent;
}
.btn--accent { background: var(--accent); color: var(--accent-text); }
.btn--accent:hover { filter: brightness(1.08); }
.btn--ghost { color: var(--brand-text); border-color: var(--brand-muted); }
.btn--ghost:hover { background: rgba(255,255,255,.1); }
[data-contrast="yellow"] .btn--accent { border-color: #ffe600; }

/* ---------- Szybki dostęp ---------- */
.quick { margin-top: -2.6rem; position: relative; z-index: 2; }
.quick ul {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  background: var(--surface); border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 10px 28px rgba(18, 40, 76, .12); overflow: hidden;
}
[data-contrast="yellow"] .quick ul { border: 2px solid #000; box-shadow: none; }
.quick li + li { border-left: 1px solid var(--line); }
.quick a {
  display: flex; flex-direction: column; gap: .1rem; height: 100%;
  padding: 1.1rem 1.25rem; color: var(--text); text-decoration: none;
}
.quick a strong { font-family: var(--font-head); font-size: 1.2rem; font-weight: 600; }
.quick a span { color: var(--muted); font-size: .85rem; }
.quick a:hover { background: var(--bg); }
.quick a:hover strong { text-decoration: underline; }
[data-contrast="yellow"] .quick a:hover { background: #000; color: #ffe600; }
[data-contrast="yellow"] .quick a:hover span { color: #ffe600; }

/* ---------- Obszar treści ---------- */
.page { padding-block: clamp(1.75rem, 4vw, 3rem); }
.content { min-width: 0; min-height: 400px;}

#s1_aktual{border: 1px solid var(--line); background-color: white; border-radius: 8px; padding: 50px; box-shadow: 0 10px 28px rgba(18, 40, 76, .12)}




/*
 * Typografia dla starszych podstron (kronika, biblioteka, regulaminy…).
 * :where() daje zerową specyficzność, więc każdy komponent poniżej (karuzela, kalendarz…)
 * bez problemu ją nadpisuje.
 */
.content > :first-child { margin-top: 0; }
.content :where(h1) { font-family: var(--font-head); font-weight: 600; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.15; }
.content :where(h2) { margin-top: 2rem; }
.content :where(h3) { margin-top: 1.5rem; font-family: var(--font-head); font-weight: 600; font-size: 1.3rem; }
.content :where(p) { margin-top: .9rem; max-width: 100%;text-indent: 1.5em; text-align: justify;}
.content :where(ul, ol) { margin-top: .9rem; padding-left: 1.3rem; max-width: 95ch; }
.content :where(ul) { list-style: disc; }
.content :where(li) + :where(li) { margin-top: .35rem; }
.content :where(img) { border-radius: 4px; }
.content :where(table) { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin-top: 1rem; }
.content :where(th, td) { padding: .5rem .75rem; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.content :where(th) { background: var(--bg); }
.content :where(iframe, video) { max-width: 70%; }
.content :where(hr) { border: 0; border-top: 1px solid var(--line); margin: 1.5rem 0; }

/* ---------- Komunikaty ---------- */
.notices { display: grid; gap: .75rem; }
.notice {
  display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: center; justify-content: space-between;
  padding: .9rem 1.25rem;
  background: var(--notice-bg); border-left: 5px solid var(--accent); border-radius: 4px;box-shadow: 0 10px 28px rgba(18, 40, 76, .12);
}
.notice p { margin: 0; max-width: none; }
[data-contrast="yellow"] .notice { border: 2px solid #000; border-left-width: 6px; }
.notice a { font-weight: 700; }
.notice--error { margin-bottom: 1.5rem; }

/* ---------- Strona główna ---------- */
.home > * + * { margin-top: clamp(1.75rem, 4vw, 3rem); }

.section-head {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem;
  padding-bottom: .6rem; margin-bottom: .4rem; border-bottom: 2px solid var(--text);
}
h2 { font-family: var(--font-head); font-weight: 600; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.2; }
.section-head h2 { margin: 0; }
.section-head a {
  display: inline-flex; align-items: center; gap: .35rem;
  color: var(--link); font-weight: 700; font-size: .95rem; text-decoration: none;
  border-bottom: 2px solid transparent; padding-bottom: .1rem;
  transition: border-color .15s ease;
}
.section-head a::after { content: "→"; transition: transform .15s ease; }
.section-head a:hover, .section-head a:focus-visible { border-color: currentColor; text-decoration: none; }
.section-head a:hover::after, .section-head a:focus-visible::after { transform: translateX(4px); }
[data-contrast="yellow"] .section-head a { color: #000; }

/* Karuzela wydarzeń */
.carousel { position: relative; margin-top: 1rem; }
.carousel__track {
  display: flex; gap: 1rem; margin: 0; padding: 0 0 .9rem; max-width: none; list-style: none;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin;
  -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
}
.card { flex: 0 0 clamp(220px, 27vw, 275px); scroll-snap-align: start; }
.card + .card { margin-top: 0; }
.card a {
  display: flex; flex-direction: column; height: 100%;
  background: var(--surface); color: var(--text); text-decoration: none;
  border: 1px solid var(--line); border-radius: 8px; overflow: hidden;
}
[data-contrast="yellow"] .card a { border: 2px solid #000; }
.card__media { display: block; aspect-ratio: 3 / 2; background: var(--brand); overflow: hidden; }
.card__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .35s ease; }
.card a:hover .card__media img { transform: scale(1.04); }
.card__ph {
  display: grid; place-items: center; height: 100%;
  font-family: var(--font-head); font-size: 2.4rem; color: var(--hero-title);
}
.card__date { padding: .8rem 1rem 0; font-size: .85rem; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.card__title { padding: .2rem 1rem 1rem; font-weight: 600; line-height: 1.3; }
.card a:hover .card__title { text-decoration: underline; }

.carousel__btn {
  display: none; position: absolute; top: 28%; z-index: 2;
  width: 44px; height: 44px; padding: 0; cursor: pointer;
  background: var(--surface); color: var(--text);
  border: 1px solid var(--line); border-radius: 50%;
  box-shadow: 0 4px 14px rgba(18, 40, 76, .22);
}
[data-contrast="yellow"] .carousel__btn { border: 2px solid #000; box-shadow: none; }
.carousel.is-scrollable .carousel__btn { display: block; }
.carousel__btn::before {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 11px; height: 11px;
  border-top: 3px solid currentColor; border-right: 3px solid currentColor;
}
.carousel__btn--prev { left: -.6rem; }
.carousel__btn--prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.carousel__btn--next { right: -.6rem; }
.carousel__btn--next::before { transform: translate(-70%, -50%) rotate(45deg); }
.carousel__btn:disabled { opacity: .35; cursor: default; }
.carousel__btn:not(:disabled):hover { background: var(--accent); color: var(--accent-text); }

/* Archiwum całego roku (?s=k26_27) – ta sama karta co w karuzeli, w siatce zamiast rzędu */
.archiwum__siatka {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem; list-style: none; margin: 1.75rem 0 0; padding: 0;
}
.archiwum__siatka .card { width: 100%; }
.archiwum__wiecej { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); font-weight: 600; }

/* zapasowe wyświetlanie starej listy wydarzeń */
.events-feed { display: grid; gap: .5rem; padding-top: .75rem; }
.events-feed a { display: block; padding: .6rem 0; border-bottom: 1px solid var(--line); font-weight: 500; }
.events-feed img { max-height: 120px; width: auto; }

/* Kalendarz tygodnia na stronie głównej */
.week__range { color: var(--muted); font-weight: 600; }
.agendas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1.5rem clamp(1.5rem, 4vw, 3rem);;}
.agenda { margin-top: 1rem; background-color: white;border-radius: 8px;padding: 20px;border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(18, 40, 76, .12)}
.agenda h3 { margin: 0; font-family: var(--font-head); font-weight: 600; font-size: 1.2rem; }
.agenda__note { display: inline-block; margin-top: .6rem; padding: .25rem .75rem; background: var(--notice-bg); border-radius: 999px;
  font-weight: 600; font-size: .85rem; color: var(--text);}
.agenda ul { margin: .6rem 0 0; padding: 0; max-width: none; list-style: none; }
.agenda li {
  padding-left: 1rem; border-left: 3px solid var(--accent);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.agenda li + li { margin-top: .5rem; }
.agenda__more { margin: .4rem 0 0; max-width: none; font-size: .9rem; color: var(--muted); }
.more {
  display: inline-flex; align-items: center; gap: .4rem;
  margin-top: 1.2rem; padding-bottom: .15rem;
  color: var(--link); font-weight: 700; text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color .15s ease, gap .15s ease;
}
.more::after { content: "→"; transition: transform .15s ease; }
.more:hover, .more:focus-visible { border-color: currentColor; text-decoration: none; }
.more:hover::after, .more:focus-visible::after { transform: translateX(4px); }
[data-contrast="yellow"] .more { color: #000; }

.banner-link { display: block; }
.banner-link img { width: 100%; border-radius: 6px; }

/* ---------- Artykuły z kroniki (?w=kronika…/DDMMRRRR) ---------- */
.content #span1_aktual {
  margin: 0; font-family: var(--font-head); font-weight: 600; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.15;
  border-bottom: 2px solid var(--text);
}
.content #d_wyd { margin-top: .5rem; color: var(--muted); font-weight: 600; text-align: right;}
.content #liczn_aktual { margin-top: 2rem; display: flex; align-items: center; justify-content: center; gap: 1rem; }
.liczn-btn {
  position: relative; width: 44px; height: 44px; padding: 0; cursor: pointer;
  background: var(--surface); color: var(--text);
  border: 1px solid var(--line); border-radius: 50%;
}
[data-contrast="yellow"] .liczn-btn { border: 2px solid #000; }
.liczn-btn:hover { background: var(--accent); color: var(--accent-text); }
.liczn-btn::before {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 10px; height: 10px;
  border-top: 3px solid currentColor; border-right: 3px solid currentColor;
}
.liczn-btn--prev::before { transform: translate(-20%, -50%) rotate(-135deg); }
.liczn-btn--next::before { transform: translate(-60%, -50%) rotate(45deg); }
.content #licznik_aktual {
  width: 6rem; padding: .2rem; border: 0; background: transparent;
  font: inherit; font-weight: 700; text-align: center; color: var(--text);
}
.content #foto_aktual { margin-top: 1rem; text-align: center; padding: 20px;}
.content #foto_aktual img.slide { display: block; max-width: 100%; max-height: 55vh; width: auto; height: auto; 
  margin-inline: auto; cursor: pointer; border-radius: 8px;box-shadow: 4px 4px 4px #333; 
}

/* ---------- Podstrona: kalendarz tygodnia ---------- */
/* ---------- Podstrona: kalendarz tygodnia ---------- */
.cal { max-width: 56rem; }

.cal-head {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem;
  padding-bottom: 1rem; margin-bottom: .25rem; border-bottom: 2px solid var(--text);
}
.cal-head h1 { flex: 1 1 auto; min-width: 0; }
.cal-week {
  flex: 0 0 auto; margin: 0; padding: .3rem .9rem; border-radius: 999px;
  background: var(--accent); color: var(--accent-text); font-weight: 700; font-size: .95rem;
  white-space: nowrap;
}
[data-contrast="yellow"] .cal-week { background: #000; color: #ffe600; }

.cal-greeting {
  margin-top: 1.5rem; padding-left: 1rem; border-left: 3px solid var(--accent);
  color: var(--muted); font-style: italic;
}
[data-contrast="yellow"] .cal-greeting { border-left-color: #000; color: #000; }

.cal-day {
  margin-top: 1.5rem; padding: 1.25rem 1.5rem;
  background: var(--surface); border: 1px solid var(--line); border-left: 5px solid var(--accent);
  border-radius: 10px; box-shadow: 0 4px 14px rgba(18, 40, 76, .06);
}
[data-contrast="yellow"] .cal-day { border: 2px solid #000; border-left-width: 6px; box-shadow: none; }

.cal-day h2 {
  margin: 0; font-family: var(--font-head); font-weight: 600;
  font-size: 1.25rem; color: var(--brand);
}
[data-contrast="yellow"] .cal-day h2 { color: #000; }

.cal-note {
  display: inline-block; margin-top: .6rem; padding: .25rem .75rem;
  background: var(--notice-bg); border-radius: 999px;
  font-weight: 600; font-size: .85rem; color: var(--text);
}
[data-contrast="yellow"] .cal-note { background: transparent; border: 1px solid #000; }

.cal-day ul { list-style: none; padding: 0; margin-top: 1rem; }
.cal-day li { position: relative; padding-left: 1.15rem; font-size: .97rem; line-height: 1.55; }
.cal-day li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: 6px; height: 6px; border-radius: 50%; background: var(--accent);
}
[data-contrast="yellow"] .cal-day li::before { background: #000; }
.cal-day li + li { margin-top: .65rem; padding-top: .65rem; border-top: 1px dashed var(--line); }
[data-contrast="yellow"] .cal-day li + li { border-top-color: #000; }





.cal-sign {
   margin-top: 1.5rem; padding-left: 1rem; border-left: 3px solid var(--accent);
  color: var(--muted); font-style: italic;
}
.cal-sign p + p { margin-top: .75rem; }
[data-contrast="yellow"] .cal-sign { background: transparent; border: 1px solid #000; color: #000; }






@media (max-width: 520px) {
  .cal-head { flex-direction: column; align-items: flex-start; }
  .cal-day { padding: 1rem 1.1rem; }
}

/* ---------- Rekrutacja ---------- */
.recruit { background: var(--brand-2); color: var(--brand-text); }
[data-contrast="yellow"] .recruit { background: #000; }
.recruit__in {
  display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; align-items: center; justify-content: space-between;
  padding-block: clamp(2rem, 4vw, 3rem);
}
.recruit p { margin-top: .4rem; color: var(--brand-muted); max-width: 48ch; }
.recruit__links { display: flex; flex-wrap: wrap; gap: .75rem; }
.recruit__links a {
  display: inline-block; padding: .7rem 1.1rem; border-radius: 6px; font-weight: 700;
  color: var(--brand-text); text-decoration: none; border: 2px solid var(--brand-muted);
}
.recruit__links li:first-child a { background: var(--accent); color: var(--accent-text); border-color: var(--accent); }
[data-contrast="yellow"] .recruit__links li:first-child a { background: #ffe600; color: #000; border-color: #ffe600; }
.recruit__links a:hover { filter: brightness(1.1); text-decoration: underline; }

/* ---------- Logotypy ---------- */
.logos { padding-top: clamp(2rem, 4vw, 3rem); }
.logos > h2 { padding-bottom: .6rem; border-bottom: 2px solid var(--text); }
.logos .section-head h2 { padding: 0; border: 0; }
.logos ul { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; padding-top: 1.25rem; list-style: none; }
.logos a { }
.logos img { height: 72px; width: auto; max-width: 240px; object-fit: contain; }
.logos--eu { padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.logos--eu img { height: 88px; }

/* ---------- Stopka ---------- */
.site-footer { background: var(--brand); color: var(--brand-muted); }
.site-footer a { color: var(--brand-text); }
.footer__in { display: grid; grid-template-columns: 1.3fr 1.3fr 1fr; gap: 2rem; padding-block: 2.5rem 1.5rem; }
.footer__name { font-family: var(--font-head); font-size: 1.25rem; color: var(--brand-text); margin-bottom: .6rem; }
address { font-style: normal; }
.footer__contact li, .footer__links li { padding: .15rem 0; }
.footer__copy {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem;
  padding-block: 1rem 2rem; border-top: 1px solid rgba(255,255,255,.18); font-size: .85rem;
}
[data-contrast="yellow"] .footer__copy { border-color: #ffe600; }

/* ---------- Cookies ---------- */
.cookies {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 90;
  display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: center; justify-content: space-between;
  max-width: 44rem; margin-inline: auto; padding: .9rem 1.2rem;
  background: var(--surface); color: var(--text);
  border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 12px 30px rgba(18, 40, 76, .22);
}
[data-contrast="yellow"] .cookies { border: 2px solid #000; box-shadow: none; }
.cookies[hidden] { display: none; }

/* ---------- Responsywność ---------- */
@media (max-width: 1080px) {
  .brand__text small { display: none; }
  .nav__list > li > a, .nav__list > li > button { padding-inline: .5rem; font-size: .9rem; }
}

@media (max-width: 960px) {
  .burger { display: inline-flex; }

  .nav {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    max-height: calc(100vh - 8rem); overflow-y: auto;
    background: var(--surface); border-bottom: 1px solid var(--line);
    padding: .5rem var(--gap) 1rem;
  }
  .nav.is-open { display: block; }
  .no-js .nav { display: block; position: static; max-height: none; }
  .no-js .burger { display: none; }
  .no-js .header__in { flex-wrap: wrap; padding-block: .5rem; }

  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__list > li { border-bottom: 1px solid var(--line); }
  .nav__list > li > a, .nav__list > li > button {
    width: 100%; text-align: left; padding: .9rem .25rem; font-size: 1rem; border-radius: 0;
  }
  .has-sub > button { display: flex; justify-content: space-between; align-items: center; }
  .sub, .sub--right {
    position: static; min-width: 0; flex-direction: column; gap: 0;
    padding: 0 0 .8rem .75rem; border: 0; border-left: 3px solid var(--accent);
    border-radius: 0; box-shadow: none;
  }
  [data-contrast="yellow"] .sub { border: 0; border-left: 3px solid #000; }
  .sub ul { min-width: 0; }
  .sub ul + ul { margin-top: .8rem; }

  .hero__brand { grid-template-columns: minmax(0, 1fr) auto; }
  .hero__emblem { grid-column: 1; grid-row: 1; width: 100%; max-width: 430px; }
  .hero__godlo { grid-column: 2; grid-row: 1; }
  .hero__text { grid-column: 1 / -1; grid-row: 2; }
  .quick ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick li + li { border-left: 0; }
  .quick li:nth-child(even) { border-left: 1px solid var(--line); }
  .quick li:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .quick li:last-child { grid-column: 1 / -1; border-left: 0; }
  .footer__in { grid-template-columns: 1fr; }
  .archiwum__siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
  .utility__tools { width: 100%; justify-content: space-between; }
  .utility__count { display: block; margin: 0; padding: 0; border: 0; }
  .logos img, .logos--eu img { height: 56px; }
  .archiwum__siatka { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media print {
  .utility, .site-header, .quick, .cookies, .recruit, .logos { display: none !important; }
  body { background: #fff; color: #000; }
  .hero { background: #fff; color: #000; }
}

/*  filmy promocyjne  */

video#film{	width: 70%px; 	height: auto; }
div#lista_filmy{ 	height:auto;	margin:10px;	padding:10px 5px 10px 5px;	display: flex;	flex-flow: row wrap;}
div#lista_filmy div{	padding:10px 5px 10px 5px;	background:linear-gradient(white, #CCCCCC, white);	border:1px solid #666666;	margin:3px;	border-radius:3px;	width: 145px;	text-align:center;}
div#lista_filmy div a{	font-size:18px; text-decoration: none;}
div#lista_filmy div:hover{	background:linear-gradient(#CCC, white, #CCC);}
div#okno_wideo{ text-align: center;background-color: #666666; padding: 30px; border-radius: 8px;}

/*  kadra */
	.style4 { text-align: center; color: #FFFF00; font-weight: bold;  }
 	.style3 { color: #FFFF00;   }
	.obraz1 {	width: 124px;  height: 179px;  }
	.tekst1	{ color: #CC6600;	}
  .tekst2	{	color: #333333;	}
	.tekst3 {	color: red;	}
div#person {	text-align:center;	}
#person img {	max-width:800px;	box-shadow: 4px 4px 4px #333;	margin:auto; margin-top: 20px; }
#person p{	height: 25px;	margin: 5px;}
#person ol{	margin-left: 10px;	text-align:left; width: 100%;}
#person p:hover {	font-weight:bold;	font-size:17px;	animation-name: anim_kadra;	animation-duration:2s;}

@keyframes anim_kadra {
   0%	{font-weight:normal; font-size:16px;}  
  25%  {font-weight:bold;font-size:18px;}
  }

/* hymn */
div#hymn_tekst{ text-align: center; font-family:Cambria, Cochin, Georgia, Times, "Times New Roman", serif; } 
div#hymn_autor{	margin-top:50px;	font-family:Calibri;	line-height:150%;		}
div#hymn_media{ margin-top:20px; 	font-family:Calibri;	}
/*   obrazki oraz ikony  */
div#obrazki{ display: flex; flex-wrap: wrap;align-items: flex-start;}
div#obrazki img{margin:30px;   flex-grow: 0; flex-shrink: 0; flex-basis: auto; }

/* losy absolwentów        */


div#lista_abs{	width:90%;	margin:auto;	display:flex;	justify-content: center;	flex-wrap: wrap;}
div#lista_abs a{	color:#333333;	display: block;	margin: 10px;	width:150px;	text-align:center;	text-decoration:none;
	font-family:"georgia";	font-size:22px;	line-height:300%;	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);	}
div#lista_abs a:hover{	color:#0066CC;	animation-name: anim4;	animation-duration: 1s;
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19), inset 0px -3px 0px var(--accent);}
@keyframes anim4 {  
   
  25%  {color: var(--accent);}
}
div#lista_abs span{	font-size:1.2em;}