/* NataLab — natalab.eu | raport inżynierski: czarne kadry, papier do czytania */

/* ---------- kroje pisma z własnego serwera ---------- */
@font-face{font-family:"Newsreader";src:url("fonts/newsreader-v26-latin_latin-ext-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("fonts/newsreader-v26-latin_latin-ext-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("fonts/newsreader-v26-latin_latin-ext-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("fonts/source-sans-3-v19-latin_latin-ext-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("fonts/source-sans-3-v19-latin_latin-ext-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibm-plex-mono-v20-latin_latin-ext-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibm-plex-mono-v20-latin_latin-ext-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}


:root{
  --ink:#0c0c0b;
  --ink-2:#171715;
  --ink-rule:#2e2e2a;
  --paper:#f2efe8;
  --paper-2:#eae6dc;
  --rule:#d3cec1;
  --rule-soft:#e0dbcf;
  --text:#161614;
  --text-2:#33322d;
  --muted:#5f5c53;
  --bone:#f2efe8;
  --bone-2:#cfcabd;
  --bone-dim:#96918a;
  --maxw:1180px;
  --pad:clamp(20px,5vw,48px);

  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--text);
  font-family:var(--sans);font-size:18px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--rule)}
a:hover{border-bottom-color:var(--text)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.mono{font-family:var(--mono)}

/* ---------- nagłówek ---------- */
.site-head{position:sticky;top:0;z-index:50;background:var(--ink);border-bottom:1px solid var(--ink-rule)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:66px}
.brand{font-family:var(--serif);font-size:23px;color:var(--bone);border:0;letter-spacing:-.01em;white-space:nowrap}
.brand span{font-style:normal}
.nav{display:flex;gap:26px;align-items:center}
.nav a{color:var(--bone-2);border:0;font-size:16px;white-space:nowrap}
.nav a:hover,.nav a[aria-current="page"]{color:var(--bone)}
.nav .lang{
  font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--bone-2);
  border:1px solid #46443f;padding:5px 9px;
}
.nav .lang:hover{border-color:var(--bone);color:var(--bone)}

/* przycisk menu — widoczny tylko na wąskich ekranach */
.nav-burger{display:none;width:44px;height:44px;flex:0 0 44px;cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;margin-right:-10px}
.nav-burger span{display:block;width:22px;height:1.5px;background:var(--bone);transition:transform .18s,opacity .18s}
.nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0}
.nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media(min-width:941px) and (max-width:1120px){.nav{gap:20px}.nav a{font-size:15px}}

@media(max-width:940px){
  .nav-burger{display:flex;order:3}
  .nav{
    order:4;position:absolute;left:0;right:0;top:66px;
    display:none;flex-direction:column;align-items:stretch;gap:0;
    background:var(--ink);border-bottom:1px solid var(--ink-rule);
    padding:6px var(--pad) 22px;
  }
  .nav-toggle:checked ~ .nav{display:flex}
  .nav a{font-size:19px;padding:15px 0;border-bottom:1px solid #22221f}
  .nav a:last-child{border-bottom:0}
  .nav .lang{align-self:flex-start;margin-top:18px;font-size:12px;padding:8px 14px}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--ink);overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 46%;filter:grayscale(.55) contrast(1.05)}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(96deg,rgba(12,12,11,.95) 0%,rgba(12,12,11,.88) 38%,rgba(12,12,11,.5) 68%,rgba(12,12,11,.3) 100%);
}
@media(max-width:820px){
  .hero-media::after{background:linear-gradient(180deg,rgba(12,12,11,.7) 0%,rgba(12,12,11,.92) 48%,rgba(12,12,11,.97) 100%)}
}
.hero-inner{position:relative;padding:clamp(84px,14vw,164px) 0 clamp(72px,12vw,132px);max-width:790px}
.eyebrow{
  font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--bone-dim);margin:0 0 26px;
}
h1{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(38px,6.2vw,72px);line-height:1.03;letter-spacing:-.018em;
  margin:0 0 30px;color:var(--bone);
}
.hero .lead{font-size:clamp(17px,1.9vw,20px);line-height:1.58;color:var(--bone-2);margin:0 0 38px;max-width:62ch}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.btn{
  display:inline-block;padding:13px 26px;font-size:16px;border-radius:0;
  border:1px solid rgba(242,239,232,.42);color:var(--bone);
  transition:background .15s,border-color .15s,color .15s;
}
.btn:hover{border-color:var(--bone);background:rgba(242,239,232,.08)}
.btn-primary{background:var(--bone);color:var(--ink);border-color:var(--bone);font-weight:600}
.btn-primary:hover{background:#fff;border-color:#fff;color:var(--ink)}

.hero-cad .hero-media img{filter:none;object-position:center 12%;opacity:.9}
.hero-cad .hero-media::after{
  background:linear-gradient(100deg,rgba(12,12,11,.97) 0%,rgba(12,12,11,.93) 40%,rgba(12,12,11,.72) 66%,rgba(12,12,11,.55) 100%);
}
@media(max-width:820px){
  .hero-cad .hero-media::after{background:linear-gradient(180deg,rgba(12,12,11,.86) 0%,rgba(12,12,11,.94) 45%,rgba(12,12,11,.97) 100%)}
}
.hero-cad .hero-inner{padding:clamp(70px,11vw,132px) 0 clamp(60px,9vw,108px)}
.hero-cad h1{font-size:clamp(33px,5.1vw,60px)}
.hero-note{
  font-size:12px;letter-spacing:.06em;color:var(--bone-dim);margin:34px 0 0;
  padding-top:16px;border-top:1px solid #33322d;max-width:52ch;
}

/* ---------- sekcje ---------- */
section{padding:clamp(60px,8vw,104px) 0;background:var(--paper)}
section + section{border-top:1px solid var(--rule-soft)}
.sec-label{
  font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin:0 0 18px;
}
h2{
  font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.7vw,42px);
  line-height:1.13;letter-spacing:-.015em;margin:0 0 30px;max-width:20ch;
}
h3{font-family:var(--sans);font-size:18px;font-weight:600;line-height:1.35;margin:0 0 8px}
p{margin:0 0 20px;max-width:70ch}
p:last-child{margin-bottom:0}
.dim{color:var(--muted)}
.big{font-size:clamp(18px,1.9vw,20.5px);line-height:1.6;color:var(--text-2);max-width:64ch}

