/* ============================================================
   FlowPol (cytometria.pl) — arkusz główny
   Jeden krój (IBM Plex Sans), czarny tekst, biały papier, jeden
   akcent (czerwień z logo). Linie zamiast kart, brak dekoracji.
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}
svg{display:block}

:root{
  --paper:#ffffff;
  --paper-2:#f4f4f2;
  --ink:#141414;
  --ink-2:#4a4a4a;
  --ink-3:#7a7a7a;
  --line:#dcdcd8;
  --line-2:#c4c4bf;
  /* akcent FlowPol: zieleń lasera z obecnej strony */
  --accent:#16A34A;
  --accent-ink:#15803D;
  --accent-soft:#EAF7EE;
  --dark:#0F0F0F;

  --font:'IBM Plex Sans','Segoe UI',Helvetica,Arial,sans-serif;
  --container:1180px;
  --gutter:clamp(1.25rem,4vw,2.5rem);
}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.wrap{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}

h1,h2,h3,h4{font-weight:600;line-height:1.15;color:var(--ink);letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,4.2vw,3.3rem);letter-spacing:-.02em;font-weight:300}
h1 em,h2 em{font-style:normal;font-weight:600}
h2{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:300}
h3{font-size:1.15rem}
/* sygnatura z obecnej strony: krótka czerwona kreska nad nagłówkiem */
.rule::before,.section-head h2::before,.hero-copy h1::before,.about-copy h2::before,.contact-cta h2::before{
  content:"";display:block;width:40px;height:2px;background:var(--accent);margin-bottom:1.1rem;
}
p{max-width:64ch}
strong{font-weight:600}

section{padding-block:clamp(3rem,7vw,5.5rem);scroll-margin-top:4.5rem}
section + section{border-top:1px solid var(--line)}
.section-head{margin-bottom:clamp(2rem,4vw,3rem)}
.section-head h2{margin-bottom:.9rem;max-width:28ch}
.section-head p{color:var(--ink-2);font-size:1.05rem}

/* etykieta sekcji — zwykły drobny tekst, bez ozdobników */
.eyebrow{
  display:block;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:1rem;font-weight:500;
}

/* przyciski: jeden pełny, jeden liniowy — bez cieni i unoszenia */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.85rem 1.4rem;border:1px solid var(--accent);
  font-weight:600;font-size:.8rem;line-height:1.2;
  text-transform:uppercase;letter-spacing:.08em;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.btn-ghost{background:transparent;color:var(--accent)}
.btn-ghost:hover{background:var(--accent);color:#fff}
.btn .arrow{display:inline-block;transition:transform .2s ease}
.btn:hover .arrow{transform:translateX(3px)}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.text-link{
  font-weight:600;color:var(--accent);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;
}
.text-link:hover{color:var(--accent-ink)}
.text-link .arrow{display:inline-block;margin-left:.3em;transition:transform .2s ease}
.text-link:hover .arrow{transform:translateX(3px)}

/* ============ WEJŚCIE PRZY SCROLLU (subtelne) ============ */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .55s ease,transform .55s ease}
.reveal.in-view{opacity:1;transform:none}
.reveal-stagger > *{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}
.reveal-stagger.in-view > *{opacity:1;transform:none}
.reveal-stagger.in-view > *:nth-child(2){transition-delay:.07s}
.reveal-stagger.in-view > *:nth-child(3){transition-delay:.14s}
.reveal-stagger.in-view > *:nth-child(4){transition-delay:.21s}
.reveal-stagger.in-view > *:nth-child(5){transition-delay:.28s}
.reveal-stagger.in-view > *:nth-child(6){transition-delay:.35s}
.reveal-stagger.in-view > *:nth-child(7){transition-delay:.42s}
.reveal-stagger.in-view > *:nth-child(8){transition-delay:.49s}
.reveal-stagger.in-view > *:nth-child(9){transition-delay:.56s}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-stagger > *{opacity:1;transform:none;transition:none}
}

/* ============ JĘZYK ============ */
body.lang-pl .t-en{display:none}
body.lang-en .t-pl{display:none}

/* ============ NAGŁÓWEK ============ */
header{
  position:sticky;top:0;z-index:100;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s ease;
}
/* cienki pasek w kolorach logo — jedyny "kolorowy" element poza wykresem */
header::before{content:"";display:block;height:3px;background:var(--accent)}
header.scrolled{box-shadow:0 6px 24px -12px rgba(0,0,0,.18)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:68px}
.logo-badge{display:inline-flex;align-items:center;flex:none}
.logo-badge img{height:26px;width:auto}

