{"id":2968,"date":"2026-07-21T23:26:35","date_gmt":"2026-07-21T21:26:35","guid":{"rendered":"https:\/\/gekkophotonics.com\/narzedzia\/kalkulator-stezen\/"},"modified":"2026-07-22T02:28:01","modified_gmt":"2026-07-22T00:28:01","slug":"kalkulator-stezen","status":"publish","type":"page","link":"https:\/\/gekkophotonics.com\/de\/narzedzia\/konzentrations-verduennungs-rechner\/","title":{"rendered":"Konzentrations- und Verd\u00fcnnungsrechner \u2014 C\u2081V\u2081=C\u2082V\u2082, mol\/L, ppm"},"content":{"rendered":"<style>:root{--page-title-display:none;}<\/style>\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2968\" class=\"elementor elementor-2968 elementor-bc-flex-widget\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c271c00 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c271c00\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8bff811\" data-id=\"8bff811\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-74118f9 elementor-widget elementor-widget-html\" data-id=\"74118f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* Gekko Photonics \u2014 Narz\u0119dzia Ramana.\n   Font = kanon Design System (Manrope). Kolory\/cienie\/radius dopasowane do \u017cywej\n   strony (navy #2B2E83, cie\u0144 0 14px 40px, radius 14\/10). Scope pod .gk-tool. *\/\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Manrope:wght@400;500;600;700;800&display=swap');\n\n.gk-tool{\n  --blue:#019FE2; --blue-600:#0088C2; --blue-50:#EDF8FD; --blue-100:#D6EFFA;\n  --navy:#2B2E83; --navy-dark:#192A3D;\n  --ink:#101828; --ink-2:#3A4256; --ink-3:#667085;\n  --line:#E4E7EC; --line-2:#D0D5DD; --surface:#FFFFFF; --surface-2:#F7F8FA;\n  --gold:#F3C969; --ok:#12B76A; --warn:#F3C969; --danger:#E04B4B;\n  --r-card:14px; --r-in:10px; --r-pill:999px;\n  --sh:0 14px 40px rgba(16,24,40,.12); --sh-sm:0 2px 8px rgba(16,24,40,.06);\n  --focus:0 0 0 4px rgba(1,159,226,.14);\n  --ease:cubic-bezier(.22,1,.36,1);\n  --f-body:\"Manrope\",system-ui,-apple-system,\"Segoe UI\",Arial,sans-serif;\n  --f-head:\"Manrope\",system-ui,sans-serif;\n  --mono:ui-monospace,\"SF Mono\",Menlo,Consolas,monospace;\n\n  font-family:var(--f-body); color:var(--ink-2); line-height:1.6; font-size:16px;\n  max-width:1140px; margin:0 auto; padding:clamp(28px,4vw,56px) clamp(16px,3vw,28px) 40px;\n  box-sizing:border-box;\n}\n.gk-tool *,.gk-tool *::before,.gk-tool *::after{box-sizing:border-box;}\n\n\/* typografia *\/\n.gk-tool .eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin:0 0 14px;}\n.gk-tool h1{font-family:var(--f-head);font-weight:800;line-height:1.12;letter-spacing:-.01em;color:var(--navy);margin:0 0 14px;font-size:clamp(28px,3.2vw,42px);}\n.gk-tool h2{font-family:var(--f-head);font-weight:700;line-height:1.2;color:var(--navy);margin:0 0 8px;font-size:clamp(21px,2.1vw,28px);}\n.gk-tool h3{font-family:var(--f-head);font-weight:700;color:var(--navy);margin:0 0 6px;font-size:18px;}\n.gk-tool p{margin:0 0 12px;}\n.gk-tool .lead{font-size:clamp(16px,1.35vw,18px);color:var(--ink-2);max-width:68ch;line-height:1.6;}\n.gk-tool .muted{color:var(--ink-3);font-size:14px;}\n.gk-tool a{color:var(--blue);text-decoration:none;}\n.gk-tool a:hover{color:var(--blue-600);text-decoration:underline;}\n\n\/* layout *\/\n.gk-tool .head{margin-bottom:clamp(24px,3vw,40px);}\n.gk-tool .grid{display:grid;gap:20px;}\n@media(min-width:720px){.gk-tool .grid.cols-2{grid-template-columns:1fr 1fr;}}\n.gk-tool .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-sm);padding:clamp(20px,2.4vw,28px);}\n.gk-tool .card + .card{margin-top:20px;}\n\n\/* kontrolki *\/\n.gk-tool label.field{display:block;margin-bottom:14px;}\n.gk-tool label.field > span{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px;}\n.gk-tool input[type=number],.gk-tool input[type=text],.gk-tool select{\n  width:100%;font-family:var(--f-body);font-size:16px;color:var(--ink);\n  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-in);\n  padding:11px 13px;transition:border-color var(--ease) .15s,box-shadow var(--ease) .15s;}\n.gk-tool input:focus,.gk-tool select:focus{outline:none;border-color:var(--blue);box-shadow:var(--focus);}\n.gk-tool .chips{display:flex;gap:8px;flex-wrap:wrap;}\n.gk-tool .chip{cursor:pointer;font-size:13px;font-weight:600;padding:8px 15px;border-radius:var(--r-pill);\n  border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);transition:all var(--ease) .15s;}\n.gk-tool .chip:hover{border-color:var(--blue);color:var(--blue);}\n.gk-tool .chip.active{background:var(--navy);border-color:var(--navy);color:#fff;}\n\n.gk-tool .btn{cursor:pointer;font-family:var(--f-body);font-size:15px;font-weight:700;border:none;\n  border-radius:var(--r-pill);padding:13px 24px;transition:background var(--ease) .15s,transform var(--ease) .15s;}\n.gk-tool .btn-primary{background:var(--blue);color:#fff;}\n.gk-tool .btn-primary:hover{background:var(--blue-600);}\n.gk-tool .btn-ghost{background:var(--surface);color:var(--navy);border:1px solid var(--line-2);}\n.gk-tool .btn-ghost:hover{border-color:var(--blue);color:var(--blue);}\n\n\/* wynik *\/\n.gk-tool .result{background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--r-in);padding:18px 20px;margin-top:4px;}\n.gk-tool .result .big{font-family:var(--f-head);font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;font-size:clamp(28px,3vw,38px);line-height:1.05;}\n.gk-tool .result .unit{font-size:.5em;font-weight:700;color:var(--ink-2);margin-left:6px;}\n.gk-tool .result .sub{font-size:14px;color:var(--ink-2);margin-top:6px;}\n.gk-tool .kv{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;}\n.gk-tool .kv:last-child{border-bottom:none;}\n.gk-tool .kv .v{font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums;}\n.gk-tool .badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 11px;border-radius:var(--r-pill);}\n.gk-tool .badge.ok{background:rgba(18,183,106,.12);color:#087443;}\n.gk-tool .badge.no{background:rgba(224,75,75,.10);color:#b42318;}\n\n\/* details \/ obja\u015bnienie *\/\n.gk-tool details{border:1px solid var(--line);border-radius:var(--r-card);padding:2px 18px;background:var(--surface);margin-top:16px;}\n.gk-tool summary{cursor:pointer;font-family:var(--f-head);font-weight:700;color:var(--navy);padding:14px 0;list-style:none;}\n.gk-tool summary::-webkit-details-marker{display:none;}\n.gk-tool summary::before{content:\"+\";color:var(--blue);font-weight:800;margin-right:10px;font-family:var(--f-body);}\n.gk-tool details[open] summary::before{content:\"\u2013\";}\n.gk-tool details .body{padding:0 0 16px;font-size:15px;color:var(--ink-2);line-height:1.65;}\n.gk-tool .formula{font-family:var(--mono);font-size:14px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-in);padding:13px 15px;color:var(--ink);overflow-x:auto;line-height:1.7;}\n\n\/* hub kafelki \u2014 styl \u201eBran\u017ce\" (compact: ikona z lewej, tytu\u0142 + link ze strza\u0142k\u0105) *\/\n.gk-tool .tiles{display:grid;gap:24px;grid-template-columns:1fr;}\n@media(min-width:640px){.gk-tool .tiles{grid-template-columns:1fr 1fr;}}\n@media(min-width:980px){.gk-tool .tiles{grid-template-columns:1fr 1fr 1fr;}}\n.gk-tool .tile{display:flex;gap:16px;align-items:stretch;background:#fff;\n  border:1px solid rgba(31,42,90,.12);border-radius:14px;box-shadow:0 10px 30px rgba(16,24,40,.08);\n  padding:20px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}\n.gk-tool a.tile:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 14px 40px rgba(16,24,40,.12);border-color:rgba(31,42,90,.18);}\n.gk-tool .tile .ico{width:72px;height:72px;border-radius:14px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;\n  background:linear-gradient(180deg,rgba(31,42,90,.06),rgba(31,42,90,.02));border:1px solid rgba(31,42,90,.10);color:var(--navy);}\n.gk-tool .tile .ico svg{width:38px;height:38px;}\n.gk-tool .tile-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:72px;}\n.gk-tool .tile-title{font-size:18px;line-height:1.15;font-weight:700;color:#1f2a5a;margin:0 0 4px;overflow-wrap:break-word;}\n.gk-tool .tile-go{align-self:center;flex:0 0 auto;color:var(--navy);font-size:22px;line-height:1;opacity:.55;transition:transform .25s ease,color .2s ease,opacity .2s ease;}\n.gk-tool a.tile:hover .tile-go{transform:translateX(3px);color:#34b5eb;opacity:1;}\n\n\/* expert CTA \u2014 panel \u201eporozmawiajmy o Twoim przypadku\" przy wyniku *\/\n.gk-tool .gk-expert{background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--r-in);padding:18px 20px;margin-top:18px;}\n.gk-tool .gk-expert-head{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;}\n.gk-tool .gk-expert-copy{margin:0;font-size:15px;color:var(--ink-2);flex:1 1 320px;line-height:1.55;}\n.gk-tool .gk-expert-head .btn{flex:0 0 auto;}\n\n\/* wsp\u00f3lny formularz leadowy + wysuwanie (slide) *\/\n.gk-tool .gk-slide{max-height:0;overflow:hidden;opacity:0;margin-top:0;transition:max-height .35s var(--ease),opacity .25s var(--ease),margin-top .35s var(--ease);}\n.gk-tool .gk-slide.open{max-height:560px;opacity:1;margin-top:16px;}\n.gk-tool .gk-lf-grid{display:grid;gap:10px;grid-template-columns:1fr;}\n@media(min-width:560px){.gk-tool .gk-lf-grid{grid-template-columns:1fr 1fr;}\n  .gk-tool .gk-lf-grid input[type=email]{grid-column:1 \/ -1;}}\n.gk-tool .gk-lf .consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--ink-3);margin-top:12px;max-width:64ch;}\n.gk-tool .gk-lf .consent span{text-wrap:pretty;}\n.gk-tool .gk-lf .consent input{margin-top:3px;width:auto;}\n.gk-tool .gk-lf .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}\n.gk-tool .gk-lf .msg{margin-top:12px;font-size:14px;font-weight:600;min-height:1em;}\n.gk-tool .gk-lf .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}\n\n\/* CTA lead \u2014 jak sekcje navy na stronie *\/\n.gk-tool .cta{background:var(--navy);color:#fff;border-radius:var(--r-card);padding:clamp(26px,3vw,40px);margin-top:44px;box-shadow:var(--sh);}\n.gk-tool .cta h2{color:#fff;}\n.gk-tool .cta p{color:#C7CBE8;}\n.gk-tool .cta .gk-lf-grid{margin-top:18px;}\n.gk-tool .cta input[type=email],.gk-tool .cta input[type=text]{\n  width:100%;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.24);color:#fff;\n  border-radius:var(--r-in);padding:13px 15px;font-size:16px;font-family:var(--f-body);}\n.gk-tool .cta input::placeholder{color:#a6abd6;}\n.gk-tool .cta input:focus{outline:none;border-color:var(--blue);box-shadow:var(--focus);}\n.gk-tool .cta .consent{color:#a6abd6;}\n.gk-tool .cta .consent a{color:#9fd6f2;}\n\n\/* nav *\/\n.gk-tool .back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;margin-bottom:22px;color:var(--ink-3);}\n.gk-tool .back:hover{color:var(--blue);}\n.gk-tool .foot{margin-top:44px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-3);}\n\n<\/style>\n<div class=\"gk-tool\">\n<div class=\"head\">\n  <a class=\"back\" href=\"\/narzedzia\/\">\u2190 Narz\u0119dzia Ramana<\/a>\n  <p class=\"eyebrow\">Narz\u0119dzia Ramana<\/p>\n  <h1>Kalkulator st\u0119\u017ce\u0144 i rozcie\u0144cze\u0144<\/h1>\n  <p class=\"lead\">Dwa codzienne rachunki laboratoryjne w jednym miejscu: rozcie\u0144czenie roztworu (C\u2081V\u2081 = C\u2082V\u2082) oraz przeliczenie jednostek st\u0119\u017cenia (mol\/L, g\/L, mg\/L, % w\/v, ppm).<\/p>\n<\/div>\n\n<div class=\"card\">\n  <h3>Rozcie\u0144czenie \u2014 C\u2081 \u00b7 V\u2081 = C\u2082 \u00b7 V\u2082<\/h3>\n  <p class=\"muted\" style=\"margin-bottom:14px\">Zostaw <strong>jedno<\/strong> pole puste \u2014 policzymy je. St\u0119\u017cenia w tej samej jednostce, obj\u0119to\u015bci w tej samej jednostce.<\/p>\n  <div class=\"grid cols-2\">\n    <label class=\"field\"><span>C\u2081 \u2014 st\u0119\u017cenie wyj\u015bciowe<\/span><input type=\"number\" id=\"c1\" step=\"any\" placeholder=\"np. 1\"><\/label>\n    <label class=\"field\"><span>V\u2081 \u2014 obj\u0119to\u015b\u0107 wyj\u015bciowa<\/span><input type=\"number\" id=\"v1\" step=\"any\" placeholder=\"?\"><\/label>\n    <label class=\"field\"><span>C\u2082 \u2014 st\u0119\u017cenie docelowe<\/span><input type=\"number\" id=\"c2\" step=\"any\" placeholder=\"np. 0.1\"><\/label>\n    <label class=\"field\"><span>V\u2082 \u2014 obj\u0119to\u015b\u0107 docelowa<\/span><input type=\"number\" id=\"v2\" step=\"any\" placeholder=\"np. 100\"><\/label>\n  <\/div>\n  <div class=\"result\"><div class=\"sub\" id=\"dil\" style=\"margin:0;font-size:15px\">Wpisz trzy warto\u015bci.<\/div><\/div>\n<\/div>\n\n<div class=\"card\">\n  <h3>Konwerter jednostek st\u0119\u017cenia<\/h3>\n  <p class=\"muted\" style=\"margin-bottom:14px\">Wpisz st\u0119\u017cenie w dowolnej jednostce \u2014 reszta przeliczy si\u0119 automatycznie. Dla mol\/L podaj mas\u0119 molow\u0105.<\/p>\n  <div class=\"grid cols-2\">\n    <label class=\"field\"><span>Masa molowa M (g\/mol)<\/span><input type=\"number\" id=\"M\" value=\"18.02\" step=\"any\" placeholder=\"np. 58.44 (NaCl)\"><\/label>\n    <div><\/div>\n    <label class=\"field\"><span>mol\/L (molarno\u015b\u0107)<\/span><input type=\"number\" id=\"u-mol\" step=\"any\"><\/label>\n    <label class=\"field\"><span>g\/L<\/span><input type=\"number\" id=\"u-gl\" step=\"any\"><\/label>\n    <label class=\"field\"><span>mg\/L<\/span><input type=\"number\" id=\"u-mgl\" step=\"any\"><\/label>\n    <label class=\"field\"><span>% (w\/v)<\/span><input type=\"number\" id=\"u-pct\" step=\"any\"><\/label>\n    <label class=\"field\"><span>ppm (roztw\u00f3r wodny, rozc.)<\/span><input type=\"number\" id=\"u-ppm\" step=\"any\"><\/label>\n    <div><\/div>\n  <\/div>\n  <p class=\"muted\">Uwaga: ppm \u2248 mg\/L obowi\u0105zuje dla rozcie\u0144czonych roztwor\u00f3w wodnych (g\u0119sto\u015b\u0107 \u2248 1 g\/mL). % (w\/v) = g\/100 mL.<\/p>\n<\/div>\n\n<div class=\"gk-expert\">\n  <div class=\"gk-expert-head\">\n    <p class=\"gk-expert-copy\"><strong>To robi Spectrally.<\/strong> Chcesz kontrolowa\u0107 st\u0119\u017cenie w procesie bez pobierania pr\u00f3bek do laboratorium? Porozmawiajmy o Twoim przypadku.<\/p>\n    <button type=\"button\" class=\"btn btn-primary\" data-gk-toggle=\"lf-conc\" aria-expanded=\"false\">Porozmawiajmy o Twoim przypadku<\/button>\n  <\/div>\n  <form class=\"gk-lf gk-slide\" id=\"lf-conc\" data-region=\"Narz\u0119dzia \u2014 st\u0119\u017cenia\" data-ok=\"Dzi\u0119ki \u2014 odezwiemy si\u0119 do Ciebie.\" novalidate>\n    <div class=\"gk-lf-grid\">\n      <input type=\"text\" name=\"name_full\" placeholder=\"Imi\u0119 i nazwisko\" autocomplete=\"name\">\n      <input type=\"text\" name=\"company\" placeholder=\"Nazwa firmy\" autocomplete=\"organization\">\n      <input type=\"email\" name=\"email\" placeholder=\"E-mail s\u0142u\u017cbowy\" required autocomplete=\"email\">\n    <\/div>\n    <input type=\"text\" name=\"company_hp\" class=\"hp\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\">\n    <label class=\"consent\"><input type=\"checkbox\" name=\"consent\" required>\n      <span>Zgadzam si\u0119 na kontakt e-mail w sprawie mojego zapytania. Dane przetwarza Gekko Photonics \u2014 <a href=\"\/polityka-prywatnosci\/\">polityka prywatno\u015bci<\/a>.<\/span><\/label>\n    <div class=\"row\"><button type=\"submit\" class=\"btn btn-primary\">Popro\u015b o feasibility<\/button><\/div>\n    <div class=\"msg\" role=\"status\" aria-live=\"polite\"><\/div>\n  <\/form>\n<\/div>\n\n<details>\n  <summary>Wzory i za\u0142o\u017cenia<\/summary>\n  <div class=\"body\">\n    <p class=\"formula\">C\u2081\u00b7V\u2081 = C\u2082\u00b7V\u2082   \u2192   V\u2081 = C\u2082\u00b7V\u2082 \/ C\u2081<br>g\/L = (mol\/L)\u00b7M   \u00b7   mg\/L = 1000\u00b7g\/L   \u00b7   %(w\/v) = g\/L \u00f7 10   \u00b7   ppm \u2248 mg\/L (wodne)<\/p>\n    <p class=\"muted\" style=\"margin-top:10px\">Przeliczniki masowo-obj\u0119to\u015bciowe zak\u0142adaj\u0105 g\u0119sto\u015b\u0107 rozpuszczalnika \u2248 1 g\/mL. Dla roztwor\u00f3w st\u0119\u017conych lub niewodnych u\u017cyj rzeczywistej g\u0119sto\u015bci.<\/p>\n  <\/div>\n<\/details>\n\n<script>\n(function(){\n  var $=function(id){return document.getElementById(id);};\n  var g=function(id){var v=parseFloat($(id).value);return isFinite(v)?v:null;};\n  var fmt=function(x){if(x===null||!isFinite(x))return '\u2014';var a=Math.abs(x);var d=a>=100?2:a>=1?3:a>=0.001?5:8;return Number(x.toFixed(d)).toLocaleString('pl-PL',{maximumFractionDigits:d});};\n\n  \/\/ --- rozcie\u0144czenie ---\n  function dil(){\n    var m={c1:g('c1'),v1:g('v1'),c2:g('c2'),v2:g('v2')};\n    var empty=Object.keys(m).filter(function(k){return m[k]===null;});\n    var out=$('dil');\n    if(empty.length!==1){out.textContent=empty.length>1?'Wpisz trzy z czterech warto\u015bci.':'Komplet \u2014 wyczy\u015b\u0107 jedno pole, aby je policzy\u0107.';return;}\n    var k=empty[0],r,lbl;\n    try{\n      if(k==='v1'){r=m.c2*m.v2\/m.c1;lbl='V\u2081';}\n      else if(k==='c1'){r=m.c2*m.v2\/m.v1;lbl='C\u2081';}\n      else if(k==='v2'){r=m.c1*m.v1\/m.c2;lbl='V\u2082';}\n      else{r=m.c1*m.v1\/m.v2;lbl='C\u2082';}\n    }catch(e){r=NaN;}\n    if(!isFinite(r)){out.textContent='Nie da si\u0119 policzy\u0107 \u2014 sprawd\u017a, czy nie dzielisz przez zero.';return;}\n    var extra='';\n    if(k==='v1'&&isFinite(r)&&m.v2>=r){extra=' Dolej rozpuszczalnika do '+fmt(m.v2)+' (doda\u0107 '+fmt(m.v2-r)+').';}\n    out.innerHTML='<strong style=\"color:var(--gk-navy-deep);font-size:18px\">'+lbl+' = '+fmt(r)+'<\/strong>'+extra;\n  }\n  ['c1','v1','c2','v2'].forEach(function(id){$(id).addEventListener('input',dil);});\n  dil();\n\n  \/\/ --- konwerter jednostek --- baza: g\/L\n  var ids=['u-mol','u-gl','u-mgl','u-pct','u-ppm'], lock=false;\n  function fromGL(gl,skip){\n    var M=g('M');\n    var map={\n      'u-mol': M?gl\/M:null,\n      'u-gl': gl,\n      'u-mgl': gl*1000,\n      'u-pct': gl\/10,\n      'u-ppm': gl*1000\n    };\n    lock=true;\n    ids.forEach(function(id){if(id===skip)return;var v=map[id];$(id).value=(v===null||!isFinite(v))?'':Number(v.toPrecision(6));});\n    lock=false;\n  }\n  function onEdit(id){\n    if(lock)return; var v=parseFloat($(id).value); var M=g('M');\n    if(!isFinite(v)){return;}\n    var gl;\n    if(id==='u-mol'){if(!M){return;}gl=v*M;}\n    else if(id==='u-gl')gl=v;\n    else if(id==='u-mgl')gl=v\/1000;\n    else if(id==='u-pct')gl=v*10;\n    else gl=v\/1000; \/\/ ppm\n    fromGL(gl,id);\n  }\n  ids.forEach(function(id){$(id).addEventListener('input',function(){onEdit(id);});});\n  $('M').addEventListener('input',function(){var gl=g('u-gl');if(gl!==null)fromGL(gl,null);});\n})();\n<\/script>\n\n<!-- SOFT CTA \/ lead capture \u2014 wsp\u00f3lny dla narz\u0119dzi. Publish.py wstawia przed stopk\u0105. Marker: gk-cta-main -->\n<section class=\"cta gk-cta-main\">\n  <h2>Masz pr\u00f3bk\u0119, kt\u00f3rej nie chcesz zgadywa\u0107?<\/h2>\n  <p>Robimy badania feasibility nawet na najtrudniejszych pr\u00f3bkach \u2014 na Twoim materiale, u Ciebie. Zostaw kontakt, a przejdziemy przez Tw\u00f3j przypadek i powiemy wprost, czy Spectrally to zmierzy.<\/p>\n  <form class=\"gk-lf\" data-region=\"Narz\u0119dzia Ramana \u2014 feasibility\" data-ok=\"Dzi\u0119ki \u2014 odezwiemy si\u0119 w sprawie feasibility.\" novalidate>\n    <div class=\"gk-lf-grid\">\n      <input type=\"text\" name=\"name_full\" placeholder=\"Imi\u0119 i nazwisko\" autocomplete=\"name\">\n      <input type=\"text\" name=\"company\" placeholder=\"Nazwa firmy\" autocomplete=\"organization\">\n      <input type=\"email\" name=\"email\" placeholder=\"E-mail s\u0142u\u017cbowy\" required autocomplete=\"email\">\n    <\/div>\n    <input type=\"text\" name=\"company_hp\" class=\"hp\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\">\n    <label class=\"consent\"><input type=\"checkbox\" name=\"consent\" required>\n      <span>Zgadzam si\u0119 na kontakt e-mail w sprawie mojego zapytania. Dane przetwarza Gekko&nbsp;Photonics \u2014 <a href=\"\/polityka-prywatnosci\/\">polityka&nbsp;prywatno\u015bci<\/a>.<\/span><\/label>\n    <div class=\"row\"><button type=\"submit\" class=\"btn btn-primary\">Popro\u015b o feasibility<\/button><\/div>\n    <div class=\"msg\" role=\"status\" aria-live=\"polite\"><\/div>\n  <\/form>\n<\/section>\n\n<\/div>\n<script>\n\/* Gekko Photonics \u2014 narz\u0119dzia Ramana: wsp\u00f3lna obs\u0142uga lead\u00f3w.\n   Wstrzykiwany RAZ na stron\u0119 przez publish.py. Dzia\u0142a przez delegacj\u0119,\n   wi\u0119c \u0142apie te\u017c formularze dobudowane dynamicznie (odpowiedzi asystenta).\n   - przycisk [data-gk-toggle=\"ID\"] wysuwa\/chowa formularz o danym ID\n   - dowolny <form class=\"gk-lf\"> wysy\u0142a si\u0119 do endpointu RSVP           *\/\n(function(){\n  var EP='\/wp-json\/gekko\/v1\/rsvp';\n\n  \/\/ wysuwane formularze\n  document.addEventListener('click',function(e){\n    var t=e.target.closest('[data-gk-toggle]'); if(!t) return;\n    e.preventDefault();\n    var f=document.getElementById(t.getAttribute('data-gk-toggle')); if(!f) return;\n    var open=f.classList.toggle('open');\n    t.setAttribute('aria-expanded',open?'true':'false');\n    if(open){var i=f.querySelector('input:not([type=hidden]):not(.hp)'); if(i) setTimeout(function(){i.focus();},260);}\n  });\n\n  \/\/ wysy\u0142ka\n  document.addEventListener('submit',function(e){\n    var f=e.target.closest('form.gk-lf'); if(!f) return;\n    e.preventDefault();\n    if(f.company_hp && f.company_hp.value) return;                 \/\/ honeypot\n    var msg=f.querySelector('.msg');\n    var email=((f.email&&f.email.value)||'').trim();\n    var consent=f.consent?f.consent.checked:true;\n    function say(c,txt){ if(msg){msg.style.color=c; msg.textContent=txt;} }\n    if(!email||!consent){ say('#F3C969','Podaj e-mail i zaznacz zgod\u0119.'); return; }\n    var btn=f.querySelector('button[type=submit]')||f.querySelector('button');\n    if(btn) btn.disabled=true;\n    say('#667085','Wysy\u0142am\u2026');\n    var body={\n      email:email, response:'yes', consent:true, company_hp:'',\n      name:((f.name_full&&f.name_full.value)||'').trim(),\n      company:((f.company&&f.company.value)||'').trim(),\n      context:((f.context&&f.context.value)||''),\n      region:'tools',\n      region_label:f.getAttribute('data-region')||'Narz\u0119dzia Ramana',\n      page_url:location.href, page_title:document.title\n    };\n    fetch(EP,{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify(body)})\n      .then(function(r){return r.json().catch(function(){return {};});})\n      .then(function(){\n        say('#12B76A', f.getAttribute('data-ok')||'Dzi\u0119ki \u2014 odezwiemy si\u0119 do Ciebie.');\n        var keep=f.querySelector('.msg');\n        [].forEach.call(f.querySelectorAll('input:not(.hp), textarea'),function(el){\n          if(el.type==='checkbox'){el.checked=false;} else {el.value='';}\n        });\n      })\n      .catch(function(){ say('#F3C969','Co\u015b posz\u0142o nie tak. Napisz na kontakt@gekkophotonics.com'); })\n      .finally(function(){ if(btn) btn.disabled=false; });\n  });\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":2965,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2968","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/comments?post=2968"}],"version-history":[{"count":1,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2968\/revisions"}],"predecessor-version":[{"id":2974,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2968\/revisions\/2974"}],"up":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2965"}],"wp:attachment":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/media?parent=2968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}