/* ---------- dwie kolumny ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.split > div{padding:0 clamp(20px,3vw,44px)}
.split > div:first-child{padding-left:0}
.split > div:last-child{padding-right:0;border-left:1px solid var(--rule)}
@media(max-width:900px){
  .split > div{padding:0}
  .split > div:last-child{border-left:0;border-top:1px solid var(--rule);margin-top:44px;padding-top:44px}
}
.col-head{display:flex;align-items:baseline;gap:14px;padding-bottom:16px;margin-bottom:8px;border-bottom:1px solid var(--text)}
.col-head h2{margin:0;font-size:clamp(22px,2.6vw,28px)}
.tick{font-family:var(--mono);font-size:13px;color:var(--muted)}
.item{padding:24px 0;border-bottom:1px solid var(--rule-soft)}
.item:last-of-type{border-bottom:0}
.item p{color:var(--text-2);font-size:17px;margin:0}
.note{margin-top:26px;padding-top:22px;border-top:1px solid var(--rule);font-size:16.5px;color:var(--muted)}

/* ---------- blok ciemny na papierze ---------- */
.confirm{
  margin-top:clamp(40px,5vw,64px);background:var(--ink);color:var(--bone-2);
  padding:clamp(30px,4.4vw,52px);
}
.confirm h3{font-family:var(--serif);font-weight:500;font-size:clamp(22px,2.6vw,28px);color:var(--bone);margin-bottom:20px;letter-spacing:-.01em}
.confirm p{font-size:17px;max-width:66ch}
.confirm q{
  display:block;font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.2vw,24px);
  line-height:1.42;color:var(--bone);margin:0 0 10px;quotes:"“" "”";
}
.confirm .src{display:block;font-family:var(--mono);font-size:12.5px;color:var(--bone-dim);letter-spacing:.02em}
.confirm a{color:var(--bone);border-bottom-color:#4a4842}
.confirm a:hover{border-bottom-color:var(--bone)}

/* ---------- TRL ---------- */
.trl{border-top:1px solid var(--text)}
.trl-row{
  display:grid;grid-template-columns:minmax(190px,1.05fr) 150px 1.45fr;gap:26px;align-items:center;
  padding:22px 0;border-bottom:1px solid var(--rule-soft);
}
@media(max-width:800px){.trl-row{grid-template-columns:1fr;gap:10px;padding:20px 0}}
.trl-name{font-size:17px;font-weight:600}
.trl-val{font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--muted);display:block;margin-bottom:8px}
.trl-bar{height:3px;background:var(--rule);position:relative}
.trl-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--text)}
.trl-bar.low i{background:var(--muted);opacity:.55}
.trl-note{font-size:16px;color:var(--muted)}

