:root{
  --paper:#F3F6F3; --card:#FFFFFF; --ink:#13211D; --ink-2:#4E5D57; --rule:#D5DED8;
  --pine:#1D4A3E; --brass:#8E6418; --up:#1D774A; --down:#AE3A2D;
  --band:#13302A; --band-ink:#EAF1ED; --band-2:#A9BFB5; --band-rule:#2B4B42; --band-accent:#D9AC57;
  --f-display:"Bricolage Grotesque","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-text:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-num:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0D1613; --card:#13201C; --ink:#E4ECE8; --ink-2:#9BAEA6; --rule:#25372F;
    --pine:#8DCBB2; --brass:#D9A84F; --up:#62C690; --down:#F08372;
    --band:#091210; --band-ink:#E4ECE8; --band-2:#93A89F; --band-rule:#22342D; --band-accent:#D9A84F;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0D1613; --card:#13201C; --ink:#E4ECE8; --ink-2:#9BAEA6; --rule:#25372F;
  --pine:#8DCBB2; --brass:#D9A84F; --up:#62C690; --down:#F08372;
  --band:#091210; --band-ink:#E4ECE8; --band-2:#93A89F; --band-rule:#22342D; --band-accent:#D9A84F;
  color-scheme:dark;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-text);font-size:17px;line-height:1.6}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--paper)}
a{color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--f-display);font-weight:650;line-height:1.12;letter-spacing:-0.015em;text-wrap:balance;margin:0}
h1{font-size:clamp(2.3rem,5.2vw,3.9rem);font-weight:750;letter-spacing:-0.03em}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
h3{font-size:1.28rem}
p{margin:0}
.num{font-family:var(--f-num);font-variant-numeric:tabular-nums}

.wrap{max-width:1160px;margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.section{padding-block:clamp(48px,6vw,80px)}
.eyebrow{font-family:var(--f-num);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);font-weight:500}
.lede{color:var(--ink-2);font-size:1.12rem;max-width:62ch}
.sec-head{display:grid;gap:16px;margin-bottom:clamp(28px,4vw,44px);max-width:760px}

/* przyciski */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:4px;font-weight:600;font-size:1rem;text-decoration:none;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s;cursor:pointer;font-family:var(--f-text)}
.btn-primary{background:var(--pine);color:var(--paper)}
.btn-primary:hover{background:var(--ink)}
.btn-ghost{border-color:var(--rule);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink)}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(3px)}

/* nagłówek */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:24px;height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--f-display);font-weight:750;font-size:1.3rem;letter-spacing:-0.02em}
.brand svg{flex:none}
.brand .flex{color:var(--brass);font-weight:500;font-style:italic}
.nav{display:flex;gap:28px;font-size:.95rem}
.nav a{text-decoration:none;color:var(--ink-2)}
.nav a:hover{color:var(--ink)}
.head-cta{padding:10px 16px;font-size:.92rem}
@media (max-width:860px){.nav{display:none}}

/* hero */
.hero{padding-block:clamp(40px,6vw,72px) clamp(80px,10vw,140px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(36px,5vw,72px);align-items:center}
.hero-copy{display:grid;gap:26px;min-width:0}
.hero-copy .lede{font-size:1.18rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-top:26px;border-top:1px solid var(--rule);margin-top:6px}
.fact b{display:block;font-family:var(--f-display);font-size:1.55rem;font-weight:750;letter-spacing:-0.02em}
.fact span{font-size:.88rem;color:var(--ink-2);line-height:1.4;display:block}
@media (max-width:920px){.hero-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.facts{grid-template-columns:minmax(0,1fr);gap:14px}.fact{display:flex;gap:12px;align-items:baseline}.fact b{min-width:68px}}

/* raport w hero */
.report{background:var(--card);border:1px solid var(--rule);border-radius:6px;box-shadow:0 1px 0 var(--rule),0 24px 48px -28px color-mix(in srgb,var(--ink) 35%,transparent);overflow:hidden;min-width:0}
.report-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:18px 22px 14px;border-bottom:1px solid var(--rule)}
.report-top h3{font-size:1rem;font-family:var(--f-text);font-weight:600;letter-spacing:0}
.report-top small{font-family:var(--f-num);font-size:.75rem;color:var(--ink-2)}
.report-scroll{overflow-x:auto}
.report table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:380px}
.report th{font-family:var(--f-num);font-weight:500;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);text-align:right;padding:10px 22px 8px 8px}
.report th:first-child,.report td:first-child{text-align:left;padding-left:22px}
.report td{padding:9px 22px 9px 8px;border-top:1px solid var(--rule);text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums}
.report td:first-child{font-family:var(--f-text)}
.report tr.key td{font-weight:600}
.up{color:var(--up)} .down{color:var(--down)}
.chart{padding:16px 22px 6px;border-top:1px solid var(--rule)}
.chart-label{display:flex;justify-content:space-between;font-size:.8rem;color:var(--ink-2);gap:10px}
.chart svg{display:block;width:100%;height:auto;max-width:100%}
.chart .bar{fill:var(--pine);opacity:.32}
.chart .bar.now{fill:var(--brass);opacity:1}
.chart .axis{stroke:var(--rule);stroke-width:1}
.chart .plan{stroke:var(--ink-2);stroke-width:1;stroke-dasharray:3 3}
.chart text{fill:var(--ink-2);font-family:var(--f-num);font-size:10px}
.chart text.val{fill:var(--ink);font-weight:500}
.comment{margin:6px 22px 18px;padding:12px 14px;background:color-mix(in srgb,var(--brass) 9%,transparent);border-radius:4px;font-size:.88rem;line-height:1.5}
.comment b{font-weight:600}
.report-note{padding:0 22px 16px;font-size:.74rem;color:var(--ink-2);font-family:var(--f-num)}

