{"id":934,"date":"2025-11-16T13:08:13","date_gmt":"2025-11-16T13:08:13","guid":{"rendered":"https:\/\/bangkokpeptides.com\/?page_id=934"},"modified":"2026-04-28T12:02:39","modified_gmt":"2026-04-28T12:02:39","slug":"peptide-calculator","status":"publish","type":"page","link":"https:\/\/bangkokpeptides.com\/th\/peptide-calculator\/","title":{"rendered":"\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e04\u0e33\u0e19\u0e27\u0e13\u0e40\u0e1b\u0e1b\u0e44\u0e17\u0e14\u0e4c"},"content":{"rendered":"\n<!-- ===========================================================\n     BANGKOK PEPTIDES \u2014 RECONSTITUTION CALCULATOR + FAQ\n     Single block, paste-ready for WordPress Custom HTML\n     =========================================================== -->\n\n<style>\n.bp-calc {\n  position: relative;\n  width: 100vw;\n  margin-left: calc(50% - 50vw);\n  background: linear-gradient(180deg, #faf7f0 0%, #f1ead8 100%);\n  padding: clamp(80px, 10vw, 140px) clamp(20px, 5vw, 80px);\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n  color: #1a1208;\n  -webkit-font-smoothing: antialiased;\n  overflow: hidden;\n}\n.bp-calc *,\n.bp-calc *::before,\n.bp-calc *::after { box-sizing: border-box; }\n\n.bp-calc::before {\n  content: '';\n  position: absolute;\n  top: -200px;\n  right: -200px;\n  width: 600px;\n  height: 600px;\n  background: radial-gradient(circle, rgba(212, 164, 41, 0.12) 0%, transparent 70%);\n  pointer-events: none;\n}\n.bp-calc::after {\n  content: '';\n  position: absolute;\n  bottom: -150px;\n  left: -150px;\n  width: 500px;\n  height: 500px;\n  background: radial-gradient(circle, rgba(184, 144, 31, 0.08) 0%, transparent 70%);\n  pointer-events: none;\n}\n\n.bp-calc__head {\n  max-width: 760px;\n  margin: 0 auto clamp(48px, 6vw, 72px);\n  text-align: center;\n  position: relative;\n  z-index: 2;\n}\n.bp-calc__eyebrow {\n  display: inline-flex;\n  align-items: center;\n  gap: 12px;\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.32em;\n  text-transform: uppercase;\n  color: #b8901f;\n  margin-bottom: 20px;\n}\n.bp-calc__eyebrow::before,\n.bp-calc__eyebrow::after {\n  content: '';\n  width: 28px;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, #d4a429, transparent);\n}\n.bp-calc__title {\n  font-family: 'Barlow', sans-serif;\n  font-size: clamp(36px, 5vw, 56px);\n  font-weight: 700;\n  letter-spacing: -0.025em;\n  line-height: 1;\n  margin: 0 0 16px;\n  color: #1a1208;\n}\n.bp-calc__title em {\n  font-style: italic;\n  font-weight: 300;\n  background: linear-gradient(135deg, #b8901f 0%, #d4a429 50%, #f0c860 100%);\n  -webkit-background-clip: text;\n  background-clip: text;\n  -webkit-text-fill-color: transparent;\n}\n.bp-calc__subtitle {\n  font-size: 17px;\n  font-weight: 300;\n  line-height: 1.6;\n  color: rgba(26, 18, 8, 0.6);\n  margin: 0;\n}\n\n.bp-calc__card {\n  max-width: 1100px;\n  margin: 0 auto;\n  background: #fff;\n  border-radius: 24px;\n  border: 1px solid rgba(212, 164, 41, 0.2);\n  box-shadow:\n    0 1px 2px rgba(26, 18, 8, 0.04),\n    0 8px 24px rgba(26, 18, 8, 0.04),\n    0 24px 56px rgba(26, 18, 8, 0.08),\n    0 48px 100px rgba(26, 18, 8, 0.06);\n  overflow: hidden;\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  position: relative;\n  z-index: 2;\n}\n\n.bp-calc__card::before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, #d4a429, #f0c860, #d4a429, transparent);\n  z-index: 5;\n}\n\n.bp-calc__inputs {\n  padding: clamp(32px, 4vw, 56px);\n  background: linear-gradient(180deg, #fffdf7 0%, #f9f3e3 100%);\n  border-right: 1px solid rgba(212, 164, 41, 0.2);\n  display: flex;\n  flex-direction: column;\n  gap: 24px;\n  position: relative;\n}\n\n.bp-calc__inputs::after {\n  content: '';\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  width: 1px;\n  background: linear-gradient(180deg, transparent, rgba(212, 164, 41, 0.4) 30%, rgba(212, 164, 41, 0.4) 70%, transparent);\n}\n\n.bp-calc__inputs-head {\n  margin-bottom: 0;\n  padding-bottom: 16px;\n  border-bottom: 1px solid rgba(212, 164, 41, 0.2);\n}\n.bp-calc__inputs-eyebrow {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.28em;\n  text-transform: uppercase;\n  color: #b8901f;\n  margin: 0 0 8px;\n}\n.bp-calc__inputs-title {\n  font-family: 'Barlow', sans-serif;\n  font-size: 22px;\n  font-weight: 700;\n  letter-spacing: -0.01em;\n  color: #1a1208;\n  margin: 0;\n}\n\n.bp-calc__field {\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n}\n\n.bp-calc__label {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.22em;\n  text-transform: uppercase;\n  color: #5c4a1f;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 8px;\n}\n\n.bp-calc__hint {\n  font-family: 'Inter', sans-serif;\n  font-size: 11px;\n  font-weight: 500;\n  color: rgba(184, 144, 31, 0.7);\n  letter-spacing: 0.02em;\n  text-transform: none;\n}\n\n.bp-calc__input-wrap {\n  position: relative;\n  display: flex;\n  align-items: stretch;\n  background: linear-gradient(180deg, #ffffff 0%, #fdf9ee 100%);\n  border: 1px solid rgba(212, 164, 41, 0.35);\n  border-radius: 12px;\n  overflow: hidden;\n  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,0.9),\n    inset 0 -1px 0 rgba(212, 164, 41, 0.1),\n    0 1px 2px rgba(26, 18, 8, 0.04);\n}\n\n.bp-calc__input-wrap:focus-within {\n  border-color: #d4a429;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,0.9),\n    0 0 0 4px rgba(212, 164, 41, 0.12),\n    0 2px 8px rgba(212, 164, 41, 0.15);\n  background: #ffffff;\n}\n\n.bp-calc__input {\n  flex: 1;\n  width: 100%;\n  border: none;\n  outline: none;\n  background: transparent;\n  padding: 16px 18px;\n  font-family: 'Barlow', sans-serif;\n  font-size: 18px;\n  font-weight: 600;\n  color: #1a1208;\n  letter-spacing: -0.01em;\n  -moz-appearance: textfield;\n  min-width: 0;\n}\n.bp-calc__input::-webkit-outer-spin-button,\n.bp-calc__input::-webkit-inner-spin-button {\n  -webkit-appearance: none;\n  margin: 0;\n}\n.bp-calc__input::placeholder {\n  color: rgba(184, 144, 31, 0.5);\n  font-weight: 500;\n}\n\n.bp-calc__unit {\n  display: flex;\n  align-items: center;\n  padding: 0 18px;\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 12px;\n  font-weight: 700;\n  letter-spacing: 0.18em;\n  text-transform: uppercase;\n  color: #1a1208;\n  background: linear-gradient(180deg, #f0c860 0%, #d4a429 50%, #b8901f 100%);\n  border-left: 1px solid rgba(184, 144, 31, 0.5);\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,0.5),\n    inset 0 -1px 0 rgba(0,0,0,0.08);\n  text-shadow: 0 1px 0 rgba(255,255,255,0.3);\n}\n\n.bp-calc__unit-toggle {\n  display: flex;\n  align-items: stretch;\n  background: linear-gradient(180deg, #f0c860 0%, #d4a429 50%, #b8901f 100%);\n  border-left: 1px solid rgba(184, 144, 31, 0.5);\n  padding: 4px;\n  gap: 2px;\n  flex-shrink: 0;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,0.5),\n    inset 0 -1px 0 rgba(0,0,0,0.08);\n}\n.bp-calc__unit-toggle button {\n  border: none;\n  background: transparent;\n  padding: 0 14px;\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 12px;\n  font-weight: 700;\n  letter-spacing: 0.16em;\n  text-transform: uppercase;\n  color: #1a1208;\n  cursor: pointer;\n  border-radius: 8px;\n  transition: all 0.2s ease;\n  min-width: 44px;\n  text-shadow: 0 1px 0 rgba(255,255,255,0.3);\n}\n.bp-calc__unit-toggle button:hover {\n  background: rgba(255, 255, 255, 0.15);\n}\n.bp-calc__unit-toggle button.active {\n  background: linear-gradient(145deg, #2a1d10, #1a1208);\n  color: #f0c860;\n  text-shadow: 0 1px 2px rgba(0,0,0,0.4);\n  box-shadow:\n    inset 0 1px 0 rgba(240, 200, 96, 0.2),\n    inset 0 -1px 0 rgba(0,0,0,0.3),\n    0 2px 6px rgba(0,0,0,0.3);\n}\n\n.bp-calc__syringe-grid {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 8px;\n}\n.bp-calc__syringe-btn {\n  background: linear-gradient(180deg, #ffffff 0%, #f9f3e3 100%);\n  border: 1px solid rgba(212, 164, 41, 0.35);\n  border-radius: 999px;\n  padding: 12px 12px;\n  font-family: 'Barlow', sans-serif;\n  font-size: 13px;\n  font-weight: 700;\n  color: #5c4a1f;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  text-align: center;\n  line-height: 1.3;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,0.9),\n    inset 0 -1px 0 rgba(212, 164, 41, 0.15),\n    0 1px 3px rgba(26, 18, 8, 0.05);\n  text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n.bp-calc__syringe-btn small {\n  display: block;\n  font-size: 10px;\n  font-weight: 500;\n  opacity: 0.6;\n  margin-top: 2px;\n}\n.bp-calc__syringe-btn:hover {\n  border-color: #d4a429;\n  color: #1a1208;\n  transform: translateY(-1px);\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,0.9),\n    0 4px 10px rgba(212, 164, 41, 0.15);\n}\n.bp-calc__syringe-btn.active {\n  background: linear-gradient(145deg, #2a1d10, #1a1208);\n  border-color: #1a1208;\n  color: #f0c860;\n  text-shadow: 0 1px 2px rgba(0,0,0,0.4);\n  box-shadow:\n    inset 0 1px 0 rgba(240, 200, 96, 0.25),\n    inset 0 -2px 0 rgba(184, 144, 31, 0.4),\n    0 4px 12px rgba(26, 18, 8, 0.35);\n}\n\n.bp-calc__steps {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 8px;\n  padding: 14px;\n  background: rgba(212, 164, 41, 0.06);\n  border: 1px solid rgba(212, 164, 41, 0.2);\n  border-radius: 12px;\n  margin-top: -4px;\n}\n.bp-calc__step {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n}\n.bp-calc__step-num {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 0.22em;\n  color: #b8901f;\n}\n.bp-calc__step-text {\n  font-size: 11px;\n  font-weight: 500;\n  line-height: 1.4;\n  color: rgba(26, 18, 8, 0.75);\n}\n\n.bp-calc__results {\n  padding: clamp(32px, 4vw, 56px);\n  background: linear-gradient(165deg, #0a0700 0%, #1a1208 50%, #2a1d10 100%);\n  color: #fff;\n  display: flex;\n  flex-direction: column;\n  gap: 24px;\n  position: relative;\n  overflow: hidden;\n}\n\n.bp-calc__results::before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, #d4a429, transparent);\n}\n\n.bp-calc__results::after {\n  content: '';\n  position: absolute;\n  top: -100px;\n  right: -100px;\n  width: 300px;\n  height: 300px;\n  background: radial-gradient(circle, rgba(212, 164, 41, 0.12) 0%, transparent 70%);\n  pointer-events: none;\n}\n\n.bp-calc__results-head {\n  position: relative;\n  z-index: 2;\n}\n.bp-calc__results-eyebrow {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.28em;\n  text-transform: uppercase;\n  color: #d4a429;\n  margin: 0 0 8px;\n}\n.bp-calc__results-title {\n  font-family: 'Barlow', sans-serif;\n  font-size: 22px;\n  font-weight: 700;\n  letter-spacing: -0.01em;\n  color: #fff;\n  margin: 0;\n}\n\n.bp-calc__syringe {\n  position: relative;\n  z-index: 2;\n  background: rgba(212, 164, 41, 0.04);\n  border: 1px solid rgba(212, 164, 41, 0.2);\n  border-radius: 16px;\n  padding: 28px 24px 24px;\n  overflow: hidden;\n}\n.bp-calc__syringe::before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 24px;\n  right: 24px;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, rgba(212, 164, 41, 0.5), transparent);\n}\n\n.bp-calc__syringe-svg {\n  width: 100%;\n  height: auto;\n  display: block;\n  margin-bottom: 18px;\n}\n\n.bp-calc__hero-label {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.22em;\n  text-transform: uppercase;\n  color: rgba(212, 164, 41, 0.85);\n  margin: 0 0 10px;\n}\n.bp-calc__hero-value {\n  font-family: 'Barlow', sans-serif;\n  font-size: clamp(48px, 6vw, 72px);\n  font-weight: 800;\n  letter-spacing: -0.035em;\n  line-height: 0.95;\n  background: linear-gradient(135deg, #f0c860 0%, #d4a429 50%, #b8901f 100%);\n  -webkit-background-clip: text;\n  background-clip: text;\n  -webkit-text-fill-color: transparent;\n  margin: 0;\n  display: inline-block;\n}\n.bp-calc__hero-unit {\n  font-family: 'Barlow', sans-serif;\n  font-size: 18px;\n  font-weight: 600;\n  color: rgba(212, 164, 41, 0.7);\n  margin-left: 8px;\n  letter-spacing: 0;\n}\n.bp-calc__hero-context {\n  margin-top: 12px;\n  font-size: 13px;\n  font-weight: 400;\n  line-height: 1.5;\n  color: rgba(255,255,255,0.65);\n}\n.bp-calc__hero-context strong {\n  color: #f0c860;\n  font-weight: 600;\n}\n\n.bp-calc__warning {\n  display: none;\n  margin-top: 12px;\n  padding: 10px 14px;\n  background: rgba(220, 38, 38, 0.12);\n  border: 1px solid rgba(248, 113, 113, 0.4);\n  border-radius: 8px;\n  font-size: 12px;\n  font-weight: 500;\n  line-height: 1.5;\n  color: #fca5a5;\n}\n.bp-calc__warning.show { display: block; }\n.bp-calc__warning::before {\n  content: '\u26a0 ';\n  font-weight: 700;\n}\n\n.bp-calc__grid {\n  display: grid;\n  grid-template-columns: repeat(2, 1fr);\n  gap: 12px;\n  position: relative;\n  z-index: 2;\n}\n.bp-calc__metric {\n  background: rgba(212, 164, 41, 0.04);\n  border: 1px solid rgba(212, 164, 41, 0.15);\n  border-radius: 12px;\n  padding: 16px 18px;\n}\n.bp-calc__metric-label {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 0.22em;\n  text-transform: uppercase;\n  color: rgba(212, 164, 41, 0.75);\n  margin: 0 0 6px;\n}\n.bp-calc__metric-value {\n  font-family: 'Barlow', sans-serif;\n  font-size: 22px;\n  font-weight: 700;\n  letter-spacing: -0.015em;\n  color: #fff;\n  margin: 0;\n}\n.bp-calc__metric-value small {\n  font-size: 12px;\n  font-weight: 500;\n  color: rgba(212, 164, 41, 0.6);\n  margin-left: 4px;\n}\n\n.bp-calc__notice {\n  font-size: 12px;\n  line-height: 1.6;\n  color: rgba(212, 164, 41, 0.55);\n  padding-top: 8px;\n  border-top: 1px solid rgba(212, 164, 41, 0.15);\n  position: relative;\n  z-index: 2;\n}\n.bp-calc__notice strong {\n  color: rgba(255,255,255,0.85);\n  font-weight: 600;\n}\n\n.bp-calc__foot {\n  max-width: 1100px;\n  margin: clamp(20px, 3vw, 32px) auto 0;\n  text-align: center;\n  position: relative;\n  z-index: 2;\n  font-size: 13px;\n  color: rgba(26, 18, 8, 0.6);\n  line-height: 1.6;\n}\n.bp-calc__foot strong {\n  color: #b8901f;\n  font-weight: 600;\n}\n\n.bp-calc__faq {\n  max-width: 1100px;\n  margin: clamp(40px, 5vw, 56px) auto 0;\n  position: relative;\n  z-index: 2;\n}\n\n.bp-calc__faq-head {\n  text-align: center;\n  margin-bottom: 24px;\n}\n.bp-calc__faq-eyebrow {\n  display: inline-flex;\n  align-items: center;\n  gap: 12px;\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.32em;\n  text-transform: uppercase;\n  color: #b8901f;\n  margin-bottom: 12px;\n}\n.bp-calc__faq-eyebrow::before,\n.bp-calc__faq-eyebrow::after {\n  content: '';\n  width: 24px;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, #d4a429, transparent);\n}\n.bp-calc__faq-title {\n  font-family: 'Barlow', sans-serif;\n  font-size: clamp(22px, 3vw, 30px);\n  font-weight: 700;\n  letter-spacing: -0.02em;\n  color: #1a1208;\n  margin: 0;\n}\n\n.bp-calc__faq-list {\n  background: #fff;\n  border: 1px solid rgba(212, 164, 41, 0.2);\n  border-radius: 20px;\n  overflow: hidden;\n  box-shadow: 0 12px 32px rgba(26, 18, 8, 0.06);\n}\n\n.bp-calc__faq-item {\n  border-bottom: 1px solid rgba(212, 164, 41, 0.15);\n  background: transparent;\n  transition: background 0.25s ease;\n}\n.bp-calc__faq-item:last-child {\n  border-bottom: none;\n}\n.bp-calc__faq-item[open] {\n  background: rgba(212, 164, 41, 0.04);\n}\n.bp-calc__faq-item summary {\n  padding: 18px 56px 18px 24px;\n  cursor: pointer;\n  list-style: none;\n  position: relative;\n  font-family: 'Barlow', sans-serif;\n  font-size: 16px;\n  font-weight: 600;\n  letter-spacing: -0.005em;\n  line-height: 1.4;\n  color: #1a1208;\n  transition: color 0.2s ease;\n}\n.bp-calc__faq-item summary::-webkit-details-marker {\n  display: none;\n}\n.bp-calc__faq-item summary:hover {\n  color: #b8901f;\n}\n.bp-calc__faq-item summary::after {\n  content: '+';\n  position: absolute;\n  right: 20px;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 28px;\n  height: 28px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 50%;\n  background: linear-gradient(135deg, #fdf9ee, #f0e4c4);\n  border: 1px solid rgba(212, 164, 41, 0.3);\n  color: #b8901f;\n  font-size: 16px;\n  font-weight: 400;\n  transition: all 0.3s ease;\n}\n.bp-calc__faq-item[open] summary::after {\n  content: '\u00d7';\n  background: linear-gradient(135deg, #2a1d10, #1a1208);\n  border-color: #1a1208;\n  color: #f0c860;\n  font-size: 18px;\n}\n.bp-calc__faq-answer {\n  padding: 0 24px 20px 24px;\n  font-size: 14px;\n  line-height: 1.65;\n  color: rgba(26, 18, 8, 0.75);\n}\n.bp-calc__faq-answer p {\n  margin: 0 0 0.75em;\n}\n.bp-calc__faq-answer p:last-child {\n  margin-bottom: 0;\n}\n.bp-calc__faq-answer strong {\n  color: #1a1208;\n  font-weight: 600;\n}\n\n.bp-calc__disclaimer {\n  max-width: 1100px;\n  margin: clamp(32px, 4vw, 48px) auto 0;\n  text-align: center;\n  font-size: 12px;\n  color: rgba(26, 18, 8, 0.5);\n  line-height: 1.6;\n  position: relative;\n  z-index: 2;\n}\n.bp-calc__disclaimer strong {\n  color: #b8901f;\n  font-weight: 700;\n}\n\n@media (max-width: 880px) {\n  .bp-calc__card {\n    grid-template-columns: 1fr;\n  }\n  .bp-calc__inputs {\n    border-right: none;\n    border-bottom: 1px solid rgba(212, 164, 41, 0.2);\n  }\n  .bp-calc__inputs::after { display: none; }\n}\n\n@media (max-width: 600px) {\n  .bp-calc__hero-value {\n    font-size: clamp(40px, 11vw, 56px);\n  }\n  .bp-calc__grid {\n    grid-template-columns: 1fr;\n  }\n  .bp-calc__unit-toggle button {\n    padding: 0 10px;\n    min-width: 40px;\n    font-size: 11px;\n  }\n  .bp-calc__steps {\n    grid-template-columns: 1fr;\n    gap: 10px;\n  }\n  .bp-calc__faq-item summary {\n    font-size: 15px;\n    padding: 16px 48px 16px 20px;\n  }\n  .bp-calc__faq-answer {\n    padding: 0 20px 18px 20px;\n  }\n}\n<\/style>\n\n<section class=\"bp-calc\">\n\n  <div class=\"bp-calc__head\">\n    <p class=\"bp-calc__eyebrow\">Reconstitution Calculator<\/p>\n    <h2 class=\"bp-calc__title\">Get the dose <em>right.<\/em><\/h2>\n    <p class=\"bp-calc__subtitle\">A precision calculator for laboratory peptide reconstitution. Enter your vial details and target research dose \u2014 we&#8217;ll show you exactly where to fill the syringe.<\/p>\n  <\/div>\n\n  <div class=\"bp-calc__card\">\n\n    <div class=\"bp-calc__inputs\">\n\n      <div class=\"bp-calc__inputs-head\">\n        <p class=\"bp-calc__inputs-eyebrow\">\u2014 Step 01<\/p>\n        <h3 class=\"bp-calc__inputs-title\">Vial &amp; dose details<\/h3>\n      <\/div>\n\n      <div class=\"bp-calc__steps\">\n        <div class=\"bp-calc__step\">\n          <span class=\"bp-calc__step-num\">01 \u2014<\/span>\n          <span class=\"bp-calc__step-text\">Enter vial strength &amp; water volume<\/span>\n        <\/div>\n        <div class=\"bp-calc__step\">\n          <span class=\"bp-calc__step-num\">02 \u2014<\/span>\n          <span class=\"bp-calc__step-text\">Set your target dose in mcg or mg<\/span>\n        <\/div>\n        <div class=\"bp-calc__step\">\n          <span class=\"bp-calc__step-num\">03 \u2014<\/span>\n          <span class=\"bp-calc__step-text\">Read the syringe draw value<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"bp-calc__field\">\n        <label class=\"bp-calc__label\" for=\"bp-vial-mg\">\n          Peptide in vial\n          <span class=\"bp-calc__hint\">total mg per vial<\/span>\n        <\/label>\n        <div class=\"bp-calc__input-wrap\">\n          <input id=\"bp-vial-mg\" type=\"number\" class=\"bp-calc__input\" value=\"10\" min=\"0.1\" step=\"0.1\">\n          <span class=\"bp-calc__unit\">mg<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"bp-calc__field\">\n        <label class=\"bp-calc__label\" for=\"bp-bac-water\">\n          Bacteriostatic water added\n          <span class=\"bp-calc__hint\">total reconstitution volume<\/span>\n        <\/label>\n        <div class=\"bp-calc__input-wrap\">\n          <input id=\"bp-bac-water\" type=\"number\" class=\"bp-calc__input\" value=\"2\" min=\"0.1\" step=\"0.1\">\n          <span class=\"bp-calc__unit\">ml<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"bp-calc__field\">\n        <label class=\"bp-calc__label\" for=\"bp-target-dose\">\n          Target research dose\n          <span class=\"bp-calc__hint\">per administration<\/span>\n        <\/label>\n        <div class=\"bp-calc__input-wrap\">\n          <input id=\"bp-target-dose\" type=\"number\" class=\"bp-calc__input\" value=\"250\" min=\"0.1\" step=\"1\">\n          <div class=\"bp-calc__unit-toggle\">\n            <button type=\"button\" class=\"active\" data-dose-unit=\"mcg\">mcg<\/button>\n            <button type=\"button\" data-dose-unit=\"mg\">mg<\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"bp-calc__field\">\n        <label class=\"bp-calc__label\">\n          Syringe size\n          <span class=\"bp-calc__hint\">insulin syringe<\/span>\n        <\/label>\n        <div class=\"bp-calc__syringe-grid\">\n          <button type=\"button\" class=\"bp-calc__syringe-btn\" data-syringe=\"0.3\">0.3 ml<small>30u<\/small><\/button>\n          <button type=\"button\" class=\"bp-calc__syringe-btn active\" data-syringe=\"0.5\">0.5 ml<small>50u<\/small><\/button>\n          <button type=\"button\" class=\"bp-calc__syringe-btn\" data-syringe=\"1\">1 ml<small>100u<\/small><\/button>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n    <div class=\"bp-calc__results\">\n\n      <div class=\"bp-calc__results-head\">\n        <p class=\"bp-calc__results-eyebrow\">\u2014 Result<\/p>\n        <h3 class=\"bp-calc__results-title\">Volume to draw<\/h3>\n      <\/div>\n\n      <div class=\"bp-calc__syringe\">\n        <svg class=\"bp-calc__syringe-svg\" viewBox=\"0 0 600 110\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" preserveAspectRatio=\"xMidYMid meet\">\n          <defs>\n            <linearGradient id=\"bpFluidGrad\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n              <stop offset=\"0%\" stop-color=\"#f0c860\" stop-opacity=\"0.95\"\/>\n              <stop offset=\"40%\" stop-color=\"#d4a429\" stop-opacity=\"0.9\"\/>\n              <stop offset=\"100%\" stop-color=\"#b8901f\" stop-opacity=\"0.85\"\/>\n            <\/linearGradient>\n            <linearGradient id=\"bpBarrelGrad\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n              <stop offset=\"0%\" stop-color=\"rgba(255,255,255,0.04)\"\/>\n              <stop offset=\"50%\" stop-color=\"rgba(255,255,255,0.02)\"\/>\n              <stop offset=\"100%\" stop-color=\"rgba(255,255,255,0.06)\"\/>\n            <\/linearGradient>\n            <linearGradient id=\"bpPlungerGrad\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n              <stop offset=\"0%\" stop-color=\"#1a1208\"\/>\n              <stop offset=\"50%\" stop-color=\"#2a1d10\"\/>\n              <stop offset=\"100%\" stop-color=\"#0a0700\"\/>\n            <\/linearGradient>\n            <linearGradient id=\"bpMetalGrad\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n              <stop offset=\"0%\" stop-color=\"#f0c860\"\/>\n              <stop offset=\"50%\" stop-color=\"#d4a429\"\/>\n              <stop offset=\"100%\" stop-color=\"#8c6d18\"\/>\n            <\/linearGradient>\n          <\/defs>\n\n          <rect x=\"10\" y=\"51\" width=\"55\" height=\"8\" rx=\"1\" fill=\"url(#bpMetalGrad)\"\/>\n          <polygon points=\"0,55 10,51 10,59\" fill=\"#b8901f\"\/>\n\n          <rect x=\"62\" y=\"46\" width=\"18\" height=\"18\" rx=\"2\" fill=\"url(#bpMetalGrad)\" stroke=\"rgba(0,0,0,0.3)\" stroke-width=\"0.5\"\/>\n\n          <rect id=\"bp-barrel\" x=\"80\" y=\"38\" width=\"440\" height=\"34\" rx=\"3\" fill=\"url(#bpBarrelGrad)\" stroke=\"rgba(212, 164, 41, 0.5)\" stroke-width=\"1.5\"\/>\n\n          <rect id=\"bp-fluid\" x=\"82\" y=\"40\" width=\"0\" height=\"30\" rx=\"1\" fill=\"url(#bpFluidGrad)\"\/>\n\n          <g id=\"bp-ticks\"><\/g>\n\n          <rect id=\"bp-plunger-rod\" x=\"0\" y=\"48\" width=\"0\" height=\"14\" fill=\"url(#bpPlungerGrad)\" rx=\"1\"\/>\n\n          <rect id=\"bp-plunger-head\" x=\"0\" y=\"40\" width=\"6\" height=\"30\" fill=\"url(#bpPlungerGrad)\" rx=\"1\"\/>\n\n          <rect x=\"520\" y=\"30\" width=\"6\" height=\"50\" rx=\"2\" fill=\"url(#bpMetalGrad)\" stroke=\"rgba(0,0,0,0.3)\" stroke-width=\"0.5\"\/>\n          <rect x=\"526\" y=\"20\" width=\"14\" height=\"70\" rx=\"3\" fill=\"url(#bpMetalGrad)\" stroke=\"rgba(0,0,0,0.3)\" stroke-width=\"0.5\"\/>\n\n          <g id=\"bp-fill-marker\" opacity=\"0\">\n            <line id=\"bp-marker-line\" x1=\"0\" y1=\"34\" x2=\"0\" y2=\"78\" stroke=\"#f0c860\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n            <polygon id=\"bp-marker-arrow\" points=\"0,28 -5,20 5,20\" fill=\"#f0c860\"\/>\n          <\/g>\n        <\/svg>\n\n        <p class=\"bp-calc__hero-label\">Draw to this mark<\/p>\n        <div>\n          <span class=\"bp-calc__hero-value\" id=\"bp-result-units\">25<\/span><span class=\"bp-calc__hero-unit\" id=\"bp-result-units-label\">units<\/span>\n        <\/div>\n        <p class=\"bp-calc__hero-context\">\n          On a <strong id=\"bp-result-syringe\">0.5 ml (50-unit)<\/strong> insulin syringe \u2014 fill to the <strong id=\"bp-result-mark\">25-unit<\/strong> line.\n        <\/p>\n\n        <div class=\"bp-calc__warning\" id=\"bp-warning\">\n          Calculated draw exceeds the selected syringe capacity. Use a larger syringe or split the dose across multiple draws.\n        <\/div>\n      <\/div>\n\n      <div class=\"bp-calc__grid\">\n        <div class=\"bp-calc__metric\">\n          <p class=\"bp-calc__metric-label\">Volume<\/p>\n          <p class=\"bp-calc__metric-value\" id=\"bp-result-ml\">0.05<small>ml<\/small><\/p>\n        <\/div>\n        <div class=\"bp-calc__metric\">\n          <p class=\"bp-calc__metric-label\">Concentration<\/p>\n          <p class=\"bp-calc__metric-value\" id=\"bp-result-conc\">5<small>mg\/ml<\/small><\/p>\n        <\/div>\n        <div class=\"bp-calc__metric\">\n          <p class=\"bp-calc__metric-label\">Doses per vial<\/p>\n          <p class=\"bp-calc__metric-value\" id=\"bp-result-doses\">40<\/p>\n        <\/div>\n        <div class=\"bp-calc__metric\">\n          <p class=\"bp-calc__metric-label\">Mcg per unit<\/p>\n          <p class=\"bp-calc__metric-value\" id=\"bp-result-mcg-unit\">100<small>mcg<\/small><\/p>\n        <\/div>\n      <\/div>\n\n      <p class=\"bp-calc__notice\">\n        <strong>For laboratory research use only.<\/strong> This calculator is provided as a convenience for qualified researchers conducting in-vitro work. Always verify calculations independently and consult appropriate technical documentation.\n      <\/p>\n\n    <\/div>\n\n  <\/div>\n\n  <p class=\"bp-calc__foot\">\n    Calculations are based on the formula: <strong>(target dose \u00d7 reconstitution volume) \u00f7 vial mg = volume to draw<\/strong>. Insulin syringe units assume 100 units = 1 ml.\n  <\/p>\n\n  <div class=\"bp-calc__faq\">\n    <div class=\"bp-calc__faq-head\">\n      <span class=\"bp-calc__faq-eyebrow\">Common Questions<\/span>\n      <h3 class=\"bp-calc__faq-title\">Need a hand?<\/h3>\n    <\/div>\n\n    <div class=\"bp-calc__faq-list\">\n      <details class=\"bp-calc__faq-item\">\n        <summary>Does this work for any lyophilised peptide?<\/summary>\n        <div class=\"bp-calc__faq-answer\">\n          <p>Yes \u2014 the maths is the same for any vial. What changes is your chosen reconstitution volume and target dose. As long as you know the mg in the vial and how much bacteriostatic water you&#8217;ve added, the calculator will work.<\/p>\n          <p><strong>Tip:<\/strong> stick to one reconstitution style for a product so your results stay consistent across draws.<\/p>\n        <\/div>\n      <\/details>\n\n      <details class=\"bp-calc__faq-item\">\n        <summary>Why do my results change when I use 1ml vs 2ml of bac water?<\/summary>\n        <div class=\"bp-calc__faq-answer\">\n          <p>More water means a more diluted solution, so the volume you&#8217;ll need to draw for the same target dose increases. The calculator updates automatically when you change the reconstitution volume \u2014 useful for testing different concentrations before committing.<\/p>\n        <\/div>\n      <\/details>\n\n      <details class=\"bp-calc__faq-item\">\n        <summary>What&#8217;s the difference between mcg and mg?<\/summary>\n        <div class=\"bp-calc__faq-answer\">\n          <p><strong>1 mg = 1,000 mcg.<\/strong> Most peptide research doses are quoted in micrograms (mcg) because the amounts are small. Use the toggle next to the dose input to switch between units \u2014 the result updates instantly.<\/p>\n        <\/div>\n      <\/details>\n\n      <details class=\"bp-calc__faq-item\">\n        <summary>What should I do if my calculated draw exceeds the syringe size?<\/summary>\n        <div class=\"bp-calc__faq-answer\">\n          <p>The calculator will show a warning and the fluid in the visual will turn red. You have two options: switch to a larger syringe size using the buttons above, or split the dose across multiple draws. Reconstituting with more water also reduces the draw volume.<\/p>\n        <\/div>\n      <\/details>\n\n      <details class=\"bp-calc__faq-item\">\n        <summary>Is this calculator suitable for human use?<\/summary>\n        <div class=\"bp-calc__faq-answer\">\n          <p>No. All products supplied by Bangkok Peptides are sold strictly for in-vitro laboratory research purposes only. This calculator is a reference tool for qualified researchers conducting in-vitro work. It is not intended to support human or veterinary use.<\/p>\n        <\/div>\n      <\/details>\n\n      <details class=\"bp-calc__faq-item\">\n        <summary>How accurate is this calculator?<\/summary>\n        <div class=\"bp-calc__faq-answer\">\n          <p>The maths is precise to the values you enter. Real-world accuracy depends on the precision of your reconstitution (how exactly you measure the bac water) and your syringe \u2014 insulin syringes typically have a tolerance of \u00b15%. Always verify calculations independently.<\/p>\n        <\/div>\n      <\/details>\n    <\/div>\n  <\/div>\n\n  <p class=\"bp-calc__disclaimer\">\n    <strong>Research use only.<\/strong> All information and products are provided strictly for in-vitro laboratory research purposes.\n  <\/p>\n\n<\/section>\n\n<script>\n(function() {\n  var vialMg = document.getElementById('bp-vial-mg');\n  var bacWater = document.getElementById('bp-bac-water');\n  var targetDose = document.getElementById('bp-target-dose');\n  var doseUnitBtns = document.querySelectorAll('[data-dose-unit]');\n  var syringeBtns = document.querySelectorAll('[data-syringe]');\n\n  var resultUnits = document.getElementById('bp-result-units');\n  var resultUnitsLabel = document.getElementById('bp-result-units-label');\n  var resultSyringe = document.getElementById('bp-result-syringe');\n  var resultMark = document.getElementById('bp-result-mark');\n  var resultMl = document.getElementById('bp-result-ml');\n  var resultConc = document.getElementById('bp-result-conc');\n  var resultDoses = document.getElementById('bp-result-doses');\n  var resultMcgUnit = document.getElementById('bp-result-mcg-unit');\n  var warning = document.getElementById('bp-warning');\n\n  var svgFluid = document.getElementById('bp-fluid');\n  var svgTicks = document.getElementById('bp-ticks');\n  var svgPlungerRod = document.getElementById('bp-plunger-rod');\n  var svgPlungerHead = document.getElementById('bp-plunger-head');\n  var svgFillMarker = document.getElementById('bp-fill-marker');\n  var svgMarkerLine = document.getElementById('bp-marker-line');\n  var svgMarkerArrow = document.getElementById('bp-marker-arrow');\n\n  var BARREL_X = 82;\n  var BARREL_WIDTH = 438;\n\n  var currentSyringe = 0.5;\n  var currentDoseUnit = 'mcg';\n\n  function fmt(n, dp) {\n    if (!isFinite(n) || isNaN(n)) return '\u2014';\n    if (dp === undefined) dp = 2;\n    var rounded = Math.round(n * Math.pow(10, dp)) \/ Math.pow(10, dp);\n    return rounded.toString();\n  }\n\n  function drawTicks(syringeMl) {\n    var totalUnits = syringeMl * 100;\n    var tickInterval = 5;\n    var majorInterval = 10;\n    var ticks = '';\n\n    for (var u = 0; u <= totalUnits; u += tickInterval) {\n      var x = BARREL_X + (u \/ totalUnits) * BARREL_WIDTH;\n      var isMajor = u % majorInterval === 0;\n      var tickHeight = isMajor ? 8 : 5;\n      var tickColor = isMajor ? 'rgba(212, 164, 41, 0.7)' : 'rgba(212, 164, 41, 0.35)';\n      var tickWidth = isMajor ? 1 : 0.7;\n\n      ticks += '<line x1=\"' + x + '\" y1=\"38\" x2=\"' + x + '\" y2=\"' + (38 + tickHeight) + '\" stroke=\"' + tickColor + '\" stroke-width=\"' + tickWidth + '\"\/>';\n      ticks += '<line x1=\"' + x + '\" y1=\"' + (72 - tickHeight) + '\" x2=\"' + x + '\" y2=\"72\" stroke=\"' + tickColor + '\" stroke-width=\"' + tickWidth + '\"\/>';\n\n      if (isMajor && u > 0 && u % 10 === 0) {\n        var labelInterval = totalUnits >= 100 ? 20 : 10;\n        if (u % labelInterval === 0) {\n          ticks += '<text x=\"' + x + '\" y=\"86\" text-anchor=\"middle\" fill=\"rgba(212, 164, 41, 0.65)\" font-family=\"Barlow, sans-serif\" font-size=\"9\" font-weight=\"600\">' + u + '<\/text>';\n        }\n      }\n    }\n\n    svgTicks.innerHTML = ticks;\n  }\n\n  function calculate() {\n    var mg = parseFloat(vialMg.value) || 0;\n    var ml = parseFloat(bacWater.value) || 0;\n    var dose = parseFloat(targetDose.value) || 0;\n\n    drawTicks(currentSyringe);\n\n    if (mg <= 0 || ml <= 0 || dose <= 0) {\n      resultUnits.textContent = '\u2014';\n      resultUnitsLabel.textContent = '';\n      resultMl.innerHTML = '\u2014';\n      resultConc.innerHTML = '\u2014';\n      resultDoses.innerHTML = '\u2014';\n      resultMcgUnit.innerHTML = '\u2014';\n      svgFluid.setAttribute('width', 0);\n      svgPlungerRod.setAttribute('width', 0);\n      svgPlungerHead.setAttribute('x', BARREL_X);\n      svgFillMarker.setAttribute('opacity', 0);\n      warning.classList.remove('show');\n      return;\n    }\n\n    var doseMg = currentDoseUnit === 'mcg' ? dose \/ 1000 : dose;\n    var concentration = mg \/ ml;\n    var drawMl = doseMg \/ concentration;\n    var drawUnits = drawMl * 100;\n    var doses = mg \/ doseMg;\n    var mcgPerUnit = (concentration * 1000) \/ 100;\n\n    resultUnits.textContent = fmt(drawUnits, 1);\n    resultUnitsLabel.textContent = ' units';\n\n    var syringeLabel;\n    if (currentSyringe === 0.3) syringeLabel = '0.3 ml (30-unit)';\n    else if (currentSyringe === 0.5) syringeLabel = '0.5 ml (50-unit)';\n    else syringeLabel = '1 ml (100-unit)';\n    resultSyringe.textContent = syringeLabel;\n    resultMark.textContent = fmt(drawUnits, 1) + '-unit';\n\n    resultMl.innerHTML = fmt(drawMl, 3) + '<small>ml<\/small>';\n    resultConc.innerHTML = fmt(concentration, 2) + '<small>mg\/ml<\/small>';\n    resultDoses.textContent = Math.floor(doses);\n    resultMcgUnit.innerHTML = fmt(mcgPerUnit, 1) + '<small>mcg<\/small>';\n\n    var maxUnits = currentSyringe * 100;\n    var fillRatio = Math.min(drawUnits \/ maxUnits, 1);\n    var fluidWidth = fillRatio * BARREL_WIDTH;\n\n    svgFluid.setAttribute('width', fluidWidth);\n\n    var plungerHeadX = BARREL_X + fluidWidth;\n    svgPlungerHead.setAttribute('x', plungerHeadX);\n\n    var rodStart = plungerHeadX + 6;\n    var rodEnd = 526;\n    var rodWidth = Math.max(0, rodEnd - rodStart);\n    svgPlungerRod.setAttribute('x', rodStart);\n    svgPlungerRod.setAttribute('width', rodWidth);\n\n    if (drawUnits > 0 && drawUnits <= maxUnits) {\n      svgMarkerLine.setAttribute('x1', plungerHeadX);\n      svgMarkerLine.setAttribute('x2', plungerHeadX);\n      svgMarkerArrow.setAttribute('points',\n        plungerHeadX + ',28 ' + (plungerHeadX - 5) + ',20 ' + (plungerHeadX + 5) + ',20');\n      svgFillMarker.setAttribute('opacity', 1);\n    } else {\n      svgFillMarker.setAttribute('opacity', 0);\n    }\n\n    if (drawUnits > maxUnits) {\n      warning.classList.add('show');\n      svgFluid.setAttribute('fill', 'rgba(248, 113, 113, 0.7)');\n    } else {\n      warning.classList.remove('show');\n      svgFluid.setAttribute('fill', 'url(#bpFluidGrad)');\n    }\n  }\n\n  [vialMg, bacWater, targetDose].forEach(function(el) {\n    el.addEventListener('input', calculate);\n    el.addEventListener('change', calculate);\n  });\n\n  doseUnitBtns.forEach(function(btn) {\n    btn.addEventListener('click', function() {\n      doseUnitBtns.forEach(function(b) { b.classList.remove('active'); });\n      btn.classList.add('active');\n      currentDoseUnit = btn.getAttribute('data-dose-unit');\n      calculate();\n    });\n  });\n\n  syringeBtns.forEach(function(btn) {\n    btn.addEventListener('click', function() {\n      syringeBtns.forEach(function(b) { b.classList.remove('active'); });\n      btn.classList.add('active');\n      currentSyringe = parseFloat(btn.getAttribute('data-syringe'));\n      calculate();\n    });\n  });\n\n  calculate();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Reconstitution Calculator Get the dose right. A precision calculator for laboratory peptide reconstitution. Enter your vial details and target research dose \u2014 we&#8217;ll show you exactly where to fill the syringe. \u2014 Step 01 Vial &amp; dose details 01 \u2014 Enter vial strength &amp; water volume 02 \u2014 Set your target dose in mcg or [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-934","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/bangkokpeptides.com\/th\/wp-json\/wp\/v2\/pages\/934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bangkokpeptides.com\/th\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bangkokpeptides.com\/th\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bangkokpeptides.com\/th\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bangkokpeptides.com\/th\/wp-json\/wp\/v2\/comments?post=934"}],"version-history":[{"count":26,"href":"https:\/\/bangkokpeptides.com\/th\/wp-json\/wp\/v2\/pages\/934\/revisions"}],"predecessor-version":[{"id":4656,"href":"https:\/\/bangkokpeptides.com\/th\/wp-json\/wp\/v2\/pages\/934\/revisions\/4656"}],"wp:attachment":[{"href":"https:\/\/bangkokpeptides.com\/th\/wp-json\/wp\/v2\/media?parent=934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}