nav.primary-nav{display:flex;align-items:center}
.nav-links{display:flex;align-items:center;gap:1.75rem}
.nav-links a{
  font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-2);padding-block:.25rem;position:relative;
  transition:color .15s ease;
}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .25s ease;
}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after{transform:scaleX(1)}

.header-actions{display:flex;align-items:center;gap:1.5rem}
.lang-switch{display:flex;align-items:center;gap:.35rem;font-size:.85rem}
.lang-switch button{color:var(--ink-3);padding:.15rem .05rem}
.lang-switch button:hover{color:var(--ink)}
.lang-switch button.active{color:var(--ink);font-weight:600;border-bottom:2px solid var(--accent)}
.lang-switch .lang-sep{color:var(--line-2)}
.header-actions .header-cta{
  font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);border:1px solid var(--accent);padding:.55rem 1rem;
  transition:background .15s ease,color .15s ease;
}
.header-actions .header-cta:hover{background:var(--accent);color:#fff}

.nav-toggle{display:none;flex-direction:column;gap:5px;padding:.4rem}
.nav-toggle span{width:22px;height:1.5px;background:var(--ink)}

.mobile-menu{
  display:none;position:fixed;inset:0;background:var(--paper);z-index:99;
  padding:6rem var(--gutter) 2rem;overflow-y:auto;
}
.mobile-menu.open{display:block}
.mobile-menu ul{display:flex;flex-direction:column}
.mobile-menu li{border-bottom:1px solid var(--line)}
.mobile-menu a{display:block;padding:1rem 0;font-size:1.35rem;font-weight:500}

@media (max-width:920px){
  nav.primary-nav .nav-links{display:none}
  .header-actions .header-cta{display:none}
  .nav-toggle{display:flex}
}
@media (max-width:560px){.lang-switch{display:none}}

/* ============ HERO ============ */
.hero{padding-top:clamp(2.5rem,6vw,5rem);padding-bottom:clamp(2.5rem,6vw,5rem)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.hero-copy h1{margin-bottom:1.25rem;max-width:18ch}
.hero-copy h1 em{font-style:normal;font-weight:600}
.hero-copy p.lead{font-size:1.1rem;color:var(--ink-2);max-width:50ch;margin-bottom:2rem}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}

.hero-visual{width:100%;max-width:520px;justify-self:end}
.hero-visual .hero-photo{width:100%;aspect-ratio:4/3;object-fit:cover}
.hero-visual figcaption{font-size:.82rem;color:var(--ink-3);margin-top:.7rem;line-height:1.45}
.dotplot{width:100%;height:auto;border:1px solid var(--line);background:#fff}
/* akwizycja: punkty pojawiają się partiami, potem rysuje się bramka i etykieta */
.dotplot .dotplot-events g{opacity:0;animation:acq .35s ease-out forwards}
.dotplot .b0{animation-delay:.10s}.dotplot .b1{animation-delay:.18s}.dotplot .b2{animation-delay:.26s}
.dotplot .b3{animation-delay:.34s}.dotplot .b4{animation-delay:.42s}.dotplot .b5{animation-delay:.50s}
.dotplot .b6{animation-delay:.58s}.dotplot .b7{animation-delay:.66s}.dotplot .b8{animation-delay:.74s}
.dotplot .b9{animation-delay:.82s}.dotplot .b10{animation-delay:.90s}.dotplot .b11{animation-delay:.98s}
.dotplot .b12{animation-delay:1.06s}.dotplot .b13{animation-delay:1.14s}.dotplot .b14{animation-delay:1.22s}
.dotplot .b15{animation-delay:1.30s}.dotplot .b16{animation-delay:1.38s}.dotplot .b17{animation-delay:1.46s}
.dotplot .b18{animation-delay:1.54s}.dotplot .b19{animation-delay:1.62s}.dotplot .b20{animation-delay:1.70s}
.dotplot .b21{animation-delay:1.78s}.dotplot .b22{animation-delay:1.86s}.dotplot .b23{animation-delay:1.94s}
@keyframes acq{to{opacity:1}}
.dotplot .dotplot-gate{stroke:var(--accent);stroke-dasharray:100;stroke-dashoffset:100;animation:gate .7s ease-out 2.2s forwards}
.dotplot .dotplot-label{fill:var(--accent)}
@keyframes gate{to{stroke-dashoffset:0}}
.dotplot .dotplot-label{opacity:0;animation:acq .3s ease-out 2.8s forwards}
.dotplot .dotplot-status-acq{animation:pulse .8s ease-in-out 3,hide 0s linear 2.4s forwards}
@keyframes pulse{50%{opacity:.25}}
@keyframes hide{to{visibility:hidden}}
@media (prefers-reduced-motion:reduce){
  .dotplot .dotplot-events g,.dotplot .dotplot-label{opacity:1;animation:none}
  .dotplot .dotplot-gate{stroke-dashoffset:0;animation:none}
  .dotplot .dotplot-status-acq{animation:none}
}
.hero-visual{transition:transform .5s ease}


@media (max-width:920px){
  .hero .wrap{grid-template-columns:1fr}
  .hero-visual{justify-self:start;max-width:460px}
}

/* ============ TRZY PUNKTY (USP) ============ */
.pillars{padding-top:0;border-top:0!important}
.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.5rem)}
.pillar{border-top:1px solid var(--ink);padding-top:1.1rem;position:relative}
.pillar::before{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:var(--accent);transition:width .45s cubic-bezier(.2,.7,.2,1)}
.pillar:hover::before{width:100%}
.pillar .num{font-size:.8rem;color:var(--accent);font-weight:600;display:block;margin-bottom:.9rem;font-variant-numeric:tabular-nums}
.pillar h3{margin-bottom:.5rem}
.pillar p{color:var(--ink-2);font-size:.97rem}
@media (max-width:860px){.pillars-grid{grid-template-columns:1fr;gap:1.75rem}}