/* ---------- listy, kafle ---------- */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(max-width:700px){.grid-2{grid-template-columns:1fr}}
.card{background:var(--paper);padding:clamp(24px,3vw,34px)}
.card h3{font-family:var(--serif);font-weight:500;font-size:23px;margin-bottom:14px;letter-spacing:-.01em}
.card p{font-size:16.5px;color:var(--text-2);max-width:none}
.card .kv{font-size:15.5px;color:var(--muted);margin:0 0 6px}
.card .kv b{color:var(--text);font-weight:600}
.card .kv.no b{color:var(--text)}

.tasks{list-style:none;padding:0;margin:0;max-width:78ch;border-top:1px solid var(--rule)}
.tasks li{padding:16px 0 16px 30px;border-bottom:1px solid var(--rule-soft);position:relative;color:var(--text-2);font-size:17px}
.tasks li::before{content:"—";position:absolute;left:0;color:var(--muted)}

/* ---------- rynek ---------- */
.market{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,3.6vw,52px)}
@media(max-width:820px){.market{grid-template-columns:1fr}}
.market .m{border-top:1px solid var(--text);padding-top:22px}
.market h3{font-family:var(--serif);font-weight:500;font-size:24px;margin-bottom:12px;letter-spacing:-.01em}
.market p{font-size:16.5px;color:var(--text-2)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--text);max-width:82ch}
.qa{padding:30px 0;border-bottom:1px solid var(--rule-soft)}
.qa:last-child{border-bottom:0}
.qa h3{
  font-family:var(--serif);font-weight:500;font-size:clamp(20px,2.3vw,25px);
  letter-spacing:-.01em;margin-bottom:14px;max-width:34ch;
}
.qa p{font-size:16.5px;color:var(--text-2)}

/* ---------- dossier: potwierdzenia rynkowe ---------- */
.dossier{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:44px;border-top:1px solid var(--text)}
@media(max-width:940px){.dossier{grid-template-columns:1fr}}
.dsr{padding:34px clamp(20px,3vw,44px) 10px 0}
.dsr + .dsr{padding-right:0;padding-left:clamp(20px,3vw,44px);border-left:1px solid var(--rule)}
@media(max-width:940px){
  .dsr{padding:32px 0 0}
  .dsr + .dsr{padding-left:0;border-left:0;border-top:1px solid var(--rule);margin-top:32px}
}
.dsr-date{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.dsr h3{font-family:var(--serif);font-weight:500;font-size:clamp(21px,2.4vw,26px);letter-spacing:-.01em;margin-bottom:16px;max-width:26ch}
.dsr p{font-size:16.5px;color:var(--text-2)}
.dsr-q{margin:24px 0;padding:20px 0 20px 22px;border-left:2px solid var(--text)}
.dsr-q q{
  display:block;font-family:var(--serif);font-style:italic;font-size:clamp(18px,2vw,21px);
  line-height:1.42;color:var(--text);margin-bottom:12px;quotes:"“" "”";
}
.dsr-q .src{display:block;font-size:12.5px;color:var(--muted);line-height:1.6;margin-top:14px}
.dsr-links{font-size:12.5px;line-height:1.85;color:var(--muted);margin-top:22px;padding-top:16px;border-top:1px solid var(--rule-soft)}

/* ---------- zakres rozmów ---------- */
.terms{display:grid;grid-template-columns:220px 1fr;gap:0 40px;border-top:1px solid var(--text)}
@media(max-width:760px){.terms{grid-template-columns:1fr;gap:0}}
.terms dt{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:26px 0 0}
.terms dd{margin:0;padding:26px 0;border-bottom:1px solid var(--rule-soft);color:var(--text-2);font-size:17px}
@media(max-width:760px){.terms dt{padding-bottom:8px}.terms dd{padding-top:0}}

/* ---------- kontakt (ciemny) ---------- */
section.dark{background:var(--ink);color:var(--bone-2)}
section.dark h2{color:var(--bone)}
section.dark .sec-label{color:var(--bone-dim)}
section.dark p{color:var(--bone-2)}
section.dark a{color:var(--bone);border-bottom-color:#4a4842}
section.dark a:hover{border-bottom-color:var(--bone)}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,72px);align-items:start}
@media(max-width:860px){.contact{grid-template-columns:1fr}}
form{display:grid;gap:18px}
label{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim);margin-bottom:8px}
input,textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid #46443f;color:var(--bone);
  padding:10px 2px;font:inherit;font-size:17px;border-radius:0;
}
input:focus,textarea:focus{outline:none;border-bottom-color:var(--bone)}
textarea{min-height:120px;resize:vertical;border:1px solid #46443f;padding:12px}
button{
  justify-self:start;padding:13px 32px;background:var(--bone);color:var(--ink);
  border:0;border-radius:0;font:inherit;font-weight:600;font-size:16px;cursor:pointer;
}
button:hover{background:#fff}

/* ---------- pasek danych technicznych ---------- */
.specs-strip{background:var(--ink);border-top:1px solid var(--ink-rule)}
.specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--ink-rule);margin:0}
@media(max-width:900px){.specs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:440px){.specs{grid-template-columns:1fr}}
.specs > div{background:var(--ink);padding:24px clamp(16px,2vw,26px)}
.specs dt{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-dim);margin:0 0 10px}
.specs dd{margin:0;font-family:var(--serif);font-size:26px;font-weight:500;color:var(--bone);line-height:1.1;letter-spacing:-.01em}
.specs dd small{display:block;font-family:var(--sans);font-size:13.5px;font-weight:400;color:var(--bone-dim);margin-top:8px;letter-spacing:0}

