/* ============================================================
   ODPISKRS.PL - wspólny fundament podstron firmowych
   Tożsamość przejęta 1:1 z wariantu „Czerwień / Rejestr"
   (strona główna 03-rejestr.html). Biel · polska czerwień ·
   grafit. Public Sans + IBM Plex Mono. Zero zaokrągleń,
   hairline-siatka, tabular-nums. Ten plik trzyma DNA marki:
   tokeny, gov-strip, header, stopka, logo, przyciski, atomy.
   Każdy wariant (01-05) dokłada tylko własny układ i wygląd
   sekcji danych - chrome pozostaje identyczny.
   ============================================================ */
:root{
  --paper:    #ffffff;
  --paper-2:  #f7f7f4;
  --paper-3:  #fbfbf9;
  --ink:      #17171b;
  --ink-2:    #56555e;
  --ink-3:    #8c8b94;
  --red:      #c01228;
  --red-dk:   #9d0d20;
  --red-wash: #f8eef0;
  --green:    #1f7a4d;   /* status „czysty" - zieleń sądowa, używana oszczędnie */
  --green-wash:#eef5f0;
  --amber:    #b06a00;   /* uwaga / wzmianka */
  --amber-wash:#fdf3e3;
  --line:     #e4e3df;
  --line-2:   #eeede9;
  --line-3:   #d6d5d0;
  --font-sans:  "Public Sans", system-ui, -apple-system, sans-serif;
  --font-mono:  "IBM Plex Mono", ui-monospace, monospace;
  --measure: 1240px;
}
*,*::before,*::after{ box-sizing:border-box; border-radius:0 !important; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.58;
  font-feature-settings:"kern" 1, "liga" 1;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
::selection{ background:var(--red); color:#fff; }
::-moz-selection{ background:var(--red); color:#fff; }
a{ color:inherit; }
img,svg,canvas{ display:block; max-width:100%; }
button,input,select,textarea{ font:inherit; color:inherit; }
b,strong{ font-weight:600; }

:focus-visible{ outline:2px solid var(--red); outline-offset:2px; }
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:#fff; padding:.65rem 1.2rem;
  font-family:var(--font-mono); font-size:.8rem; text-decoration:none;
}
.skip-link:focus{ left:0; }

.wrap{ max-width:var(--measure); margin:0 auto; padding:0 2rem; }

/* ---------- mikro-typografia ---------- */
.num{ font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1; }
.mono{ font-family:var(--font-mono); }
.eyebrow{
  font-family:var(--font-mono);
  font-size:.7rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3);
}

/* ---------- gov-strip ---------- */
.gov-strip{ background:var(--ink); color:#fff; }
.gov-strip .wrap{ display:flex; align-items:center; gap:.7rem; padding:.45rem 2rem; }
.gov-strip p{
  font-family:var(--font-mono);
  font-size:.66rem; font-weight:400; letter-spacing:.06em;
  color:rgba(255,255,255,.72); text-transform:uppercase;
}
.gov-strip .dot{ width:5px; height:5px; background:var(--red); flex:none; }
.gov-strip strong{ color:#fff; font-weight:500; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-block:.85rem; }
.logo{ text-decoration:none; white-space:nowrap; display:flex; align-items:center; gap:.65rem; }
.logo-mark{
  flex:none; width:32px; height:32px; background:var(--ink);
  display:grid; place-items:center; position:relative;
}
.logo-mark::after{
  content:""; position:absolute; top:0; right:0;
  border-width:0 8px 8px 0; border-style:solid;
  border-color:transparent var(--red) transparent transparent;
}
.logo-mark span{ font-family:var(--font-mono); font-weight:600; font-size:.56rem; color:#fff; }
.logo-word{ font-family:var(--font-sans); font-weight:700; font-size:1.18rem; letter-spacing:-.01em; display:flex; align-items:baseline; }
.logo-word .l-odpis{ font-weight:600; }
.logo-word .l-krs{ font-weight:700; }
.logo-word .l-pl{ font-weight:500; font-size:.78em; color:var(--red); margin-left:.03em; }
.main-nav{ display:flex; align-items:center; gap:.1rem; }
.main-nav a{
  font-family:var(--font-sans); font-weight:500; font-size:.84rem; letter-spacing:.005em;
  text-decoration:none; color:var(--ink-2); padding:.5rem .9rem; position:relative;
  transition:color .25s ease;
}
.main-nav a::after{
  content:""; position:absolute; left:.9rem; right:.9rem; bottom:.4rem;
  height:1.5px; background:var(--red); transform:scaleX(0); transform-origin:left;
  transition:transform .32s cubic-bezier(.2,.7,.2,1);
}
.main-nav a:hover{ color:var(--ink); }
.main-nav a:hover::after{ transform:scaleX(1); }
.nav-cta{
  margin-left:.6rem;
  font-family:var(--font-mono); font-weight:500; font-size:.78rem; letter-spacing:.02em;
  color:#fff !important; background:var(--red); padding:.55rem 1.05rem !important;
  transition:background-color .25s ease !important;
}
.nav-cta::after{ display:none; }
.nav-cta:hover{ background:var(--red-dk); }

/* burger - tylko mobile (włączany w @media ≤640) */
.nav-toggle{ display:none; align-items:center; justify-content:center; width:2.6rem; height:2.6rem; flex:none; border:1px solid var(--line); background:var(--paper); cursor:pointer; }
.nav-burger{ position:relative; display:block; width:20px; height:2px; background:var(--ink); }
.nav-burger::before, .nav-burger::after{ content:""; position:absolute; left:0; width:20px; height:2px; background:var(--ink); transition:transform .25s ease, opacity .2s ease; }
.nav-burger::before{ top:-6px; }
.nav-burger::after{ top:6px; }
.nav-toggle[aria-expanded="true"] .nav-burger{ background:transparent; }
.nav-toggle[aria-expanded="true"] .nav-burger::before{ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-burger::after{ transform:translateY(-6px) rotate(-45deg); }

/* ---------- atomy: przyciski ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--font-mono); font-weight:500; font-size:.84rem; letter-spacing:.03em;
  text-transform:uppercase; text-decoration:none; cursor:pointer;
  padding:.85rem 1.5rem; border:1.5px solid var(--ink); background:var(--paper); color:var(--ink);
  transition:background-color .25s ease, color .25s ease, border-color .25s ease;
}
.btn .arr{ transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.btn:hover .arr{ transform:translateX(4px); }
.btn-primary{ background:var(--red); border-color:var(--red); color:#fff; }
.btn-primary:hover{ background:var(--red-dk); border-color:var(--red-dk); }
.btn-ink{ background:var(--ink); border-color:var(--ink); color:#fff; }
.btn-ink:hover{ background:#000; }
.btn-ghost{ background:transparent; }
.btn-ghost:hover{ background:var(--ink); color:#fff; }
.btn-sm{ padding:.55rem 1rem; font-size:.76rem; }
.btn-lg{ padding:1.05rem 2rem; font-size:.92rem; }

/* ---------- atomy: badge / pill / eyebrow-kicker ---------- */
.badge{
  display:inline-flex; align-items:center; gap:.42rem;
  font-family:var(--font-mono); font-size:.66rem; font-weight:500; letter-spacing:.1em;
  text-transform:uppercase; padding:.3rem .6rem; border:1px solid var(--line-3); color:var(--ink-2);
}
.badge-dot::before{ content:""; width:6px; height:6px; flex:none; background:var(--ink-3); }
.badge-ok{ color:var(--green); border-color:rgba(31,122,77,.4); background:var(--green-wash); }
.badge-ok.badge-dot::before{ background:var(--green); }
.badge-red{ color:var(--red); border-color:rgba(192,18,40,.4); background:var(--red-wash); }
.badge-red.badge-dot::before{ background:var(--red); }
.badge-amber{ color:var(--amber); border-color:rgba(176,106,0,.4); background:var(--amber-wash); }
.badge-amber.badge-dot::before{ background:var(--amber); }

.section-kicker{ display:flex; align-items:center; gap:.7rem; margin-bottom:1rem; }
.section-kicker .no{ font-family:var(--font-mono); font-size:.7rem; font-weight:500; color:var(--red); border:1px solid var(--line-3); padding:.18rem .5rem; letter-spacing:.05em; }
.section-kicker .lbl{ font-family:var(--font-mono); font-size:.68rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }

/* ---------- breadcrumbs (wspólne: firma + lokalizacje) - górny pasek ---------- */
.cp-breadcrumb{ border-bottom:1px solid var(--line-2); }
.cp-breadcrumb ol{ list-style:none; display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem; padding:.7rem 0; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.03em; color:var(--ink-3); }
.cp-breadcrumb li{ display:flex; align-items:baseline; gap:.5rem; min-width:0; }
.cp-breadcrumb li::after{ content:"/"; color:var(--line-3); }
.cp-breadcrumb li:last-child::after{ content:""; }
.cp-breadcrumb a{ color:var(--ink-2); text-decoration:none; border-bottom:1px solid transparent; transition:color .2s ease, border-color .2s ease; }
.cp-breadcrumb a:hover{ color:var(--red); border-color:var(--red); }
.cp-breadcrumb [aria-current="page"]{ color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:42ch; }

/* ---------- stopka ---------- */
.site-footer{ border-top:1px solid var(--line); background:var(--paper-2); }
.footer-inner{ padding:3rem 0 2.4rem; }
.footer-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:2rem; flex-wrap:wrap; padding-bottom:1.8rem; border-bottom:1px solid var(--line); }
.footer-nav{ display:flex; gap:1.8rem; flex-wrap:wrap; }
.footer-nav a{ font-family:var(--font-sans); font-weight:500; font-size:.84rem; color:var(--ink-2); text-decoration:none; transition:color .2s ease; }
.footer-nav a:hover{ color:var(--red); }
.footer-cross{ margin-top:1.6rem; font-size:.93rem; color:var(--ink-2); }
.footer-cross a{ color:var(--red); text-decoration:none; border-bottom:1px solid rgba(192,18,40,.35); transition:border-color .2s ease, color .2s ease; }
.footer-cross a:hover{ color:var(--red-dk); border-color:var(--red-dk); }
.footer-cross .arr{ font-family:var(--font-mono); }
.disclaimer{ margin-top:1.6rem; font-size:.82rem; color:var(--ink-3); max-width:80ch; line-height:1.55; }
.disclaimer b{ color:var(--ink-2); font-weight:600; }
.footer-meta{ margin-top:1.6rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.04em; color:var(--ink-3); }

/* ---------- reveal / reduced motion ---------- */
@keyframes riseIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
.stagger{ opacity:0; animation:riseIn .8s cubic-bezier(.2,.7,.2,1) forwards; }
.stagger.d1{ animation-delay:.06s; } .stagger.d2{ animation-delay:.15s; }
.stagger.d3{ animation-delay:.24s; } .stagger.d4{ animation-delay:.33s; } .stagger.d5{ animation-delay:.42s; }
.rv{ opacity:0; transform:translateY(20px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.rv.in{ opacity:1; transform:none; }
.rv-d1{ transition-delay:.08s; } .rv-d2{ transition-delay:.16s; } .rv-d3{ transition-delay:.24s; } .rv-d4{ transition-delay:.32s; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-delay:0ms !important; transition-duration:.01ms !important; }
  .stagger,.rv{ opacity:1 !important; transform:none !important; }
}

/* ---------- responsywność chrome ---------- */
@media (max-width:640px){
  .wrap{ padding:0 1.2rem; }
  .gov-strip .wrap{ padding-inline:1.2rem; }
  .gov-strip p{ font-size:.58rem; }
  /* logo lewo, burger prawo (header zostaje sticky z bazy) */
  .header-inner{ gap:1rem; padding-block:.7rem; }
  .nav-toggle{ display:inline-flex; }
  /* nav jako rozwijany panel pod headerem (full-bleed tło, treść wcięta jak .wrap) */
  .main-nav{
    position:absolute; top:100%; left:0; right:0; z-index:200;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--paper); border-bottom:1px solid var(--line);
    box-shadow:0 14px 28px rgba(0,0,0,.08);
    padding:.4rem 1.2rem .8rem; display:none;
  }
  .main-nav.open{ display:flex; }
  .main-nav a{ padding:.95rem 0; font-size:.95rem; border-bottom:1px solid var(--line-2); }
  .main-nav a:last-child{ border-bottom:0; }
  .main-nav a::after{ display:none; }
  .nav-cta{ display:block; margin:.7rem 0 .2rem; text-align:center; padding:.75rem 1.05rem !important; }
  .footer-top{ flex-direction:column; }
}
@media (max-width:380px){ body{ font-size:15px; } }
