{"product_id":"protocol-builder-tool","title":"Protocol Builder Tool","description":"\u003c!-- PROJECT THEO — Protocol Builder Product Page --\u003e\n\u003c!-- HANDLE: \/products\/protocol-builder-tool --\u003e\n\u003c!-- PRICE: $39.99\/month. Included in Full Access at $199.99\/year. --\u003e\n\u003c!-- WORKER GRANTS: builder --\u003e\n\u003c!-- COPY CHANGES IN THIS VERSION. No script changes. One CSS addition: .pt-ex-guides\n     for the guide library example block.\n       1. GUIDES LIBRARY NOW IN THE PREVIEW BLOCK. It was only named far down the page\n          in \"What membership adds,\" so a visitor reading the top of the page never saw\n          it. The preview subtext and the upgrade paragraph now both name it, and a\n          compact guide list block sits under the example result.\n       2. The preview TITLE is deliberately unchanged. It describes what the FREE\n          diagnostic returns, and the free tool does not return the guide library.\n          Naming the library there would misstate the free tier. The library claim sits\n          in the upgrade paragraph, which is the membership line.\n     CARRIED FROM THE PRIOR VERSION, unchanged:\n       - \"Full Access: All Three Tools\" names the three tools.\n       - The Annual row tag has no em dash.\n       - The Guides Library included section, and the fourth standalone card in the\n         Other Research Tools grid. A Builder subscription unlocks the paid guides:\n         the guide gate reads GUIDE_ACCESS_CODES = ['builder','library'], so a builder\n         tools code opens every paid guide, same as full and library.\n       - NOTE STILL OPEN: builder and full unlock the guides today. The standalone\n         library-only SKU still needs the Worker to emit the 'library' code on its\n         purchase before a library-only buyer unlocks anything. Worker item, not a copy\n         item. Does not affect the \"included with Builder\" claim on this page.\n     The reconstitution math listed here is the Builder's own preloaded calculator,\n     which IS a member feature of this tool. That is separate from the Stack\n     Visualizer's calculator, which is free. No change needed on that. --\u003e\n\u003c!-- PT-TH29X4-J4XVR9DTMW26 --\u003e\n\u003c!-- SEO: the page title and meta description are NOT set by this file. They live in\n     Admin \u003e Products \u003e Protocol Builder \u003e Search engine listing \u003e Edit. Paste them from\n     PT_Product_Page_SEO_Fields_1524_07_15_2026.md. This comment does nothing, and it is\n     why Shopify auto-generated the current 161\/160 meta from the body copy. --\u003e\n\u003c!-- Paste into Shopify: Admin \u003e Products \u003e Protocol Builder \u003e Description \u003e Edit HTML \u003e Full replacement \u003e Save --\u003e\n\u003c!-- The Seal subscription widget and Subscribe button render ABOVE this description automatically. --\u003e\n\u003c!-- CLICKABLE PRICING ROWS: every row is a link to that product EXCEPT this page's own\n     row, which carries the \"Subscribe above\" tag instead. Do not link a row to its own URL. --\u003e\n\u003c!-- BUG FIXED FROM AN EARLIER VERSION: the old nudge linked to ?member=, which the\n     Builder app does not read. The app reads member_email. It only appeared to work\n     because the Builder also falls back to localStorage on the same browser. --\u003e\n\n\u003cstyle\u003e\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400\u0026family=Jost:wght@300;400;500;600\u0026display=swap');\n\n  .product__title, .product-single__title, h1.product__title { display: none !important; }\n  .pt-smin-section { display: none !important; }\n\n  .pro-wrap {\n    max-width: 720px;\n    margin: 0 auto;\n    padding: 0 24px 48px;\n    font-family: 'Jost', sans-serif;\n    font-weight: 300;\n    font-size: 15px;\n    line-height: 1.75;\n    color: #c8c0b0;\n  }\n  .pro-wrap * { box-sizing: border-box; margin: 0; padding: 0; }\n\n  \/* Preview block *\/\n  .pro-search-preview {\n    margin-bottom: 40px;\n    padding: 28px 24px 24px;\n    background: #222220;\n    border: 1px solid rgba(181,169,138,0.28);\n    border-radius: 4px;\n    position: relative;\n    overflow: hidden;\n  }\n  .pro-search-preview::before {\n    content: '';\n    position: absolute;\n    top: 0; left: 0; right: 0;\n    height: 2px;\n    background: linear-gradient(90deg, transparent, #b5a98a, transparent);\n    opacity: 0.5;\n  }\n  .pro-search-preview__label { font-size: 10px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #b5a98a; margin-bottom: 10px; }\n  .pro-search-preview__title { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 400; color: #e8e0d0; line-height: 1.3; margin-bottom: 8px; }\n  .pro-search-preview__subtext { font-size: 13px; font-weight: 300; color: #bfb8a8; line-height: 1.65; margin-bottom: 20px; }\n  .pro-search-preview__answer {\n    margin-top: 4px;\n    padding: 16px 14px;\n    background: rgba(255,255,255,0.03);\n    border: 1px solid rgba(181,169,138,0.18);\n    border-radius: 4px;\n  }\n  .pro-search-preview__answer-header { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }\n  .pro-search-preview__answer-dot { width: 5px; height: 5px; border-radius: 50%; background: #b5a98a; flex-shrink: 0; }\n  .pro-search-preview__answer-label { font-size: 9px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: #8a8478; }\n  .pt-ex-check {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 10px 12px;\n    background: rgba(181,169,138,0.06);\n    border: 1px solid rgba(181,169,138,0.2);\n    border-radius: 3px;\n    margin-bottom: 16px;\n  }\n  .pt-ex-check-dot { width: 6px; height: 6px; border-radius: 50%; background: #b5a98a; flex-shrink: 0; }\n  .pt-ex-check-text { font-size: 12px; color: #bfb8a8; line-height: 1.4; }\n  .pt-ex-line {\n    display: flex;\n    justify-content: space-between;\n    align-items: baseline;\n    padding: 9px 0;\n    border-bottom: 1px solid rgba(181,169,138,0.12);\n    gap: 12px;\n  }\n  .pt-ex-line:last-of-type { border-bottom: none; }\n  .pt-ex-line-label { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: #8a8478; white-space: nowrap; }\n  .pt-ex-line-value { font-size: 13px; color: #e8e0d0; text-align: right; }\n  .pt-ex-caption { font-size: 11px; color: #8a8478; font-style: italic; margin-top: 14px; line-height: 1.5; }\n\n  \/* Guides library block inside the preview *\/\n  .pt-ex-guides {\n    margin-top: 14px;\n    padding: 14px 14px 12px;\n    background: rgba(181,169,138,0.05);\n    border: 1px solid rgba(181,169,138,0.2);\n    border-radius: 3px;\n  }\n  .pt-ex-guides-head { font-size: 9px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: #b5a98a; margin-bottom: 10px; }\n  .pt-ex-guides-item { font-size: 12px; color: #bfb8a8; line-height: 1.5; padding: 4px 0 4px 12px; position: relative; }\n  .pt-ex-guides-item::before { content: ''; position: absolute; left: 0; top: 12px; width: 4px; height: 4px; border-radius: 50%; background: #b5a98a; opacity: 0.7; }\n  .pt-ex-guides-note { font-size: 11px; color: #8a8478; font-style: italic; margin-top: 10px; line-height: 1.5; }\n\n  \/* Member state under the preview *\/\n  .pro-preview-upgrade { display: none; margin-top: 16px; padding: 0 2px; text-align: center; }\n  .pro-preview-upgrade.active { display: block; }\n  .pro-preview-upgrade__text { font-size: 12px; color: #bfb8a8; line-height: 1.5; margin-bottom: 8px; }\n  .pro-preview-upgrade__note { font-size: 10px; color: #8a8478; }\n  .pro-preview-nudge {\n    display: none;\n    margin-top: 16px;\n    padding: 14px 16px;\n    background: rgba(181,169,138,0.06);\n    border: 1px solid rgba(181,169,138,0.22);\n    border-radius: 4px;\n    text-decoration: none;\n    color: #e8e0d0;\n    transition: background 0.15s ease;\n  }\n  .pro-preview-nudge.active { display: block; }\n  .pro-preview-nudge:hover { background: rgba(181,169,138,0.12); }\n  .pro-preview-nudge__label { font-size: 9px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: #b5a98a; margin-bottom: 6px; }\n  .pro-preview-nudge__text { font-size: 12px; font-weight: 300; color: #bfb8a8; line-height: 1.5; margin-bottom: 10px; }\n  .pro-preview-nudge__btn { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: #e8e0d0; }\n  .pro-search-preview__disclaimer { margin-top: 16px; font-size: 10px; color: #6e6a64; text-align: center; opacity: 0.7; }\n\n  \/* Page structure *\/\n  .pro-title-block { margin-bottom: 32px; padding-top: 8px; }\n  .pro-title-block .pro-label { font-size: 10px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #b5a98a; margin-bottom: 10px; }\n  .pro-title-block h1 { font-family: 'Cormorant Garamond', serif; font-size: 32px; font-weight: 400; color: #e8e0d0; line-height: 1.3; margin-bottom: 0; display: block !important; }\n  .pro-hook { border-left: 3px solid #b5a98a; padding-left: 20px; margin-bottom: 40px; }\n  .pro-hook p { font-family: 'Cormorant Garamond', serif; font-size: 22px; line-height: 1.5; color: #e8e0d0; }\n  .pro-wrap p { margin-bottom: 16px; color: #c8c0b0; }\n  .pro-label { font-size: 10px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #b5a98a; margin-bottom: 10px; }\n  .pro-section-head { font-family: 'Cormorant Garamond', serif; font-size: 24px; color: #e8e0d0; margin-bottom: 16px; margin-top: 8px; font-weight: 400; }\n  .pro-divider { border: none; border-top: 1px solid #3a3a32; margin: 36px 0; }\n  .pro-feature-row { margin-bottom: 32px; }\n  .pro-feature-label { font-size: 10px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #b5a98a; margin-bottom: 6px; }\n  .pro-feature-title { font-family: 'Cormorant Garamond', serif; font-size: 20px; color: #e8e0d0; margin-bottom: 8px; font-weight: 400; }\n  .pro-feature-desc { color: #c8c0b0; margin-bottom: 0; }\n\n  \/* Compare grid *\/\n  .pro-compare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 24px 0 36px; }\n  .pro-compare-col { padding: 20px; }\n  .pro-compare-col.free { background: #1a1a18; }\n  .pro-compare-col.member { background: #222220; border-left: 2px solid #b5a98a; }\n  .pro-compare-head { font-size: 10px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #b5a98a; margin-bottom: 14px; }\n  .pro-compare-item { font-size: 13px; color: #c8c0b0; line-height: 1.6; margin-bottom: 10px; }\n  .pro-compare-item.yes { color: #e8e0d0; }\n  .pro-compare-item.no { color: #6e6a64; text-decoration: line-through; }\n\n  \/* Pricing block — rows are clickable except this page's own *\/\n  .pro-pricing-block { margin: 36px 0; background: #1a1a18; border: 1px solid rgba(181,169,138,0.22); border-radius: 4px; overflow: hidden; }\n  .pro-pricing-row {\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-start;\n    padding: 20px 24px;\n    border-bottom: 1px solid rgba(181,169,138,0.12);\n    gap: 16px;\n    text-decoration: none;\n    color: inherit;\n  }\n  .pro-pricing-row:last-child { border-bottom: none; }\n  .pro-pricing-row.featured { background: #222220; }\n  .pro-pricing-row--link { cursor: pointer; transition: background 0.15s ease; }\n  .pro-pricing-row--link:hover { background: #262622; }\n  .pro-pricing-row.is-current { background: rgba(181,169,138,0.05); border-left: 2px solid #b5a98a; }\n  .pro-pricing-row-left { flex: 1; }\n  .pro-pricing-row-tag { font-size: 9px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: #b5a98a; margin-bottom: 5px; }\n  .pro-pricing-row-name { font-family: 'Cormorant Garamond', serif; font-size: 18px; color: #e8e0d0; font-weight: 400; margin-bottom: 6px; }\n  .pro-pricing-row-desc { font-size: 12px; color: #8a8478; line-height: 1.55; }\n  .pro-pricing-row-price { text-align: right; white-space: nowrap; flex-shrink: 0; }\n  .pro-pricing-row-amount { font-family: 'Cormorant Garamond', serif; font-size: 22px; color: #e8e0d0; font-weight: 400; display: block; }\n  .pro-pricing-row-period { font-size: 10px; color: #8a8478; }\n  .pro-pricing-row-save { display: inline-block; margin-top: 4px; font-size: 9px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #b5a98a; background: rgba(181,169,138,0.1); padding: 2px 7px; border-radius: 2px; }\n  .pro-pricing-row-here { display: block; margin-top: 6px; font-size: 9px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #b5a98a; }\n  .pro-pricing-row-go { display: block; margin-top: 6px; font-size: 9px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #b5a98a; }\n  .pro-pricing-row--link:hover .pro-pricing-row-go { color: #e8e0d0; }\n\n  \/* Other tools *\/\n  .pro-tools-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 24px 0 8px; }\n  .pro-tools-grid--three { grid-template-columns: repeat(3, 1fr); }\n  .pro-tools-grid--four { grid-template-columns: repeat(4, 1fr); }\n  .pro-tool-card {\n    display: block;\n    padding: 18px 20px;\n    background: #1e1e1c;\n    border: 1px solid rgba(181,169,138,0.35);\n    border-radius: 4px;\n    text-decoration: none;\n    cursor: pointer;\n    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;\n    box-shadow: 0 1px 4px rgba(0,0,0,0.3);\n  }\n  .pro-tool-card:hover { border-color: #b5a98a; background: #262622; box-shadow: 0 2px 8px rgba(0,0,0,0.4); }\n  .pro-tool-card-label { font-size: 9px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: #b5a98a; margin-bottom: 6px; }\n  .pro-tool-card-name { font-family: 'Cormorant Garamond', serif; font-size: 17px; color: #e8e0d0; font-weight: 400; margin-bottom: 5px; }\n  .pro-tool-card-price { font-size: 11px; color: #9a9488; }\n  .pro-tool-card-arrow { font-size: 11px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: #b5a98a; margin-top: 12px; display: flex; align-items: center; gap: 5px; }\n  .pro-tool-card-arrow::after { content: '\\2192'; transition: transform 0.15s ease; }\n  .pro-tool-card:hover .pro-tool-card-arrow::after { transform: translateX(3px); }\n\n  .pro-disclaimer { text-align: center; font-size: 11px; color: #666; margin-top: 36px; line-height: 1.6; }\n\n  @media (max-width: 700px) {\n    .pro-tools-grid--three { grid-template-columns: 1fr 1fr; }\n    .pro-tools-grid--four { grid-template-columns: 1fr 1fr; }\n  }\n  @media (max-width: 520px) {\n    .pro-compare-grid { grid-template-columns: 1fr; }\n    .pro-compare-col.member { border-left: none; border-top: 2px solid #b5a98a; }\n    .pro-tools-grid, .pro-tools-grid--three, .pro-tools-grid--four { grid-template-columns: 1fr; }\n    .pro-hook p { font-size: 19px; }\n    .pro-title-block h1 { font-size: 26px; }\n    .pro-pricing-row { flex-direction: column; gap: 12px; }\n    .pro-pricing-row-price { text-align: left; }\n  }\n\u003c\/style\u003e\n\n\u003cdiv\u003e\u003c\/div\u003e","brand":"PROJECT THEO","offers":[{"title":"Default Title","offer_id":43777081540667,"sku":null,"price":39.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0657\/5102\/3675\/files\/rn-image_picker_lib_temp_88d04a6b-b1a1-401f-bedd-3a7b731ec0ec.jpg?v=1784221472","url":"https:\/\/project-theo.com\/products\/protocol-builder-tool","provider":"PROJECT THEO","version":"1.0","type":"link"}