:root{
  --red:#006DAA; --red-deep:#01416D; --logo-red:#D51318; --magenta:#EC008C;
  --ink:#14181D; --ink-2:#2B323B; --mid:#69727E; --hair:#D9DDE2;
  --paper:#FFFFFF; --beton:#EEF0F2; --beton-2:#E2E6EA;
  --steel:#01416D; --steel-soft:#C9D6E6;
  --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Exo 2",system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.55;color:var(--ink);background:var(--paper)}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.08;font-weight:600;text-wrap:balance;letter-spacing:-.01em;color:var(--steel)}
h1{font-size:clamp(30px,3.4vw,44px);letter-spacing:-.015em}
h2{font-size:clamp(26px,3vw,38px)}
h3{font-size:20px}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.eyebrow{font-size:14px;color:var(--mid);margin-bottom:10px}
.btn{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-weight:600;font-size:15px;text-decoration:none;padding:13px 20px;border:1.5px solid transparent;transition:background .15s,color .15s,border-color .15s;cursor:pointer}
.btn.primary{background:var(--red);color:#fff;border-color:var(--red)}
.btn.primary:hover{background:var(--red-deep);border-color:var(--red-deep)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.ghost.light{color:#fff;border-color:rgba(255,255,255,.75)}
.btn.ghost.light:hover{background:#fff;color:var(--ink)}
:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.tnum{font-variant-numeric:tabular-nums}

/* prototype banner */
.proto{background:var(--beton);color:var(--ink-2);font-size:12.5px;padding:7px 0;border-bottom:1px solid var(--hair)}
.proto .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.proto b{color:var(--red);font-weight:600}

/* header */
.top{background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--hair)}
.top .wrap{display:flex;align-items:center;gap:28px;height:88px}
.logo{flex-shrink:0;display:block}
.logo img{height:56px;width:auto;max-width:none}
nav.main{display:flex;gap:20px;white-space:nowrap}
nav.main a{text-decoration:none;font-size:15px;color:var(--ink-2);padding:6px 0;border-bottom:2px solid transparent}
nav.main a:hover,nav.main a[aria-current]{color:var(--ink);border-bottom-color:var(--red)}
.top .right{margin-left:auto;display:flex;align-items:center;gap:18px}
.top .tel{text-decoration:none;font-weight:600;font-size:15.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.lang{font-size:13px;color:var(--mid);white-space:nowrap}
.lang b{color:var(--ink);font-weight:600}
.burger{display:none;background:none;border:1px solid var(--hair);padding:8px 12px;font:inherit;font-size:14px}

/* hero */
.hero{border-bottom:1px solid var(--hair);background:#fff}
.hero .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0;align-items:stretch;min-height:400px}
.hero .txt{padding:44px 48px 40px 0;display:flex;flex-direction:column;justify-content:center}
.hero h1{max-width:20ch}
.hero .lead{font-size:18px;max-width:46ch;color:var(--ink-2);margin:20px 0 26px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.mesh{position:relative;overflow:hidden;background:
  repeating-linear-gradient(90deg,var(--steel-soft) 0 2px,transparent 2px 14px),
  repeating-linear-gradient(0deg,var(--steel-soft) 0 2px,transparent 2px 14px),
  #F6F7F9;
  border-left:1px solid var(--hair)}
.mesh::before{content:"";position:absolute;inset:0;background:
  repeating-linear-gradient(90deg,rgba(255,255,255,.55) 0 1px,transparent 1px 14px),
  repeating-linear-gradient(0deg,rgba(255,255,255,.55) 0 1px,transparent 1px 14px);
  background-position:1px 1px}
.mesh::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,0) 40%,rgba(255,255,255,.35))}
.mesh .tag{position:absolute;left:32px;bottom:32px;background:#fff;border:1px solid var(--hair);padding:14px 16px;z-index:1;min-width:230px}
.mesh .tag b{display:block;font-size:17px}
.mesh .tag span{display:block;font-size:13.5px;color:var(--mid);margin-top:3px}
.mesh .scale{position:absolute;right:28px;top:28px;z-index:1;background:#fff;border:1px solid var(--hair);padding:6px 10px;font-size:12.5px;color:var(--mid)}
.mesh .scale i{display:inline-block;width:14px;height:14px;border:2px solid var(--steel);vertical-align:-3px;margin-right:6px}

/* gramatura ruler */
.ruler{padding:26px 0 22px;border-bottom:1px solid var(--hair);background:#fff}
.ruler .head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:26px;flex-wrap:wrap}
.ruler .head h2{font-size:20px}
.ruler .head p{margin:0;color:var(--mid);font-size:14px}
.track{position:relative;height:112px;margin:0 60px 0 40px}
.track .line{position:absolute;left:0;right:0;top:68px;height:2px;background:var(--ink)}
.track .end{position:absolute;top:66px;font-size:13px;color:var(--mid);font-variant-numeric:tabular-nums}
.track .end.l{left:0}.track .end.r{right:0}
.tick{position:absolute;top:0;transform:translateX(-50%);text-decoration:none;display:flex;flex-direction:column;align-items:center;width:0}
.tick .n{font-size:13px;line-height:1.15;text-align:center;color:var(--ink-2);height:52px;display:flex;align-items:flex-end;padding-bottom:6px;width:112px;white-space:normal}
.tick .m{width:2px;height:16px;background:var(--ink)}
.tick .g{position:absolute;top:76px;white-space:nowrap;font-size:12.5px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.tick.hi .m{background:var(--magenta);width:3px}
.tick.hi .n{color:var(--magenta);font-weight:600}
.tick:hover .n{color:var(--red)}
.ruler .foot{margin-top:10px;font-size:13px;color:var(--mid)}
.ruler .foot a{color:var(--ink)}

/* firm line */
.firmline{padding:22px 0;border-bottom:1px solid var(--hair);background:var(--beton);background-image:linear-gradient(rgba(1,65,109,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(1,65,109,.06) 1px,transparent 1px);background-size:16px 16px}
.firmline .wrap{display:flex;flex-wrap:wrap;gap:10px 0}
.firmline div{padding:0 28px 0 0;margin-right:28px;border-right:1px solid var(--hair);font-size:15px;color:var(--ink-2)}
.firmline div:last-child{border-right:0;margin-right:0}
.firmline b{font-size:22px;font-weight:600;margin-right:6px;font-variant-numeric:tabular-nums;color:var(--red)}

/* sections */
section{padding:64px 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:28px}
.sec-head p{color:var(--ink-2);font-size:16.5px;margin:0;max-width:52ch}

/* ledger rows */
.ledger{border-top:1px solid var(--ink)}
.row{display:grid;grid-template-columns:150px 1fr 1.6fr .8fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--hair);text-decoration:none;align-items:start}
.row:hover{background:linear-gradient(90deg,var(--beton),transparent)}
.row h3{margin:0}
.row .who{font-size:14px;color:var(--mid);margin-top:6px}
.row p{margin:0;color:var(--ink-2);font-size:15.5px}
.row .go{justify-self:end;font-weight:600;color:var(--red);font-size:15px;white-space:nowrap;border-bottom:1.5px solid var(--red);padding-bottom:1px}

/* catalog categories: table */
.cattable{width:100%;border-collapse:collapse;border-top:1px solid var(--ink)}
.cattable td{padding:14px 12px 14px 0;border-bottom:1px solid var(--hair);vertical-align:top;font-size:15.5px}
.cattable td:first-child{font-weight:600;width:28%}
.cattable td.n{width:8%;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
.cattable td.d{color:var(--ink-2)}
.cattable td.d a{color:var(--ink)}
.cattable tr.soon td{color:var(--mid)}
.cattable tr.soon td:first-child{font-weight:400;color:var(--mid)}
.cattable a.rowlink{text-decoration:none}

/* technology: datasheet */
.tech{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.tech .ph{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05)}
.tech .cap{font-size:13px;color:var(--mid);margin-top:8px}
dl.sheet{margin:22px 0 0;border-top:1px solid var(--ink);display:grid;grid-template-columns:auto 1fr;gap:0}
dl.sheet dt,dl.sheet dd{margin:0;padding:11px 0;border-bottom:1px solid var(--hair);font-size:15px}
dl.sheet dt{color:var(--mid);padding-right:28px;white-space:nowrap}
dl.sheet dd{color:var(--ink)}

/* note with red rule */
.pull{border-left:3px solid var(--red);padding:6px 0 6px 24px;max-width:70ch}
.pull h2{margin-bottom:12px}
.pull p{color:var(--ink-2);font-size:17px}
.pull .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}

/* wiedza list */
.artlist{border-top:1px solid var(--ink)}
.artlist a{display:grid;grid-template-columns:110px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--hair);text-decoration:none;align-items:baseline}
.artlist .k{font-size:13px;color:var(--mid)}
.artlist h3{font-size:19px}
.artlist p{margin:6px 0 0;color:var(--ink-2);font-size:15px}
.artlist a:hover h3{color:var(--red)}

/* contact */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px}
form.q{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:1px solid var(--ink);padding-top:22px}
form.q .full{grid-column:1/-1}
form.q label{display:block;font-size:13.5px;margin-bottom:5px;color:var(--ink-2)}
form.q input,form.q select,form.q textarea{width:100%;font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--hair);background:#fff}
form.q textarea{min-height:110px;resize:vertical}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{margin:0}
.seg input{display:none}
.seg span{display:inline-block;padding:9px 13px;border:1px solid var(--hair);font-size:14.5px;cursor:pointer}
.seg input:checked+span{border-color:var(--red);color:var(--red);font-weight:600}
.cdata{font-size:15.5px;color:var(--ink-2)}
.cdata b{display:block;margin-top:16px;color:var(--ink);font-weight:600}
.cdata a{text-decoration:none}

/* footer */
footer{background:var(--beton);border-top:1px solid var(--hair);padding:44px 0 26px;font-size:14.5px;color:var(--ink-2)}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
footer h4{font-size:15px;font-weight:600;margin-bottom:10px;color:var(--ink)}
footer a{text-decoration:none;display:block;padding:3px 0;color:var(--ink-2)}
footer a:hover{color:var(--red)}
footer .brands{display:flex;gap:26px;align-items:center;margin-top:16px}
footer .brands img{height:52px;width:auto}
footer .ue{margin-top:32px;padding-top:18px;border-top:1px solid var(--hair);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--mid)}

/* ---------- catalog + product pages ---------- */
.crumbs{font-size:13px;color:var(--mid);padding:18px 0 0}
.crumbs a{text-decoration:none}
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:0 32px;border-top:1px solid var(--ink)}
.cat{padding:18px 0;border-bottom:1px solid var(--hair);text-decoration:none;display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:start}
.cat h3{font-size:19px;grid-column:1}
.cat .cnt{font-size:22px;font-weight:600;grid-row:1/3;grid-column:2;font-variant-numeric:tabular-nums}
.cat p{grid-column:1;color:var(--mid);font-size:14px;margin:0}
.cat:hover h3{color:var(--red)}
.cat.soon .cnt{color:var(--mid);font-size:14px;font-weight:400;align-self:center}
.cat.soon h3{color:var(--mid)}
.prods{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.prod{text-decoration:none;display:flex;flex-direction:column}
.prod .ph{aspect-ratio:4/3;background:var(--beton) url(img/siatka-tekstura.jpg) center/cover;position:relative;border:1px solid var(--hair);background-size:cover;background-position:center}
.prod .ph.real{background:#fff url(img/ultra-180.jpg) center/cover}
.prod .ph .g{position:absolute;left:10px;top:10px;font-size:13px;font-weight:600;background:#fff;padding:3px 7px;border:1px solid var(--hair);font-variant-numeric:tabular-nums}
.prod .b{padding:12px 0 0}
.prod h3{font-size:18px}
.prod .m{font-size:13.5px;color:var(--mid);margin-top:3px}
.prod:hover h3{color:var(--red)}
.band{background:var(--beton);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.band .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;padding-top:48px;padding-bottom:48px}
.band p{color:var(--ink-2);font-size:16px;margin:12px 0 0}
.band .btn.ghost.light{color:var(--ink);border-color:var(--ink)}
.band .btn.ghost.light:hover{background:var(--ink);color:#fff}
.grey{background:var(--beton);background-image:linear-gradient(rgba(1,65,109,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(1,65,109,.06) 1px,transparent 1px);background-size:16px 16px}
.pp{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding:24px 0 56px;align-items:start}
.pp .gal{border:1px solid var(--hair);aspect-ratio:1/1;overflow:hidden;background:#fff}
.pp .gal img{width:100%;height:100%;object-fit:cover}
.pp .thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}
.pp .thumbs div{aspect-ratio:1;border:1px solid var(--hair);background:var(--beton) center/cover}
.brand-tag{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--mid);margin-bottom:10px}
.brand-tag img{height:40px;width:auto}
.pp h1{font-size:clamp(40px,4.6vw,60px)}
.pp .sub{font-size:17.5px;color:var(--ink-2);margin:12px 0 22px;max-width:48ch}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 0 24px;border-top:1px solid var(--ink)}
.kv div{padding:14px 14px 12px 0;border-bottom:1px solid var(--hair)}
.kv b{font-size:28px;font-weight:600;display:block;line-height:1;font-variant-numeric:tabular-nums}
.kv span{font-size:13px;color:var(--mid)}
.usp{display:grid;gap:10px;margin:0 0 24px;padding:0;list-style:none}
.usp li{padding-left:20px;position:relative;font-size:15.5px;color:var(--ink-2)}
.usp li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;background:var(--red)}
.usp b{color:var(--ink)}
.pp .cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.pp .cta small{color:var(--mid);font-size:13.5px;flex-basis:100%}
.tabs{display:flex;border-bottom:1px solid var(--hair);margin-bottom:24px;overflow-x:auto}
.tabs a{text-decoration:none;font-weight:600;font-size:15px;padding:12px 16px;border-bottom:3px solid transparent;white-space:nowrap;color:var(--mid)}
.tabs a[aria-current]{color:var(--ink);border-bottom-color:var(--red)}
.spec{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:start}
table.params{width:100%;border-collapse:collapse;font-size:15px;background:#fff;border-top:1px solid var(--ink)}
table.params th{text-align:left;font-size:13.5px;color:var(--mid);padding:10px 12px;border-bottom:1px solid var(--hair);font-weight:500}
table.params td{padding:10px 12px;border-bottom:1px solid var(--hair);vertical-align:top}
table.params td:last-child{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}
table.params tr.g td{font-weight:600;font-size:15px;color:var(--ink);padding-top:16px;background:var(--beton)}
.side{display:grid;gap:18px}
.box{background:#fff;border:1px solid var(--hair);padding:18px 20px 16px}
.box h3{font-size:19px;margin-bottom:10px}
.box ul{margin:0;padding:0;list-style:none;display:grid;gap:7px}
.box li{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;border-bottom:1px solid var(--hair);padding-bottom:7px}
.box li span:last-child{color:var(--mid);text-align:right}
.dl{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;font-size:14.5px;padding:9px 0;border-bottom:1px solid var(--hair)}
.dl:last-child{border-bottom:0}
.dl i{font-style:normal;font-size:11.5px;border:1px solid var(--hair);padding:2px 6px;color:var(--mid)}
.box.dark{background:var(--steel);color:#fff;border-color:var(--steel)}
.box.dark h3{color:#fff}
.box.dark p{color:rgba(255,255,255,.85);font-size:14.5px}
.rel h2{margin-bottom:20px}

@media (max-width:1180px){nav.main{display:none}.burger{display:inline-block}.top .lang{display:none}}
@media (max-width:1100px){
  .track{height:auto;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
  .track .line,.tick .m{display:none}
  .tick{position:static;transform:none;width:auto;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--hair);padding:10px 12px}
  .tick .n{height:auto;padding:0;width:auto;text-align:left;font-size:14px}
  .tick .g{position:static;font-size:13px}
  .tick.hi{border-color:var(--magenta)}
  .ruler .scroll{overflow:visible}
}
@media (max-width:700px){.track{grid-template-columns:1fr 1fr}}
@media (max-width:440px){.track{grid-template-columns:1fr}}
@media (max-width:1000px){
  .hero .wrap{grid-template-columns:1fr;min-height:0}
  .hero .txt{padding:44px 0 28px}
  .mesh{min-height:220px;border-left:0;border-top:1px solid var(--hair)}
  .row{grid-template-columns:1fr}
  .row .go{justify-self:start}
  .tech,.contact,.pp,.spec,.band .wrap,.sec-head{grid-template-columns:1fr}
  .cats{grid-template-columns:1fr 1fr}
  .prods{grid-template-columns:1fr 1fr}
  footer .cols{grid-template-columns:1fr 1fr}
  .track{overflow-x:auto}
}
@media (max-width:620px){
  .cats,.prods{grid-template-columns:1fr}
  form.q{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr 1fr}
  .top .tel{display:none}
  .logo img{height:44px}
  .top .btn.primary{display:none}
  .top .wrap{gap:12px;height:72px}
  footer .cols{grid-template-columns:1fr}
  .firmline div{border-right:0;margin-right:0;padding-right:0;flex-basis:50%}
  .artlist a{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* research-driven additions */
.heroimg{position:relative;overflow:hidden;border-left:1px solid var(--hair);background:#fff;min-height:320px}
.heroimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.heroimg .tag{position:absolute;left:24px;bottom:24px;background:#fff;border:1px solid var(--hair);padding:12px 14px;min-width:230px}
.heroimg .tag b{display:block;font-size:17px}
.heroimg .tag span{display:block;font-size:13px;color:var(--mid);margin-top:3px}
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.two dl.sheet{margin-top:0}
.two h3{margin-bottom:12px}
.todo{color:var(--mid);font-style:italic}
ol.steps{margin:0;padding:0;list-style:none;counter-reset:s;display:grid;gap:12px}
ol.steps li{position:relative;padding-left:36px;font-size:15px;color:var(--ink-2)}
ol.steps li b{color:var(--ink)}
ol.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:1px;width:24px;height:24px;border:1.5px solid var(--ink);text-align:center;line-height:22px;font-size:13px;font-weight:600}
ol.stages{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--ink)}
ol.stages li{padding:0 24px 20px 0;border-right:1px solid var(--hair);margin-right:24px}
ol.stages li img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;margin:20px 0 16px}
ol.stages li:last-child{border-right:0;margin-right:0}
ol.stages span{display:block;font-size:34px;font-weight:600;line-height:1;color:var(--red);margin-bottom:10px}
ol.stages h3{font-size:19px;margin-bottom:8px}
ol.stages p{margin:0;font-size:14.5px;color:var(--ink-2)}
.faq{border-top:1px solid var(--ink);max-width:860px}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{cursor:pointer;padding:16px 0;font-weight:600;font-size:16.5px;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:"+";color:var(--mid);font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 16px;color:var(--ink-2);font-size:15px;max-width:70ch}
.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hair);margin-top:24px}
.roles a{text-decoration:none;padding:12px 16px 12px 0;border-right:1px solid var(--hair);margin-right:16px}
.roles a:last-child{border-right:0;margin-right:0}
.roles b{display:block;font-size:14.5px}
.roles span{display:block;font-size:12.5px;color:var(--mid);margin-top:2px}
.roles a:hover b{color:var(--red)}
form.mini{display:grid;gap:8px;margin:6px 0 10px}
form.mini input[type=text],form.mini input[type=email]{width:100%;font:inherit;font-size:14.5px;padding:10px 12px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff}
form.mini input::placeholder{color:rgba(255,255,255,.6)}
form.mini label{font-size:13.5px;color:rgba(255,255,255,.85)}
form.mini .btn{justify-self:start}
.filters{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:14px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin-bottom:32px;font-size:14px;color:var(--mid)}
.filters label{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2)}
.filters select{font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--hair);background:#fff}
@media (max-width:1000px){.two{grid-template-columns:1fr}ol.stages{grid-template-columns:1fr 1fr}.roles{grid-template-columns:1fr}.roles a{border-right:0;border-bottom:1px solid var(--hair);margin:0;padding:10px 0}}
@media (max-width:620px){ol.stages{grid-template-columns:1fr}ol.stages li{border-right:0;margin-right:0;border-bottom:1px solid var(--hair)}}

.ruler .head h2 .inl{display:inline-block;height:44px;width:auto;vertical-align:-4px;margin-right:12px}

.row .th{width:150px;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--hair)}
.catgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 32px}
.catgrid a{text-decoration:none;display:grid;gap:12px}
.catgrid img{width:100%;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--hair);display:block}
.catgrid h3{font-size:19px;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.catgrid h3 span{font-size:15px;color:var(--mid);font-weight:500;font-variant-numeric:tabular-nums}
.catgrid p{margin:6px 0 0;font-size:14px;color:var(--ink-2)}
.catgrid a:hover h3{color:var(--red)}
.catgrid a.soon h3,.catgrid a.soon p{color:var(--mid)}
.pullbg{position:relative;background:var(--steel) url(img/elewacja.jpg) center/cover;color:#fff}
.pullbg::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,30,50,.92) 0,rgba(20,30,50,.85) 55%,rgba(20,30,50,.5))}
.pullbg .wrap{position:relative}
.pullbg .pull{border-left-color:#fff}
.pullbg .pull p{color:rgba(255,255,255,.9)}
.pullbg .btn.ghost{color:#fff;border-color:rgba(255,255,255,.8)}
.pullbg .btn.ghost:hover{background:#fff;color:var(--ink)}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.strip img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.artlist a{grid-template-columns:140px 90px 1fr}
.artlist img{width:140px;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--hair);align-self:start}
@media (max-width:1000px){.row{grid-template-columns:150px 1fr}.row p{grid-column:2}.row .go{grid-column:2}.catgrid{grid-template-columns:1fr 1fr}.strip{grid-template-columns:1fr 1fr}.artlist a{grid-template-columns:120px 1fr}.artlist .k{display:none}}
@media (max-width:620px){.row{grid-template-columns:1fr}.row .th{width:100%}.row p,.row .go{grid-column:1}.catgrid{grid-template-columns:1fr}.artlist a{grid-template-columns:1fr}.artlist img{width:100%}}

.pill{display:table;background:var(--magenta);color:#fff;font-weight:600;font-size:13px;padding:4px 12px;border-radius:999px;margin-bottom:10px;letter-spacing:.02em}
.proto b{color:var(--red)}
.pullbg::before{background:linear-gradient(90deg,rgba(1,65,109,.93) 0,rgba(1,65,109,.85) 55%,rgba(1,65,109,.5))}
.stat b,.kv b{color:var(--steel)}
ol.stages span{color:var(--red)}
.usp li::before{background:var(--magenta)}

/* ===== katalog: język wizualny ===== */
.sec-head h2::after,.ruler .head h2::after,.pp h1::after,.rel h2::after{content:"";display:block;width:44px;height:4px;background:var(--red);margin-top:14px}
.ruler .head h2::after{width:32px;height:3px;margin-top:8px}
.hero .txt h1::after{content:"";display:block;width:56px;height:5px;background:var(--red);margin-top:18px}
.heroimg::after{content:"";position:absolute;left:-40px;bottom:-30px;width:60%;height:120px;background:var(--red);opacity:.92;transform:skewY(-8deg);z-index:0}
.heroimg .tag{z-index:1}
.tech{position:relative}
.tech .vlabel{position:absolute;left:-58px;top:0;writing-mode:vertical-rl;transform:rotate(180deg);font-size:44px;font-weight:600;color:var(--red);letter-spacing:.02em;line-height:1;opacity:.9}
.tech>div:first-child{padding-left:0}
.firmline b{color:var(--red)}
footer{background:var(--steel);border-top:0;color:rgba(255,255,255,.85);background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:16px 16px}
footer h4{color:#fff}
footer a{color:rgba(255,255,255,.8)}
footer a:hover{color:#fff}
footer .ue{border-top-color:rgba(255,255,255,.2);color:rgba(255,255,255,.6)}
footer .brands{background:#fff;padding:10px 14px;display:inline-flex;border-radius:4px}
table.params th{background:var(--red);color:#fff;font-weight:600;border-bottom:0}
table.params tr.g td{background:var(--red);color:#fff;font-weight:600;padding:9px 12px}
table.params td:last-child{color:var(--steel)}
table.params{border-top:0}
.pband{background:var(--pc,var(--red));color:#fff;padding:28px 0 80px;position:relative;overflow:hidden}
.pband::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:16px 16px;opacity:.5}
.pband .wrap{position:relative}
.pband .cat{display:block;font-size:14px;letter-spacing:.06em;text-transform:uppercase;opacity:.9;margin-bottom:10px;border:0;padding:0}
.pband h1{color:#fff;font-size:clamp(40px,4.6vw,60px);margin:0}
.pband h1::after{background:#fff}
.pband .sub{color:rgba(255,255,255,.92);font-size:18px;max-width:52ch;margin:16px 0 0}
.pp.overlap{margin-top:-56px;padding-top:0}
.pp.overlap .gal{box-shadow:0 10px 30px rgba(1,65,109,.18)}
.pp.overlap>div:last-child{padding-top:72px}
.prod .b h3{border-left:4px solid var(--red);padding-left:10px}
.prod.mag .b h3{border-left-color:var(--magenta)}
.cats .cat h3::after,.catgrid h3::after{content:none}
.catgrid h3{border-left:4px solid var(--red);padding-left:10px}
.proto{background:var(--steel);color:rgba(255,255,255,.85);border-bottom:0}
.proto b{color:#fff}
@media (max-width:1100px){.tech .vlabel{display:none}.heroimg::after{display:none}}
@media (max-width:1000px){.pp.overlap{margin-top:-60px}.pp.overlap>div:last-child{padding-top:0}}

/* ===== runda 1 pinezek ===== */
.ruler .head>div{display:flex;flex-direction:column;gap:10px}
.rlogo{height:40px;width:auto;display:block}
.ruler .head h2 .inl{display:none}
.firmline .wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:16px 24px}
.firmline div{padding:0;margin:0;border-right:0;border-left:3px solid var(--red);padding-left:14px;font-size:14.5px;line-height:1.3}
.firmline b{display:block;font-size:26px;margin:0 0 4px}
.pullbg h2,.pullbg h3{color:#fff}
.pullbg h2::after{background:#fff}
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--red)}
.timeline li{padding:22px 24px 8px 0;position:relative;margin-right:24px}
.timeline li::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:50%;background:var(--red)}
.timeline span{display:block;font-size:30px;font-weight:600;color:var(--red);line-height:1;margin-bottom:10px}
.timeline h3{font-size:18px;margin-bottom:8px}
.timeline p{margin:0;font-size:14.5px;color:var(--ink-2)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;margin-top:26px}
.facts div{border-top:2px solid var(--red);padding-top:12px}
.facts b{display:block;font-size:28px;font-weight:600;color:var(--steel);line-height:1;margin-bottom:6px}
.facts span{font-size:14.5px;color:var(--ink-2)}
.pl{display:grid;grid-template-columns:1fr 1.6fr;gap:40px;align-items:start;margin-bottom:36px}
.pl__ph{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--hair)}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chips div{background:var(--beton);padding:14px 16px;font-size:14.5px;color:var(--ink-2);border-left:3px solid var(--red)}
.chips b{display:block;color:var(--steel);margin-bottom:4px}
.chips i{font-style:normal;color:var(--mid)}
ol.stages.small li{padding:18px 20px 16px 0}
ol.stages.small span{font-size:26px}
ol.stages.small h3{font-size:16.5px}
ol.stages.small p{font-size:14px}
figure.wide{margin:0;position:relative}
figure.wide img{width:100%;height:clamp(260px,42vw,560px);object-fit:cover;display:block}
figure.wide figcaption{position:absolute;left:0;bottom:0;background:rgba(1,65,109,.85);color:#fff;font-size:13px;padding:8px 24px}
a.more{font-weight:600;color:var(--red);text-decoration:none;border-bottom:2px solid var(--red);padding-bottom:2px}
a.more:hover{color:var(--red-deep);border-bottom-color:var(--red-deep)}
footer .brands{display:inline-flex;gap:0;background:#fff;padding:0;border-radius:4px;overflow:hidden}
footer .brands span{display:flex;align-items:center;justify-content:center;height:64px;padding:0 22px;border-right:1px solid var(--hair)}
footer .brands span:last-child{border-right:0}
footer .brands img{height:34px;width:auto;display:block}
@media (max-width:1000px){.firmline .wrap{grid-template-columns:repeat(3,1fr)}.timeline{grid-template-columns:1fr 1fr}.pl{grid-template-columns:1fr}.facts{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.firmline .wrap{grid-template-columns:1fr 1fr;gap:18px 16px}.firmline div{flex-basis:auto}.timeline{grid-template-columns:1fr}.timeline li{margin-right:0;border-bottom:1px solid var(--hair)}.chips{grid-template-columns:1fr}.facts{grid-template-columns:1fr}ol.stages.small{grid-template-columns:1fr}.rlogo{height:34px}}

.brandhead{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.brandhead img{height:64px;width:auto;display:block}
.brandhead span{font-size:14px;color:var(--mid)}
@media (max-width:620px){.brandhead img{height:52px}}

/* ===== runda 2 ===== */
.logo img{height:68px}
.burger{padding:11px 16px;font-size:15px;border:1.5px solid var(--ink);font-weight:600}
.top .right{gap:14px}
nav.main .has-mega{position:static}
nav.main .has-mega>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 0 3px 8px}
.mega{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);box-shadow:0 14px 30px rgba(1,65,109,.12);padding:28px 0 30px;z-index:30;white-space:normal}
.has-mega:hover .mega,.has-mega:focus-within .mega{display:block}
.mega .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
.mega h4{font-size:16px;font-weight:600;color:var(--steel);margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid var(--red)}
.mega a{display:flex;justify-content:space-between;text-decoration:none;padding:6px 0;border-bottom:1px solid var(--hair);font-size:14.5px;color:var(--ink-2)}
.mega a span{color:var(--mid);font-size:13px}
.mega a:hover{color:var(--red)}
.mega a.all{border-bottom:0;color:var(--red);font-weight:600;margin-top:6px;justify-content:flex-start}
.mega p{font-size:14.5px;color:var(--ink-2);margin:0 0 6px}
.rlogo{height:64px}
.ruler .head h2{max-width:22ch}
.firmline{padding:0;background:#fff;border-bottom:1px solid var(--hair)}
.firmline .wrap{display:block}
.stats{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--hair)}
.stats div{padding:22px 24px 22px 0;margin-right:24px;border-right:1px solid var(--hair);border-left:0;font-size:14.5px;color:var(--ink-2);line-height:1.3}
.stats div:last-child{border-right:0;margin-right:0}
.stats b{display:block;font-size:30px;font-weight:600;color:var(--red);margin:0 0 6px;line-height:1;font-variant-numeric:tabular-nums}
.catgrid h3{min-height:2.5em;align-items:flex-start;flex-wrap:wrap}
.catgrid h3 span{flex-basis:100%;font-size:13.5px}
.brandhead img{height:72px}
.lead2{font-size:17px;color:var(--ink-2);max-width:52ch;margin:14px 0 0}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.chips div{background:none;border-left:0;border-top:1px solid var(--hair);padding:12px 0 12px}
.chips div:nth-last-child(-n+2){border-bottom:1px solid var(--hair)}
ol.stages{gap:28px;border-top:0}
ol.stages li{border-right:0;margin-right:0;padding:0 0 16px;border-top:2px solid var(--red)}
ol.stages li img{margin:18px 0 14px}
ol.stages.small li{padding:0 0 12px}
.artgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.artgrid article{display:flex;flex-direction:column;gap:8px}
.artgrid img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--hair);display:block}
.artgrid .k{font-size:13px;color:var(--red);font-weight:600;margin-top:6px}
.artgrid h3{font-size:19px;line-height:1.25}
.artgrid h3 a{text-decoration:none}
.artgrid h3 a:hover{color:var(--red)}
.artgrid p{margin:0;font-size:14.5px;color:var(--ink-2);flex:1}
.artgrid a.more{align-self:flex-start;font-size:14px}
.contactbg{background:#E8F1F8;border-top:4px solid var(--red)}
.contactbg form.q{background:#fff;border:1px solid var(--hair);padding:24px}
.typsel{display:none;width:100%;font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--hair);background:#fff}
footer .brands{background:none;padding:0;gap:36px;align-items:center;border-radius:0;overflow:visible}
footer .brands img{height:52px;width:auto;display:block}
@media (max-width:1180px){.mega{display:none!important}}
@media (max-width:1000px){
  .row{grid-template-columns:150px 1fr;gap:6px 22px}
  .row .th{grid-row:1/4}
  .row>div{grid-column:2}
  .row p{grid-column:2;margin-top:2px}
  .row .go{grid-column:2;justify-self:start;margin-top:4px}
  .stats{grid-template-columns:repeat(3,1fr)}
  .artgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .logo img{height:52px}
  .rlogo{height:56px}
  .stats{grid-template-columns:1fr 1fr}
  .stats div{border-right:0;margin-right:0;padding:16px 8px 16px 0}
  .chips{grid-template-columns:1fr}
  .chips div:nth-last-child(-n+2){border-bottom:0}
  .chips div:last-child{border-bottom:1px solid var(--hair)}
  .artgrid{grid-template-columns:1fr}
  .typsel{display:block}
  .seg{display:none}
  .row{grid-template-columns:1fr}
  .row .th{grid-row:auto;width:100%}
  .row>div,.row p,.row .go{grid-column:1}
  footer .brands img{height:44px}
  .brandhead img{height:60px}
}
.top .mega .wrap{display:grid;height:auto;align-items:start;gap:40px;grid-template-columns:1.2fr 1fr 1fr}

/* ===== hero v3: full-bleed po prawej ===== */
.hero{border-bottom:1px solid var(--hair)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:560px}
.hero__txt{padding:72px 56px 64px max(24px,calc((100vw - 1200px)/2));display:flex;flex-direction:column;justify-content:center;background:#fff;background-image:linear-gradient(rgba(1,65,109,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(1,65,109,.05) 1px,transparent 1px);background-size:16px 16px}
.hero__txt h1{max-width:19ch;font-size:clamp(32px,3.3vw,46px)}
.hero__txt .lead{font-size:18px;max-width:48ch;color:var(--ink-2);margin:22px 0 28px}
.hero__txt .cta{display:flex;gap:12px;flex-wrap:wrap}
.hero__img{position:relative;overflow:hidden;background:var(--steel)}
.hero__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center;filter:saturate(.9) contrast(1.05)}
.hero__img::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,65,109,.35),rgba(1,65,109,0) 45%)}
.hero__img .tag{position:absolute;left:28px;bottom:28px;background:#fff;border-left:4px solid var(--red);padding:14px 18px;min-width:260px}
.hero__img .tag b{display:block;font-size:17px;color:var(--steel)}
.hero__img .tag span{display:block;font-size:13.5px;color:var(--mid);margin-top:3px}
.heroimg::after{display:none}
@media (max-width:1000px){.hero__grid{grid-template-columns:1fr;min-height:0}.hero__txt{padding:44px 24px 32px}.hero__img{min-height:300px}}
@media (max-width:620px){.hero__img{min-height:240px}.hero__img .tag{left:16px;bottom:16px;right:16px;min-width:0}}

/* ===== runda 3 (1920) ===== */
.statsline{background:#fff;border-bottom:1px solid var(--hair);padding:0}
.statsline .stats{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--hair)}
.statsline .stats div{padding:22px 24px 22px 0;margin-right:24px;border-right:1px solid var(--hair);font-size:14.5px;color:var(--ink-2);line-height:1.3}
.statsline .stats div:last-child{border-right:0;margin-right:0}
.statsline .stats b{display:block;font-size:30px;font-weight:600;color:var(--red);margin:0 0 6px;line-height:1;font-variant-numeric:tabular-nums}
.brandhead{align-items:flex-start}
.brandhead img{align-self:flex-start}
.ruler .head>div{align-items:flex-start}
.tick{width:112px;margin-left:0}
.tick .n{width:100%}
.tick .g{left:50%;transform:translateX(-50%)}
.sec-head{align-items:start}
.sec-head p{padding-top:6px}
.pl{margin-bottom:56px}
figure.wide figcaption{left:max(24px,calc((100vw - 1200px)/2 + 24px));right:auto}
@media (max-width:1100px){.tick{width:auto}}
@media (max-width:1000px){.statsline .stats{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){.statsline .stats{grid-template-columns:1fr 1fr}.statsline .stats div{border-right:0;margin-right:0;padding:16px 8px 16px 0}}
/* ===== runda 4 ===== */
.tick .n{justify-content:center;text-align:center}
.catgrid h3{align-content:flex-start}
ol.stages li{padding-top:14px}
ol.stages.small li{padding-top:14px}
footer .brands{flex-wrap:wrap;align-items:center;gap:28px 36px}
footer .brands img:first-child{height:46px}
footer .brands img:last-child{height:40px}
@media (max-width:1100px){
  .tick .g{position:static;left:auto;transform:none}
  .tick .n{width:auto;justify-content:flex-start;text-align:left}
}
@media (max-width:1000px){
  footer .cols{gap:32px 24px}
  footer .brands img:first-child{height:40px}
  footer .brands img:last-child{height:34px}
}
@media (max-width:620px){
  .timeline li{padding:20px 0 24px}
  .timeline li:last-child{border-bottom:0}
  ol.stages li{padding:16px 0 20px}
  ol.stages.small li{padding:16px 0 20px}
}
.catgrid a{align-content:start}
/* ===== runda 5 ===== */
.logo img{height:36px}
nav.main{align-items:stretch}
nav.main .has-mega{display:flex}
nav.main .has-mega>a{position:relative;display:flex;align-items:center}
nav.main .has-mega>a::before{content:"";position:absolute;left:-24px;right:-24px;top:100%;height:34px}
.has-mega:hover .mega,.has-mega:focus-within .mega,.mega:hover{display:block}
footer .brands{gap:28px 44px}
footer .brands img:first-child{height:34px}
footer .brands img:last-child{height:36px}
@media (max-width:1000px){footer .brands img:first-child{height:30px}footer .brands img:last-child{height:32px}}
@media (max-width:620px){.logo img{height:30px}}

footer .brands{flex-wrap:nowrap;gap:44px}
footer .brands img:first-child{height:26px}
footer .brands img:last-child{height:36px}
@media (max-width:1000px){footer .brands{flex-wrap:wrap}footer .brands img:first-child{height:24px}footer .brands img:last-child{height:32px}}
footer .brands{gap:32px}
footer .brands img:first-child{height:24px}
footer .brands img:last-child{height:32px}
