/*
Theme Name: ZS1 Stargard
Theme URI: https://zs1.stargard.pl
Author: Zespol Szkol nr 1 im. Mieszka I w Stargardzie
Description: Nowoczesny, minimalistyczny motyw WordPress dla Zespolu Szkol nr 1 im. Mieszka I w Stargardzie. Scrollowana strona glowna + podstrony.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: zs1-stargard
*/

/* =========================================================
   0. ZMIENNE / RESET
========================================================= */
:root{
  --navy: #0f2b46;
  --navy-dark: #0a1d31;
  --navy-light: #1c3f61;
  --gold: #b8892b;
  --gold-light: #e3c27a;

  /* Stonowana, akademicka paleta - zamiennik jaskrawych kolorow, sprawdzona
     pod katem kontrastu WCAG 2.1 AA (min. 4.5:1 dla bialego tekstu na tle) */
  --zs1-green: #2f5d3a;      /* stonowana ciemna ziel - kontrast z bialym ~6.6:1 */
  --zs1-green-dark: #204028;
  --zs1-purple: #5c1f3d;     /* stonowany burgund/sliwka - kontrast z bialym ~8.4:1 */
  --zs1-purple-dark: #431529;
  --zs1-blue: #17436b;       /* ciemny granat-blekit - kontrast z bialym ~9.3:1 */
  --zs1-blue-dark: #0f2f4d;
  --zs1-red: #7a1f2b;        /* bordo - kontrast z bialym ~8.9:1 */
  --zs1-red-dark: #591620;
  --zs1-yellow: #c9992e;     /* przygaszone zloto, uzywane z ciemnym granatowym tekstem */
  --zs1-yellow-dark: #a87c1f;

  --bg: #ffffff;
  --bg-alt: #f6f7f9;
  --ink: #16202b;
  --ink-soft: #5b6472;
  --border: #e7e9ec;
  --radius: 14px;
  --shadow: 0 10px 30px -12px rgba(15,43,70,.15);
  --container: 1180px;
  --ff: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --ff-serif: 'Lora', Georgia, 'Times New Roman', serif;
  --focus-ring: 3px solid #ffb703;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

/* =========================================================
   WCAG 2.1 - narzedzia dostepnosci
========================================================= */
.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:12px; top:-60px; z-index:1000; background:#fff; color:var(--navy);
  padding:12px 20px; border-radius:8px; font-weight:700; box-shadow:var(--shadow);
  transition:top .15s ease;
}
.skip-link:focus{ top:12px; }

/* Widoczny, spojny wskaznik fokusu dla wszystkich elementow interaktywnych (2.4.7) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
[tabindex]:focus-visible{
  outline: var(--focus-ring);
  outline-offset: 3px;
  border-radius: 4px;
}
main:focus{ outline:none; }

/* Dostep klawiatura do rozwijanego menu (2.1.1) - nie tylko na hover */
.main-nav li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }

/* Ograniczenie animacji dla osob preferujacych mniej ruchu (2.3.3) */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .reveal{ opacity:1 !important; transform:none !important; }
}
body{
  margin:0;
  font-family:var(--ff);
  color:var(--ink);
  background:var(--bg);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0 0 .5em; line-height:1.2; font-weight:700; letter-spacing:-.01em; }
h1, .hero h1, .section-head h2, .cta h2, .page-hero h1{ font-family:var(--ff-serif); font-weight:700; letter-spacing:0; }
p{ margin:0 0 1em; }
button{ font-family:var(--ff); cursor:pointer; }

.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.section{ padding:88px 0; }
.section--alt{ background:var(--bg-alt); }
.section-head{ max-width:640px; margin:0 auto 48px; text-align:center; }
.eyebrow{
  display:inline-block; font-size:13px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--zs1-red); margin-bottom:12px;
}
.section-head h2{ font-size:clamp(26px,3.4vw,38px); color:var(--navy); position:relative; }
.section-head h2::after{
  content:""; display:block; width:64px; height:10px; margin:14px auto 0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 10'%3E%3Cpath d='M2 6c6-8 10 4 16-4s10 8 16 0 10-8 16 0 8 0 8 0' fill='none' stroke='%23b8892b' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center;
}
.section-head p{ color:var(--ink-soft); margin:0; }