/* ============ O NAS ============ */
.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.about-copy h2{margin-bottom:1.25rem;max-width:20ch}
.about-copy p.body-text{color:var(--ink-2);font-size:1.03rem}
.about-copy p.body-text + p.body-text{margin-top:1rem}
.about-quote{margin-top:2rem;padding-left:1.25rem;border-left:2px solid var(--accent);max-width:44ch}
.about-quote p{font-size:1.15rem;font-weight:300;font-style:italic;line-height:1.45;color:var(--ink)}
.about-quote cite{display:block;margin-top:.6rem;font-style:normal;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.about-facts{border-top:1px solid var(--ink)}
.about-facts .fact{display:grid;grid-template-columns:9rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.about-facts .fact dt{color:var(--ink-3)}
.about-facts .fact dd{color:var(--ink)}
.about-image{width:100%;margin-bottom:1.5rem}
.about-image img{width:100%;aspect-ratio:4/3;object-fit:cover}

.partners-strip{margin-top:clamp(2.5rem,5vw,4rem);padding-top:1.75rem;border-top:1px solid var(--line)}
.partners-strip .partners-label{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1.4rem}
.partners-logos{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem clamp(1.5rem,4vw,3.5rem)}
.partner-logo img{height:22px;width:auto;max-width:130px;object-fit:contain;filter:grayscale(1);opacity:.7;transition:filter .3s ease,opacity .3s ease,transform .3s ease}
.partner-logo:hover img{filter:none;opacity:1;transform:translateY(-2px)}

@media (max-width:920px){.about-grid{grid-template-columns:1fr}.about-facts .fact{grid-template-columns:7.5rem 1fr}}

/* ============ OFERTA ============ */
.offer{background:var(--paper-2)}
.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.5rem)}
.offer-item{border-top:1px solid var(--ink);padding-top:1.1rem;display:flex;flex-direction:column;position:relative}
.offer-item::before{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:var(--accent);transition:width .45s cubic-bezier(.2,.7,.2,1)}
.offer-item:hover::before{width:100%}
.offer-num{font-size:.8rem;color:var(--accent);font-weight:600;margin-bottom:1rem;font-variant-numeric:tabular-nums}
.offer-item h3{font-size:1.3rem;margin-bottom:.6rem}
.offer-item p{color:var(--ink-2);font-size:.97rem;flex:1;margin-bottom:1.25rem}
.offer-link{align-self:flex-start}
@media (max-width:860px){.offer-grid{grid-template-columns:1fr}}