/* pasmo ciemne */
.band{background:var(--band);color:var(--band-ink)}
.band .eyebrow{color:var(--band-accent)}
.band .lede{color:var(--band-2)}
.signals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--band-rule)}
.signal{padding:28px 28px 32px 0;border-bottom:1px solid var(--band-rule);display:grid;gap:10px;align-content:start;min-width:0}
.signal:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid var(--band-rule)}
.signal h3{font-size:1.15rem}
.signal p{color:var(--band-2);font-size:.97rem}
@media (max-width:900px){.signals{grid-template-columns:repeat(2,minmax(0,1fr))}.signal:not(:nth-child(3n+1)){padding-left:0;border-left:0}.signal:nth-child(2n){padding-left:24px;border-left:1px solid var(--band-rule)}}
@media (max-width:560px){.signals{grid-template-columns:minmax(0,1fr)}.signal:nth-child(2n){padding-left:0;border-left:0}.signal{padding-right:0}}

/* usługi */
.pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,48px)}
.pillar{display:grid;gap:18px;align-content:start;padding:clamp(26px,3.5vw,40px);background:var(--card);border:1px solid var(--rule);border-radius:6px;min-width:0}
.pillar .tag{font-family:var(--f-num);font-size:.75rem;color:var(--ink-2);letter-spacing:.06em}
.pillar h3{font-size:clamp(1.5rem,2.4vw,1.9rem)}
.pillar p{color:var(--ink-2)}
.checks{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:10px}
.checks li{display:grid;grid-template-columns:18px 1fr;gap:12px;align-items:start;font-size:.97rem}
.checks li::before{content:"";width:12px;height:7px;border-left:2px solid var(--brass);border-bottom:2px solid var(--brass);transform:rotate(-45deg);margin-top:7px;margin-left:2px}
@media (max-width:820px){.pillars{grid-template-columns:minmax(0,1fr)}}

.more-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:clamp(40px,5vw,60px) 0 8px;flex-wrap:wrap}
.more-head h3{font-size:1.45rem}
.more-head p{color:var(--ink-2);max-width:48ch;font-size:.97rem}
.extras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px}
.extra{padding:26px 0;border-top:1px solid var(--rule);display:grid;gap:8px;align-content:start;min-width:0}
.extra h4{margin:0;font-family:var(--f-display);font-weight:650;font-size:1.12rem;letter-spacing:-0.01em}
.extra p{color:var(--ink-2);font-size:.95rem}
@media (max-width:900px){.extras{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.extras{grid-template-columns:minmax(0,1fr)}}

/* tabela narzędzi */
.ledger-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:6px;background:var(--card)}
.ledger{width:100%;border-collapse:collapse;min-width:680px}
.ledger th{text-align:left;font-family:var(--f-num);font-weight:500;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding:16px 22px;border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--pine) 5%,transparent)}
.ledger td{padding:18px 22px;border-bottom:1px solid var(--rule);vertical-align:top;font-size:.97rem}
.ledger tr:last-child td{border-bottom:0}
.ledger td:first-child{font-weight:600;width:28%}
.ledger td:last-child{color:var(--pine);font-weight:500}

/* proces */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;counter-reset:s}
.step{padding:0 26px 0 0;display:grid;gap:12px;align-content:start;min-width:0;position:relative}
.step .k{font-family:var(--f-num);font-size:.78rem;color:var(--brass);display:flex;align-items:center;gap:10px}
.step .k::after{content:"";flex:1;height:1px;background:var(--rule)}
.step:last-child .k::after{display:none}
.step h3{font-size:1.18rem}
.step p{color:var(--ink-2);font-size:.95rem}
.step .dur{font-family:var(--f-num);font-size:.76rem;color:var(--ink-2);border:1px solid var(--rule);border-radius:3px;padding:3px 8px;justify-self:start}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}.step:nth-child(2) .k::after{display:none}}
@media (max-width:520px){.steps{grid-template-columns:minmax(0,1fr)}.step .k::after{display:none}}

/* modele */
.models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.model{border:1px solid var(--rule);border-radius:6px;padding:28px;display:grid;gap:14px;align-content:start;background:var(--paper);min-width:0}
.model h3{font-size:1.3rem}
.model .for{font-size:.92rem;color:var(--ink-2)}
.model ul{margin:4px 0 0;padding-left:18px;display:grid;gap:6px;font-size:.95rem}
.model ul li::marker{color:var(--brass)}
@media (max-width:900px){.models{grid-template-columns:minmax(0,1fr)}}

