{"product_id":"the-nbh-heavyweight-t-shirt™","title":"The NBH Heavyweight T-Shirt™","description":"\n\u003cstyle\u003e\n:root {\n  --bg: #f5f5f7;\n  --card: #ffffff;\n  --text: #1d1d1f;\n  --text2: #3a3a3c;\n  --muted: #6e6e73;\n  --accent: #b00000;\n  --radius: 14px;\n}\n\n\/* PAGE *\/\n.pdp-wrap {\n  max-width: 920px;\n  margin: 24px auto;\n  padding: 28px 18px;\n\n  font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Display\", sans-serif;\n\n  background: #ffffff;\n  color: #1d1d1f;\n\n  border-radius: 6px;\n\n  box-shadow: 0 12px 40px rgba(0,0,0,0.08);\n\n  border: 1px solid rgba(0,0,0,0.06);\n}\n\n\/* TYPOGRAPHY *\/\n.title {\n  font-size: 22px;\n  font-weight: 600;\n  margin-bottom: 14px;\n}\n\n.subtitle {\n  font-size: 14px;\n  color: var(--text2);\n  line-height: 1.6;\n}\n\n.small-muted {\n  font-size: 12px;\n  color: var(--muted);\n  line-height: 1.5;\n}\n\n\/* SECTIONS *\/\n.section {\n  margin-top: 22px;\n}\n\n.divider {\n  height: 1px;\n  background: rgba(0,0,0,0.08);\n  margin: 22px 0;\n}\n\n\/* GROUP BUY INFO *\/\n.buy-info {\n  display: grid;\n  grid-template-columns: repeat(2, 1fr);\n  gap: 12px;\n  margin-top: 18px;\n}\n\n.buy-info-card {\n  background: var(--bg);\n  border-radius: 10px;\n  padding: 14px 16px;\n}\n\n.buy-info-label {\n  font-size: 11px;\n  text-transform: uppercase;\n  letter-spacing: 0.06em;\n  color: var(--muted);\n  margin-bottom: 4px;\n}\n\n.buy-info-value {\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--text);\n}\n\n\/* SPECS *\/\n.specs {\n  font-size: 14px;\n  color: var(--text2);\n  line-height: 1.7;\n}\n\n.specs strong {\n  color: var(--text);\n}\n\n\/* SIZE CHART *\/\n.size-chart {\n  margin-top: 14px;\n}\n\n.size-chart img {\n  display: block;\n  width: 100%;\n  max-width: 820px;\n  height: auto;\n  margin: 0 auto;\n  border-radius: 10px;\n  border: 1px solid rgba(0,0,0,0.08);\n}\n\n.size-chart-note {\n  margin-top: 10px;\n  font-size: 12px;\n  color: var(--muted);\n  line-height: 1.5;\n}\n\n\/* INCLUDED *\/\n.includes {\n  background: var(--bg);\n  border-radius: var(--radius);\n  padding: 16px;\n  font-size: 14px;\n  color: var(--text2);\n}\n\n.includes-title {\n  font-weight: 600;\n  color: var(--text);\n  margin-bottom: 8px;\n}\n\n.includes ul {\n  margin: 0;\n  padding-left: 20px;\n}\n\n\/* DISCLAIMER *\/\ndetails.card {\n  background: var(--card);\n  border-radius: var(--radius);\n  border: 1px solid rgba(0,0,0,0.06);\n  overflow: hidden;\n}\n\nsummary.card-summary {\n  padding: 14px 16px;\n  cursor: pointer;\n  display: flex;\n  justify-content: space-between;\n  font-weight: 600;\n  list-style: none;\n}\n\nsummary.card-summary::-webkit-details-marker {\n  display: none;\n}\n\n.summary-accent {\n  color: var(--accent);\n}\n\n.card-body {\n  padding: 14px 16px;\n  font-size: 14px;\n  color: var(--text2);\n  line-height: 1.6;\n}\n\n\/* CHECKBOX *\/\n.checkbox-row {\n  display: flex;\n  gap: 10px;\n  align-items: flex-start;\n  margin-top: 14px;\n  font-size: 14px;\n  color: var(--text2);\n}\n\n.checkbox-row input[type=\"checkbox\"] {\n  margin-top: 3px;\n  flex-shrink: 0;\n  cursor: pointer;\n}\n\n.checkbox-row label {\n  cursor: pointer;\n}\n\n\/* WARNING *\/\n.warning {\n  display: none;\n  margin-top: 10px;\n  padding: 12px 14px;\n  border-radius: var(--radius);\n  background: rgba(176,0,0,0.06);\n  border: 1px solid rgba(176,0,0,0.15);\n  color: var(--accent);\n  font-size: 13px;\n}\n\n\/* DISABLED *\/\n.is-disabled {\n  opacity: 0.45 !important;\n  cursor: not-allowed !important;\n  pointer-events: none !important;\n}\n\n\/* VAT DISCLAIMER *\/\n.vat-disclaimer {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  padding: 8px 12px;\n  font-size: 12px;\n  color: var(--muted);\n  background: var(--bg);\n  border-radius: 8px;\n  margin-top: 4px;\n}\n\n\/* FAQ *\/\ndetails.faq {\n  border-bottom: 1px solid rgba(0,0,0,0.08);\n}\n\nsummary.faq-summary {\n  padding: 14px 0;\n  cursor: pointer;\n  font-size: 14px;\n  font-weight: 600;\n  list-style: none;\n}\n\nsummary.faq-summary::-webkit-details-marker {\n  display: none;\n}\n\n.faq-body {\n  padding: 0 0 14px;\n  font-size: 14px;\n  color: var(--text2);\n  line-height: 1.6;\n}\n\n\/* MOBILE *\/\n@media (max-width: 600px) {\n  .pdp-wrap {\n    margin: 12px auto;\n    padding: 22px 14px;\n  }\n\n  .buy-info {\n    grid-template-columns: 1fr;\n  }\n\n  .title {\n    font-size: 20px;\n  }\n}\n\u003c\/style\u003e\n\n\n\u003cdiv class=\"pdp-wrap\"\u003e\n\n  \u003c!-- TITLE --\u003e\n  \u003cdiv class=\"title\"\u003e\n    The NBH Heavyweight T-Shirt™\n  \u003c\/div\u003e\n\n\n  \u003c!-- SHORT INTRO --\u003e\n  \u003cdiv class=\"subtitle\"\u003e\n\n    \u003cp style=\"text-align: justify; margin-top: 0;\"\u003e\n      \u003cstrong\u003eFor people who take their keyboards unnecessarily seriously.\u003c\/strong\u003e\n    \u003c\/p\u003e\n\n    \u003cp style=\"text-align: justify;\"\u003e\n      The NBH Heavyweight T-Shirt is made from 100% cotton and built on the\n      legendary Gildan Heavyweight blank, with embroidered NBH branding on the\n      left chest.\n    \u003c\/p\u003e\n\n    \u003cp style=\"text-align: justify; margin-bottom: 0;\"\u003e\n      This is not some flimsy, sad little keyboard-club T-shirt that gives up\n      after three washes. It is substantial, comfortable, and appropriately\n      serious.\n    \u003c\/p\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003c!-- GROUP BUY INFO --\u003e\n  \u003cdiv class=\"buy-info\"\u003e\n\n    \u003cdiv class=\"buy-info-card\"\u003e\n      \u003cdiv class=\"buy-info-label\"\u003e\n        Group Buy\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"buy-info-value\"\u003e\n        August 15th – August 22nd\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"buy-info-card\"\u003e\n      \u003cdiv class=\"buy-info-label\"\u003e\n        Estimated Shipping\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"buy-info-value\"\u003e\n        Late September\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"divider\"\u003e\u003c\/div\u003e\n\n\n  \u003c!-- WHY IS IT THE BEST --\u003e\n  \u003cdiv class=\"section subtitle\"\u003e\n\n    \u003cstrong\u003eWhy is it the best T-shirt in the world?\u003c\/strong\u003e\n\n    \u003cp\u003e\n      We have no scientific evidence for this.\n    \u003c\/p\u003e\n\n    \u003cp style=\"margin-bottom: 0;\"\u003e\n      But look at it.\n    \u003c\/p\u003e\n\n    \u003cbr\u003e\n\n    \u003cstrong\u003e100% cotton\u003c\/strong\u003e — much softer and easier to wear than aluminium.\u003cbr\u003e\n\n    \u003cstrong\u003eGildan Heavyweight\u003c\/strong\u003e — sturdy, comfortable, and appropriately serious.\u003cbr\u003e\n\n    \u003cstrong\u003eNBH branding\u003c\/strong\u003e — a subtle way of telling the world that you have excellent taste.\u003cbr\u003e\n\n    \u003cstrong\u003eMade for keyboard people by keyboard people\u003c\/strong\u003e — although technically,\n    non-keyboard people are encouraged to buy one too.\u003cbr\u003e\n\n    \u003cstrong\u003eHeavyweight construction\u003c\/strong\u003e — even if your wallet is light after\n    every GB, your T-shirt remains heavy.\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"divider\"\u003e\u003c\/div\u003e\n\n\n  \u003c!-- SIZE GUIDE --\u003e\n  \u003cdiv class=\"section\"\u003e\n\n    \u003cdiv class=\"title\" style=\"font-size: 17px;\"\u003e\n      Find Your Size\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"subtitle\"\u003e\n\n      \u003cp\u003e\n        \u003cstrong\u003ePlease check the measurements before ordering.\u003c\/strong\u003e\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        The best way to choose your size is to measure a T-shirt you already own\n        that fits you well and compare it with the size chart below.\n        Do not rely solely on your usual T-shirt size.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003c!-- SIZE CHART IMAGE --\u003e\n    \u003cdiv class=\"size-chart\"\u003e\n\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0985\/0300\/0394\/files\/Size_Chart.png?v=1786374080\" alt=\"NBH Heavyweight T-Shirt size chart\" loading=\"lazy\"\u003e\n\n      \u003cdiv class=\"size-chart-note\"\u003e\n    \n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"divider\"\u003e\u003c\/div\u003e\n\n\n  \u003c!-- TECHNICAL SPECIFICATIONS --\u003e\n  \u003cdiv class=\"section\"\u003e\n\n    \u003cdiv class=\"title\" style=\"font-size: 17px;\"\u003e\n      Technical Specifications™\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"specs\"\u003e\n\n      \u003cstrong\u003eMaterial:\u003c\/strong\u003e 100% cotton\u003cbr\u003e\n      \u003cstrong\u003eConstruction:\u003c\/strong\u003e Gildan Heavyweight\u003cbr\u003e\n      \u003cstrong\u003eColor:\u003c\/strong\u003e Black\u003cbr\u003e\n      \u003cstrong\u003eSizes:\u003c\/strong\u003e S–5XL\u003cbr\u003e\n      \u003cstrong\u003eMount:\u003c\/strong\u003e Torso mount\u003cbr\u003e\n      \u003cstrong\u003eFirmware:\u003c\/strong\u003e Soft\u003cbr\u003e\n      \u003cstrong\u003eTyping Angle:\u003c\/strong\u003e Flat\u003cbr\u003e\n      \u003cstrong\u003eWeight:\u003c\/strong\u003e 180 g\/m²\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"divider\"\u003e\u003c\/div\u003e\n\n\n  \u003c!-- WHAT'S INCLUDED --\u003e\n  \u003cdiv class=\"section\"\u003e\n\n    \u003cdiv class=\"includes\"\u003e\n\n      \u003cdiv class=\"includes-title\"\u003e\n        In the Box\n      \u003c\/div\u003e\n\n      \u003cul\u003e\n        \u003cli\u003e1× NBH Heavyweight T-Shirt\u003c\/li\u003e\n        \u003cli\u003e1× NBH Sticker\u003c\/li\u003e\n      \u003c\/ul\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"divider\"\u003e\u003c\/div\u003e\n\n\n  \u003c!-- VAT DISCLAIMER --\u003e\n  \u003cdiv class=\"vat-disclaimer\"\u003e\n\n    \u003csvg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\n      \u003cline x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\u003e\u003c\/line\u003e\n      \u003cline x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\u003e\u003c\/line\u003e\n    \u003c\/svg\u003e\n\n    No separate VAT is shown due to § 19 UStG (German VAT Act)\n\n  \u003c\/div\u003e\n\n\n  \u003c!-- MADE TO ORDER \/ RETURNS --\u003e\n  \u003cdiv id=\"return-disclaimer-area\" style=\"margin-top: 22px;\"\u003e\n\n    \u003cdetails class=\"card\" id=\"return-details\"\u003e\n\n      \u003csummary class=\"card-summary\"\u003e\n\n        \u003cspan class=\"summary-accent\"\u003e\n          Made-to-Order — Please Check Your Size\n        \u003c\/span\u003e\n\n        \u003cspan style=\"opacity: 0.5;\"\u003e\n          +\n        \u003c\/span\u003e\n\n      \u003c\/summary\u003e\n\n\n      \u003cdiv class=\"card-body\"\u003e\n\n        \u003cp style=\"margin-top: 0;\"\u003e\n          This is a made-to-order item. Please select your size carefully\n          based on the provided measurements.\n        \u003c\/p\u003e\n\n        \u003cp\u003e\n          We cannot accept returns due to an incorrect size or fit.\n          For this reason, we strongly recommend measuring a T-shirt you\n          already own that fits you well and comparing its measurements\n          with our size chart before ordering.\n        \u003c\/p\u003e\n\n        \u003cp style=\"margin-bottom: 0;\"\u003e\n          Manufacturing defects and quality-control issues are, of course,\n          covered.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/details\u003e\n\n\n    \u003c!-- ACCEPTANCE CHECKBOX --\u003e\n    \u003cdiv class=\"checkbox-row\"\u003e\n\n      \u003cinput type=\"checkbox\" id=\"agree-terms\" name=\"properties[No Returns Disclaimer]\" value=\"Accepted\"\u003e\n\n      \u003clabel for=\"agree-terms\"\u003e\n\n        I have read and accept the\n        \u003cspan style=\"color: var(--accent); font-weight: 500;\"\u003e\n          Made-to-Order \/ Size Disclaimer\n        \u003c\/span\u003e\n\n      \u003c\/label\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003c!-- WARNING --\u003e\n    \u003cdiv class=\"warning\" id=\"return-warning\"\u003e\n      You must accept the disclaimer to continue.\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"divider\"\u003e\u003c\/div\u003e\n\n\n  \u003c!-- FAQ --\u003e\n  \u003cdiv class=\"section\"\u003e\n\n    \u003cdiv class=\"title\" style=\"font-size: 17px;\"\u003e\n      FAQ\n    \u003c\/div\u003e\n\n\n    \u003cdetails class=\"faq\"\u003e\n\n      \u003csummary class=\"faq-summary\"\u003e\n        When will my shirt ship?\n      \u003c\/summary\u003e\n\n      \u003cdiv class=\"faq-body\"\u003e\n        The current estimated shipping time is late September,\n        after the group-buy period has ended and production has been completed.\n      \u003c\/div\u003e\n\n    \u003c\/details\u003e\n\n\n    \u003cdetails class=\"faq\"\u003e\n\n      \u003csummary class=\"faq-summary\"\u003e\n        What size should I order?\n      \u003c\/summary\u003e\n\n      \u003cdiv class=\"faq-body\"\u003e\n        We strongly recommend measuring a T-shirt you already own that fits\n        you well and comparing those measurements with our size chart.\n        Please do not rely solely on your usual size.\n      \u003c\/div\u003e\n\n    \u003c\/details\u003e\n\n\n    \u003cdetails class=\"faq\"\u003e\n\n      \u003csummary class=\"faq-summary\"\u003e\n        What if there is a manufacturing defect?\n      \u003c\/summary\u003e\n\n      \u003cdiv class=\"faq-body\"\u003e\n        Manufacturing defects and quality-control issues are covered.\n        Please contact us with photos and a description of the issue.\n      \u003c\/div\u003e\n\n    \u003c\/details\u003e\n\n\n    \u003cdetails class=\"faq\"\u003e\n\n      \u003csummary class=\"faq-summary\"\u003e\n        Is this a regular-stock item?\n      \u003c\/summary\u003e\n\n      \u003cdiv class=\"faq-body\"\u003e\n        No. This is a made-to-order group-buy item. Please make sure you\n        are comfortable with the estimated production and shipping timeline\n        before placing your order.\n      \u003c\/div\u003e\n\n    \u003c\/details\u003e\n\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n\n  const checkbox = document.getElementById(\"agree-terms\");\n  const warning = document.getElementById(\"return-warning\");\n  const details = document.getElementById(\"return-details\");\n  const disclaimerArea = document.getElementById(\"return-disclaimer-area\");\n\n  if (!checkbox) return;\n\n\n  \/*\n   * Find Add to Cart buttons.\n   *\/\n  function getAddToCartButtons() {\n\n    return document.querySelectorAll(\n      'button[name=\"add\"], .product-form__submit'\n    );\n\n  }\n\n\n  \/*\n   * Find accelerated checkout buttons.\n   *\/\n  function getFastCheckoutButtons() {\n\n    return document.querySelectorAll(\n      '.shopify-payment-button button, .shopify-payment-button__button'\n    );\n\n  }\n\n\n  \/*\n   * Enable \/ disable buttons.\n   *\/\n  function setDisabled(button, disabled) {\n\n    if (!button) return;\n\n    button.disabled = disabled;\n\n    if (disabled) {\n      button.classList.add(\"is-disabled\");\n    } else {\n      button.classList.remove(\"is-disabled\");\n    }\n\n  }\n\n\n  \/*\n   * Update all purchase buttons.\n   *\/\n  function updateButtons() {\n\n    const accepted = checkbox.checked;\n\n\n    \/*\n     * Add to Cart buttons.\n     *\/\n    getAddToCartButtons().forEach(function (button) {\n\n      setDisabled(button, !accepted);\n\n    });\n\n\n    \/*\n     * Express checkout buttons.\n     *\/\n    getFastCheckoutButtons().forEach(function (button) {\n\n      setDisabled(button, !accepted);\n\n    });\n\n\n    \/*\n     * Visual state of accelerated checkout.\n     *\/\n    const paymentContainer =\n      document.querySelector(\".shopify-payment-button\");\n\n    if (paymentContainer) {\n\n      if (!accepted) {\n\n        paymentContainer.style.opacity = \"0.45\";\n        paymentContainer.style.pointerEvents = \"none\";\n        paymentContainer.style.cursor = \"not-allowed\";\n\n      } else {\n\n        paymentContainer.style.opacity = \"\";\n        paymentContainer.style.pointerEvents = \"\";\n        paymentContainer.style.cursor = \"\";\n\n      }\n\n    }\n\n\n    \/*\n     * Warning message.\n     *\/\n    if (accepted) {\n\n      warning.style.display = \"none\";\n\n    } else {\n\n      warning.style.display = \"block\";\n\n    }\n\n  }\n\n\n  \/*\n   * Checkbox changed.\n   *\/\n  checkbox.addEventListener(\"change\", function () {\n\n    updateButtons();\n\n  });\n\n\n  \/*\n   * Additional protection against\n   * bypassing the disabled state.\n   *\/\n  document.addEventListener(\"click\", function (event) {\n\n    const addButton = event.target.closest(\n      'button[name=\"add\"], .product-form__submit'\n    );\n\n    const fastCheckoutButton = event.target.closest(\n      '.shopify-payment-button button, .shopify-payment-button__button'\n    );\n\n\n    if (!addButton \u0026\u0026 !fastCheckoutButton) {\n      return;\n    }\n\n\n    if (!checkbox.checked) {\n\n      event.preventDefault();\n      event.stopPropagation();\n      event.stopImmediatePropagation();\n\n\n      \/*\n       * Open disclaimer.\n       *\/\n      if (details) {\n        details.open = true;\n      }\n\n\n      \/*\n       * Show warning.\n       *\/\n      warning.style.display = \"block\";\n\n\n      \/*\n       * Scroll to disclaimer.\n       *\/\n      disclaimerArea.scrollIntoView({\n        behavior: \"smooth\",\n        block: \"center\"\n      });\n\n    }\n\n  }, true);\n\n\n  \/*\n   * Shopify may dynamically replace\n   * product buttons. Keep them locked.\n   *\/\n  const observer = new MutationObserver(function () {\n\n    updateButtons();\n\n  });\n\n\n  observer.observe(document.body, {\n\n    childList: true,\n    subtree: true\n\n  });\n\n\n  \/*\n   * Initial state.\n   *\/\n  updateButtons();\n\n  setTimeout(updateButtons, 500);\n  setTimeout(updateButtons, 1500);\n\n});\n\u003c\/script\u003e\n\n","brand":"neighbourhood","offers":[{"title":"Default Title","offer_id":62913652130122,"sku":null,"price":30.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0985\/0300\/0394\/files\/IMG-4512.png?v=1786307163","url":"https:\/\/nbh-keyboards.com\/products\/the-nbh-heavyweight-t-shirt%e2%84%a2","provider":"neighbourhood","version":"1.0","type":"link"}