/* ============ USŁUGI — lista ============ */
.services-list{border-top:1px solid var(--ink)}
.service-row{
  display:grid;grid-template-columns:3rem 18rem 1fr;gap:1.5rem;
  padding:1.4rem 0;border-bottom:1px solid var(--line);
  transition:background .2s ease,padding-left .25s ease;
}
.service-row:hover{background:var(--paper-2);padding-left:.75rem;padding-right:.75rem;margin-inline:-.75rem}
.service-row .num{font-size:.85rem;color:var(--accent);font-weight:600;padding-top:.2rem;font-variant-numeric:tabular-nums}
.service-row h3{font-size:1.1rem;font-weight:600}
.service-row p{color:var(--ink-2);font-size:.97rem;max-width:60ch}
@media (max-width:860px){
  .service-row{grid-template-columns:2.5rem 1fr;row-gap:.4rem}
  .service-row p{grid-column:2}
}
.services-cta{margin-top:2.25rem;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap}
.services-cta p{color:var(--ink-2);font-size:.97rem}
.services-cta strong{color:var(--ink)}

/* ============ SZKOLENIA ============ */
.training{background:var(--paper-2)}
.training-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.topic-list{border-top:1px solid var(--ink)}
.topic-list li{padding:.75rem 0;border-bottom:1px solid var(--line);font-size:.97rem;display:flex;gap:1rem;transition:padding-left .25s ease}
.topic-list li:hover{padding-left:.4rem}
.topic-list li .num{color:var(--accent);font-weight:600;font-size:.85rem;min-width:1.6rem;padding-top:.15rem;font-variant-numeric:tabular-nums}
.training-copy p.body-text{color:var(--ink-2);margin-bottom:1.5rem;font-size:1.02rem}
.training-actions{display:flex;gap:.75rem;flex-wrap:wrap}
@media (max-width:860px){.training-grid{grid-template-columns:1fr}}

/* ============ BLOG ============ */
.blog-tabs{display:flex;gap:1.75rem;margin-bottom:1.5rem;border-bottom:1px solid var(--line)}
.blog-tab{
  padding:.6rem 0;font-size:.97rem;color:var(--ink-3);
  border-bottom:2px solid transparent;margin-bottom:-1px;
}
.blog-tab:hover{color:var(--ink)}
.blog-tab{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.blog-tab.active{color:var(--ink);border-bottom-color:var(--accent)}
.blog-panel.active{animation:panel .35s ease}
@keyframes panel{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.blog-panel{display:none}
.blog-panel.active{display:block}
.blog-card{
  display:grid;grid-template-columns:9rem 1fr 12rem;gap:1.5rem;align-items:start;
  padding:1.35rem 0;border-bottom:1px solid var(--line);
  transition:background .2s ease;
}
.blog-card:hover{background:var(--paper-2);box-shadow:0 0 0 .75rem var(--paper-2)}
.blog-card.no-thumb{grid-template-columns:9rem 1fr}
.blog-meta{font-size:.85rem;color:var(--ink-3);display:flex;flex-direction:column;gap:.15rem;padding-top:.2rem}
.blog-body h3{font-size:1.15rem;margin-bottom:.4rem}
.blog-body h3 a:hover{color:var(--accent)}
.blog-meta span:nth-child(2){color:var(--accent);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}
.blog-body p{color:var(--ink-2);font-size:.95rem;max-width:62ch}
.blog-thumb img{width:100%;aspect-ratio:3/2;object-fit:cover}
.blog-more{margin-top:1.5rem}
@media (max-width:860px){
  .blog-card,.blog-card.no-thumb{grid-template-columns:1fr}
  .blog-thumb{order:-1;max-width:320px}
  .blog-meta{flex-direction:row;gap:.75rem}
}

/* ============ KONTAKT ============ */
.contact-cta{background:var(--paper-2)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.contact-cta h2{margin-bottom:1rem;max-width:22ch}
.contact-cta p.lead{color:var(--ink-2);font-size:1.05rem;margin-bottom:1.75rem}
.contact-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:2rem}
.contact-details{border-top:1px solid var(--ink)}
.contact-details > div{display:grid;grid-template-columns:6rem 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.97rem}
.contact-details span.label{color:var(--ink-3)}
.contact-details a{font-weight:500}
.contact-details a:hover{color:var(--accent-ink)}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}

/* ============ FORMULARZ ============ */
.inquiry-form{display:grid;gap:1rem}
.inquiry-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.inquiry-form__field{display:grid;gap:.35rem}
.inquiry-form__field label{font-size:.9rem;font-weight:500}
.inquiry-form__field input,.inquiry-form__field textarea{
  font:inherit;padding:.7rem .85rem;border:1px solid var(--line-2);background:#fff;color:var(--ink);border-radius:0;
  transition:border-color .15s ease;
}
.inquiry-form__field input:hover,.inquiry-form__field textarea:hover{border-color:var(--ink-3)}
.inquiry-form__field input:focus,.inquiry-form__field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.inquiry-form__notice{padding:.8rem 1rem;font-size:.93rem;border-left:3px solid var(--ink);background:var(--paper-2)}
.inquiry-form__notice--ok{border-color:#2f7d32}
.inquiry-form__notice--error{border-color:var(--accent)}
.inquiry-form .btn{justify-self:start}

/* ============ STOPKA ============ */
footer{border-top:3px solid var(--accent);padding-top:clamp(2.5rem,5vw,3.5rem);font-size:.93rem}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:2.5rem}
.footer-brand p{color:var(--ink-2);max-width:34ch;margin-top:1rem;margin-bottom:1rem}
.footer-social{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-2)}
.footer-social:hover{color:var(--ink)}
.footer-social svg{width:16px;height:16px}
.footer-col h4{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.9rem;font-weight:500}
.footer-col ul{display:flex;flex-direction:column;gap:.5rem}
.footer-col a{color:var(--ink-2)}
.footer-col a:hover{color:var(--accent)}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem 1.5rem;
  padding-block:1.25rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-3);
}
.footer-legal{display:flex;gap:1.5rem;flex-wrap:wrap}
.footer-bottom a:hover{color:var(--ink)}
@media (max-width:860px){.footer-top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-top{grid-template-columns:1fr}}