/* zespół */
.alt{background:color-mix(in srgb,var(--pine) 6%,var(--paper))}
.person{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(32px,5vw,64px);align-items:start}
.portrait{aspect-ratio:4/5;max-width:100%;border-radius:6px;background:var(--band);color:var(--band-ink);display:grid;place-items:center;position:relative;overflow:hidden}
.portrait .mono{font-family:var(--f-display);font-weight:750;font-size:5.5rem;letter-spacing:-0.04em;color:var(--band-accent)}
.portrait .lines{position:absolute;inset:auto 0 0 0;height:38%;background:repeating-linear-gradient(to bottom,transparent 0 17px,var(--band-rule) 17px 18px)}
.who{display:grid;gap:6px;margin-top:20px}
.who h3{font-size:1.6rem}
.creds{display:flex;flex-wrap:wrap;margin-top:4px;font-size:.95rem;color:var(--ink-2)}
.creds span:not(:last-child)::after{content:"·";margin:0 8px;color:var(--brass)}
.cv .chips{margin-top:0}
.who .role{font-family:var(--f-num);font-size:.82rem;color:var(--brass);letter-spacing:.06em;text-transform:uppercase}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chip{font-size:.82rem;border:1px solid var(--rule);border-radius:3px;padding:4px 10px;color:var(--ink-2);background:var(--paper)}
.bio{display:grid;gap:18px;min-width:0}
.bio p{max-width:66ch}
.bio p:first-child{font-size:1.18rem;line-height:1.55}
.cv{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,.8fr);gap:28px;margin-top:22px;padding-top:28px;border-top:1px solid var(--rule)}
.cv h4{margin:0 0 12px;font-family:var(--f-num);font-weight:500;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.cv ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.cv li{font-size:.93rem;line-height:1.4}
.cv li b{display:block;font-weight:600}
.cv li span{color:var(--ink-2);font-size:.86rem}
@media (max-width:1000px){.cv{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.person{grid-template-columns:minmax(0,1fr)}.portrait{max-width:280px}}
@media (max-width:560px){.cv{grid-template-columns:minmax(0,1fr)}}

/* FAQ */
.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,72px);align-items:start}
.faq-list{border-top:1px solid var(--rule)}
details{border-bottom:1px solid var(--rule)}
summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;font-weight:600;font-size:1.05rem;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;top:18px;font-family:var(--f-num);font-size:1.3rem;color:var(--brass);transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 0 22px;color:var(--ink-2);max-width:64ch}
@media (max-width:860px){.faq{grid-template-columns:minmax(0,1fr)}}

/* kontakt */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,72px);align-items:end}
.contact-grid h2{font-size:clamp(2rem,4.2vw,3.2rem)}
.contact-box{display:grid;gap:18px;padding:28px;border:1px solid var(--band-rule);border-radius:6px;min-width:0}
.contact-box .lbl{font-family:var(--f-num);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-2)}
.mail-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.mail{font-family:var(--f-display);font-size:clamp(1.3rem,2.6vw,1.65rem);font-weight:650;color:var(--band-ink);text-decoration:none;word-break:break-all;user-select:all}
.copy{background:transparent;border:1px solid var(--band-rule);color:var(--band-ink);border-radius:4px;padding:7px 12px;font-family:var(--f-num);font-size:.8rem;cursor:pointer}
.copy:hover{border-color:var(--band-2)}
.btn-light{background:var(--band-accent);color:#13211D}
.btn-light:hover{background:var(--band-ink)}
.contact-box p{color:var(--band-2);font-size:.95rem}
@media (max-width:860px){.contact-grid{grid-template-columns:minmax(0,1fr)}}

/* stopka */
.foot{background:var(--band);color:var(--band-2);border-top:1px solid var(--band-rule);font-size:.88rem}
.foot-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 32px;padding-block:28px;align-items:center}
.foot .brand{color:var(--band-ink);font-size:1.1rem}
.foot .brand .flex{color:var(--band-accent)}
.foot nav{display:flex;flex-wrap:wrap;gap:20px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--band-ink)}
.team{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,72px);align-items:start}
#zespol .cv{margin-top:clamp(40px,5vw,56px)}
@media (max-width:860px){.team{grid-template-columns:minmax(0,1fr)}}
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero::before,.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:min(52%,360px);pointer-events:none;z-index:-1;-webkit-mask-position:center bottom;mask-position:center bottom;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.hero::before{background:var(--pine);opacity:.09;-webkit-mask-image:url(/skyline.svg);mask-image:url(/skyline.svg)}
.hero::after{background:var(--brass);opacity:.22;-webkit-mask-image:url(/trend.svg);mask-image:url(/trend.svg)}
img{max-width:100%}
.report td,.report th{white-space:nowrap}
.report td:first-child{white-space:normal}
.fact b{white-space:nowrap}
#wspolpraca .more-head{margin-top:clamp(48px,6vw,72px)!important}