/* ---------- stopka ---------- */
.site-foot{background:var(--ink);border-top:1px solid var(--ink-rule);padding:40px 0 56px;color:var(--bone-dim);font-size:15px}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:14px 32px;justify-content:space-between}
.site-foot a{color:var(--bone-2);border-bottom-color:#3a3833}
.site-foot a:hover{color:var(--bone);border-bottom-color:var(--bone)}

/* ---------- podstrona techniczna ---------- */
.page-head{background:var(--ink);padding:clamp(56px,8vw,96px) 0 clamp(40px,5vw,64px)}
.page-head h1{font-size:clamp(34px,5vw,58px);margin-bottom:26px}
.page-head .lead{font-size:clamp(17px,1.9vw,19.5px);color:var(--bone-2);max-width:60ch;margin:0}
.head-grid{display:grid;grid-template-columns:minmax(280px,.85fr) 1.15fr;gap:clamp(32px,5vw,68px);align-items:center}
@media(max-width:900px){.head-grid{grid-template-columns:1fr}}
.cad{border:1px solid var(--ink-rule);background:#000}
.cad img{width:100%}
.cad-cap{font-family:var(--mono);font-size:12px;line-height:1.6;color:var(--bone-dim);margin:14px 0 0;max-width:none}

.article{padding:clamp(52px,7vw,88px) 0;background:var(--paper)}
.article h2{margin-top:76px;padding-top:30px;border-top:1px solid var(--text);max-width:24ch}
.article h2:first-of-type{margin-top:0;padding-top:0;border-top:0}
.article h3{
  font-family:var(--mono);margin-top:46px;margin-bottom:16px;font-size:12.5px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.article h3 i{font-style:italic;text-transform:none;letter-spacing:.02em}
.article p{color:var(--text-2);font-size:17.5px}
.article ul{max-width:70ch;padding-left:22px;color:var(--text-2);font-size:17px}
.article li{margin-bottom:12px}
.pull{
  font-family:var(--serif);font-style:italic;font-size:clamp(21px,2.5vw,27px);line-height:1.38;
  color:var(--text);border-left:2px solid var(--text);padding-left:26px;margin:38px 0;max-width:58ch;
}
.quote{border-top:1px solid var(--text);border-bottom:1px solid var(--rule);padding:24px 0;margin:34px 0;max-width:72ch}
.quote q{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.2vw,23px);line-height:1.42;color:var(--text);quotes:"“" "”"}
.quote .src{display:block;margin-top:14px;font-family:var(--mono);font-size:12.5px;color:var(--muted);font-style:normal}

.figure{margin:44px 0}
.figure img{border:1px solid var(--rule)}
.figure figcaption{margin-top:14px;font-family:var(--mono);font-size:12.5px;line-height:1.65;color:var(--muted)}
.diagram{width:100%;height:auto;background:var(--paper-2);border:1px solid var(--rule)}
.sheet img{border:0;width:100%}
/* na szerszych ekranach rysunki nie kurczą się poniżej czytelnej szerokości */
@media(min-width:780px){.diagram{min-width:700px}}
@media(min-width:900px){.sheet img{min-width:820px}}
.sheet{background:var(--paper-2);border:1px solid var(--rule);padding:0}

.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.back{margin-top:60px;background:var(--ink);color:var(--bone);border:1px solid var(--ink)}
.back:hover{background:var(--ink-2);color:var(--bone)}