/* ============ STRONY / WPISY / ARCHIWA / 404 ============ */
.generic-page{padding-block:clamp(2.5rem,6vw,4.5rem)}
.generic-page .entry-header{max-width:760px;margin-bottom:2rem}
.generic-page .entry-header h1{margin-bottom:.75rem}
.generic-page .entry-meta{font-size:.85rem;color:var(--ink-3)}
.generic-page .entry-content{max-width:720px;color:var(--ink-2);font-size:1.05rem;line-height:1.7}
.generic-page .entry-content > *+*{margin-top:1.1em}
.generic-page .entry-content h2{color:var(--ink);font-size:1.5rem;margin-top:1.8em}
.generic-page .entry-content h3{color:var(--ink);font-size:1.2rem;margin-top:1.5em}
.generic-page .entry-content a{color:var(--ink);text-decoration:underline;text-underline-offset:.2em}
.generic-page .entry-content ul,.generic-page .entry-content ol{padding-left:1.4em;list-style:revert}
.generic-page .entry-thumb{margin-bottom:2rem}

.archive-grid{border-top:1px solid var(--ink);margin-top:1.5rem}
.archive-card{padding:1.35rem 0;border-bottom:1px solid var(--line)}
.archive-card h2{font-size:1.2rem;margin-bottom:.35rem}
.archive-card h2 a:hover{color:var(--accent-ink)}
.archive-card p{color:var(--ink-2);font-size:.95rem}