.btn{
  display:inline-flex; align-items:center; gap:8px; padding:14px 28px;
  border-radius:999px; font-weight:600; font-size:15px; border:2px solid transparent;
  transition:all .2s ease;
}
.btn--primary{ background:var(--navy); color:#fff; }
.btn--primary:hover{ background:var(--navy-dark); }
.btn--gold{ background:var(--gold); color:var(--navy-dark); }
.btn--gold:hover{ background:var(--gold-light); }
.btn--ghost{ border-color:rgba(255,255,255,.5); color:#fff; }
.btn--ghost:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
.btn--outline-navy{ border-color:var(--navy); color:var(--navy); }
.btn--outline-navy:hover{ background:var(--navy); color:#fff; }

/* =========================================================
   1. TOP BAR
========================================================= */
.topbar{
  background:var(--navy-dark); color:#cfd8e3; font-size:13px;
}
.topbar .container{ display:flex; justify-content:space-between; align-items:center; height:40px; }
.topbar a{ color:#cfd8e3; }
.topbar a:hover{ color:#fff; }
.topbar__links{ display:flex; gap:20px; }
.topbar__contact{ display:flex; gap:20px; }
@media (max-width:780px){
  .topbar__contact{ display:none; }
}

/* =========================================================
   2. GLOWNA NAWIGACJA
========================================================= */
.site-header{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--border);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between; height:76px;
}
.brand{ display:flex; align-items:center; gap:12px; font-weight:800; color:var(--navy); }
.brand__mark{
  width:46px; height:46px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.brand__mark img{ width:100%; height:100%; object-fit:contain; }
.brand__mark svg{ width:100%; height:100%; }
.brand__text small{ display:block; font-weight:500; font-size:11.5px; color:var(--ink-soft); letter-spacing:.02em; }
.brand__text strong{ font-size:16px; }

/* Podswietlenie aktywnej pozycji menu. Nie polega wylacznie na kolorze (WCAG 1.4.1) -
   dodatkowo podkreslenie, a kolor dobrany pod katem kontrastu AA na bialym tle. */
.main-nav .current-menu-item > a,
.main-nav .current-menu-ancestor > a{
  color: var(--zs1-red);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.main-nav{ display:flex; align-items:center; gap:2px; }
.main-nav ul{ display:flex; align-items:center; gap:2px; }
.main-nav li{ position:relative; }
.main-nav > ul > li > a{
  display:flex; align-items:center; gap:6px; padding:12px 14px; font-weight:600; font-size:14.5px; border-radius:8px; color:var(--ink);
}
.main-nav > ul > li > a:hover{ background:var(--bg-alt); color:var(--navy); }
.main-nav .sub-menu{
  position:absolute; top:100%; left:0; background:#fff; border:1px solid var(--border);
  border-radius:12px; min-width:260px; padding:8px; box-shadow:var(--shadow);
  opacity:0; visibility:hidden; transform:translateY(6px); transition:all .18s ease;
}
.main-nav li:hover > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.main-nav .sub-menu a{ display:block; padding:9px 12px; border-radius:8px; font-size:14px; color:var(--ink-soft); }
.main-nav .sub-menu a:hover{ background:var(--bg-alt); color:var(--navy); }
.main-nav .menu-item-has-children > a::after{ content:"⌄"; font-size:12px; opacity:.6; }

.header-cta{ display:flex; align-items:center; gap:10px; }
.nav-toggle{
  display:none; width:44px; height:44px; border-radius:10px; border:1px solid var(--border);
  background:#fff; align-items:center; justify-content:center;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:20px; height:2px; background:var(--navy); position:relative; transition:.2s;
}
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }

@media (max-width:960px){
  .main-nav{
    position:fixed; inset:76px 0 0 0; background:#fff; flex-direction:column; align-items:stretch;
    padding:16px; overflow:auto; display:none;
  }
  .main-nav.is-open{ display:flex; }
  .main-nav ul{ flex-direction:column; align-items:stretch; }
  .main-nav .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; display:none; padding-left:12px; }
  .main-nav li.is-open > .sub-menu{ display:block; }
  .nav-toggle{ display:flex; }
  .header-cta .btn span{ display:none; }
}

/* =========================================================
   3. HERO
========================================================= */
.hero{
  position:relative; overflow:hidden; background:linear-gradient(160deg,var(--navy) 0%,var(--navy-dark) 60%);
  color:#fff; padding:110px 0 100px;
}
.hero::after{
  content:""; position:absolute; right:-120px; top:-120px; width:480px; height:480px; border-radius:50%;
  background:radial-gradient(circle,rgba(201,154,61,.25),transparent 70%);
}
.hero .container{ position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
.hero__crest{ margin-bottom:18px; }

/* Subtelne dekoracyjne ksztalty w tle hero - lamia "plaski" wyglad prostokatnej sekcji */
.hero__deco{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
.hero__deco-shape{ position:absolute; opacity:.08; }
.hero__deco-shape--1{ width:420px; height:420px; left:-90px; bottom:-140px; }
.hero__deco-shape--2{ width:220px; height:220px; right:8%; top:14%; opacity:.06; }
.hero__deco-dots{ position:absolute; width:160px; height:160px; left:6%; top:8%; opacity:.12; }
.hero .container{ z-index:1; }
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18);
  padding:8px 16px; border-radius:999px; font-size:13px; font-weight:600; color:var(--gold-light); margin-bottom:20px;
}
.hero h1{ font-size:clamp(32px,4.6vw,52px); color:#fff; }
.hero h1 em{ font-style:normal; color:var(--gold-light); }
.hero p{ font-size:17.5px; color:#d7dee8; max-width:520px; }
.hero__actions{ display:flex; gap:14px; margin-top:28px; flex-wrap:wrap; }
.hero__stats{ display:flex; gap:32px; margin-top:44px; flex-wrap:wrap; }
.hero__stats div strong{ display:block; font-size:26px; color:#fff; }
.hero__stats div span{ font-size:13px; color:#aeb9c8; }

.hero__panel{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15); border-radius:20px; padding:10px;
  backdrop-filter:blur(6px);
}
.quicklinks{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.quicklink{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:18px;
  transition:.2s;
}
.quicklink:hover{ background:rgba(255,255,255,.14); transform:translateY(-2px); }
.quicklink .ico{ width:34px; height:34px; margin-bottom:12px; color:var(--gold-light); }
.quicklink strong{ display:block; font-size:14.5px; color:#fff; margin-bottom:2px; }
.quicklink span{ font-size:12.5px; color:#aeb9c8; }

/* Warianty kolorystyczne kafli szybkich lini - nawiazanie do obecnej strony ZS1
   (e-Dziennik zielony, e-Learning fioletowy, e-Biblioteka niebieski, Plan lekcji zolty) */
.quicklink--green{ background:var(--zs1-green); border-color:var(--zs1-green); }
.quicklink--green:hover{ background:var(--zs1-green-dark); }
.quicklink--purple{ background:var(--zs1-purple); border-color:var(--zs1-purple); }
.quicklink--purple:hover{ background:var(--zs1-purple-dark); }
.quicklink--blue{ background:var(--zs1-blue); border-color:var(--zs1-blue); }
.quicklink--blue:hover{ background:var(--zs1-blue-dark); }
.quicklink--yellow{ background:var(--zs1-yellow); border-color:var(--zs1-yellow); }
.quicklink--yellow:hover{ background:var(--zs1-yellow-dark); }
.quicklink--green .ico, .quicklink--purple .ico, .quicklink--blue .ico{ color:rgba(255,255,255,.85); }
.quicklink--yellow .ico{ color:var(--navy-dark); }
.quicklink--yellow strong{ color:var(--navy-dark); }
.quicklink--yellow span{ color:rgba(15,29,49,.65); }

@media (max-width:900px){
  .hero .container{ grid-template-columns:1fr; }
}

/* =========================================================
   4. LICZBY
========================================================= */
.stats{ background:var(--navy); color:#fff; padding:56px 0; }
.stats .container{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center; }
.stats .stat strong{ display:block; font-size:34px; color:var(--gold-light); }
.stats .stat span{ font-size:13.5px; color:#c3ccd9; }
@media (max-width:760px){ .stats .container{ grid-template-columns:1fr 1fr; row-gap:32px; } }

/* =========================================================
   5. KARTY / GRID OGOLNE
========================================================= */
.grid{ display:grid; gap:24px; }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:960px){ .grid--3,.grid--4{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .grid--3,.grid--4{ grid-template-columns:1fr; } }

.card{
  background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:28px;
  transition:.2s; height:100%;
}
.card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); border-color:transparent; }
.card .ico{
  width:46px; height:46px; border-radius:12px; background:var(--bg-alt); color:var(--navy);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.card h3{ font-size:17px; color:var(--navy); }
.card p{ color:var(--ink-soft); font-size:14.5px; margin-bottom:0; }

/* Rotacja kolorow ikon kart - nawiazanie do wielobarwnej identyfikacji ZS1 */
.grid--4 .card:nth-child(4n+1) .ico{ background:rgba(122,182,72,.12); color:var(--zs1-green-dark); }
.grid--4 .card:nth-child(4n+2) .ico{ background:rgba(147,52,140,.12); color:var(--zs1-purple); }
.grid--4 .card:nth-child(4n+3) .ico{ background:rgba(31,143,196,.12); color:var(--zs1-blue-dark); }
.grid--4 .card:nth-child(4n+4) .ico{ background:rgba(242,194,48,.18); color:var(--zs1-yellow-dark); }

/* =========================================================
   FEATURE GRID - bez ramek/pudelek, koliste ikony, kropkowany
   separator miedzy rzedami (bez "gotowego szablonu" wygladu kart)
========================================================= */
.feature-grid{ max-width:980px; margin:0 auto; }
.feature-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.feature-item{
  text-align:center; display:flex; flex-direction:column; align-items:center; padding:8px;
  border:none; background:none; box-shadow:none;
}
.feature-item:hover{ transform:none; box-shadow:none; border-color:transparent; }
.feature-item__ico{
  width:76px; height:76px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  margin-bottom:18px; transition:transform .2s ease;
}
.feature-item:hover .feature-item__ico{ transform:translateY(-4px) scale(1.05); }
.feature-item h3{ font-size:16.5px; color:var(--navy); margin-bottom:8px; }
.feature-item p{ font-size:14px; color:var(--ink-soft); margin-bottom:0; max-width:230px; }

.feature-item--1 .feature-item__ico{ background:rgba(23,67,107,.1); color:var(--zs1-blue); }
.feature-item--2 .feature-item__ico{ background:rgba(122,31,43,.1); color:var(--zs1-red); }
.feature-item--3 .feature-item__ico{ background:rgba(184,137,43,.16); color:var(--zs1-yellow-dark); }
.feature-item--4 .feature-item__ico{ background:rgba(47,93,58,.12); color:var(--zs1-green); }

.feature-divider{
  height:1px; margin:36px auto; max-width:640px;
  border-top:2px dotted var(--border);
}

@media (max-width:820px){
  .feature-row{ grid-template-columns:1fr 1fr; row-gap:32px; }
}
@media (max-width:560px){
  .feature-row{ grid-template-columns:1fr; }
}

/* NEWS */
.news-card{ background:#fff; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; transition:.2s; }
.news-card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.news-card__thumb{ aspect-ratio:16/10; background:linear-gradient(135deg,var(--bg-alt),#eceef1); overflow:hidden; }
.news-card__thumb img{ width:100%; height:100%; object-fit:cover; }
.news-card__body{ padding:20px 22px 24px; }
.news-card__date{ font-size:12.5px; color:var(--zs1-red); font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.news-card h3{ font-size:16.5px; margin:8px 0 8px; color:var(--navy); }
.news-card p{ font-size:14px; color:var(--ink-soft); margin-bottom:0; }
.section-foot{ text-align:center; margin-top:40px; }

/* PATRONAT / LOGOTYPY */
.logostrip{ display:flex; flex-wrap:wrap; gap:36px; align-items:center; justify-content:center; }
.logostrip img{ max-height:52px; width:auto; filter:grayscale(1); opacity:.7; transition:.2s; }
.logostrip img:hover{ filter:none; opacity:1; }

/* CTA REKRUTACJA */
.cta{
  background:linear-gradient(120deg,var(--navy),var(--navy-light)); color:#fff; border-radius:24px;
  padding:56px; display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap;
}
.cta h2{ color:#fff; font-size:clamp(24px,3vw,32px); max-width:520px; }
.cta p{ color:#c3ccd9; max-width:480px; }

/* Wariant CTA rekrutacji - czerwony, jak obecny blok "Dolacz do grona uczniow ZS1" */
.cta--red{ background:linear-gradient(120deg,var(--zs1-red),var(--zs1-red-dark)); }
.cta--red p{ color:rgba(255,255,255,.85); }
.cta--red .eyebrow{ color:#ffe1a8 !important; }
.cta--red .btn--gold{ background:#fff; color:var(--zs1-red-dark); }
.cta--red .btn--gold:hover{ background:#ffe9e6; }

/* Przycisk rekrutacji w nagłówku - czerwony, spójny z blokiem "Rekrutacja" na stronie */
.header-cta .btn--gold{ background:var(--zs1-red); color:#fff; }
.header-cta .btn--gold:hover{ background:var(--zs1-red-dark); }

/* KONTAKT */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.contact-item{ display:flex; gap:14px; padding:18px 0; border-bottom:1px solid var(--border); }
.contact-item .ico{ width:40px; height:40px; border-radius:10px; background:var(--bg-alt); color:var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-item strong{ display:block; color:var(--navy); font-size:14.5px; }
.contact-item span, .contact-item a{ font-size:14px; color:var(--ink-soft); }
.map-frame{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); height:100%; min-height:320px; }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }

/* =========================================================
   6. FOOTER
========================================================= */
.site-footer{ background:var(--navy-dark); color:#c3ccd9; padding:72px 0 0; font-size:14.5px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-grid h4{ color:#fff; font-size:14px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:18px; }
.footer-grid ul li{ margin-bottom:10px; }
.footer-grid a:hover{ color:#fff; }
.footer-brand p{ color:#93a1b4; max-width:320px; }
.footer-social{ display:flex; gap:10px; margin-top:16px; }
.footer-social a{ width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; }
.footer-social a:hover{ background:var(--gold); color:var(--navy-dark); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:22px 0; flex-wrap:wrap; gap:10px; color:#7f8ca0; font-size:13px; }
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }

/* =========================================================
   7. PODSTRONY (page.php)
========================================================= */
.page-hero{ background:var(--bg-alt); padding:56px 0 40px; border-bottom:1px solid var(--border); }
.breadcrumbs{ font-size:13px; color:var(--ink-soft); margin-bottom:12px; }
.breadcrumbs a:hover{ color:var(--navy); }
.page-hero h1{ font-size:clamp(26px,3.6vw,40px); color:var(--navy); }
.page-content{ padding:56px 0 96px; }
.page-content .content-wrap{ max-width:820px; margin:0 auto; }
.page-content .content-wrap h2{ color:var(--navy); font-size:24px; margin-top:1.4em; }
.page-content .content-wrap h3{ color:var(--navy); font-size:19px; }
.page-content .content-wrap p, .page-content .content-wrap li{ color:var(--ink); font-size:16px; }
.page-content .content-wrap ul{ list-style:disc; padding-left:22px; margin-bottom:1em; }
.page-content .content-wrap ul li{ margin-bottom:.4em; }
.page-content .content-wrap img{ border-radius:var(--radius); margin:20px 0; }
.page-content .content-wrap a{ color:var(--navy); text-decoration:underline; text-decoration-color:var(--gold); }

/* AKTUALNOSCI ARCHIWUM */
.news-toolbar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:32px; flex-wrap:wrap; gap:16px; }
.pagination{ display:flex; justify-content:center; gap:8px; margin-top:48px; }
.pagination a, .pagination span{ padding:10px 16px; border-radius:8px; border:1px solid var(--border); font-size:14px; }
.pagination .current{ background:var(--navy); color:#fff; border-color:var(--navy); }

/* SINGLE POST */
.single-post{ padding:56px 0 96px; }
.single-post .content-wrap{ max-width:760px; margin:0 auto; }
.single-post__meta{ color:var(--ink-soft); font-size:14px; margin-bottom:24px; }
.single-post__thumb{ border-radius:var(--radius); overflow:hidden; margin-bottom:32px; }

/* 404 */
.error-404{ padding:120px 0; text-align:center; }
.error-404 h1{ font-size:96px; color:var(--gold); margin-bottom:0; }

/* Utilities */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* =========================================================
   8. PANEL DOSTEPNOSCI (WCAG 2.1)
========================================================= */
.a11y-widget{ position:fixed; right:20px; bottom:20px; z-index:200; }
.a11y-toggle{
  width:56px; height:56px; border-radius:50%; background:var(--navy); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center; box-shadow:0 10px 24px -8px rgba(15,43,70,.5);
}
.a11y-toggle:hover{ background:var(--navy-dark); }

.a11y-panel{
  position:absolute; right:0; bottom:68px; width:280px; max-width:calc(100vw - 40px);
  background:#fff; border:1px solid var(--border); border-radius:16px; padding:20px;
  box-shadow:var(--shadow);
}
.a11y-panel h2{ font-size:16px; color:var(--navy); margin-bottom:4px; }
.a11y-panel__hint{ font-size:12px; color:var(--ink-soft); margin-bottom:16px; }
.a11y-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; font-size:13.5px; color:var(--ink); }
.a11y-btns{ display:flex; gap:6px; }
.a11y-btns button{
  width:32px; height:32px; border-radius:8px; border:1px solid var(--border); background:var(--bg-alt);
  font-weight:700; font-size:13px; color:var(--navy);
}
.a11y-btns button:hover{ background:var(--navy); color:#fff; }
.a11y-option{
  display:block; width:100%; text-align:left; padding:10px 12px; margin-bottom:8px;
  border:1px solid var(--border); border-radius:10px; background:#fff; font-size:13.5px; color:var(--ink);
}
.a11y-option:hover{ background:var(--bg-alt); }
.a11y-option[aria-pressed="true"]{ background:var(--navy); border-color:var(--navy); color:#fff; }
.a11y-reset{
  display:block; width:100%; text-align:center; margin-top:6px; padding:10px 12px; border-radius:10px;
  border:1px solid var(--zs1-red); color:var(--zs1-red); background:#fff; font-size:13px; font-weight:600;
}
.a11y-reset:hover{ background:var(--zs1-red); color:#fff; }

/* Tryby dostepnosci - klasy dodawane na <html> przez assets/js/accessibility.js */
html.a11y-grayscale{ filter:grayscale(1); }
html.a11y-negative{ filter:invert(1) hue-rotate(180deg); }
html.a11y-negative img, html.a11y-negative .a11y-widget{ filter:invert(1) hue-rotate(180deg); }
html.a11y-underline a{ text-decoration:underline !important; }
html.a11y-readable body, html.a11y-readable input, html.a11y-readable button{
  font-family: Verdana, 'Trebuchet MS', Arial, sans-serif !important;
  letter-spacing:.01em; line-height:1.8;
}
html.a11y-pause-anim *, html.a11y-pause-anim *::before, html.a11y-pause-anim *::after{
  animation-play-state:paused !important; transition:none !important; scroll-behavior:auto !important;
}
html.a11y-pause-anim .reveal{ opacity:1 !important; transform:none !important; }

/* Wysoki kontrast - biale tlo, czarny tekst, mocniejsze obrysy, bez subtelnych cieni */
html.a11y-contrast{ background:#fff; }
html.a11y-contrast body{ background:#fff; color:#000; }
html.a11y-contrast .site-header{ background:#fff; border-bottom:2px solid #000; }
html.a11y-contrast .hero,
html.a11y-contrast .stats,
html.a11y-contrast .cta,
html.a11y-contrast .site-footer{ background:#000 !important; color:#fff !important; }
html.a11y-contrast .hero *, html.a11y-contrast .stats *, html.a11y-contrast .cta *, html.a11y-contrast .site-footer *{
  color:#fff !important; border-color:#fff !important; text-shadow:none !important;
}
html.a11y-contrast .card, html.a11y-contrast .news-card, html.a11y-contrast .quicklink{
  background:#fff !important; border:2px solid #000 !important; box-shadow:none !important;
}
html.a11y-contrast .card *, html.a11y-contrast .news-card *, html.a11y-contrast .quicklink *{ color:#000 !important; }
html.a11y-contrast a{ color:#00008B !important; }
html.a11y-contrast .btn{ border:2px solid #000 !important; }
html.a11y-contrast .eyebrow{ color:#000 !important; }

@media (max-width:480px){
  .a11y-panel{ width:calc(100vw - 40px); }
}

/* =========================================================
   9. ORGANICZNE PRZEJSCIA MIEDZY SEKCJAMI (fale SVG)
========================================================= */
.wave-divider{ line-height:0; }
.wave-divider svg{ display:block; width:100%; height:56px; }
.wave-divider--navy-to-white{ background:var(--navy); }
.wave-divider--navy-to-white svg path{ fill:var(--bg); }
.wave-divider--white-to-alt{ background:var(--bg); }
.wave-divider--white-to-alt svg path{ fill:var(--bg-alt); }
.wave-divider--alt-to-white{ background:var(--bg-alt); }
.wave-divider--alt-to-white svg path{ fill:var(--bg); }
@media (max-width:600px){
  .wave-divider svg{ height:34px; }
}