.cyto-pagination{display:flex;gap:.5rem;margin-top:2rem;flex-wrap:wrap}
.cyto-pagination a,.cyto-pagination span{padding:.45rem .8rem;border:1px solid var(--line);font-size:.9rem}
.cyto-pagination .current{background:var(--ink);color:#fff;border-color:var(--ink)}


/* ============ FLOWPOL — logotyp tekstowy ============ */
.brand{display:flex;flex-direction:column;line-height:1.1;flex:none}
.brand-name{font-size:1.35rem;font-weight:300;letter-spacing:-.01em;color:var(--ink)}
.brand-name b{font-weight:600}
.brand-sub{font-size:.68rem;letter-spacing:.04em;color:var(--ink-3);margin-top:.15rem}
@media (max-width:560px){.brand-sub{display:none}}
.nav-links a.active{color:var(--ink)}
.nav-links a.active::after{transform:scaleX(1)}
.plain-link{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:.2em}
.plain-link:hover{color:var(--accent-ink);text-decoration-color:var(--accent)}
.muted{color:var(--ink-3)}

/* ============ HERO — ciemny, jak na obecnej stronie ============ */
.hero-dark{background:var(--dark);color:#fff;border-bottom:0}
.hero-dark .eyebrow{color:#9a9a9a}
.hero-dark h1{color:#fff}
.hero-dark h1::before{background:var(--accent)}
.hero-dark p.lead{color:#c8c8c8}
.hero-dark figcaption{color:#9a9a9a}
.hero-dark .dotplot{border-color:#333;background:var(--dark)}
.hero-dark .dotplot .dotplot-gate{stroke:var(--accent)}
.hero-dark .dotplot .dotplot-label{fill:var(--accent)}
.hero-dark .btn-ghost{border-color:#fff;color:#fff}
.hero-dark .btn-ghost:hover{background:#fff;color:var(--dark)}
.hero + section{border-top:0}

.page-hero{padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(1.5rem,3vw,2.5rem)}
.page-hero h1{margin-bottom:1rem;max-width:22ch}
.page-hero h1::before{content:"";display:block;width:40px;height:2px;background:var(--accent);margin-bottom:1.1rem}
.page-hero p.lead{color:var(--ink-2);font-size:1.08rem;max-width:62ch}
.page-hero + section{border-top:0;padding-top:0}

/* ============ FAKTY (O fundacji) ============ */
.facts{border-top:1px solid var(--ink)}
.facts .fact{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.facts .fact dt{color:var(--ink-3)}

/* ============ WIERSZE (lista numerowana) ============ */
.rows{border-top:1px solid var(--ink)}
.row{
  display:grid;grid-template-columns:3rem 1fr;gap:.4rem 1.5rem;
  padding:1.5rem 0;border-bottom:1px solid var(--line);
  transition:background .2s ease;
}
.row .num{font-size:.85rem;color:var(--accent);font-weight:600;padding-top:.25rem;font-variant-numeric:tabular-nums;grid-row:span 3}
.row h3{font-size:1.15rem}
.row p{color:var(--ink-2);font-size:.97rem;max-width:66ch}
.row .text-link{margin-top:.5rem}
.row .sub{font-style:italic;color:var(--ink-3);margin-top:.1rem}
.row .meta{font-size:.85rem;color:var(--ink-3);margin-top:.35rem}
.row .row-actions{margin-top:.9rem}
.rows-3 .row{grid-template-columns:3rem 18rem 1fr;align-items:start}
.rows-3 .row .num{grid-row:auto}
.rows-3 .row h3{font-size:1.1rem}
.row:hover{background:var(--paper-2);box-shadow:0 0 0 .75rem var(--paper-2)}
@media (max-width:860px){
  .rows-3 .row{grid-template-columns:2.5rem 1fr}
  .rows-3 .row > div:last-child{grid-column:2}
}

.prose h4{font-size:.95rem;margin-top:1.25rem;margin-bottom:.4rem}
.prose p + p{margin-top:.7rem}
.prose ol{padding-left:1.3rem;margin-top:.4rem;color:var(--ink-2);font-size:.97rem;max-width:66ch}
.prose ol li + li{margin-top:.35rem}
.prose a:not(.text-link){text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:.2em}
.prose a:not(.text-link):hover{color:var(--accent-ink);text-decoration-color:var(--accent)}
.list-section{padding-top:clamp(1rem,3vw,2rem)}

/* ============ NEWSLETTER / REJESTRACJA ============ */
.newsletter,.register{background:var(--paper-2)}
.newsletter-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.newsletter-grid h2{margin-bottom:.9rem}
.newsletter-grid h2::before{content:"";display:block;width:40px;height:2px;background:var(--accent);margin-bottom:1.1rem}
.newsletter-grid p{color:var(--ink-2)}
.form{display:grid;gap:1rem}
.form-field{display:grid;gap:.35rem}
.form-field label{font-size:.9rem;font-weight:500}
.form-field input,.form-field textarea{
  font:inherit;padding:.75rem .9rem;border:1px solid var(--line-2);background:#fff;color:var(--ink);border-radius:0;
  transition:border-color .15s ease;
}
.form-field input:hover,.form-field textarea:hover{border-color:var(--ink-3)}
.form-field input:focus,.form-field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:.85rem;color:var(--ink-2);line-height:1.45}
.check input{margin-top:.3rem;accent-color:var(--accent)}
.form .btn{justify-self:start}
@media (max-width:860px){.newsletter-grid{grid-template-columns:1fr}}

footer .brand-name{font-size:1.25rem}
