{"id":6207,"date":"2026-08-22T14:06:25","date_gmt":"2026-08-22T05:06:25","guid":{"rendered":"https:\/\/agriture.jp\/?page_id=6207"},"modified":"2026-09-28T20:42:02","modified_gmt":"2026-09-28T11:42:02","slug":"mix-form","status":"publish","type":"page","link":"https:\/\/agriture.jp\/en\/mix-form\/","title":{"rendered":"Amazon Mix Auto-Calculation Tool"},"content":{"rendered":"\n<style>\nbody:has(#agriture-form-page) #top_title_area,\nbody:has(#agriture-form-page) #breadcrumb,\nbody:has(#agriture-form-page) #sidebar{display:none!important}\nbody:has(#agriture-form-page) #content{max-width:none!important;width:100%!important}\nbody:has(#agriture-form-page) #main_content{width:100%!important;max-width:none!important}\nbody:has(#agriture-form-page) .l-mainContent__inner{padding-top:32px}\n<\/style>\n<div id=\"agriture-form-page\"><\/div>\n\n\n<div class=\"p-blogParts post_content\" data-partsID=\"7175\">\n<section id=\"agriture-estimate\">\n  <style>\n    #agriture-estimate {\n      --green: #1f4d33;\n      --green-light: #e8f0ea;\n      --green-mid: #cfe3d6;\n      --orange: #c8791f;\n      --border: #dcdfd9;\n      --bg: #F5F6F4;\n      --text: #222;\n      --muted: #6b7267;\n    }\n\n    #agriture-estimate * {\n      box-sizing: border-box;\n    }\n\n    #agriture-estimate .agriture-body {\n      font-family: \"Hiragino Sans\", \"Yu Gothic\", sans-serif;\n      background: var(--bg);\n      color: var(--text);\n      margin: 0;\n      padding: 0;\n    }\n\n    #agriture-estimate .wrap {\n      max-width: 760px;\n      margin: 0 auto;\n    }\n\n    #agriture-estimate .h1-style {\n      font-size: 24px;\n      color: var(--green);\n      margin-bottom: 6px;\n      font-weight: bold;\n    }\n\n    #agriture-estimate .sub {\n      color: var(--muted);\n      font-size: 14px;\n      margin-bottom: 28px;\n    }\n\n    #agriture-estimate .step {\n      background: #fff;\n      border: 1px solid var(--border);\n      border-radius: 14px;\n      padding: 28px;\n      margin-bottom: 20px;\n      display: none;\n    }\n\n    #agriture-estimate .step.active {\n      display: block;\n    }\n\n    #agriture-estimate .step .h2-style {\n      font-size: 17px;\n      color: var(--green);\n      margin: 0 0 18px;\n      border-left: 4px solid var(--orange);\n      padding-left: 12px;\n      line-height: 1.5;\n      font-weight: bold;\n    }\n\n    #agriture-estimate .step-intro {\n      font-size: 14px;\n      color: var(--muted);\n      line-height: 1.8;\n      margin: -8px 0 20px;\n      background: var(--green-light);\n      border-radius: 10px;\n      padding: 14px 16px;\n    }\n\n    #agriture-estimate .options {\n      display: flex;\n      flex-direction: column;\n      gap: 12px;\n    }\n\n    #agriture-estimate .opt {\n      border: 1px solid var(--border);\n      border-radius: 10px;\n      padding: 18px 20px;\n      cursor: pointer;\n      transition: .15s;\n      background: #fff;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      gap: 12px;\n    }\n\n    #agriture-estimate .opt:hover {\n      border-color: var(--green);\n    }\n\n    #agriture-estimate .opt.selected {\n      border-color: var(--green);\n      background: var(--green-light);\n    }\n\n    #agriture-estimate .opt .title {\n      font-weight: bold;\n      font-size: 16px;\n    }\n\n    #agriture-estimate .opt .desc {\n      font-size: 13px;\n      color: var(--muted);\n      margin-top: 4px;\n    }\n\n    #agriture-estimate .opt .opt-fee {\n      flex: 0 0 auto;\n      background: var(--green-light);\n      color: var(--green);\n      font-weight: bold;\n      font-size: 14px;\n      border-radius: 999px;\n      padding: 8px 16px;\n      white-space: nowrap;\n    }\n\n    #agriture-estimate .bprices .fee {\n      background: #fdf6ec;\n      color: var(--orange);\n      font-weight: bold;\n    }\n\n    #agriture-estimate .blend-cards {\n      display: flex;\n      flex-direction: column;\n      gap: 14px;\n      margin-bottom: 12px;\n    }\n\n    #agriture-estimate .blend-card {\n      border: 1px solid var(--border);\n      border-radius: 12px;\n      padding: 18px 20px;\n      background: #fdfdfb;\n      cursor: pointer;\n      transition: .15s;\n    }\n\n    #agriture-estimate .blend-card:hover {\n      border-color: var(--green);\n    }\n\n    #agriture-estimate .blend-card.selected {\n      border-color: var(--green);\n      background: var(--green-light);\n    }\n\n    #agriture-estimate .blend-card .bname {\n      font-weight: bold;\n      font-size: 16px;\n      color: var(--green);\n    }\n\n    #agriture-estimate .blend-card .bratio {\n      font-size: 13px;\n      color: var(--muted);\n      margin: 6px 0 10px;\n      line-height: 1.7;\n    }\n\n    #agriture-estimate .blend-card .bprices {\n      display: flex;\n      gap: 16px;\n      font-size: 13px;\n      flex-wrap: wrap;\n    }\n\n    #agriture-estimate .blend-card .bprices div {\n      background: var(--green-light);\n      border-radius: 6px;\n      padding: 6px 10px;\n    }\n\n    #agriture-estimate .price-compare {\n      display: flex;\n      gap: 10px;\n      margin: 14px 0;\n      flex-wrap: wrap;\n    }\n\n    #agriture-estimate .price-compare .pc-box {\n      flex: 1;\n      min-width: 220px;\n      border: 1px solid var(--border);\n      border-radius: 10px;\n      padding: 12px 14px;\n    }\n\n    #agriture-estimate .price-compare .pc-box.teikei {\n      background: var(--green-light);\n      border-color: var(--green);\n    }\n\n    #agriture-estimate .price-compare .pc-box.teikeigai {\n      background: #fdf6ec;\n      border-color: var(--orange);\n    }\n\n    #agriture-estimate .price-compare .pc-title {\n      font-weight: bold;\n      font-size: 14px;\n      margin-bottom: 4px;\n    }\n\n    #agriture-estimate .price-compare .pc-title.teikei {\n      color: var(--green);\n    }\n\n    #agriture-estimate .price-compare .pc-title.teikeigai {\n      color: var(--orange);\n    }\n\n    #agriture-estimate .price-compare .pc-desc {\n      font-size: 13px;\n      color: var(--muted);\n      line-height: 1.7;\n    }\n\n    #agriture-estimate label {\n      display: block;\n      font-size: 14px;\n      margin: 18px 0 6px;\n      color: var(--text);\n      font-weight: bold;\n    }\n\n    #agriture-estimate .field-note {\n      font-size: 12.5px;\n      color: var(--muted);\n      line-height: 1.7;\n      margin: -2px 0 8px;\n    }\n\n    #agriture-estimate .package-preview {\n      display: flex;\n      gap: 16px;\n      align-items: center;\n      background: var(--green-light);\n      border: 1px solid var(--green-mid);\n      border-radius: 10px;\n      padding: 16px;\n      margin: 20px 0;\n    }\n\n    #agriture-estimate .package-preview img {\n      width: 120px;\n      height: 120px;\n      object-fit: contain;\n      background: #fff;\n      border-radius: 8px;\n      flex: 0 0 auto;\n      border: 1px solid var(--border);\n      padding: 4px;\n    }\n\n    #agriture-estimate .package-preview-text {\n      font-size: 13px;\n      color: var(--text);\n      line-height: 1.7;\n      flex: 1 1 auto;\n      min-width: 0;\n    }\n\n    #agriture-estimate .package-preview-text .pp-title {\n      font-weight: bold;\n      color: var(--green);\n      margin-bottom: 4px;\n      font-size: 14px;\n    }\n\n    #agriture-estimate .package-preview-text .pp-lead {\n      font-size: 13px;\n      color: var(--text);\n      line-height: 1.7;\n    }\n\n    #agriture-estimate .own-material-list {\n      margin: 6px 0 0;\n      padding-left: 1.2em;\n      font-size: 13px;\n      line-height: 1.8;\n    }\n\n    #agriture-estimate .own-material-list li {\n      margin-bottom: 4px;\n    }\n\n    #agriture-estimate .pp-hint {\n      margin-top: 10px;\n      padding: 9px 12px;\n      background: #fff;\n      border: 1px dashed var(--green-mid);\n      border-radius: 8px;\n      font-size: 12px;\n      color: var(--muted);\n      line-height: 1.6;\n    }\n\n    #agriture-estimate .pp-spec {\n      margin-top: 10px;\n      padding: 10px 12px;\n      background: #fff;\n      border: 1px solid var(--border);\n      border-radius: 8px;\n    }\n\n    #agriture-estimate .pp-spec-row {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n      gap: 12px;\n      padding: 3px 0;\n      font-size: 12.5px;\n      line-height: 1.6;\n    }\n\n    #agriture-estimate .pp-spec-row .pp-k {\n      flex: 0 0 auto;\n      color: var(--muted);\n    }\n\n    #agriture-estimate .pp-spec-row .pp-v {\n      font-weight: bold;\n      color: var(--text);\n      text-align: right;\n    }\n\n    #agriture-estimate .pp-price {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n      gap: 12px;\n      margin-top: 8px;\n      padding-top: 9px;\n      border-top: 1px dashed var(--border);\n    }\n\n    #agriture-estimate .pp-price-label {\n      font-size: 12.5px;\n      font-weight: bold;\n      color: var(--muted);\n    }\n\n    #agriture-estimate .pp-price-value {\n      font-size: 26px;\n      font-weight: bold;\n      color: var(--green);\n      line-height: 1.1;\n      white-space: nowrap;\n    }\n\n    #agriture-estimate .pp-price-unit {\n      font-size: 12px;\n      font-weight: bold;\n      color: var(--muted);\n      margin-left: 3px;\n    }\n\n    #agriture-estimate .weight-calc {\n      background: var(--green-light);\n      border-radius: 8px;\n      padding: 10px 14px;\n      font-size: 13px;\n      color: var(--green);\n      margin: 6px 0 4px;\n      font-weight: bold;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 4px;\n    }\n\n    #agriture-estimate .weight-calc .wc-formula {\n      font-weight: normal;\n      color: var(--text);\n    }\n\n    #agriture-estimate select,\n    #agriture-estimate input[type=number],\n    #agriture-estimate input[type=url] {\n      width: 100%;\n      padding: 14px 16px;\n      border: 1px solid var(--border);\n      border-radius: 8px;\n      font-size: 16px;\n    }\n\n    #agriture-estimate select:focus,\n    #agriture-estimate input[type=number]:focus,\n    #agriture-estimate input[type=url]:focus {\n      outline: none;\n      border-color: var(--green);\n    }\n\n    #agriture-estimate .item-row {\n      display: flex;\n      gap: 10px;\n      align-items: center;\n      margin-bottom: 10px;\n    }\n\n    #agriture-estimate .item-row select {\n      flex: 2;\n    }\n\n    #agriture-estimate .item-row input {\n      flex: 1;\n    }\n\n    #agriture-estimate .item-row button {\n      flex: 0 0 auto;\n      background: #eee;\n      border: none;\n      border-radius: 8px;\n      padding: 12px 14px;\n      cursor: pointer;\n      font-size: 14px;\n    }\n\n    #agriture-estimate .ratio-meter {\n      margin: 4px 0 20px;\n    }\n\n    #agriture-estimate .ratio-meter-head {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n      margin-bottom: 8px;\n    }\n\n    #agriture-estimate .ratio-meter-label {\n      font-size: 14px;\n      font-weight: bold;\n      color: var(--text);\n    }\n\n    #agriture-estimate .ratio-meter-value {\n      font-size: 22px;\n      font-weight: bold;\n    }\n\n    #agriture-estimate .ratio-meter-value.ok {\n      color: var(--green);\n    }\n\n    #agriture-estimate .ratio-meter-value.ng {\n      color: #b23;\n    }\n\n    #agriture-estimate .ratio-meter-value.warn {\n      color: var(--orange);\n    }\n\n    #agriture-estimate .ratio-meter-track {\n      width: 100%;\n      height: 16px;\n      background: #eee;\n      border-radius: 999px;\n      overflow: hidden;\n    }\n\n    #agriture-estimate .ratio-meter-bar {\n      height: 100%;\n      border-radius: 999px;\n      background: #b23;\n      transition: width .2s, background .2s;\n    }\n\n    #agriture-estimate .ratio-meter-bar.ok {\n      background: var(--green);\n    }\n\n    #agriture-estimate .ratio-meter-bar.warn {\n      background: var(--orange);\n    }\n\n    #agriture-estimate .ratio-meter-warning {\n      font-size: 13px;\n      margin-top: 8px;\n      font-weight: bold;\n      min-height: 18px;\n      color: #b23;\n    }\n\n    #agriture-estimate .ratio-meter-warning.ok {\n      color: var(--green);\n    }\n\n    #agriture-estimate .ratio-meter-warning.warn {\n      color: var(--orange);\n    }\n\n    #agriture-estimate .btns {\n      display: flex;\n      justify-content: space-between;\n      margin-top: 24px;\n    }\n\n    #agriture-estimate button.nav {\n      background: var(--green);\n      color: #fff;\n      border: none;\n      border-radius: 8px;\n      padding: 10px 20px;\n      font-size: 14px;\n      cursor: pointer;\n    }\n\n    #agriture-estimate button.nav.secondary {\n      background: #eee;\n      color: #333;\n    }\n\n    #agriture-estimate button.nav:disabled {\n      opacity: .4;\n      cursor: not-allowed;\n    }\n\n    #agriture-estimate #addItemBtn {\n      background: var(--green-light);\n      color: var(--green);\n      border: 1px dashed var(--green);\n      border-radius: 8px;\n      padding: 10px 16px;\n      font-size: 13px;\n      cursor: pointer;\n      margin-top: 6px;\n    }\n\n    #agriture-estimate .result {\n      background: var(--green);\n      color: #fff;\n      border-radius: 12px;\n      padding: 24px;\n    }\n\n    #agriture-estimate .result .h2-style {\n      color: #fff;\n      border-left: 4px solid var(--orange);\n      padding-left: 10px;\n      font-size: 16px;\n      font-weight: bold;\n    }\n\n    #agriture-estimate .result-product {\n      background: rgba(255, 255, 255, .08);\n      border-radius: 10px;\n      padding: 16px 18px;\n      margin: 14px 0 16px;\n    }\n\n    #agriture-estimate .result-product .badge {\n      margin-bottom: 8px;\n    }\n\n    #agriture-estimate .result-product-name {\n      font-size: 16px;\n      font-weight: bold;\n    }\n\n    #agriture-estimate .result-product-ratio {\n      font-size: 13px;\n      opacity: .85;\n      margin-top: 8px;\n      padding-top: 8px;\n      border-top: 1px solid rgba(255, 255, 255, .2);\n      line-height: 1.7;\n    }\n\n    #agriture-estimate .result-product-ratio-label {\n      font-size: 11px;\n      opacity: .75;\n      margin-bottom: 3px;\n    }\n\n    #agriture-estimate .price-main {\n      font-size: 38px;\n      font-weight: bold;\n      margin: 0 0 14px;\n      letter-spacing: .5px;\n    }\n\n    #agriture-estimate .breakdown {\n      background: rgba(255, 255, 255, .08);\n      border-radius: 10px;\n      padding: 16px;\n      font-size: 14px;\n      line-height: 2;\n    }\n\n    #agriture-estimate .breakdown .line {\n      display: flex;\n      justify-content: space-between;\n      padding: 3px 0;\n    }\n\n    #agriture-estimate .breakdown .line.total {\n      border-top: 2px solid rgba(255, 255, 255, .4);\n      margin-top: 10px;\n      padding-top: 12px;\n      font-weight: bold;\n      font-size: 20px;\n    }\n\n    #agriture-estimate .breakdown .line.sub-total {\n      border-top: 1px dashed rgba(255, 255, 255, .3);\n      margin-top: 6px;\n      padding-top: 8px;\n      font-weight: bold;\n    }\n\n    #agriture-estimate .notice {\n      background: rgba(255, 255, 255, .1);\n      border-radius: 8px;\n      padding: 12px;\n      font-size: 12px;\n      margin-top: 14px;\n    }\n\n    #agriture-estimate .notice-important {\n      background: var(--green-light);\n      border: 2px solid var(--green);\n      border-left: 8px solid var(--green);\n      border-radius: 10px;\n      padding: 16px 18px;\n      margin-top: 18px;\n    }\n\n    #agriture-estimate .notice-important .ni-title {\n      color: var(--green);\n      font-size: 17px;\n      font-weight: 800;\n      margin-bottom: 8px;\n      letter-spacing: .02em;\n    }\n\n    #agriture-estimate .notice-important .ni-body {\n      color: #22332a;\n      font-size: 14px;\n      line-height: 1.8;\n    }\n\n    #agriture-estimate .notice-important .ni-body strong {\n      color: var(--green);\n      font-weight: 800;\n    }\n\n    #agriture-estimate .badge {\n      display: inline-block;\n      background: var(--orange);\n      color: #fff;\n      font-size: 11px;\n      border-radius: 4px;\n      padding: 2px 8px;\n      margin-bottom: 8px;\n    }\n\n    #agriture-estimate .contact-form {\n      background: rgba(255, 255, 255, .08);\n      border-radius: 10px;\n      padding: 18px;\n      margin-top: 16px;\n    }\n\n    #agriture-estimate .contact-title {\n      font-size: 13px;\n      font-weight: bold;\n      margin-bottom: 6px;\n    }\n\n    #agriture-estimate .c-label {\n      display: block;\n      font-size: 13px;\n      margin: 12px 0 4px;\n      color: #fff;\n      font-weight: bold;\n    }\n\n    #agriture-estimate .contact-form input[type=text],\n    #agriture-estimate .contact-form input[type=email] {\n      width: 100%;\n      padding: 12px 14px;\n      border: 1px solid rgba(255, 255, 255, .4);\n      border-radius: 8px;\n      font-size: 15px;\n      background: rgba(255, 255, 255, .95);\n      color: var(--text);\n    }\n\n    #agriture-estimate .contact-form.light {\n      background: var(--green-light);\n    }\n\n    #agriture-estimate .contact-form.light .contact-title {\n      color: var(--green);\n      font-size: 15px;\n    }\n\n    #agriture-estimate .contact-form.light .c-label {\n      color: var(--text);\n    }\n\n    #agriture-estimate .contact-form.light input[type=text],\n    #agriture-estimate .contact-form.light input[type=email] {\n      border: 1px solid var(--border);\n      background: #fff;\n    }\n\n    #agriture-estimate .restart {\n      margin-top: 12px;\n      display: flex;\n      gap: 10px;\n    }\n\n    #agriture-estimate .cta-btn {\n      display: block;\n      width: 100%;\n      margin-top: 24px;\n      padding: 20px 24px;\n      background: var(--orange);\n      color: #fff;\n      border: none;\n      border-radius: 12px;\n      font-size: 18px;\n      font-weight: bold;\n      letter-spacing: .03em;\n      cursor: pointer;\n      box-shadow: 0 6px 18px rgba(0, 0, 0, .25);\n      transition: .15s;\n    }\n\n    #agriture-estimate .cta-btn:hover {\n      background: #b06a19;\n    }\n\n    #agriture-estimate .cta-btn:disabled {\n      opacity: .6;\n      cursor: not-allowed;\n    }\n\n    #agriture-estimate .option-category {\n      font-size: 16px;\n      font-weight: bold;\n      color: var(--green);\n      margin: 44px 0 8px;\n      padding-bottom: 10px;\n      border-bottom: 2px solid var(--green-mid);\n    }\n\n    #agriture-estimate .option-category:first-of-type {\n      margin-top: 8px;\n    }\n\n    #agriture-estimate .toggle-field {\n      margin: 20px 0;\n    }\n\n    #agriture-estimate .toggle-field .tf-label {\n      font-size: 15px;\n      font-weight: bold;\n      color: var(--text);\n      margin-bottom: 4px;\n    }\n\n    #agriture-estimate .toggle-field .tf-desc {\n      font-size: 13px;\n      color: var(--muted);\n      line-height: 1.7;\n      margin-bottom: 10px;\n    }\n\n    #agriture-estimate .toggle-btns {\n      display: flex;\n      gap: 10px;\n    }\n\n    #agriture-estimate .toggle-btns.wrap {\n      flex-wrap: wrap;\n    }\n\n    #agriture-estimate .toggle-btns.wrap .toggle-btn {\n      flex: 1 1 calc(50% - 5px);\n      min-width: 120px;\n    }\n\n    #agriture-estimate .toggle-btn {\n      flex: 1;\n      border: 2px solid var(--border);\n      border-radius: 999px;\n      background: #fff;\n      padding: 16px 14px;\n      font-size: 15px;\n      font-weight: bold;\n      color: var(--text);\n      cursor: pointer;\n      transition: .15s;\n      text-align: center;\n    }\n\n    #agriture-estimate .toggle-btn:hover {\n      border-color: var(--green);\n    }\n\n    #agriture-estimate .toggle-btn.on {\n      border-color: var(--green);\n      background: var(--green-mid);\n      color: var(--green);\n    }\n\n    #agriture-estimate .toggle-btn.off-selected {\n      border-color: var(--muted);\n      background: #f3f3f0;\n      color: var(--muted);\n    }\n\n    \n    @media (max-width: 480px) {\n      #agriture-estimate .item-row {\n        flex-wrap: wrap;\n      }\n\n      #agriture-estimate .item-row select {\n        flex: 1 1 100%;\n      }\n\n      #agriture-estimate .item-row input {\n        flex: 1 1 auto;\n      }\n\n      #agriture-estimate .item-row button {\n        flex: 0 0 auto;\n      }\n\n      #agriture-estimate .step {\n        padding: 18px;\n      }\n\n      #agriture-estimate .package-preview {\n        flex-direction: column;\n        align-items: flex-start;\n      }\n\n      #agriture-estimate .package-preview img {\n        width: 100%;\n        height: auto;\n        max-width: 180px;\n      }\n\n      #agriture-estimate .package-preview-text {\n        width: 100%;\n      }\n\n      #agriture-estimate .pp-price-value {\n        font-size: 22px;\n      }\n\n      #agriture-estimate .price-main {\n        font-size: 28px;\n      }\n\n      #agriture-estimate .breakdown .line {\n        flex-direction: column;\n        align-items: flex-start;\n        gap: 2px;\n      }\n\n      #agriture-estimate .breakdown .line.total {\n        flex-direction: row;\n        align-items: baseline;\n        flex-wrap: wrap;\n      }\n\n      #agriture-estimate .breakdown .line.total span:last-child {\n        font-size: 22px;\n      }\n\n      #agriture-estimate .restart {\n        flex-direction: column;\n      }\n\n      #agriture-estimate .btns {\n        flex-direction: column;\n        gap: 10px;\n      }\n\n      #agriture-estimate .btns button {\n        width: 100%;\n      }\n\n      #agriture-estimate .toggle-btns {\n        flex-direction: column;\n      }\n\n      #agriture-estimate .toggle-btns.wrap .toggle-btn {\n        flex: 1 1 100%;\n      }\n\n      #agriture-estimate .toggle-btn {\n        border-radius: 10px;\n        padding: 13px 14px;\n        font-size: 14px;\n      }\n    }\n  <\/style>\n\n  <div class=\"wrap agriture-body\">\n    <div class=\"h1-style\">\u4e7e\u71e5\u91ce\u83dc\u30fb\u4e7e\u71e5\u91ce\u83dc\u30df\u30c3\u30af\u30b9<br>\u304b\u3093\u305f\u3093\u304a\u898b\u7a4d\u3082\u308a\u30fb\u767a\u6ce8\u30d5\u30a9\u30fc\u30e0<\/div>\n    <div class=\"sub\">\u8cea\u554f\u306b\u7b54\u3048\u308b\u3060\u3051\u3067\u3001\u4e7e\u71e5\u91ce\u83dc\u30fb\u4e7e\u71e5\u91ce\u83dc\u30df\u30c3\u30af\u30b9\u306e\u88fd\u9020\u8cbb\u7528\u304c\u8a08\u7b97\u3067\u304d\u307e\u3059\u3002\u8a08\u7b97\u5185\u5bb9\u304b\u3089\u3054\u767a\u6ce8\u3082\u53ef\u80fd\u3067\u3059\u3002<\/div>\n\n    <!-- STEP 1: \u5358\u54c1\u307e\u305f\u306f\u30df\u30c3\u30af\u30b9 -->\n    <div class=\"step active\" id=\"step1\">\n      <div class=\"h2-style\">Q1. \u88fd\u9020\u3057\u305f\u3044\u5546\u54c1\u306e\u30bf\u30a4\u30d7\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044<\/div>\n      <div class=\"options\" id=\"q1opts\">\n        <div class=\"opt\" data-value=\"mix\">\n          <div class=\"title\">\u4e7e\u71e5\u91ce\u83dc\u30df\u30c3\u30af\u30b9<\/div>\n          <div class=\"desc\">\u8907\u6570\u306e\u91ce\u83dc\u3092\u30d6\u30ec\u30f3\u30c9\u3057\u305f\u5546\u54c1<\/div>\n        <\/div>\n        <div class=\"opt\" data-value=\"single\">\n          <div class=\"title\">\u5358\u54c1\u306e\u4e7e\u71e5\u91ce\u83dc<\/div>\n          <div class=\"desc\">1\u7a2e\u985e\u306e\u91ce\u83dc\u306e\u307f\u306e\u5546\u54c1<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"btns\"><span><\/span><button class=\"nav\" id=\"s1next\" disabled=\"\">\u6b21\u3078<\/button><\/div>\n    <\/div>\n\n    <!-- STEP2a: \u5358\u54c1\u30eb\u30fc\u30c8 -->\n    <div class=\"step\" id=\"stepSingle\">\n      <div class=\"h2-style\">\u5358\u54c1\u4e7e\u71e5\u91ce\u83dc\u306e\u304a\u898b\u7a4d\u308a<\/div>\n      <label>\u54c1\u76ee<\/label>\n      <select id=\"singleItem\"><\/select>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u30d1\u30c3\u30b1\u30fc\u30b8\u8cc7\u6750<\/div>\n        <div class=\"tf-desc\">\u5f0a\u793e\u3067\u30d1\u30a6\u30c1\u3092\u3054\u7528\u610f\u3059\u308b\u304b\u3001\u8cb4\u793e\u3067\u8cc7\u6750\u3092\u304a\u6301\u3061\u8fbc\u307f\u3044\u305f\u3060\u304f\u304b\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044<\/div>\n        <div class=\"toggle-btns\" id=\"singleMaterialSource\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u5f0a\u793e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u7528\uff08\u6709\u6599\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u8cc7\u6750\u3092\u6301\u3061\u8fbc\u3080<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"package-preview\" id=\"singlePackagePreview\">\n        <img decoding=\"async\"\n          src=\"https:\/\/agriture.jp\/wp-content\/uploads\/2026\/09\/form-package-preview.jpg\"\n          alt=\"\u30d1\u30c3\u30b1\u30fc\u30b8\u30a4\u30e1\u30fc\u30b8\">\n        <div class=\"package-preview-text\">\n          <div class=\"pp-title\">\u4f7f\u7528\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u306f\u3053\u3061\u3089\u306b\u306a\u308a\u307e\u3059<\/div>\n          <div class=\"pp-lead\">\u30c1\u30e3\u30c3\u30af\u4ed8\u304d\u30d5\u30e9\u30c3\u30c8\u30d1\u30a6\u30c1\uff08\u900f\u660e\uff09\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/div>\n          <div id=\"singlePackagePreviewText\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"package-preview\" id=\"singleOwnMaterialNotice\" style=\"display:none;\">\n        <div class=\"package-preview-text\">\n          <div class=\"pp-title\">\u8cc7\u6750\u306e\u304a\u6301\u3061\u8fbc\u307f\u306b\u3064\u3044\u3066<\/div>\n          <ul class=\"own-material-list\">\n            <li><strong>\u6700\u4f4e60g\u304c\u5165\u308b\u888b\u3092\u3054\u7528\u610f\u304f\u3060\u3055\u3044\u3002<\/strong><\/li>\n            <li>\u4e00\u5ea6\u3001\u5b9f\u969b\u306e\u888b\u3092\u5f0a\u793e\u307e\u3067\u304a\u9001\u308a\u3044\u305f\u3060\u304d\u3001\u30b5\u30f3\u30d7\u30eb\u306b\u3066\u5bfe\u5fdc\u53ef\u5426\u3092\u78ba\u8a8d\u3055\u305b\u3066\u3044\u305f\u3060\u304f\u5fc5\u8981\u304c\u3054\u3056\u3044\u307e\u3059\u3002<\/li>\n            <li>\n              \u5bb9\u91cf\uff08g\uff09\u306e\u6b04\u306b\u306f\u3001<strong>\u6301\u3061\u8fbc\u307e\u308c\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u5165\u308b\u3060\u3051\u306e\u5185\u5bb9\u91cf<\/strong>\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002\u76ee\u5b89\u3068\u3057\u3066\u3001\u5916\u5bf8160\u00d7230\uff08210\uff09mm\u306e\u888b\u306760\u301c80g\u7a0b\u5ea6\u5165\u308a\u307e\u3059\u3002\u888b\u306e\u30b5\u30a4\u30ba\u304b\u3089\u9006\u7b97\u306e\u3046\u3048\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002\n            <\/li>\n          <\/ul>\n          <label style=\"margin-top:10px;\">\u304a\u9001\u308a\u3044\u305f\u3060\u304f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u753b\u50cf\u30fb\u4ed5\u69d8\u306eURL\uff08\u5fc5\u9808\uff09<\/label>\n          <div class=\"field-note\">\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5199\u771f\u3084\u4ed5\u69d8\u66f8\u3092\u78ba\u8a8d\u3067\u304d\u308b\u30ea\u30f3\u30af\uff08Google\u30c9\u30e9\u30a4\u30d6\u30fb\u5171\u6709\u30d5\u30a9\u30eb\u30c0\u306a\u3069\uff09\u304c\u3042\u308c\u3070\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002<\/div>\n          <input type=\"url\" id=\"singlePackageLinkUrl\" placeholder=\"https:\/\/...\" required=\"\">\n        <\/div>\n      <\/div>\n\n      <label>\u5bb9\u91cf\uff08g\uff09<\/label>\n      <div class=\"field-note\" id=\"singleWeightNote\"><\/div>\n      <input type=\"number\" id=\"singleWeight\" value=\"60\" min=\"60\" step=\"1\"\n        oninput=\"updateWeightCalc('single'); updateSinglePackagePreview();\">\n\n      <label>\u6570\u91cf\uff08\u888b\uff09<\/label>\n      <input type=\"number\" id=\"singleQty\" placeholder=\"\u6700\u5c0f\u30ed\u30c3\u30c8120\u888b\u304b\u3089\" min=\"120\" step=\"10\" data-lot=\"single\"\n        oninput=\"updateWeightCalc('single')\">\n      <div class=\"weight-calc\" id=\"singleWeightCalc\" style=\"display:none;\"><\/div>\n\n      <div class=\"notice\">1,000\u888b\u4ee5\u4e0a\u306e\u3054\u6ce8\u6587\u3067\u539f\u6599\u8cbb\u304c\u5272\u5f15\u3068\u306a\u308a\u307e\u3059\u3002<\/div>\n      <div class=\"btns\">\n        <button class=\"nav secondary\" onclick=\"goStep('step1')\">\u623b\u308b<\/button>\n        <button class=\"nav\" onclick=\"goToSingleOptions()\">\u6b21\u3078<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- STEP2a-2: \u5358\u54c1\u30eb\u30fc\u30c8 \u30aa\u30d7\u30b7\u30e7\u30f3\u9078\u629e -->\n    <div class=\"step\" id=\"stepSingleOptions\">\n      <div class=\"h2-style\">\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044<\/div>\n      <div class=\"step-intro\">\u5fc5\u8981\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u307f\u304a\u9078\u3073\u304f\u3060\u3055\u3044\u3002\u300c\u5225\u9014\u304a\u898b\u7a4d\u308a\u300d\u306e\u9805\u76ee\u306f\u6982\u7b97\u5408\u8a08\u306b\u306f\u542b\u307e\u308c\u307e\u305b\u3093\u3002<\/div>\n\n      <div class=\"option-category\">\u68b1\u5305\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u30e9\u30d9\u30eb\u30b7\u30fc\u30eb\u8cbc\u4ed8<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"1\u7b87\u6240{label_back}\u5186\uff0f\u88cf\u30e9\u30d9\u30eb\u30821\u7b87\u6240\u3068\u3057\u3066\u8a08\u7b97\u3057\u307e\u3059\">1\u7b87\u624015\u5186\uff0f\u88cf\u30e9\u30d9\u30eb\u30821\u7b87\u6240\u3068\u3057\u3066\u8a08\u7b97\u3057\u307e\u3059<\/div>\n        <div class=\"package-preview\">\n          <img decoding=\"async\"\n            src=\"https:\/\/agriture.jp\/wp-content\/uploads\/2026\/09\/form-label-sample.webp\"\n            alt=\"\u88cf\u30e9\u30d9\u30eb\u306e\u8a18\u8f09\u4f8b\">\n          <div class=\"package-preview-text\">\n            <div class=\"pp-title\">\u88cf\u30e9\u30d9\u30eb\u306e\u8a18\u8f09\u4f8b\u306f\u3053\u3061\u3089\u306b\u306a\u308a\u307e\u3059<\/div>\n            <div>\u540d\u79f0\u30fb\u539f\u6750\u6599\u540d\u30fb\u5185\u5bb9\u91cf\u30fb\u4fdd\u5b58\u65b9\u6cd5\u30fb\u8ca9\u58f2\u8005\u30fb\u88fd\u9020\u8005\u30fb\u6804\u990a\u6210\u5206\u8868\u793a\u30fb\u8cde\u5473\u671f\u9650\u30fb\u30d0\u30fc\u30b3\u30fc\u30c9\u3092\u8a18\u8f09\u3057\u307e\u3059\uff08\u30b5\u30a4\u30ba\u76ee\u5b89\uff1a62\u00d770mm\uff09\u3002\u6587\u8a00\u30fb\u6210\u5206\u5024\u306f\u5b9f\u969b\u306e\u5546\u54c1\u306b\u5408\u308f\u305b\u3066\u4f5c\u6210\u3057\u307e\u3059\u3002<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"toggle-btns wrap\" id=\"sOptLabel\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"none\">\u8cbc\u3089\u306a\u3044<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"back\" data-fee-tpl=\"\u88cf\u9762\u306e\u307f\uff08+{label_back}\u5186\/\u888b\uff09\">\u88cf\u9762\u306e\u307f\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"front\" data-fee-tpl=\"\u8868\u9762\u306e\u307f\uff08+{label_front}\u5186\/\u888b\uff09\">\u8868\u9762\u306e\u307f\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"both\" data-fee-tpl=\"\u8868\u30fb\u88cf\u4e21\u65b9\uff08+{label_both}\u5186\/\u888b\uff09\">\u8868\u30fb\u88cf\u4e21\u65b9\uff08+30\u5186\/\u888b\uff09<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\" id=\"sOptDesignField\">\n        <div class=\"tf-label\">\u30d1\u30c3\u30b1\u30fc\u30b8\u30c7\u30b6\u30a4\u30f3\uff08\u30b7\u30fc\u30eb\uff09<\/div>\n        <div class=\"tf-desc\">1\u30d1\u30bf\u30fc\u30f3\uff0f\u30c7\u30fc\u30bf\u652f\u7d66\u306e\u5834\u5408\u306f\u8cbb\u7528\u4e0d\u8981\u3001\u5f0a\u793e\u30c7\u30b6\u30a4\u30f3\u306e\u5834\u5408\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"sOptDesign\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u30c7\u30b6\u30a4\u30f3\u3092\u4f9d\u983c\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f9d\u983c\u3057\u306a\u3044\uff08\u30c7\u30fc\u30bf\u652f\u7d66\uff09<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u4e7e\u71e5\u5264\uff08\u30b7\u30ea\u30ab\u30b2\u30eb\uff09\u540c\u68b1<\/div>\n        <div class=\"tf-desc\">50\u888b\u301c\u5bfe\u5fdc\uff0f\u8cc7\u6750\u8abf\u9054\u30fb\u540c\u68b1\u4f5c\u696d\u8cbb\u8fbc\u307f\u3002\u91d1\u984d\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"sOptDesiccant\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u540c\u68b1\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u540c\u68b1\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"option-category\">Amazon\u51fa\u54c1\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon FBA\u5009\u5eab\u3078\u306e\u76f4\u9001<\/div>\n        <div class=\"tf-desc\">\u8cb4\u793e\u3054\u8ca0\u62c5\uff0f\u30e9\u30d9\u30eb\u3054\u652f\u7d66\u304b\u30893\u55b6\u696d\u65e5\u4ee5\u5185\u306b\u767a\u9001\u3002\u91d1\u984d\u306f\u8cb4\u793e\u306b\u3066\u5225\u9014\u3054\u8ca0\u62c5<\/div>\n        <div class=\"toggle-btns\" id=\"sOptFbaShip\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">Amazon FBA\u5009\u5eab\u3078\u306e\u76f4\u9001\u3092\u5e0c\u671b\u3059\u308b<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u5e0c\u671b\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon FBA\u7528\u30e9\u30d9\u30eb\u8cbc\u4ed8<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"1\u7b87\u6240{fba_label}\u5186\uff0f\u8cb4\u793e\u767a\u884c\u306e\u30e9\u30d9\u30eb\u3092\u5f0a\u793e\u3067\u8cbc\u4ed8\u3059\u308b\u5834\u5408\">1\u7b87\u624015\u5186\uff0f\u8cb4\u793e\u767a\u884c\u306e\u30e9\u30d9\u30eb\u3092\u5f0a\u793e\u3067\u8cbc\u4ed8\u3059\u308b\u5834\u5408<\/div>\n        <div class=\"toggle-btns\" id=\"sOptFbaLabel\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\" data-fee-tpl=\"\u8cbc\u4ed8\u3092\u4f9d\u983c\u3059\u308b\uff08+{fba_label}\u5186\/\u888b\uff09\">\u8cbc\u4ed8\u3092\u4f9d\u983c\u3059\u308b\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f9d\u983c\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon\u306e\u904b\u55b6\u4ee3\u884c\u30b5\u30fc\u30d3\u30b9\u3092\u4f7f\u7528\u3057\u307e\u3059\u304b\uff1f<\/div>\n        <div class=\"tf-desc\">Amazon\u3067\u306e\u51fa\u54c1\u30fb\u904b\u55b6\u306e\u4ee3\u884c\u3092\u3054\u5e0c\u671b\u306e\u5834\u5408\u306f\u304a\u77e5\u3089\u305b\u304f\u3060\u3055\u3044\u3002\u91d1\u984d\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"sOptAmazonAgency\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u4f7f\u7528\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f7f\u7528\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"option-category\">\u691c\u67fb\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u5fae\u751f\u7269\uff08\u5927\u8178\u83cc\uff09\u691c\u67fb\u306e\u6709\u7121<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"\u691c\u67fb\u8cbb\u7528\uff1a{microbe}\u5186\uff0f\u56de\u3002\u5c0f\u58f2\u8ca9\u58f2\u6642\u306f\u691c\u67fb\u5fc5\u9808\u3067\u3059\u306e\u3067\u3001\u300c\u691c\u67fb\u3092\u884c\u3046\u300d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\">\u691c\u67fb\u8cbb\u7528\uff1a6,000\u5186\uff0f\u56de\u3002\u5c0f\u58f2\u8ca9\u58f2\u6642\u306f\u691c\u67fb\u5fc5\u9808\u3067\u3059\u306e\u3067\u3001\u300c\u691c\u67fb\u3092\u884c\u3046\u300d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/div>\n        <div class=\"toggle-btns\" id=\"sOptMicrobe\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u691c\u67fb\u3092\u884c\u3046\uff08+6,000\u5186\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u691c\u67fb\u306f\u884c\u308f\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u8cde\u5473\u671f\u9650\u691c\u67fb\u306e\u6709\u7121<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"\u691c\u67fb\u8cbb\u7528\uff1a{shelf}\u5186\uff0f\u56de\u30023\u30f6\u6708\u30fb6\u30f6\u6708\u306a\u3069\u671f\u9593\u3092\u6307\u5b9a\u3057\u3066\u5b9f\u6e2c\u3057\u307e\u3059\u3002\">\u691c\u67fb\u8cbb\u7528\uff1a6,000\u5186\uff0f\u56de\u30023\u30f6\u6708\u30fb6\u30f6\u6708\u306a\u3069\u671f\u9593\u3092\u6307\u5b9a\u3057\u3066\u5b9f\u6e2c\u3057\u307e\u3059\u3002<\/div>\n        <div class=\"toggle-btns\" id=\"sOptShelf\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u691c\u67fb\u3092\u884c\u3046\uff08+6,000\u5186\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u691c\u67fb\u306f\u884c\u308f\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"contact-form light\">\n        <div class=\"contact-title\">\u304a\u898b\u7a4d\u308a\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u3054\u5165\u529b\u304c\u5fc5\u8981\u3067\u3059<\/div>\n        <label class=\"c-label\">\u4f1a\u793e\u540d<\/label>\n        <input type=\"text\" id=\"contactCompanySingle\" placeholder=\"\u682a\u5f0f\u4f1a\u793e\u25ef\u25ef\">\n        <label class=\"c-label\">\u3054\u62c5\u5f53\u8005\u540d<\/label>\n        <input type=\"text\" id=\"contactNameSingle\" placeholder=\"\u5c71\u7530 \u592a\u90ce\">\n        <label class=\"c-label\">\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\uff08\u5fc5\u9808\uff09<\/label>\n        <input type=\"email\" id=\"contactEmailSingle\" placeholder=\"example@company.co.jp\">\n      <\/div>\n\n      <div class=\"btns\">\n        <button class=\"nav secondary\" onclick=\"goStep('stepSingle')\">\u623b\u308b<\/button>\n        <button class=\"nav\" onclick=\"calcSingle()\">\u898b\u7a4d\u308a\u3092\u898b\u308b<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- STEP2: \u30df\u30c3\u30af\u30b9\u30bf\u30a4\u30d7 -->\n    <div class=\"step\" id=\"step2\">\n      <div class=\"h2-style\">Q2. \u30df\u30c3\u30af\u30b9\u306e\u914d\u5408\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044<\/div>\n      <div class=\"step-intro\">\n        \u5f0a\u793e\u3067\u7528\u610f\u3057\u305f\u914d\u5408\u3001\u307e\u305f\u306f\u30aa\u30ea\u30b8\u30ca\u30eb\u914d\u5408\u304b\u3089\u304a\u9078\u3073\u3044\u305f\u3060\u3051\u307e\u3059\u3002\u5f0a\u793e\u3067\u914d\u5408\u6e08\u307f\u306e\u30d6\u30ec\u30f3\u30c95\u7a2e\u306f\u3001\u3042\u3089\u304b\u3058\u3081\u914d\u5408\u3068\u4fa1\u683c\u3092\u56fa\u5b9a\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u304a\u6c42\u3081\u3084\u3059\u3044\u4fa1\u683c\u3068\u306a\u3063\u3066\u304a\u308a\u307e\u3059\u3002\u306a\u304a\u3001\u5f0a\u793e\u3067\u914d\u5408\u6e08\u307f\u306e\u30d6\u30ec\u30f3\u30c9\u306e\u4fa1\u683c\u306b\u306f\u3001\u888b\u4ee3\uff08\u30d1\u30c3\u30b1\u30fc\u30b8\u8cc7\u6750\u4ee3\uff09\u3082\u542b\u307e\u308c\u3066\u304a\u308a\u307e\u3059\u3002\n      <\/div>\n\n      <div class=\"blend-cards\" id=\"blendCards\"><\/div>\n\n      <div class=\"h2-style\" style=\"margin-top:20px;\">\u914d\u5408\u3092\u5927\u304d\u304f\u5909\u66f4\u3057\u305f\u3044\u5834\u5408<\/div>\n      <div class=\"step-intro\" data-fee-tpl-prefix=\"1\">\u914d\u5408\u3092\u5909\u66f4\u3059\u308b\u5834\u5408\u3001\u521d\u56de\u30d6\u30ec\u30f3\u30c9\u521d\u671f\u8cbb\u752815,000\u5186\u306b\u52a0\u3048\u3001\u5c0f\u888b\u8cc7\u6750\u4ee3\u3082\u767a\u751f\u3057\u307e\u3059\u3002\u307e\u305f\u3001\u30d6\u30ec\u30f3\u30c9\u914d\u5408\u306e\u5834\u5408\u306e\u307f\u3001\u30aa\u30ea\u30b8\u30ca\u30eb\u8cc7\u6750\u306e\u6301\u3061\u8fbc\u307f\u3082\u5bfe\u5fdc\u3057\u3066\u304a\u308a\u307e\u3059\u3002<\/div>\n      <div class=\"options\" id=\"q2opts\">\n        <div class=\"opt\" data-value=\"adjust\">\n          <div>\n            <div class=\"title\">\u4e0a\u8a185\u7a2e\u306e\u3044\u305a\u308c\u304b\u3092\u30d9\u30fc\u30b9\u306b\u3001\u914d\u5408\u3092\u4e00\u90e8\u5909\u66f4\u3057\u305f\u3044<\/div>\n            <div class=\"desc\" data-lot-tpl=\"\u6700\u4f4e{base}\u888b\u301c\uff0f\u5bb9\u91cf\u306f60g\u56fa\u5b9a\">\u6700\u4f4e500\u888b\u301c\uff0f\u5bb9\u91cf\u306f60g\u56fa\u5b9a<\/div>\n          <\/div>\n          <div class=\"opt-fee\" data-fee-tpl=\"+{init_fee}\u5186\">+15,000\u5186<\/div>\n        <\/div>\n        <div class=\"opt\" data-value=\"original\">\n          <div>\n            <div class=\"title\">\u5b8c\u5168\u30aa\u30ea\u30b8\u30ca\u30eb\u3067\u914d\u5408\u3092\u4f5c\u308a\u305f\u3044<\/div>\n            <div class=\"desc\" data-lot-tpl=\"\u6700\u4f4e{base}\u888b\u301c\uff0f\u5bb9\u91cf\u306f60g\u56fa\u5b9a\">\u6700\u4f4e500\u888b\u301c\uff0f\u5bb9\u91cf\u306f60g\u56fa\u5b9a<\/div>\n          <\/div>\n          <div class=\"opt-fee\" data-fee-tpl=\"+{init_fee}\u5186\">+15,000\u5186<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"btns\">\n        <button class=\"nav secondary\" onclick=\"goStep('step1')\">\u623b\u308b<\/button>\n        <span><\/span>\n      <\/div>\n    <\/div>\n\n    <!-- STEP2b: \u9078\u3093\u3060\u30d6\u30ec\u30f3\u30c9\u306e\u5bb9\u91cf\u30fb\u6570\u91cf\u5165\u529b -->\n    <div class=\"step\" id=\"stepBlendDetail\">\n      <div class=\"h2-style\" id=\"blendDetailTitle\">\u6570\u91cf\u3092\u9078\u629e<\/div>\n      <div class=\"field-note\">\n        \u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\u306e\u5bb9\u91cf\u306f<strong>60g\u56fa\u5b9a<\/strong>\u3067\u3059\u3002\u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\u306f\u5f0a\u793e\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u306e\u3054\u63d0\u4f9b\u306e\u307f\u3068\u306a\u308a\u307e\u3059\u3002\u6301\u3061\u8fbc\u307f\u8cc7\u6750\u306b\u306f\u5bfe\u5fdc\u3057\u3066\u304a\u308a\u307e\u305b\u3093\u3002\u6301\u3061\u8fbc\u307f\u8cc7\u6750\u3092\u3054\u5e0c\u671b\u306e\u5834\u5408\u306f\u300c\u914d\u5408\u3092\u4e00\u90e8\u5909\u66f4\u3057\u305f\u3044\u300d\u307e\u305f\u306f\u300c\u5b8c\u5168\u30aa\u30ea\u30b8\u30ca\u30eb\u3067\u914d\u5408\u3092\u4f5c\u308a\u305f\u3044\u300d\u304b\u3089\u304a\u9032\u307f\u304f\u3060\u3055\u3044\u3002\n      <\/div>\n\n      <div class=\"package-preview\" id=\"packagePreview\">\n        <img decoding=\"async\"\n          src=\"https:\/\/agriture.jp\/wp-content\/uploads\/2026\/09\/form-package-preview.jpg\"\n          alt=\"\u30d1\u30c3\u30b1\u30fc\u30b8\u30a4\u30e1\u30fc\u30b8\">\n        <div class=\"package-preview-text\">\n          <div class=\"pp-title\">\u4f7f\u7528\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u306f\u3053\u3061\u3089\u306b\u306a\u308a\u307e\u3059<\/div>\n          <div class=\"pp-lead\">\u30c1\u30e3\u30c3\u30af\u4ed8\u304d\u30d5\u30e9\u30c3\u30c8\u30d1\u30a6\u30c1\uff08\u900f\u660e\uff09\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/div>\n          <div id=\"packagePreviewText\"><\/div>\n        <\/div>\n      <\/div>\n\n      <label>\u6570\u91cf\uff08\u888b\uff09<\/label>\n      <input type=\"number\" id=\"blendQty\" placeholder=\"\u6700\u5c0f\u30ed\u30c3\u30c8500\u888b\u304b\u3089\" min=\"500\" step=\"10\" data-lot=\"base\"\n        oninput=\"updateBlendTeikeiWeightCalc()\">\n      <div class=\"weight-calc\" id=\"blendTeikeiWeightCalc\" style=\"display:none;\"><\/div>\n\n      <div class=\"btns\">\n        <button class=\"nav secondary\" onclick=\"goStep('step2')\">\u623b\u308b<\/button>\n        <button class=\"nav\" id=\"blendDetailNext\" onclick=\"goToBlendOptions()\">\u6b21\u3078<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- STEP2c: \u9078\u3093\u3060\u30d6\u30ec\u30f3\u30c9\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u9078\u629e -->\n    <div class=\"step\" id=\"stepBlendOptions\">\n      <div class=\"h2-style\">\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044<\/div>\n      <div class=\"step-intro\">\u5fc5\u8981\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u307f\u304a\u9078\u3073\u304f\u3060\u3055\u3044\u3002\u300c\u5225\u9014\u304a\u898b\u7a4d\u308a\u300d\u306e\u9805\u76ee\u306f\u6982\u7b97\u5408\u8a08\u306b\u306f\u542b\u307e\u308c\u307e\u305b\u3093\u3002<\/div>\n\n      <div class=\"option-category\">\u68b1\u5305\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u30e9\u30d9\u30eb\u30b7\u30fc\u30eb\u8cbc\u4ed8<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"1\u7b87\u6240{label_back}\u5186\uff0f\u88cf\u30e9\u30d9\u30eb\u30821\u7b87\u6240\u3068\u3057\u3066\u8a08\u7b97\u3057\u307e\u3059\">1\u7b87\u624015\u5186\uff0f\u88cf\u30e9\u30d9\u30eb\u30821\u7b87\u6240\u3068\u3057\u3066\u8a08\u7b97\u3057\u307e\u3059<\/div>\n        <div class=\"package-preview\">\n          <img decoding=\"async\"\n            src=\"https:\/\/agriture.jp\/wp-content\/uploads\/2026\/09\/form-label-sample.webp\"\n            alt=\"\u88cf\u30e9\u30d9\u30eb\u306e\u8a18\u8f09\u4f8b\">\n          <div class=\"package-preview-text\">\n            <div class=\"pp-title\">\u88cf\u30e9\u30d9\u30eb\u306e\u8a18\u8f09\u4f8b\u306f\u3053\u3061\u3089\u306b\u306a\u308a\u307e\u3059<\/div>\n            <div>\u540d\u79f0\u30fb\u539f\u6750\u6599\u540d\u30fb\u5185\u5bb9\u91cf\u30fb\u4fdd\u5b58\u65b9\u6cd5\u30fb\u8ca9\u58f2\u8005\u30fb\u88fd\u9020\u8005\u30fb\u6804\u990a\u6210\u5206\u8868\u793a\u30fb\u8cde\u5473\u671f\u9650\u30fb\u30d0\u30fc\u30b3\u30fc\u30c9\u3092\u8a18\u8f09\u3057\u307e\u3059\uff08\u30b5\u30a4\u30ba\u76ee\u5b89\uff1a62\u00d770mm\uff09\u3002\u6587\u8a00\u30fb\u6210\u5206\u5024\u306f\u5b9f\u969b\u306e\u5546\u54c1\u306b\u5408\u308f\u305b\u3066\u4f5c\u6210\u3057\u307e\u3059\u3002<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"toggle-btns wrap\" id=\"bOptLabel\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"none\">\u8cbc\u3089\u306a\u3044<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"back\" data-fee-tpl=\"\u88cf\u9762\u306e\u307f\uff08+{label_back}\u5186\/\u888b\uff09\">\u88cf\u9762\u306e\u307f\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"front\" data-fee-tpl=\"\u8868\u9762\u306e\u307f\uff08+{label_front}\u5186\/\u888b\uff09\">\u8868\u9762\u306e\u307f\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"both\" data-fee-tpl=\"\u8868\u30fb\u88cf\u4e21\u65b9\uff08+{label_both}\u5186\/\u888b\uff09\">\u8868\u30fb\u88cf\u4e21\u65b9\uff08+30\u5186\/\u888b\uff09<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\" id=\"bOptDesignField\">\n        <div class=\"tf-label\">\u30d1\u30c3\u30b1\u30fc\u30b8\u30c7\u30b6\u30a4\u30f3\uff08\u30b7\u30fc\u30eb\uff09<\/div>\n        <div class=\"tf-desc\">1\u30d1\u30bf\u30fc\u30f3\uff0f\u30c7\u30fc\u30bf\u652f\u7d66\u306e\u5834\u5408\u306f\u8cbb\u7528\u4e0d\u8981\u3001\u5f0a\u793e\u30c7\u30b6\u30a4\u30f3\u306e\u5834\u5408\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"bOptDesign\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u30c7\u30b6\u30a4\u30f3\u3092\u4f9d\u983c\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f9d\u983c\u3057\u306a\u3044\uff08\u30c7\u30fc\u30bf\u652f\u7d66\uff09<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u4e7e\u71e5\u5264\uff08\u30b7\u30ea\u30ab\u30b2\u30eb\uff09\u540c\u68b1<\/div>\n        <div class=\"tf-desc\">50\u888b\u301c\u5bfe\u5fdc\uff0f\u8cc7\u6750\u8abf\u9054\u30fb\u540c\u68b1\u4f5c\u696d\u8cbb\u8fbc\u307f\u3002\u91d1\u984d\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"bOptDesiccant\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u540c\u68b1\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u540c\u68b1\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"option-category\">Amazon\u51fa\u54c1\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon FBA\u5009\u5eab\u3078\u306e\u76f4\u9001<\/div>\n        <div class=\"tf-desc\">\u8cb4\u793e\u3054\u8ca0\u62c5\uff0f\u30e9\u30d9\u30eb\u3054\u652f\u7d66\u304b\u30893\u55b6\u696d\u65e5\u4ee5\u5185\u306b\u767a\u9001\u3002\u91d1\u984d\u306f\u8cb4\u793e\u306b\u3066\u5225\u9014\u3054\u8ca0\u62c5<\/div>\n        <div class=\"toggle-btns\" id=\"bOptFbaShip\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">Amazon FBA\u5009\u5eab\u3078\u306e\u76f4\u9001\u3092\u5e0c\u671b\u3059\u308b<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u5e0c\u671b\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon FBA\u7528\u30e9\u30d9\u30eb\u8cbc\u4ed8<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"1\u7b87\u6240{fba_label}\u5186\uff0f\u8cb4\u793e\u767a\u884c\u306e\u30e9\u30d9\u30eb\u3092\u5f0a\u793e\u3067\u8cbc\u4ed8\u3059\u308b\u5834\u5408\">1\u7b87\u624015\u5186\uff0f\u8cb4\u793e\u767a\u884c\u306e\u30e9\u30d9\u30eb\u3092\u5f0a\u793e\u3067\u8cbc\u4ed8\u3059\u308b\u5834\u5408<\/div>\n        <div class=\"toggle-btns\" id=\"bOptFbaLabel\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\" data-fee-tpl=\"\u8cbc\u4ed8\u3092\u4f9d\u983c\u3059\u308b\uff08+{fba_label}\u5186\/\u888b\uff09\">\u8cbc\u4ed8\u3092\u4f9d\u983c\u3059\u308b\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f9d\u983c\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon\u306e\u904b\u55b6\u4ee3\u884c\u30b5\u30fc\u30d3\u30b9\u3092\u4f7f\u7528\u3057\u307e\u3059\u304b\uff1f<\/div>\n        <div class=\"tf-desc\">Amazon\u3067\u306e\u51fa\u54c1\u30fb\u904b\u55b6\u306e\u4ee3\u884c\u3092\u3054\u5e0c\u671b\u306e\u5834\u5408\u306f\u304a\u77e5\u3089\u305b\u304f\u3060\u3055\u3044\u3002\u91d1\u984d\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"bOptAmazonAgency\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u4f7f\u7528\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f7f\u7528\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"option-category\">\u691c\u67fb\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u5fae\u751f\u7269\uff08\u5927\u8178\u83cc\uff09\u691c\u67fb\u306e\u6709\u7121<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"\u691c\u67fb\u8cbb\u7528\uff1a{microbe}\u5186\uff0f\u56de\u3002\u5c0f\u58f2\u8ca9\u58f2\u6642\u306f\u691c\u67fb\u5fc5\u9808\u3067\u3059\u306e\u3067\u3001\u300c\u691c\u67fb\u3092\u884c\u3046\u300d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\">\u691c\u67fb\u8cbb\u7528\uff1a6,000\u5186\uff0f\u56de\u3002\u5c0f\u58f2\u8ca9\u58f2\u6642\u306f\u691c\u67fb\u5fc5\u9808\u3067\u3059\u306e\u3067\u3001\u300c\u691c\u67fb\u3092\u884c\u3046\u300d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/div>\n        <div class=\"toggle-btns\" id=\"bOptMicrobe\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u691c\u67fb\u3092\u884c\u3046\uff08+6,000\u5186\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u691c\u67fb\u306f\u884c\u308f\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u8cde\u5473\u671f\u9650\u691c\u67fb\u306e\u6709\u7121<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"\u691c\u67fb\u8cbb\u7528\uff1a{shelf}\u5186\uff0f\u56de\u30023\u30f6\u6708\u30fb6\u30f6\u6708\u306a\u3069\u671f\u9593\u3092\u6307\u5b9a\u3057\u3066\u5b9f\u6e2c\u3057\u307e\u3059\u3002\">\u691c\u67fb\u8cbb\u7528\uff1a6,000\u5186\uff0f\u56de\u30023\u30f6\u6708\u30fb6\u30f6\u6708\u306a\u3069\u671f\u9593\u3092\u6307\u5b9a\u3057\u3066\u5b9f\u6e2c\u3057\u307e\u3059\u3002<\/div>\n        <div class=\"toggle-btns\" id=\"bOptShelf\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u691c\u67fb\u3092\u884c\u3046\uff08+6,000\u5186\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u691c\u67fb\u306f\u884c\u308f\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"contact-form light\">\n        <div class=\"contact-title\">\u304a\u898b\u7a4d\u308a\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u3054\u5165\u529b\u304c\u5fc5\u8981\u3067\u3059<\/div>\n        <label class=\"c-label\">\u4f1a\u793e\u540d<\/label>\n        <input type=\"text\" id=\"contactCompanyBlend\" placeholder=\"\u682a\u5f0f\u4f1a\u793e\u25ef\u25ef\">\n        <label class=\"c-label\">\u3054\u62c5\u5f53\u8005\u540d<\/label>\n        <input type=\"text\" id=\"contactNameBlend\" placeholder=\"\u5c71\u7530 \u592a\u90ce\">\n        <label class=\"c-label\">\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\uff08\u5fc5\u9808\uff09<\/label>\n        <input type=\"email\" id=\"contactEmailBlend\" placeholder=\"example@company.co.jp\">\n      <\/div>\n\n      <div class=\"btns\">\n        <button class=\"nav secondary\" onclick=\"goStep('stepBlendDetail')\">\u623b\u308b<\/button>\n        <button class=\"nav\" onclick=\"calcBlendDetail()\">\u898b\u7a4d\u308a\u3092\u898b\u308b<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- STEP3-custom (adjust \/ original\u5171\u901a) -->\n    <div class=\"step\" id=\"stepCustom\">\n      <div class=\"h2-style\" id=\"customTitle\">\u914d\u5408\u3092\u8a2d\u8a08\u3059\u308b<\/div>\n      <div id=\"baseBlendWrap\" style=\"display:none;\">\n        <label>\u30d9\u30fc\u30b9\u306b\u3059\u308b\u6a19\u6e96\u30d6\u30ec\u30f3\u30c9<\/label>\n        <select id=\"baseBlend\"><\/select>\n      <\/div>\n      <label>\u914d\u5408\u54c1\u76ee\uff08\u6bd4\u7387\u5408\u8a08100%\u306b\u306a\u308b\u3088\u3046\u306b\u5165\u529b\uff09<\/label>\n      <div class=\"field-note\" id=\"itemCountNote\">\u6700\u592720\u54c1\u76ee\u307e\u3067\u81ea\u7531\u306b\u7d44\u307f\u5408\u308f\u305b\u3066\u914d\u5408\u3044\u305f\u3060\u3051\u307e\u3059\u3002<\/div>\n      <div class=\"field-note\">\u914d\u5408\u6bd4\u7387\u306f<strong>5%\u5358\u4f4d<\/strong>\u3067\u3054\u5165\u529b\u304f\u3060\u3055\u3044\uff08\u4f8b\uff1a30%\u30fb35%\u30fb45%\uff09\u30021%\u5358\u4f4d\u306e\u7d30\u304b\u3044\u8abf\u6574\u306b\u306f\u5bfe\u5fdc\u3057\u3066\u304a\u308a\u307e\u305b\u3093\u3002<\/div>\n\n      <div class=\"ratio-meter\">\n        <div class=\"ratio-meter-head\">\n          <div class=\"ratio-meter-label\">\u914d\u5408\u6bd4\u7387\u306e\u5408\u8a08<\/div>\n          <div class=\"ratio-meter-value ng\" id=\"ratioMeterValue\">0%<\/div>\n        <\/div>\n        <div class=\"ratio-meter-track\">\n          <div class=\"ratio-meter-bar\" id=\"ratioMeterBar\" style=\"width:0%;\"><\/div>\n        <\/div>\n        <div class=\"ratio-meter-warning\" id=\"ratioMeterWarning\"><\/div>\n      <\/div>\n\n      <div id=\"itemRows\"><\/div>\n      <button id=\"addItemBtn\" onclick=\"addItemRow()\">\uff0b \u54c1\u76ee\u3092\u8ffd\u52a0<\/button>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u30d1\u30c3\u30b1\u30fc\u30b8\u8cc7\u6750<\/div>\n        <div class=\"tf-desc\">\u5f0a\u793e\u3067\u30d1\u30a6\u30c1\u3092\u3054\u7528\u610f\u3059\u308b\u304b\u3001\u8cb4\u793e\u3067\u8cc7\u6750\u3092\u304a\u6301\u3061\u8fbc\u307f\u3044\u305f\u3060\u304f\u304b\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044<\/div>\n        <div class=\"toggle-btns\" id=\"customMaterialSource\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u5f0a\u793e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u7528\uff08\u6709\u6599\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u8cc7\u6750\u3092\u6301\u3061\u8fbc\u3080<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"package-preview\" id=\"customPackagePreview\">\n        <img decoding=\"async\"\n          src=\"https:\/\/agriture.jp\/wp-content\/uploads\/2026\/09\/form-package-preview.jpg\"\n          alt=\"\u30d1\u30c3\u30b1\u30fc\u30b8\u30a4\u30e1\u30fc\u30b8\">\n        <div class=\"package-preview-text\">\n          <div class=\"pp-title\">\u4f7f\u7528\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u306f\u3053\u3061\u3089\u306b\u306a\u308a\u307e\u3059<\/div>\n          <div class=\"pp-lead\">\u30c1\u30e3\u30c3\u30af\u4ed8\u304d\u30d5\u30e9\u30c3\u30c8\u30d1\u30a6\u30c1\uff08\u900f\u660e\uff09\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/div>\n          <div id=\"customPackagePreviewText\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"package-preview\" id=\"customOwnMaterialNotice\" style=\"display:none;\">\n        <div class=\"package-preview-text\">\n          <div class=\"pp-title\">\u8cc7\u6750\u306e\u304a\u6301\u3061\u8fbc\u307f\u306b\u3064\u3044\u3066<\/div>\n          <ul class=\"own-material-list\">\n            <li><strong>\u6700\u4f4e60g\u304c\u5165\u308b\u888b\u3092\u3054\u7528\u610f\u304f\u3060\u3055\u3044\u3002<\/strong><\/li>\n            <li>\u4e00\u5ea6\u3001\u5b9f\u969b\u306e\u888b\u3092\u5f0a\u793e\u307e\u3067\u304a\u9001\u308a\u3044\u305f\u3060\u304d\u3001\u30b5\u30f3\u30d7\u30eb\u306b\u3066\u5bfe\u5fdc\u53ef\u5426\u3092\u78ba\u8a8d\u3055\u305b\u3066\u3044\u305f\u3060\u304f\u5fc5\u8981\u304c\u3054\u3056\u3044\u307e\u3059\u3002<\/li>\n            <li>\n              \u5bb9\u91cf\uff08g\uff09\u306e\u6b04\u306b\u306f\u3001<strong>\u6301\u3061\u8fbc\u307e\u308c\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u5165\u308b\u3060\u3051\u306e\u5185\u5bb9\u91cf<\/strong>\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002\u76ee\u5b89\u3068\u3057\u3066\u3001\u5916\u5bf8160\u00d7230\uff08210\uff09mm\u306e\u888b\u306760\u301c80g\u7a0b\u5ea6\u5165\u308a\u307e\u3059\u3002\u888b\u306e\u30b5\u30a4\u30ba\u304b\u3089\u9006\u7b97\u306e\u3046\u3048\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002\n            <\/li>\n          <\/ul>\n          <label style=\"margin-top:10px;\">\u304a\u9001\u308a\u3044\u305f\u3060\u304f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u753b\u50cf\u30fb\u4ed5\u69d8\u306eURL\uff08\u5fc5\u9808\uff09<\/label>\n          <div class=\"field-note\">\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5199\u771f\u3084\u4ed5\u69d8\u66f8\u3092\u78ba\u8a8d\u3067\u304d\u308b\u30ea\u30f3\u30af\uff08Google\u30c9\u30e9\u30a4\u30d6\u30fb\u5171\u6709\u30d5\u30a9\u30eb\u30c0\u306a\u3069\uff09\u304c\u3042\u308c\u3070\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002<\/div>\n          <input type=\"url\" id=\"customPackageLinkUrl\" placeholder=\"https:\/\/...\" required=\"\">\n        <\/div>\n      <\/div>\n\n      <label>\u5bb9\u91cf\uff08g\uff09<\/label>\n      <div class=\"field-note\" id=\"customWeightNote\"><\/div>\n      <input type=\"number\" id=\"customWeight\" value=\"60\" min=\"60\" step=\"1\"\n        oninput=\"updateWeightCalc('custom'); updateCustomPackagePreview();\">\n\n      <label data-lot-tpl=\"\u6570\u91cf\uff08\u888b\uff09\u203b\u6700\u4f4e{base}\u888b\u301c\">\u6570\u91cf\uff08\u888b\uff09\u203b\u6700\u4f4e500\u888b\u301c<\/label>\n      <input type=\"number\" id=\"customQty\" placeholder=\"\u6700\u5c0f\u30ed\u30c3\u30c8500\u888b\u304b\u3089\" min=\"500\" step=\"10\" data-lot=\"base\"\n        oninput=\"updateWeightCalc('custom')\">\n      <div class=\"weight-calc\" id=\"customWeightCalc\" style=\"display:none;\"><\/div>\n\n      <div class=\"option-category\">\u68b1\u5305\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u30e9\u30d9\u30eb\u30b7\u30fc\u30eb\u8cbc\u4ed8<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"1\u7b87\u6240{label_back}\u5186\uff0f\u88cf\u30e9\u30d9\u30eb\u30821\u7b87\u6240\u3068\u3057\u3066\u8a08\u7b97\u3057\u307e\u3059\">1\u7b87\u624015\u5186\uff0f\u88cf\u30e9\u30d9\u30eb\u30821\u7b87\u6240\u3068\u3057\u3066\u8a08\u7b97\u3057\u307e\u3059<\/div>\n        <div class=\"package-preview\">\n          <img decoding=\"async\"\n            src=\"https:\/\/agriture.jp\/wp-content\/uploads\/2026\/09\/form-label-sample.webp\"\n            alt=\"\u88cf\u30e9\u30d9\u30eb\u306e\u8a18\u8f09\u4f8b\">\n          <div class=\"package-preview-text\">\n            <div class=\"pp-title\">\u88cf\u30e9\u30d9\u30eb\u306e\u8a18\u8f09\u4f8b\u306f\u3053\u3061\u3089\u306b\u306a\u308a\u307e\u3059<\/div>\n            <div>\u540d\u79f0\u30fb\u539f\u6750\u6599\u540d\u30fb\u5185\u5bb9\u91cf\u30fb\u4fdd\u5b58\u65b9\u6cd5\u30fb\u8ca9\u58f2\u8005\u30fb\u88fd\u9020\u8005\u30fb\u6804\u990a\u6210\u5206\u8868\u793a\u30fb\u8cde\u5473\u671f\u9650\u30fb\u30d0\u30fc\u30b3\u30fc\u30c9\u3092\u8a18\u8f09\u3057\u307e\u3059\uff08\u30b5\u30a4\u30ba\u76ee\u5b89\uff1a62\u00d770mm\uff09\u3002\u6587\u8a00\u30fb\u6210\u5206\u5024\u306f\u5b9f\u969b\u306e\u5546\u54c1\u306b\u5408\u308f\u305b\u3066\u4f5c\u6210\u3057\u307e\u3059\u3002<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"toggle-btns wrap\" id=\"optLabel\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"none\">\u8cbc\u3089\u306a\u3044<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"back\" data-fee-tpl=\"\u88cf\u9762\u306e\u307f\uff08+{label_back}\u5186\/\u888b\uff09\">\u88cf\u9762\u306e\u307f\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"front\" data-fee-tpl=\"\u8868\u9762\u306e\u307f\uff08+{label_front}\u5186\/\u888b\uff09\">\u8868\u9762\u306e\u307f\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"both\" data-fee-tpl=\"\u8868\u30fb\u88cf\u4e21\u65b9\uff08+{label_both}\u5186\/\u888b\uff09\">\u8868\u30fb\u88cf\u4e21\u65b9\uff08+30\u5186\/\u888b\uff09<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\" id=\"optDesignField\">\n        <div class=\"tf-label\">\u30d1\u30c3\u30b1\u30fc\u30b8\u30c7\u30b6\u30a4\u30f3\uff08\u30b7\u30fc\u30eb\uff09<\/div>\n        <div class=\"tf-desc\">1\u30d1\u30bf\u30fc\u30f3\uff0f\u30c7\u30fc\u30bf\u652f\u7d66\u306e\u5834\u5408\u306f\u8cbb\u7528\u4e0d\u8981\u3001\u5f0a\u793e\u30c7\u30b6\u30a4\u30f3\u306e\u5834\u5408\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"optDesign\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u30c7\u30b6\u30a4\u30f3\u3092\u4f9d\u983c\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f9d\u983c\u3057\u306a\u3044\uff08\u30c7\u30fc\u30bf\u652f\u7d66\uff09<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u4e7e\u71e5\u5264\uff08\u30b7\u30ea\u30ab\u30b2\u30eb\uff09\u540c\u68b1<\/div>\n        <div class=\"tf-desc\">50\u888b\u301c\u5bfe\u5fdc\uff0f\u8cc7\u6750\u8abf\u9054\u30fb\u540c\u68b1\u4f5c\u696d\u8cbb\u8fbc\u307f\u3002\u91d1\u984d\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"optDesiccant\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u540c\u68b1\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u540c\u68b1\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"option-category\">Amazon\u51fa\u54c1\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon FBA\u5009\u5eab\u3078\u306e\u76f4\u9001<\/div>\n        <div class=\"tf-desc\">\u8cb4\u793e\u3054\u8ca0\u62c5\uff0f\u30e9\u30d9\u30eb\u3054\u652f\u7d66\u304b\u30893\u55b6\u696d\u65e5\u4ee5\u5185\u306b\u767a\u9001\u3002\u91d1\u984d\u306f\u8cb4\u793e\u306b\u3066\u5225\u9014\u3054\u8ca0\u62c5<\/div>\n        <div class=\"toggle-btns\" id=\"optFbaShip\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">Amazon FBA\u5009\u5eab\u3078\u306e\u76f4\u9001\u3092\u5e0c\u671b\u3059\u308b<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u5e0c\u671b\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon FBA\u7528\u30e9\u30d9\u30eb\u8cbc\u4ed8<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"1\u7b87\u6240{fba_label}\u5186\uff0f\u8cb4\u793e\u767a\u884c\u306e\u30e9\u30d9\u30eb\u3092\u5f0a\u793e\u3067\u8cbc\u4ed8\u3059\u308b\u5834\u5408\">1\u7b87\u624015\u5186\uff0f\u8cb4\u793e\u767a\u884c\u306e\u30e9\u30d9\u30eb\u3092\u5f0a\u793e\u3067\u8cbc\u4ed8\u3059\u308b\u5834\u5408<\/div>\n        <div class=\"toggle-btns\" id=\"optFbaLabel\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\" data-fee-tpl=\"\u8cbc\u4ed8\u3092\u4f9d\u983c\u3059\u308b\uff08+{fba_label}\u5186\/\u888b\uff09\">\u8cbc\u4ed8\u3092\u4f9d\u983c\u3059\u308b\uff08+15\u5186\/\u888b\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f9d\u983c\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">Amazon\u306e\u904b\u55b6\u4ee3\u884c\u30b5\u30fc\u30d3\u30b9\u3092\u4f7f\u7528\u3057\u307e\u3059\u304b\uff1f<\/div>\n        <div class=\"tf-desc\">Amazon\u3067\u306e\u51fa\u54c1\u30fb\u904b\u55b6\u306e\u4ee3\u884c\u3092\u3054\u5e0c\u671b\u306e\u5834\u5408\u306f\u304a\u77e5\u3089\u305b\u304f\u3060\u3055\u3044\u3002\u91d1\u984d\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a<\/div>\n        <div class=\"toggle-btns\" id=\"optAmazonAgency\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u4f7f\u7528\u3059\u308b\uff08\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u4f7f\u7528\u3057\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"option-category\">\u691c\u67fb\u30aa\u30d7\u30b7\u30e7\u30f3<\/div>\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u5fae\u751f\u7269\uff08\u5927\u8178\u83cc\uff09\u691c\u67fb\u306e\u6709\u7121<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"\u691c\u67fb\u8cbb\u7528\uff1a{microbe}\u5186\uff0f\u56de\u3002\u5c0f\u58f2\u8ca9\u58f2\u6642\u306f\u691c\u67fb\u5fc5\u9808\u3067\u3059\u306e\u3067\u3001\u300c\u691c\u67fb\u3092\u884c\u3046\u300d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\">\u691c\u67fb\u8cbb\u7528\uff1a6,000\u5186\uff0f\u56de\u3002\u5c0f\u58f2\u8ca9\u58f2\u6642\u306f\u691c\u67fb\u5fc5\u9808\u3067\u3059\u306e\u3067\u3001\u300c\u691c\u67fb\u3092\u884c\u3046\u300d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/div>\n        <div class=\"toggle-btns\" id=\"optMicrobe\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u691c\u67fb\u3092\u884c\u3046\uff08+6,000\u5186\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u691c\u67fb\u306f\u884c\u308f\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-field\">\n        <div class=\"tf-label\">\u8cde\u5473\u671f\u9650\u691c\u67fb\u306e\u6709\u7121<\/div>\n        <div class=\"tf-desc\" data-fee-tpl=\"\u691c\u67fb\u8cbb\u7528\uff1a{shelf}\u5186\uff0f\u56de\u30023\u30f6\u6708\u30fb6\u30f6\u6708\u306a\u3069\u671f\u9593\u3092\u6307\u5b9a\u3057\u3066\u5b9f\u6e2c\u3057\u307e\u3059\u3002\">\u691c\u67fb\u8cbb\u7528\uff1a6,000\u5186\uff0f\u56de\u30023\u30f6\u6708\u30fb6\u30f6\u6708\u306a\u3069\u671f\u9593\u3092\u6307\u5b9a\u3057\u3066\u5b9f\u6e2c\u3057\u307e\u3059\u3002<\/div>\n        <div class=\"toggle-btns\" id=\"optShelf\">\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"true\">\u691c\u67fb\u3092\u884c\u3046\uff08+6,000\u5186\uff09<\/button>\n          <button type=\"button\" class=\"toggle-btn\" data-on=\"false\">\u691c\u67fb\u306f\u884c\u308f\u306a\u3044<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"notice-important\">\n        <div class=\"ni-title\">\u25a0 \u91cd\u8981\u4e8b\u9805\uff08\u5fc5\u305a\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\uff09<\/div>\n        <div class=\"ni-body\">\n          \u521d\u56de\u30d6\u30ec\u30f3\u30c9\u521d\u671f\u8cbb\u7528\u3068\u3057\u3066<strong data-fee-tpl=\"{init_fee}\u5186\">15,000\u5186<\/strong>\uff08\u521d\u56de\u306e\u307f\u30fb\u914d\u5408\u8a2d\u8a08\uff0f\u8a66\u4f5c\u8cbb\u7528\uff09\u304c\u5225\u9014\u304b\u304b\u308a\u307e\u3059\u3002<br>\n          \u6700\u4f4e\u30ed\u30c3\u30c8<strong data-lot-tpl=\"{base}\u888b\u301c\">500\u888b\u301c<\/strong>\uff08\u5bb9\u91cf\u306f\u554f\u3044\u307e\u305b\u3093\uff09\u3002<br>\n          \u300c\u5225\u9014\u304a\u898b\u7a4d\u308a\u300d\u9805\u76ee\u306f\u6982\u7b97\u5408\u8a08\u306b\u306f\u542b\u307e\u308c\u307e\u305b\u3093\u3002\n        <\/div>\n      <\/div>\n\n      <div class=\"contact-form light\">\n        <div class=\"contact-title\">\u304a\u898b\u7a4d\u308a\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u3054\u5165\u529b\u304c\u5fc5\u8981\u3067\u3059<\/div>\n        <label class=\"c-label\">\u4f1a\u793e\u540d<\/label>\n        <input type=\"text\" id=\"contactCompanyCustom\" placeholder=\"\u682a\u5f0f\u4f1a\u793e\u25ef\u25ef\">\n        <label class=\"c-label\">\u3054\u62c5\u5f53\u8005\u540d<\/label>\n        <input type=\"text\" id=\"contactNameCustom\" placeholder=\"\u5c71\u7530 \u592a\u90ce\">\n        <label class=\"c-label\">\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\uff08\u5fc5\u9808\uff09<\/label>\n        <input type=\"email\" id=\"contactEmailCustom\" placeholder=\"example@company.co.jp\">\n      <\/div>\n\n      <div class=\"btns\">\n        <button class=\"nav secondary\" onclick=\"goStep('step2')\">\u623b\u308b<\/button>\n        <button class=\"nav\" onclick=\"calcCustom()\">\u898b\u7a4d\u308a\u3092\u898b\u308b<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- RESULT -->\n    <div class=\"step result\" id=\"stepResult\">\n      <div class=\"h2-style\">\u304a\u898b\u7a4d\u308a\u7d50\u679c\uff08\u6982\u7b97\u30fb\u7a0e\u629c\uff09<\/div>\n\n      <div class=\"result-product\">\n        <span class=\"badge\" id=\"resultBadge\"><\/span>\n        <div class=\"result-product-name\" id=\"resultProductName\"><\/div>\n        <div class=\"result-product-ratio\" id=\"resultProductRatio\" style=\"display:none;\">\n          <div class=\"result-product-ratio-label\">\u914d\u5408\u5185\u5bb9<\/div>\n          <div id=\"resultProductRatioText\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"price-main\" id=\"resultMain\"><\/div>\n      <div class=\"breakdown\" id=\"resultBreakdown\"><\/div>\n      <div class=\"notice\" id=\"resultNotice\"><\/div>\n\n      <div class=\"notice\" id=\"submitStatus\" style=\"display:none;\"><\/div>\n\n      <button class=\"cta-btn\" id=\"submitEstimateBtn\" onclick=\"submitEstimate()\">\u3053\u306e\u5185\u5bb9\u3067\u767a\u6ce8\u76f8\u8ac7\u3059\u308b<\/button>\n\n      <div class=\"restart\">\n        <button class=\"nav secondary\" id=\"resultBackBtn\">\u623b\u308b<\/button>\n        <button class=\"nav secondary\" onclick=\"location.reload()\">\u6700\u521d\u304b\u3089\u3084\u308a\u76f4\u3059<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n\n    \/\/ ===== \u30de\u30b9\u30bf\u30c7\u30fc\u30bf =====\n    const ITEMS = [\n      { name: \"\u30ad\u30e3\u30d9\u30c4\uff08\u9e7f\u5150\u5cf6\uff09\", price: 4000 },\n      { name: \"\u30ad\u30e3\u30d9\u30c4\uff08\u4e09\u91cd\/\u611b\u77e5\uff09\", price: 6720 },\n      { name: \"\u5c0f\u677e\u83dc\", price: 9600 },\n      { name: \"\u30d6\u30ed\u30c3\u30b3\u30ea\u30fc\uff08\u623f\uff09\", price: 10400 },\n      { name: \"\u4eba\u53c2\", price: 5760 },\n      { name: \"\u3054\u307c\u3046\uff08\u9752\u68ee\/\u7fa4\u99ac\uff09\", price: 7040 },\n      { name: \"\u84ee\u6839\", price: 9600 },\n      { name: \"\u3054\u307c\u3046\uff08\u4eac\u90fd\u30fb\u3055\u3055\u304c\u304d\uff09\", price: 12710 },\n      { name: \"\u30aa\u30e9\u30f3\u30b8\u30a7\u4eba\u53c2\", price: 12710 },\n      { name: \"\u4eac\u304f\u308c\u306a\u3044\u4eba\u53c2\", price: 12710 },\n      { name: \"\u91d1\u6642\u4eba\u53c2\", price: 12710 },\n      { name: \"\u8056\u8b77\u9662\u5927\u6839\", price: 12710 },\n      { name: \"\u306b\u3093\u306b\u304f\", price: 12000 },\n      { name: \"\u7389\u306d\u304e\", price: 12710 },\n      { name: \"\u9752\u306d\u304e\", price: 14400 },\n      { name: \"\u4e5d\u6761\u306d\u304e\", price: 19000 },\n      { name: \"\u3048\u306e\u304d \u30db\u30ef\u30a4\u30c8\uff08\u672a\u30ab\u30c3\u30c8\uff09\", price: 7520 },\n      { name: \"\u3048\u306e\u304d \u30db\u30ef\u30a4\u30c8\uff0820mm\uff09\", price: 8000 },\n      { name: \"\u3048\u306e\u304d \u30db\u30ef\u30a4\u30c8\uff085mm\uff09\", price: 8800 },\n      { name: \"\u3048\u306e\u304d \u30d6\u30e9\u30a6\u30f3\uff08\u672a\u30ab\u30c3\u30c8\uff09\", price: 9120 },\n      { name: \"\u3048\u306e\u304d \u30d6\u30e9\u30a6\u30f3\uff0820mm\uff09\", price: 9600 },\n      { name: \"\u3048\u306e\u304d \u30d6\u30e9\u30a6\u30f3\uff085mm\uff09\", price: 10400 },\n      { name: \"\u690e\u8338\u30b9\u30e9\u30a4\u30b9 \u83cc\u5e8a\", price: 12000 },\n      { name: \"\u690e\u8338\u30b9\u30e9\u30a4\u30b9 \u9078\u5225\u54c1\u83cc\u5e8a\", price: 12800 },\n      { name: \"\u304b\u307c\u3061\u3083\", price: 5120 },\n      { name: \"\u30c8\u30de\u30c8\u30d5\u30ec\u30fc\u30af\", price: 6720 },\n      { name: \"\u30c8\u30de\u30c8\", price: 7200 },\n      { name: \"\u3088\u3082\u304e\u4e7e\u71e5\u8449\", price: 5940 },\n      { name: \"\u30e2\u30ea\u30f3\u30ac\", price: 8570 },\n      { name: \"\u30ec\u30e2\u30f3\", price: 7380 },\n      { name: \"\u30b7\u30fc\u30af\u30ef\u30fc\u30b5\u30fc\", price: 7680 },\n      { name: \"\u67da\u5b50\", price: 8570 },\n      { name: \"\u307f\u304b\u3093\", price: 24000 },\n      { name: \"\u308a\u3093\u3054\uff08\u30b9\u30c6\u30a3\u30c3\u30af\uff09\", price: 12800 },\n      { name: \"\u308a\u3093\u3054\uff08\u30c0\u30a4\u30b9\uff09\", price: 13710 },\n    ];\n\n    const BLENDS_ANALOG = [\n      {\n        no: \"No.01\", name: \"\u5473\u564c\u6c41\u306e\u5177\u30df\u30c3\u30af\u30b9\",\n        ratio: { \"\u30ad\u30e3\u30d9\u30c4\uff08\u9e7f\u5150\u5cf6\uff09\": 35, \"\u4eba\u53c2\": 25, \"\u3054\u307c\u3046\uff08\u9752\u68ee\/\u7fa4\u99ac\uff09\": 15, \"\u5c0f\u677e\u83dc\": 15, \"\u304b\u307c\u3061\u3083\": 10 },\n        price: { 500: 471, 1000: 427 }\n      },\n      {\n        no: \"No.02\", name: \"\u8c5a\u6c41\u30fb\u3051\u3093\u3061\u3093\u6c41\u30df\u30c3\u30af\u30b9\",\n        ratio: { \"\u3054\u307c\u3046\uff08\u9752\u68ee\/\u7fa4\u99ac\uff09\": 25, \"\u4eba\u53c2\": 25, \"\u84ee\u6839\": 20, \"\u30ad\u30e3\u30d9\u30c4\uff08\u9e7f\u5150\u5cf6\uff09\": 20, \"\u304b\u307c\u3061\u3083\": 10 },\n        price: { 500: 506, 1000: 458 }\n      },\n      {\n        no: \"No.03\", name: \"\u91ce\u83dc\u30b9\u30fc\u30d7\u30fb\u30dd\u30c8\u30d5\u30df\u30c3\u30af\u30b9\",\n        ratio: { \"\u30ad\u30e3\u30d9\u30c4\uff08\u9e7f\u5150\u5cf6\uff09\": 30, \"\u4eba\u53c2\": 20, \"\u5c0f\u677e\u83dc\": 15, \"\u30d6\u30ed\u30c3\u30b3\u30ea\u30fc\uff08\u623f\uff09\": 15, \"\u84ee\u6839\": 10, \"\u304b\u307c\u3061\u3083\": 10 },\n        price: { 500: 529, 1000: 478 }\n      },\n      {\n        no: \"No.04\", name: \"\u304d\u306e\u3053\u5165\u308a \u65e8\u307f\u30df\u30c3\u30af\u30b9\",\n        ratio: { \"\u3048\u306e\u304d \u30db\u30ef\u30a4\u30c8\uff08\u672a\u30ab\u30c3\u30c8\uff09\": 25, \"\u690e\u8338\u30b9\u30e9\u30a4\u30b9 \u83cc\u5e8a\": 15, \"\u30ad\u30e3\u30d9\u30c4\uff08\u9e7f\u5150\u5cf6\uff09\": 30, \"\u4eba\u53c2\": 15, \"\u3054\u307c\u3046\uff08\u9752\u68ee\/\u7fa4\u99ac\uff09\": 15 },\n        price: { 500: 547, 1000: 494 }\n      },\n      {\n        no: \"No.05\", name: \"\u30b3\u30b9\u30c8\u91cd\u8996\u30df\u30c3\u30af\u30b9\",\n        ratio: { \"\u30ad\u30e3\u30d9\u30c4\uff08\u9e7f\u5150\u5cf6\uff09\": 40, \"\u4eba\u53c2\": 30, \"\u3054\u307c\u3046\uff08\u9752\u68ee\/\u7fa4\u99ac\uff09\": 15, \"\u304b\u307c\u3061\u3083\": 15 },\n        price: { 500: 429, 1000: 390 }\n      },\n    ];\n\n    const BAG_COST = 50; \/\/ \u5186\/\u888b\uff08\u30c1\u30e3\u30c3\u30af\u900f\u660eCP\u5e73\u888b \u8efd\u91cf\u7269\u5411 170\u00d7260\u30fb60g\u7528\uff09\n    const PACKAGE_NAME = '\u30c1\u30e3\u30c3\u30af\u900f\u660eCP\u5e73\u888b \u8efd\u91cf\u7269\u5411';\n    const PACKAGE_SIZE = '170\u00d7260mm';\n    const FIXED_WEIGHT = 60; \/\/ \u5f0a\u793e\u30d1\u30c3\u30b1\u30fc\u30b8\u3054\u5229\u7528\u6642\u306e\u56fa\u5b9a\u5bb9\u91cf(g)\n    \/\/ \u76f4\u66f8\u304d\u306e\u30d7\u30ea\u30bb\u30c3\u30c8\u3092\u3001\u5546\u54c1\u30de\u30b9\u30bf\u7531\u6765\u3068\u540c\u3058\u5f62\u306b\u63c3\u3048\u308b\uff08\u53d6\u5f97\u5931\u6557\u6642\u306e\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\uff09\n    let BLENDS = BLENDS_ANALOG.map(b => ({\n      no: b.no, name: b.name,\n      ratio: Object.entries(b.ratio).map(([label, pct]) => ({ label, pct, key: '' })),\n      weight: 60, minQty: 500, basePrice: b.price[500], discountQty: 1000, discountPrice: b.price[1000],\n    }));\n    function blendRatioText(blend) { return blend.ratio.map(r => r.label + ' ' + r.pct + '%').join('\uff0f'); }\n    function blendUnitPrice(blend, qty) {\n      const useDiscount = !blend.discountQty ? false : qty >= blend.discountQty;\n      return useDiscount ? blend.discountPrice : blend.basePrice;\n    }\n    const FILL_COST = 75; \/\/ \u5186\/\u888b \u888b\u8a70\u3081\uff08\u30df\u30c3\u30af\u30b9\u5145\u586b\uff09g\u6570\u3092\u554f\u308f\u305a\u5747\u4e00\u3010\u4e7e\u71e5\u91ce\u83dc\u30df\u30c3\u30af\u30b9\u6599\u91d1\u8868 2026-09-14\u3011\n    let LABEL_COST = 15; \/\/ \u30e9\u30d9\u30eb\u30b7\u30fc\u30eb\u8cbc\u4ed8 \u5186\/\u7b87\u6240\uff08\u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf\u3067\u4e0a\u66f8\u304d\uff09\n    let FBA_LABEL_COST = 15; \/\/ FBA\u30e9\u30d9\u30eb\u8cbc\u4ed8\uff08\u30b7\u30fc\u30eb1\u7b87\u6240\uff09\u3002\u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf fba_label \u3067\u4e0a\u66f8\u304d\n    const INIT_FEE = 15000; \/\/ \u521d\u56de\u30d6\u30ec\u30f3\u30c9\u521d\u671f\u8cbb\u7528\uff08\u521d\u56de\u306e\u307f\uff09\u3010\u540c\u4e0a\u3011\n    let SHIP_FEE = 300; \/\/ \u767a\u9001\u4f5c\u696d 1\u4ef6\u3042\u305f\u308a\uff08\u9001\u6599\u306f\u5225\u9014\u5b9f\u8cbb\uff09\u3002\u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf ship_work \u3067\u4e0a\u66f8\u304d\n    const BRING_FEE = 5000; \/\/ \u8cc7\u6750\u6301\u3061\u8fbc\u307f\uff08\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u30b7\u30fc\u30eb\u3092\u3054\u652f\u7d66\u306e\u5834\u5408\uff09\u3010\u540c\u4e0a\u3011\n    let MICROBE_FEE = 6000; \/\/ \u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf\u3067\u4e0a\u66f8\u304d\n    let SHELF_FEE = 6000; \/\/ \u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf\u3067\u4e0a\u66f8\u304d\n    const BULK_DISCOUNT_RATE = 0.875; \/\/ 1,000\u888b\u4ee5\u4e0a\uff1a\u539f\u6599\u8cbb\u306e\u307f87.5%\uff08\u5b9f\u7e3e\u5024\u304b\u3089\u691c\u8a3c\u6e08\u307f\uff09\n\n    \/\/ ===== \u6570\u91cf\u53d6\u5f97 =====\n    const QTY_INPUT_ID = { single: 'singleQty', custom: 'customQty', blendTeikei: 'blendQty' };\n    function getQty(prefix) {\n      return parseInt(document.getElementById(QTY_INPUT_ID[prefix]).value) || 0;\n    }\n\n    \/\/ ===== \u30c8\u30b0\u30eb\u30dc\u30bf\u30f3\u5171\u901a\u51e6\u7406 =====\n    \/\/ defaultValue: true\/false\u306e\u5834\u5408\u306f\u771f\u507d\u30c8\u30b0\u30eb\u3001\u6587\u5b57\u5217\u306e\u5834\u5408\u306f\u305d\u306e\u5024\u3092\u521d\u671f\u9078\u629e\u3059\u308b\u591a\u629e\u30c8\u30b0\u30eb\u3068\u3057\u3066\u6271\u3046\n    function initToggle(id, defaultValue) {\n      const wrap = document.getElementById(id);\n      const btns = wrap.querySelectorAll('.toggle-btn');\n      wrap.dataset.value = (typeof defaultValue === 'boolean') ? (defaultValue ? 'true' : 'false') : defaultValue;\n      btns.forEach(b => {\n        b.classList.toggle('on', b.dataset.on === wrap.dataset.value);\n        b.addEventListener('click', () => {\n          wrap.dataset.value = b.dataset.on;\n          btns.forEach(x => x.classList.toggle('on', x.dataset.on === wrap.dataset.value));\n          wrap.dispatchEvent(new Event('change'));\n        });\n      });\n    }\n    function toggleValue(id) {\n      return document.getElementById(id).dataset.value === 'true';\n    }\n    ['optDesiccant', 'optDesign', 'optFbaShip', 'optFbaLabel', 'optAmazonAgency', 'optMicrobe', 'optShelf',\n      'bOptDesiccant', 'bOptDesign', 'bOptFbaShip', 'bOptFbaLabel', 'bOptAmazonAgency', 'bOptMicrobe', 'bOptShelf',\n      'sOptDesiccant', 'sOptDesign', 'sOptFbaShip', 'sOptFbaLabel', 'sOptAmazonAgency', 'sOptMicrobe', 'sOptShelf'].forEach(id => {\n        if (document.getElementById(id)) initToggle(id, true);\n      });\n    ['optLabel', 'bOptLabel', 'sOptLabel'].forEach(id => {\n      if (document.getElementById(id)) initToggle(id, 'both');\n    });\n    function labelSideValue(id) {\n      return document.getElementById(id).dataset.value; \/\/ 'none' | 'back' | 'front' | 'both'\n    }\n    \/\/ prefix('' | 'b' | 's') \u304b\u3089\u5b9f\u969b\u306e\u8981\u7d20ID\u63a5\u982d\u8f9e\u3092\u4f5c\u308b\u3002\u7a7a\u6587\u5b57\u306e\u5834\u5408\u306f\u5148\u982d\u3092\u5c0f\u6587\u5b57\u306e\"opt\"\u306b\u3059\u308b\n    function optId(prefix, suffix) {\n      return prefix ? (prefix + 'Opt' + suffix) : ('opt' + suffix);\n    }\n    \/\/ \u8868\u9762\u306b\u30e9\u30d9\u30eb\u3092\u8cbc\u308b\u5834\u5408\uff08front\/both\uff09\u306e\u307f\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u30c7\u30b6\u30a4\u30f3\u9805\u76ee\u3092\u8868\u793a\u3059\u308b\n    ['', 'b', 's'].forEach(prefix => {\n      const labelWrap = document.getElementById(optId(prefix, 'Label'));\n      const designField = document.getElementById(optId(prefix, 'DesignField'));\n      if (!labelWrap || !designField) return;\n      const syncDesignField = () => {\n        const side = labelSideValue(optId(prefix, 'Label'));\n        const showDesign = (side === 'front' || side === 'both');\n        designField.style.display = showDesign ? 'block' : 'none';\n        if (!showDesign) {\n          const designWrap = document.getElementById(optId(prefix, 'Design'));\n          designWrap.dataset.value = 'false';\n          designWrap.querySelectorAll('.toggle-btn').forEach(b => b.classList.toggle('on', b.dataset.on === 'false'));\n        }\n      };\n      labelWrap.addEventListener('change', syncDesignField);\n      syncDesignField();\n    });\n    const LABEL_SIDE_TEXT = { back: '\u88cf\u9762\u306e\u307f', front: '\u8868\u9762\u306e\u307f', both: '\u8868\u30fb\u88cf\u4e21\u65b9' };\n    function collectToggleOptions(prefix) {\n      const labelSide = labelSideValue(optId(prefix, 'Label'));\n      return {\n        labelSide,\n        label: labelSide !== 'none',\n        desiccant: toggleValue(optId(prefix, 'Desiccant')),\n        design: toggleValue(optId(prefix, 'Design')),\n        fbaShip: toggleValue(optId(prefix, 'FbaShip')),\n        fbaLabel: toggleValue(optId(prefix, 'FbaLabel')),\n        amazonAgency: toggleValue(optId(prefix, 'AmazonAgency')),\n        microbe: toggleValue(optId(prefix, 'Microbe')),\n        shelf: toggleValue(optId(prefix, 'Shelf')),\n      };\n    }\n    function optionLines(opt) {\n      const lines = [];\n      if (opt.label) lines.push([`\u30e9\u30d9\u30eb\u30b7\u30fc\u30eb\u8cbc\u4ed8\uff08${LABEL_SIDE_TEXT[opt.labelSide]}\u30fb1\u888b\u3042\u305f\u308a\uff09`, yen(labelFeeOf(opt)) + '\u5186']);\n      if (opt.fbaLabel) lines.push(['Amazon FBA\u7528\u30e9\u30d9\u30eb\u8cbc\u4ed8\uff081\u888b\u3042\u305f\u308a\uff09', yen(FBA_LABEL_COST) + '\u5186']);\n      return lines;\n    }\n    function optionExtraLines(opt) {\n      const lines = [];\n      if (opt.microbe) lines.push(['\u5fae\u751f\u7269\u691c\u67fb', yen(MICROBE_FEE) + '\u5186']);\n      if (opt.shelf) lines.push(['\u8cde\u5473\u671f\u9650\u691c\u67fb', yen(SHELF_FEE) + '\u5186']);\n      if (opt.desiccant) lines.push(['\u4e7e\u71e5\u5264\uff08\u30b7\u30ea\u30ab\u30b2\u30eb\uff09\u540c\u68b1\uff081\u888b\u3042\u305f\u308a\uff09', DESICCANT_FEE > 0 ? (yen(DESICCANT_FEE) + '\u5186') : '\u7121\u6599']);\n      if (opt.design) lines.push(['\u30d1\u30c3\u30b1\u30fc\u30b8\u30c7\u30b6\u30a4\u30f3', '\u5225\u9014\u304a\u898b\u7a4d\u308a']);\n      if (opt.fbaShip) lines.push(['Amazon FBA\u5009\u5eab\u3078\u306e\u76f4\u9001\u8cbb', '\u8cb4\u793e\u3054\u8ca0\u62c5\u30fb\u5225\u9014']);\n      if (opt.amazonAgency) lines.push(['Amazon\u904b\u55b6\u4ee3\u884c\u30b5\u30fc\u30d3\u30b9', '\u5225\u9014\u304a\u898b\u7a4d\u308a']);\n      return lines;\n    }\n    function labelFeeOf(opt) { return opt.label ? labelCostFor(opt.labelSide) : 0; }\n    function optionPerBagFee(opt) {\n      return labelFeeOf(opt) + (opt.fbaLabel ? FBA_LABEL_COST : 0);\n    }\n    function optionFlatFee(opt) {\n      return (opt.microbe ? MICROBE_FEE : 0) + (opt.shelf ? SHELF_FEE : 0);\n    }\n\n    \/\/ ===== \u6c4e\u7528 =====\n    function goStep(id) {\n      document.querySelectorAll('.step').forEach(s => s.classList.remove('active'));\n      document.getElementById(id).classList.add('active');\n      window.scrollTo({ top: 0, behavior: 'smooth' });\n    }\n    function yen(n) { return Math.round(n).toLocaleString('ja-JP'); }\n\n    \/\/ \u5f0a\u793e\u30d1\u30a6\u30c1\u306f\u300c\u30c1\u30e3\u30c3\u30af\u900f\u660eCP\u5e73\u888b \u8efd\u91cf\u7269\u5411 170\u00d7260\u300d\u306e1\u7a2e\u985e\u306e\u307f\uff0860g\u56fa\u5b9a\u30fb50\u5186\/\u888b\uff09\n    function estimateBagCost() {\n      return BAG_COST;\n    }\n\n    \/\/ ===== STEP1 =====\n    document.querySelectorAll('#q1opts .opt').forEach(el => {\n      el.addEventListener('click', () => {\n        document.querySelectorAll('#q1opts .opt').forEach(o => o.classList.remove('selected'));\n        el.classList.add('selected');\n        window.q1 = el.dataset.value;\n        document.getElementById('s1next').disabled = false;\n      });\n    });\n    document.getElementById('s1next').addEventListener('click', () => {\n      if (window.q1 === 'mix') goStep('step2');\n      else {\n        populateSingleItems();\n        goStep('stepSingle');\n      }\n    });\n\n    \/\/ ===== \u5358\u54c1\uff1a\u54c1\u76ee\u30de\u30b9\u30bf\uff08\u52d5\u7684\u65b9\u5f0f\uff09 =====\n    \/\/ \u300c\u898b\u7a4d\u3082\u308a\u30d5\u30a9\u30fc\u30e0\u9023\u643a\u300d\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306b\u7d10\u3065\u304fGAS\uff08\u62e1\u5f35\u6a5f\u80fd \u2192 Apps Script\uff09\u304b\u3089\u539f\u6750\u6599\u30de\u30b9\u30bf\u3092\u53d6\u5f97\u3059\u308b\u3002\n    \/\/ \u53d6\u5f97\u3067\u304d\u306a\u304b\u3063\u305f\u5834\u5408\u306f ITEMS\uff08\u30a2\u30ca\u30ed\u30b0\u65b9\u5f0f\uff09\u3067\u8868\u793a\u3059\u308b\u3002\u30df\u30c3\u30af\u30b9\u5074\u306f ITEMS \u306e\u307e\u307e\u3002\n    \/\/ \u30e1\u30fc\u30eb\u9001\u4fe1\u7528\u306e GAS_URL \u3068\u306f\u5225\u306e\u30a6\u30a7\u30d6\u30a2\u30d7\u30ea\u3002\n    const MASTER_API_URL = 'https:\/\/script.google.com\/macros\/s\/AKfycby39oocVmOM8Z3-agh3uaCD5xd_2BEKWhRyFvAiGPcNn4PVNVnkM45WiIWstRWLtQM_\/exec';\n    \/\/ \u3053\u306e\u30d5\u30a9\u30fc\u30e0\u306fAmazon\u5c02\u7528\u306e\u305f\u3081\u3001\u539f\u6750\u6599\u30de\u30b9\u30bf\u306e\u30ab\u30c6\u30b4\u30ea\u30fc\u5217\u306b\u300c\u30a2\u30de\u30be\u30f3\u300d\u30bf\u30b0\u304c\u4ed8\u3044\u305f\u54c1\u76ee\u3060\u3051\u3092\u8868\u793a\u3059\u308b\n    const SINGLE_INCLUDE_TAG = '\u30a2\u30de\u30be\u30f3';\n    const SINGLE_CATEGORY_ORDER = ['\u91ce\u83dc', '\u30d5\u30eb\u30fc\u30c4', '\u8336\u8449'];\n    \/\/ \u300c-\u300d\u300c\uff0d\u300d\u306a\u3069\u306e\u8a18\u53f7\u3060\u3051\u306e\u30bb\u30eb\u306f\u7a7a\u6b04\u3068\u3057\u3066\u6271\u3046\n    function blankIfDash(v) {\n      const t = String(v == null ? '' : v).trim();\n      return \/^[-\uff0d\u30fc\u2015\u2010]*$\/.test(t) ? '' : t;\n    }\n    \/\/ \u540c\u3058\u54c1\u76ee\u540d\u3067\u7523\u5730\u30fb\u30ab\u30c3\u30c8\u9055\u3044\u306e\u884c\u304c\u3042\u308b\u305f\u3081\u3001\u54c1\u76ee\u306f\u300c\u54c1\u76ee\u540d\uff5c\u7523\u5730\uff5c\u30ab\u30c3\u30c8\u300d\u306e key \u3067\u533a\u5225\u3059\u308b\u3002\n    \/\/ \u54c1\u76ee\u540d\u3060\u3051\u3067\u63a2\u3059\u3068\u30012\u4ef6\u76ee\u4ee5\u964d\u3092\u9078\u3093\u3067\u30821\u4ef6\u76ee\u306e\u5358\u4fa1\u304c\u4f7f\u308f\u308c\u3066\u3057\u307e\u3046\u3002\n    function makeSingleItem(name, price, origin, cut, category, tags) {\n      const n = String(name == null ? '' : name).trim();\n      const o = blankIfDash(origin);\n      const c = blankIfDash(cut);\n      const detail = [o, c].filter(Boolean).join('\u30fb');\n      return {\n        name: n,\n        price: price > 0 ? price : 0, \/\/ 0 \u306f\u300c\u8981\u898b\u7a4d\u3082\u308a\u300d\uff08\u5358\u4fa1\u304c\u7a7a\u6b04\uff09\n        origin: o,\n        cut: c,\n        category: category || '',\n        tags: tags || [],\n        key: [n, o, c].join('\uff5c'),\n        label: n + (detail ? '\uff5c' + detail : ''),\n      };\n    }\n    let SINGLE_ITEMS = ITEMS.map(i => makeSingleItem(i.name, i.price, '', '', '', []));\n    \/\/ \u30ab\u30c6\u30b4\u30ea\u30fc\u5217\u306f\u8907\u6570\u9078\u629e\uff08\u4f8b\uff1a\u300c\u30d5\u30eb\u30fc\u30c4, \u30d5\u30ec\u30fc\u30d0\u30fc\uff08\u304a\u8336\uff09\u300d\uff09\u3002\u8868\u793a\u30b0\u30eb\u30fc\u30d7\u306f SINGLE_CATEGORY_ORDER \u306b\u3042\u308b\u3082\u306e\u3092\u512a\u5148\u3059\u308b\n    function primaryCategory(tags) {\n      const known = tags.filter(t => SINGLE_CATEGORY_ORDER.indexOf(t) >= 0);\n      return known.length ? known[0] : (tags[0] || '');\n    }\n\n    function loadSingleItems() {\n      if (!MASTER_API_URL) return Promise.reject(new Error('\u53d6\u5f97\u5148\u304c\u672a\u8a2d\u5b9a\u3067\u3059'));\n      return fetchMasterPart('?action=items', 'items')\n        .then(data => {\n          if (data.result !== 'success') throw new Error(data.message || '\u53d6\u5f97\u30a8\u30e9\u30fc');\n          const items = (data.items || [])\n            .map(i => {\n              const tags = String(i.category || '').split(',').map(t => t.trim()).filter(Boolean);\n              return makeSingleItem(i.name, Number(i.price), i.origin, i.cut, primaryCategory(tags), tags);\n            })\n            .filter(i => i.name)\n            .filter(i => i.tags.indexOf(SINGLE_INCLUDE_TAG) >= 0);\n          if (!items.length) throw new Error('\u300c' + SINGLE_INCLUDE_TAG + '\u300d\u30bf\u30b0\u306e\u54c1\u76ee\u304c0\u4ef6');\n          SINGLE_ITEMS = items;\n          if (document.getElementById('singleItem').options.length) populateSingleItems();\n        })\n        .then(() => { refreshCustomItemRows(); });\n    }\n    \/\/ \u54c1\u76ee\u30de\u30b9\u30bf\u53d6\u5f97\u5f8c\u3001\u3059\u3067\u306b\u8868\u793a\u3057\u3066\u3044\u308b\u30aa\u30fc\u30c0\u30fc\u30e1\u30a4\u30c9\u306e\u884c\u306e\u9078\u629e\u80a2\u3092\u4f5c\u308a\u76f4\u3059\n    function refreshCustomItemRows() {\n      document.querySelectorAll('#itemRows .item-row').forEach(row => {\n        const sel = row.querySelector('select');\n        const keep = SINGLE_ITEMS.some(i => i.key === sel.value) ? sel.value : (SINGLE_ITEMS[0] || {}).key;\n        sel.innerHTML = SINGLE_ITEMS.map(i => `<option value=\"${i.key}\" ${i.key === keep ? 'selected' : ''}>${singleOptionLabel(i)}<\/option>`).join('');\n        sel.value = keep;\n        sel.dataset.prev = keep;\n      });\n    }\n    \/\/ ===== \u30d7\u30ea\u30bb\u30c3\u30c8\u30df\u30c3\u30af\u30b9\uff08\u5546\u54c1\u30de\u30b9\u30bf\u30fb\u52d5\u7684\u65b9\u5f0f\uff09 =====\n    \/\/ \u5546\u54c1\u30de\u30b9\u30bf\uff08action=novelty\uff09\u306e\u30ab\u30c6\u30b4\u30ea\u30fc\u300c\u4e7e\u71e5\u91ce\u83dc\u30df\u30c3\u30af\u30b9\u300d\u306e\u884c\u3092\u4f7f\u3046\u3002\n    \/\/ \u53d6\u5f97\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u4e0b\u306e BLENDS_ANALOG\uff08\u76f4\u66f8\u304d\uff09\u3067\u8868\u793a\u3059\u308b\u3002\n    const BLEND_CATEGORY = '\u4e7e\u71e5\u91ce\u83dc\u30df\u30c3\u30af\u30b9';\n    let MIN_LOT = 500;            \/\/ \u57fa\u672c\u306e\u6700\u4f4e\u30ed\u30c3\u30c8\uff08\u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf min_lot\uff09\n    let MIN_LOT_SINGLE = 120;     \/\/ \u5358\u54c1\u306e\u6700\u4f4e\u30ed\u30c3\u30c8\uff08\u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf min_lot_veg_single\uff09\n    let QTY_STEP = 10;            \/\/ \u6570\u91cf\u5165\u529b\u306e\u523b\u307f\uff08\u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf qty_step\uff09\n    function normalizeLabel(v) {\n      return String(v == null ? '' : v).replace(\/[\uff08\uff09]\/g, c => (c === '\uff08' ? '(' : ')')).replace(\/[\\s\u3000]\/g, '');\n    }\n    \/\/ \u5546\u54c1\u30de\u30b9\u30bf\u306e\u914d\u5408\u8868\u8a18\uff08\u4f8b\u300c\u30ad\u30e3\u30d9\u30c4(\u9e7f\u5150\u5cf6) 35%\u300d\uff09\u3092\u539f\u6750\u6599\u30de\u30b9\u30bf\u306e\u54c1\u76ee\u306b\u7a81\u304d\u5408\u308f\u305b\u308b\n    function resolveMasterByLabel(label) {\n      const t = normalizeLabel(label);\n      if (!t) return null;\n      const candidates = i => [i.name, i.name + '(' + i.origin + ')', i.name + '(' + i.cut + ')', i.name + '(' + i.origin + '\u30fb' + i.cut + ')'];\n      const exact = SINGLE_ITEMS.filter(i => candidates(i).map(normalizeLabel).indexOf(t) >= 0);\n      if (exact.length) return exact[0];\n      \/\/ \u300c\u30d6\u30ed\u30c3\u30b3\u30ea\u30fc(\u623f)\u300d\u306e\u3088\u3046\u306b\u30ab\u30c3\u30b3\u5185\u304c\u4e00\u81f4\u3057\u306a\u3044\u5834\u5408\u306f\u3001\u30ab\u30c3\u30b3\u306e\u524d\u306e\u54c1\u76ee\u540d\u3060\u3051\u3067\u63a2\u3059\uff081\u4ef6\u306b\u7d5e\u308c\u308b\u3068\u304d\u306e\u307f\uff09\n      const base = normalizeLabel(String(label).split('(')[0]);\n      const byName = SINGLE_ITEMS.filter(i => normalizeLabel(i.name) === base);\n      return byName.length === 1 ? byName[0] : null;\n    }\n    \/\/ \u300c\u30ad\u30e3\u30d9\u30c4(\u9e7f\u5150\u5cf6) 35%\/\u4eba\u53c2 25%\u300d\u2192 [{label,pct,key}]\n    \/\/ \u30ab\u30c3\u30b3\u5185\u306e\u300c\/\u300d\uff08\u4f8b\uff1a\u9752\u68ee\/\u7fa4\u99ac\uff09\u3067\u306f\u533a\u5207\u3089\u306a\u3044\n    function splitOutsideParens(text) {\n      const parts = [];\n      let buf = '', depth = 0;\n      String(text || '').split('').forEach(ch => {\n        if (ch === '(') depth++;\n        if (ch === '\uff08') depth++;\n        if (ch === ')') depth = depth > 0 ? depth - 1 : 0;\n        if (ch === '\uff09') depth = depth > 0 ? depth - 1 : 0;\n        if (ch === '\/') { if (depth === 0) { parts.push(buf); buf = ''; return; } }\n        buf += ch;\n      });\n      parts.push(buf);\n      return parts;\n    }\n    function parseBlendRatio(text) {\n      return splitOutsideParens(text).map(part => {\n        const m = part.match(\/^(.*?)[\\s\u3000]*([0-9]+(?:\\.[0-9]+)?)[\\s\u3000]*%[\\s\u3000]*$\/);\n        if (!m) return null;\n        const label = m[1].trim();\n        const master = resolveMasterByLabel(label);\n        return { label: master ? master.label : label, pct: Number(m[2]), key: master ? master.key : '' };\n      }).filter(Boolean);\n    }\n    function toNumberYen(v) {\n      const n = Number(String(v == null ? '' : v).replace(\/[^0-9.]\/g, ''));\n      return isNaN(n) ? 0 : n;\n    }\n    function applyBlendMaster(data) {\n      return Promise.resolve(data)\n        .then(data => {\n          if (data.result !== 'success') throw new Error(data.message || '\u53d6\u5f97\u30a8\u30e9\u30fc');\n          const pick = (row, names) => { const hit = names.filter(n => n in row)[0]; return hit ? String(row[hit]).trim() : ''; };\n          const blends = (data.rows || [])\n            .filter(r => pick(r, ['\u30ab\u30c6\u30b4\u30ea\u30fc', '\u30ab\u30c6\u30b4\u30ea']).split(',').map(t => t.trim()).indexOf(BLEND_CATEGORY) >= 0)\n            .map((r, idx) => {\n              const discountQty = toNumberYen(pick(r, ['\u5272\u5f15\u888b\u6570']));\n              const discountPrice = toNumberYen(pick(r, ['\u5272\u5f15\u4fa1\u683c']));\n              return {\n                no: 'No.' + String(idx + 1).padStart(2, '0'),\n                name: pick(r, ['\u54c1\u76ee\u540d', '\u5546\u54c1\u540d']),\n                ratio: parseBlendRatio(pick(r, ['\u5185\u5bb9', '\u914d\u5408'])),\n                weight: toNumberYen(pick(r, ['\u4e00\u888b\u5bb9\u91cf\uff08g\uff09', '\u4e00\u888b\u5bb9\u91cf(g)', '\u4e00\u888b\u5bb9\u91cf'])) || FIXED_WEIGHT,\n                minQty: MIN_LOT,\n                basePrice: toNumberYen(pick(r, ['\u4e00\u888b\u5358\u4fa1'])),\n                discountQty: discountQty > 0 ? discountQty : 0,\n                discountPrice: discountPrice > 0 ? discountPrice : 0,\n              };\n            })\n            .filter(b => b.name)\n            .filter(b => b.basePrice > 0);\n          if (!blends.length) throw new Error('\u300c' + BLEND_CATEGORY + '\u300d\u306e\u5546\u54c1\u304c0\u4ef6');\n          BLENDS = blends;\n          renderBlendCards();\n          refreshBaseBlendSelect();\n        });\n    }\n\n    \/\/ ===== \u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf\uff08\u30b7\u30fc\u30eb\u30fb\u30b7\u30ea\u30ab\u30b2\u30eb\u30fb\u8131\u9178\u7d20\u5264\u30fb\u691c\u67fb\uff09 =====\n    \/\/ \u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306e\u300c\u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf\u300d\u306e\u91d1\u984d\u3067\u4e0a\u66f8\u304d\u3059\u308b\u3002\u53d6\u5f97\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u4e0a\u306e\u521d\u671f\u5024\u306e\u307e\u307e\n    let DESICCANT_FEE = 0; \/\/ \u4e7e\u71e5\u5264\uff08\u30b7\u30ea\u30ab\u30b2\u30eb\uff09\u540c\u68b1 \u5186\/\u888b\n    let LABEL_COST_FRONT = LABEL_COST;\n    let LABEL_COST_BOTH = LABEL_COST * 2;\n    function labelCostFor(side) {\n      if (side === 'both') return LABEL_COST_BOTH;\n      if (side === 'front') return LABEL_COST_FRONT;\n      return LABEL_COST;\n    }\n    \/\/ \u753b\u9762\u306e\u6587\u8a00\u306b\u66f8\u304b\u308c\u305f\u91d1\u984d\u3092\u3001\u5b9f\u969b\u306b\u4f7f\u3046\u91d1\u984d\u304b\u3089\u4f5c\u308a\u76f4\u3059\uff08\u76f4\u66f8\u304d\u306b\u3088\u308b\u30ba\u30ec\u3092\u9632\u3050\uff09\n    \/\/ \u6700\u4f4e\u30ed\u30c3\u30c8\u306e\u8868\u793a\u3068\u5165\u529b\u6b04\u3092\u3001\u5b9f\u969b\u306e\u5024\u304b\u3089\u4f5c\u308a\u76f4\u3059\n    function syncLotTexts() {\n      const map = { base: MIN_LOT, single: MIN_LOT_SINGLE };\n      document.querySelectorAll('#agriture-estimate [data-lot-tpl]').forEach(el => {\n        el.textContent = el.dataset.lotTpl.replace(\/\\{(\\w+)\\}\/g, (m, k) => (k in map ? map[k].toLocaleString() : m));\n      });\n      document.querySelectorAll('#agriture-estimate [data-lot]').forEach(el => {\n        const min = el.dataset.lot === 'single' ? MIN_LOT_SINGLE : MIN_LOT;\n        el.min = min;\n        el.step = QTY_STEP;\n        el.placeholder = `\u6700\u5c0f\u30ed\u30c3\u30c8${min.toLocaleString()}\u888b\u304b\u3089`;\n      });\n    }\n    function syncFeeTexts() {\n      const map = {\n        label_back: LABEL_COST, label_front: LABEL_COST_FRONT, label_both: LABEL_COST_BOTH,\n        fba_label: FBA_LABEL_COST, microbe: MICROBE_FEE, shelf: SHELF_FEE,\n        desiccant: DESICCANT_FEE, ship_work: SHIP_FEE, init_fee: INIT_FEE,\n      };\n      document.querySelectorAll('#agriture-estimate [data-fee-tpl]').forEach(el => {\n        el.textContent = el.dataset.feeTpl.replace(\/\\{(\\w+)\\}\/g, (m, k) => (k in map ? yen(map[k]) : m));\n      });\n      \/\/ \u691c\u67fb\u306e\u30dc\u30bf\u30f3\u306f\u6587\u8a00\u304c\u540c\u3058\u306a\u306e\u3067\u3001\u533a\u5206\u3054\u3068\u306b\u5165\u308c\u66ff\u3048\u308b\n      [['Microbe', MICROBE_FEE], ['Shelf', SHELF_FEE]].forEach(([suffix, fee]) => {\n        ['opt', 'bOpt', 'sOpt'].forEach(prefix => {\n          const wrap = document.getElementById(prefix + suffix);\n          if (!wrap) return;\n          const on = wrap.querySelector('.toggle-btn[data-on=\"true\"]');\n          if (on) on.textContent = `\u691c\u67fb\u3092\u884c\u3046\uff08+${yen(fee)}\u5186\uff09`;\n        });\n      });\n    }\n    function applyCommonFees(fees) {\n      if (!fees) return;\n      const num = v => (typeof v === 'number' ? v : NaN);\n      if (!isNaN(num(fees.label_back))) LABEL_COST = fees.label_back;\n      if (!isNaN(num(fees.label_front))) LABEL_COST_FRONT = fees.label_front;\n      if (!isNaN(num(fees.label_both))) LABEL_COST_BOTH = fees.label_both;\n      else LABEL_COST_BOTH = LABEL_COST * 2;\n      if (!isNaN(num(fees.microbe))) MICROBE_FEE = fees.microbe;\n      if (!isNaN(num(fees.shelf))) SHELF_FEE = fees.shelf;\n      if (!isNaN(num(fees.desiccant))) DESICCANT_FEE = fees.desiccant;\n      if (!isNaN(num(fees.ship_work))) SHIP_FEE = fees.ship_work;\n      if (!isNaN(num(fees.fba_label))) FBA_LABEL_COST = fees.fba_label;\n      if (!isNaN(num(fees.min_lot))) MIN_LOT = fees.min_lot;\n      if (!isNaN(num(fees.min_lot_veg_single))) MIN_LOT_SINGLE = fees.min_lot_veg_single;\n      if (!isNaN(num(fees.qty_step))) QTY_STEP = fees.qty_step;\n      syncFeeTexts();\n      syncLotTexts();\n    }\n    \/\/ ===== \u6599\u91d1\u30de\u30b9\u30bf\u306e\u8aad\u307f\u8fbc\u307f =====\n    \/\/ \u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3092\u8aad\u307f\u8fbc\u3081\u308b\u307e\u3067\u64cd\u4f5c\u3055\u305b\u306a\u3044\uff08\u30b3\u30fc\u30c9\u306e\u521d\u671f\u5024\u3067\u898b\u7a4d\u308a\u304c\u51fa\u308b\u3068\u91d1\u984d\u304c\u30ba\u30ec\u308b\u305f\u3081\uff09\n    function fetchMaster(query) {\n      const ctrl = new AbortController();\n      const timer = setTimeout(() => ctrl.abort(), 15000);\n      return fetch(MASTER_API_URL + query, { cache: 'no-store', signal: ctrl.signal })\n        .then(res => { if (!res.ok) throw new Error('HTTP ' + res.status); return res.json(); })\n        .then(data => { clearTimeout(timer); return data; }, err => { clearTimeout(timer); throw err; });\n    }\n    \/\/ 3\u3064\u306e\u30de\u30b9\u30bf\u30921\u56de\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u307e\u3068\u3081\u3066\u53d6\u5f97\u3059\u308b\uff08\u5f80\u5fa9\u3092\u6e1b\u3089\u3057\u3066\u5f85\u3061\u6642\u9593\u3092\u77ed\u304f\u3059\u308b\u305f\u3081\uff09\u3002\n    \/\/ \u53e4\u3044GAS\uff08action=all \u672a\u5bfe\u5fdc\uff09\u306e\u3068\u304d\u306f\u3001\u5f93\u6765\u3069\u304a\u308a\u500b\u5225\u306b\u53d6\u5f97\u3059\u308b\u3002\n    let MASTER_ALL = null;\n    function fetchMasterAll() {\n      if (MASTER_ALL) return MASTER_ALL;\n      MASTER_ALL = fetchMaster('?action=all').then(data => {\n        if (data.result !== 'success') throw new Error(data.message || '\u53d6\u5f97\u30a8\u30e9\u30fc');\n        return data;\n      });\n      return MASTER_ALL;\n    }\n    \/\/ query \u306b\u5bfe\u5fdc\u3059\u308b\u90e8\u5206\u3060\u3051\u3092\u53d6\u308a\u51fa\u3059\u3002\u307e\u3068\u3081\u53d6\u5f97\u304c\u4f7f\u3048\u306a\u3044\u5834\u5408\u306f\u500b\u5225\u306b\u53d6\u308a\u306b\u884c\u304f\n    function fetchMasterPart(query, key) {\n      return fetchMasterAll()\n        .then(all => {\n          const part = all[key];\n          if (!part) throw new Error(key + '\u304c\u7a7a\u3067\u3059');\n          return key === 'items' ? { result: 'success', items: part } : { result: 'success', rows: part };\n        })\n        .catch(() => fetchMaster(query));\n    }\n    function loadCommonFees() {\n      return fetchMasterAll()\n        .then(all => all.fees)\n        .catch(() => fetchMaster('?action=fees').then(d => d.fees))\n        .then(fees => { applyCommonFees(fees); })\n        .catch(err => { console.warn('\u5171\u901a\u6599\u91d1\u30de\u30b9\u30bf\u3092\u53d6\u5f97\u3067\u304d\u306a\u304b\u3063\u305f\u305f\u3081\u3001\u30d5\u30a9\u30fc\u30e0\u5185\u306e\u521d\u671f\u5024\u3067\u8a08\u7b97\u3057\u307e\u3059:', err); });\n    }\n    const MASTER_GATE = (function () {\n      const root = document.getElementById('agriture-estimate');\n      const box = document.createElement('div');\n      box.style.cssText = 'margin:0 0 14px;padding:12px 14px;border-radius:10px;font-size:14px;line-height:1.7;pointer-events:auto;';\n      root.insertBefore(box, root.firstChild);\n      function lock(on) { root.style.pointerEvents = on ? 'none' : ''; root.style.opacity = on ? '0.55' : ''; box.style.pointerEvents = 'auto'; }\n      function loading() {\n        box.style.cssText += ';background:#eef4ee;color:#2f5d3a;border:1px solid #cfe0d3;';\n        box.textContent = '\u6700\u65b0\u306e\u6599\u91d1\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059\u2026\uff08\u6570\u79d2\u304a\u5f85\u3061\u304f\u3060\u3055\u3044\uff09';\n        box.style.display = 'block';\n        lock(true);\n      }\n      function failed(err) {\n        box.style.cssText += ';background:#fdecea;color:#8b2f24;border:1px solid #f3c6c0;';\n        box.innerHTML = '\u6700\u65b0\u306e\u6599\u91d1\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6b63\u3057\u3044\u91d1\u984d\u3092\u8868\u793a\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u304a\u624b\u6570\u3067\u3059\u304c\u518d\u8aad\u307f\u8fbc\u307f\u3092\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002'\n          + '<br><button type=\"button\" id=\"masterRetryBtn\" style=\"margin-top:8px;padding:8px 16px;border-radius:8px;border:1px solid #8b2f24;background:#fff;color:#8b2f24;font-weight:bold;cursor:pointer;\">\u518d\u8aad\u307f\u8fbc\u307f<\/button>'\n          + '<br><span style=\"font-size:12px;\">\u89e3\u6d88\u3057\u306a\u3044\u5834\u5408\u306f info@agriture.jp \u307e\u3067\u3054\u9023\u7d61\u304f\u3060\u3055\u3044\u3002<\/span>';\n        box.style.display = 'block';\n        lock(true);\n        document.getElementById('masterRetryBtn').addEventListener('click', start);\n        console.warn('\u30de\u30b9\u30bf\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f:', err);\n      }\n      function done() { box.style.display = 'none'; lock(false); }\n      function start() {\n        loading();\n        \/\/ 2\u3064\u306e\u30de\u30b9\u30bf\u3092\u540c\u6642\u306b\u53d6\u308a\u51fa\u3057\u3001\u54c1\u76ee\u30de\u30b9\u30bf\u3092\u53cd\u6620\u3057\u3066\u304b\u3089\u5546\u54c1\u30de\u30b9\u30bf\u3092\u53cd\u6620\u3059\u308b\n        \/\/ \uff08\u5546\u54c1\u30de\u30b9\u30bf\u306e\u914d\u5408\u3092\u54c1\u76ee\u30de\u30b9\u30bf\u306b\u7a81\u304d\u5408\u308f\u305b\u308b\u305f\u3081\u3001\u53cd\u6620\u306e\u9806\u756a\u3060\u3051\u306f\u5b88\u308b\uff09\n        const blendData = fetchMasterPart('?action=novelty', 'novelty');\n        blendData.catch(() => {}); \/\/ \u5148\u306b\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3082\u672a\u51e6\u7406\u6271\u3044\u306b\u3057\u306a\u3044\n        return loadSingleItems()\n          .then(() => blendData)\n          .then(applyBlendMaster)\n          .then(loadCommonFees)\n          .then(done)\n          .catch(failed);\n      }\n      return { start: start };\n    })();\n    syncFeeTexts();\n    syncLotTexts();\n    MASTER_GATE.start();\n\n    \/\/ ===== \u5358\u54c1\u30eb\u30fc\u30c8 =====\n    function singleOptionLabel(i) {\n      const price = i.price > 0 ? i.price.toLocaleString() + '\u5186\/kg' : '\u8981\u898b\u7a4d\u3082\u308a';\n      return i.label + '\uff08' + price + '\uff09';\n    }\n    function singleOptionEl(i) {\n      const opt = document.createElement('option');\n      opt.value = i.key;\n      opt.textContent = singleOptionLabel(i);\n      return opt;\n    }\n    function populateSingleItems() {\n      const sel = document.getElementById('singleItem');\n      const prev = sel.value;\n      sel.innerHTML = '';\n      const rank = c => { const r = SINGLE_CATEGORY_ORDER.indexOf(c); return r < 0 ? SINGLE_CATEGORY_ORDER.length : r; };\n      const cats = SINGLE_ITEMS.map(i => i.category).filter((c, idx, arr) => arr.indexOf(c) === idx);\n      if (cats.length === 1) {\n        if (!cats[0]) {\n          SINGLE_ITEMS.forEach(i => sel.appendChild(singleOptionEl(i)));\n          return;\n        }\n      }\n      cats.sort((a, b) => rank(a || '\u305d\u306e\u4ed6') - rank(b || '\u305d\u306e\u4ed6'));\n      cats.forEach(c => {\n        const group = document.createElement('optgroup');\n        group.label = c || '\u305d\u306e\u4ed6';\n        SINGLE_ITEMS.filter(i => i.category === c).forEach(i => group.appendChild(singleOptionEl(i)));\n        sel.appendChild(group);\n      });\n      if (SINGLE_ITEMS.some(i => i.key === prev)) sel.value = prev;\n    }\n    function goToSingleOptions() {\n      const weight = parseFloat(document.getElementById('singleWeight').value);\n      const qty = getQty('single');\n      if (!weight || !qty) { alert('\u5bb9\u91cf\u3068\u6570\u91cf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044'); return; }\n      if (!validateWeightForMaterial('single', weight)) return;\n      if (qty < MIN_LOT_SINGLE) { alert(`\u6700\u4f4e\u30ed\u30c3\u30c8\u306f${MIN_LOT_SINGLE.toLocaleString()}\u888b\u3067\u3059`); return; }\n      if (!toggleValue('singleMaterialSource')) {\n        const linkEl = document.getElementById('singlePackageLinkUrl');\n        if (!linkEl.value.trim()) {\n          alert('\u8cc7\u6750\u3092\u6301\u3061\u8fbc\u3080\u5834\u5408\u306f\u3001\u304a\u9001\u308a\u3044\u305f\u3060\u304f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u753b\u50cf\u30fb\u4ed5\u69d8\u306eURL\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002');\n          linkEl.focus();\n          return;\n        }\n      }\n      goStep('stepSingleOptions');\n    }\n    \/\/ \u304a\u898b\u7a4d\u308a\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u524d\u306b\u3001\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u5165\u529b\u3092\u5fc5\u9808\u306b\u3059\u308b\n    function validateContactEmail(suffix) {\n      const emailEl = document.getElementById('contactEmail' + suffix);\n      const email = emailEl.value.trim();\n      if (!email || !email.includes('@')) {\n        alert('\u304a\u898b\u7a4d\u308a\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u3001\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002');\n        emailEl.focus();\n        return false;\n      }\n      return true;\n    }\n    function calcSingle() {\n      if (!validateContactEmail('Single')) return;\n      const key = document.getElementById('singleItem').value;\n      const weight = parseFloat(document.getElementById('singleWeight').value);\n      const qty = getQty('single');\n      const item = SINGLE_ITEMS.find(i => i.key === key);\n      const name = item ? item.label : key; \/\/ \u8868\u793a\u7528\uff08\u7523\u5730\u30fb\u30ab\u30c3\u30c8\u4ed8\u304d\uff09\n\n      \/\/ \u5358\u4fa1\u304c\u7a7a\u6b04\u306e\u54c1\u76ee\u306f\u539f\u6599\u8cbb\u3060\u3051\u3092\u5225\u9014\u304a\u898b\u7a4d\u308a\u306b\u3057\u3001\u91d1\u984d\u8a08\u7b97\u304b\u3089\u9664\u304f\n      const materialQuote = !(item.price > 0);\n      let materialCost = materialQuote ? 0 : item.price * (weight \/ 1000);\n      const bulkApplied = materialQuote ? false : qty >= 1000;\n      if (bulkApplied) materialCost *= BULK_DISCOUNT_RATE;\n      const exclNote = materialQuote ? '\uff08\u539f\u6599\u8cbb\u3092\u9664\u304f\uff09' : '';\n\n      const useOwnPackage = toggleValue('singleMaterialSource');\n      const bagCost = useOwnPackage ? estimateBagCost() : 0;\n      const opt = collectToggleOptions('s');\n      const perBagFee = optionPerBagFee(opt);\n      const perBag = materialCost + bagCost + FILL_COST + perBagFee;\n      const bagTotal = perBag * qty;\n      const flatFee = optionFlatFee(opt) + SHIP_FEE + (useOwnPackage ? 0 : BRING_FEE);\n      const grandTotal = bagTotal + flatFee;\n\n      const lines = [\n        ['\u539f\u6599\u8cbb\uff081\u888b\u3042\u305f\u308a\uff09', materialQuote ? (name + '\u306b\u3064\u3044\u3066\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a') : (yen(materialCost) + '\u5186' + (bulkApplied ? '\uff081,000\u888b\u4ee5\u4e0a\u5272\u5f15\u9069\u7528\uff09' : ''))],\n        ['\u888b\u4ee3\uff081\u888b\u3042\u305f\u308a\uff09', useOwnPackage ? (yen(bagCost) + '\u5186') : '\u8cb4\u793e\u3054\u6301\u53c2\u306e\u305f\u30810\u5186'],\n        ['\u888b\u8a70\u3081\u8cbb\uff081\u888b\u3042\u305f\u308a\uff09', yen(FILL_COST) + '\u5186'],\n      ];\n      lines.push(...optionLines(opt));\n      lines.push(['1\u888b\u5358\u4fa1 \u5c0f\u8a08' + exclNote, yen(perBag) + '\u5186\/\u888b']);\n      lines.push([`\u888b\u8a70\u3081\u5408\u8a08\uff08${qty.toLocaleString()}\u888b\uff09` + exclNote, yen(bagTotal) + '\u5186']);\n      lines.push(...optionExtraLines(opt));\n      lines.push(['\u767a\u9001\u4f5c\u696d\uff081\u4ef6\u3042\u305f\u308a\u30fb\u9001\u6599\u306f\u5225\u9014\u5b9f\u8cbb\uff09', yen(SHIP_FEE) + '\u5186']);\n      if (typeof useOwnPackage !== 'undefined' ? !useOwnPackage : false) lines.push(['\u8cc7\u6750\u6301\u3061\u8fbc\u307f\uff08\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u30b7\u30fc\u30eb\uff09', yen(BRING_FEE) + '\u5186']);\n      lines.push(['\u5408\u8a08\u91d1\u984d\uff08\u7a0e\u629c\uff09' + exclNote, yen(grandTotal) + '\u5186', true]);\n\n      let notice = '\u3053\u3061\u3089\u306f\u6982\u7b97\u3067\u3059\u3002\u5b9f\u969b\u306e\u3054\u767a\u6ce8\u6642\u306f\u5728\u5eab\u72b6\u6cc1\u30fb\u6700\u65b0\u5358\u4fa1\u3092\u3054\u78ba\u8a8d\u306e\u3046\u3048\u6b63\u5f0f\u304a\u898b\u7a4d\u308a\u3044\u305f\u3057\u307e\u3059\u3002\u300c\u5225\u9014\u304a\u898b\u7a4d\u308a\u300d\u9805\u76ee\u306f\u78ba\u5b9a\u5f8c\u306b\u500b\u5225\u306b\u3054\u6848\u5185\u3057\u307e\u3059\u3002';\n      if (materialQuote) notice = name + '\u306e\u539f\u6599\u8cbb\u306f\u304a\u898b\u7a4d\u308a\u3068\u306a\u308b\u305f\u3081\u3001\u5408\u8a08\u91d1\u984d\u306b\u306f\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3002' + notice;\n      \/\/ 1,000\u888b\u4ee5\u4e0a\u5272\u5f15\u306f\u539f\u6599\u8cbb\u306e\u307f\u304c\u5bfe\u8c61\u306e\u305f\u3081\u3001\u539f\u6599\u8cbb\u304c\u304a\u898b\u7a4d\u308a\u306e\u54c1\u76ee\u306b\u306f\u6848\u5185\u3092\u51fa\u3055\u306a\u3044\n      if (!(materialQuote || bulkApplied)) {\n        const toNext = 1000 - qty;\n        notice += ` \u3042\u3068${toNext.toLocaleString()}\u888b\u306e\u3054\u6ce8\u6587\u3067\u30011,000\u888b\u4ee5\u4e0a\u306e\u5272\u5f15\u5358\u4fa1\u304c\u9069\u7528\u3055\u308c\u307e\u3059\u3002`;\n      }\n      if (!useOwnPackage) notice += ' \u6301\u3061\u8fbc\u307f\u8cc7\u6750\u306f\u4e8b\u524d\u306b\u30b5\u30f3\u30d7\u30eb\u3067\u5bfe\u5fdc\u53ef\u5426\u3092\u78ba\u8a8d\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3059\u3002';\n\n      showResult({\n        badge: '\u5358\u54c1\u4e7e\u71e5\u91ce\u83dc',\n        main: `\u5408\u8a08 ${yen(grandTotal)}\u5186\uff08\u7a0e\u629c\uff09` + (materialQuote ? `\uff0b${name}\u306e\u539f\u6599\u8cbb\uff08\u304a\u898b\u7a4d\u308a\uff09` : ''),\n        sub: `${name} ${weight}g \u00d7 ${qty.toLocaleString()}\u888b` + (useOwnPackage ? '' : '\uff08\u8cb4\u793e\u8cc7\u6750\u4f7f\u7528\uff09'),\n        lines,\n        notice,\n        backStep: 'stepSingleOptions'\n      });\n    }\n\n    \/\/ ===== STEP2 \u30df\u30c3\u30af\u30b9\u30bf\u30a4\u30d7 =====\n    renderBlendCards();\n    function renderBlendCards() {\n      const wrap = document.getElementById('blendCards');\n      wrap.innerHTML = BLENDS.map((b, idx) => `\n    <div class=\"blend-card\" data-idx=\"${idx}\" onclick=\"selectBlendCard(${idx})\">\n      <div class=\"bname\">${b.no} ${b.name}<\/div>\n      <div class=\"bratio\">${blendRatioText(b)}<\/div>\n      <div class=\"bprices\">\n        <div>${b.weight}g\uff1a${b.minQty.toLocaleString()}\u888b\u301c ${yen(b.basePrice)}\u5186${b.discountQty ? `\uff0f${b.discountQty.toLocaleString()}\u888b\u301c ${yen(b.discountPrice)}\u5186` : ''}<\/div>\n      <\/div>\n    <\/div>\n  `).join('');\n    }\n    function selectBlendCard(idx) {\n      document.querySelectorAll('.blend-card').forEach(c => c.classList.remove('selected'));\n      document.querySelector(`.blend-card[data-idx=\"${idx}\"]`).classList.add('selected');\n      window.selectedBlendIdx = idx;\n      const blend = BLENDS[idx];\n      document.getElementById('blendDetailTitle').textContent = `${blend.no} ${blend.name}\uff5c\u6570\u91cf\u3092\u9078\u629e\uff08${blend.weight}g\uff09`;\n      window.blendWeight = blend.weight;\n      document.getElementById('blendQty').value = '';\n      document.getElementById('blendTeikeiWeightCalc').style.display = 'none';\n      updatePackagePreview();\n      goStep('stepBlendDetail');\n    }\n    \/\/ \u5f0a\u793e\u30d1\u30c3\u30b1\u30fc\u30b8\u306f1\u7a2e\u985e\u306e\u307f\uff0860g\u56fa\u5b9a\uff09\u3002\u8cbb\u7528\u3092\u51fa\u3059\u304b\u3069\u3046\u304b\u3060\u3051\u5207\u308a\u66ff\u3048\u308b\n    function packagePreviewHTML(showFee) {\n      const priceRow = showFee ? `\n          <div class=\"pp-price\">\n            <span class=\"pp-price-label\">\u30d1\u30c3\u30b1\u30fc\u30b8\u8cbb\u7528<\/span>\n            <span class=\"pp-price-value\">${BAG_COST}<span class=\"pp-price-unit\">\u5186\/\u888b<\/span><\/span>\n          <\/div>` : '';\n      return `<div class=\"pp-spec\">\n          <div class=\"pp-spec-row\"><span class=\"pp-k\">\u888b\u306e\u7a2e\u985e<\/span><span class=\"pp-v\">${PACKAGE_NAME}<\/span><\/div>\n          <div class=\"pp-spec-row\"><span class=\"pp-k\">\u30b5\u30a4\u30ba<\/span><span class=\"pp-v\">${PACKAGE_SIZE}<\/span><\/div>\n          <div class=\"pp-spec-row\"><span class=\"pp-k\">\u5185\u5bb9\u91cf<\/span><span class=\"pp-v\">${FIXED_WEIGHT}g<\/span><\/div>${priceRow}\n        <\/div>`;\n    }\n    \/\/ \u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\uff08\u305d\u306e\u307e\u307e\u9078\u3076\uff09\u306f1\u888b\u5358\u4fa1\u306b\u30d1\u30c3\u30b1\u30fc\u30b8\u8cbb\u7528\u304c\u65e2\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u4fa1\u683c\u306f\u8868\u793a\u3057\u306a\u3044\n    function updatePackagePreview() {\n      const box = document.getElementById('packagePreview');\n      document.getElementById('packagePreviewText').innerHTML = packagePreviewHTML(false);\n      box.style.display = 'flex';\n    }\n    function updateCustomPackagePreview() {\n      const box = document.getElementById('customPackagePreview');\n      if (!toggleValue('customMaterialSource')) { box.style.display = 'none'; return; }\n      document.getElementById('customPackagePreviewText').innerHTML = packagePreviewHTML(true);\n      box.style.display = 'flex';\n    }\n    function updateSinglePackagePreview() {\n      const box = document.getElementById('singlePackagePreview');\n      if (!toggleValue('singleMaterialSource')) { box.style.display = 'none'; return; }\n      document.getElementById('singlePackagePreviewText').innerHTML = packagePreviewHTML(true);\n      box.style.display = 'flex';\n    }\n\n    \/\/ \u5f0a\u793e\u30d1\u30c3\u30b1\u30fc\u30b8\uff1d60g\u56fa\u5b9a\uff08\u4e0b\u9650\uff1d\u4e0a\u9650\uff09\u3002\u6301\u3061\u8fbc\u307f\u30d1\u30c3\u30b1\u30fc\u30b8\uff1d60g\u4ee5\u4e0a\u30fb\u4e0a\u9650\u306a\u3057\n    const WEIGHT_NOTE_OWN = '\u5f0a\u793e\u30d1\u30c3\u30b1\u30fc\u30b8\uff08' + PACKAGE_NAME + ' ' + PACKAGE_SIZE + '\uff09\u3092\u3054\u5229\u7528\u306e\u5834\u5408\u3001\u5185\u5bb9\u91cf\u306f<strong>60g\u56fa\u5b9a<\/strong>\u3067\u3059\u3002';\n    const WEIGHT_NOTE_BRING = '\u6301\u3061\u8fbc\u307f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5834\u5408\u3001\u5185\u5bb9\u91cf\u306e<strong>\u4e0a\u9650\u306f\u3054\u3056\u3044\u307e\u305b\u3093<\/strong>\uff08\u4e0b\u9650\u306f60g\u3067\u3059\uff09\u3002\u6301\u3061\u8fbc\u307e\u308c\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u5165\u308b\u3060\u3051\u306e\u5185\u5bb9\u91cf\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002<br>\u76ee\u5b89\uff1a\u5916\u5bf8160\u00d7230\uff08210\uff09mm\u306e\u888b\u306760\u301c80g\u7a0b\u5ea6\u5165\u308a\u307e\u3059\u3002\u888b\u306e3\u8fba\u306e\u30b5\u30a4\u30ba\u304b\u3089\u8a08\u7b97\u306e\u3046\u3048\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002';\n    function syncWeightField(prefix) {\n      const useOwnPackage = toggleValue(prefix + 'MaterialSource');\n      const input = document.getElementById(prefix + 'Weight');\n      const note = document.getElementById(prefix + 'WeightNote');\n      if (useOwnPackage) {\n        input.value = FIXED_WEIGHT;\n        input.readOnly = true;\n        input.max = FIXED_WEIGHT;\n        note.innerHTML = WEIGHT_NOTE_OWN;\n      } else {\n        input.readOnly = false;\n        input.removeAttribute('max');\n        input.placeholder = '60\u4ee5\u4e0a\u3067\u5165\u529b';\n        note.innerHTML = WEIGHT_NOTE_BRING;\n      }\n      updateWeightCalc(prefix);\n    }\n    function validateWeightForMaterial(prefix, weight) {\n      if (toggleValue(prefix + 'MaterialSource')) {\n        if (weight !== FIXED_WEIGHT) { alert('\u5f0a\u793e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u3054\u5229\u7528\u306e\u5834\u5408\u3001\u5185\u5bb9\u91cf\u306f60g\u56fa\u5b9a\u3067\u3059\u3002'); return false; }\n      } else if (weight < FIXED_WEIGHT) {\n        alert('\u6301\u3061\u8fbc\u307f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5834\u5408\u3067\u3082\u3001\u5185\u5bb9\u91cf\u306f60g\u4ee5\u4e0a\u3067\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002'); return false;\n      }\n      return true;\n    }\n    initToggle('customMaterialSource', true);\n    document.getElementById('customMaterialSource').querySelectorAll('.toggle-btn').forEach(btn => {\n      btn.addEventListener('click', () => {\n        const useOwnPackage = toggleValue('customMaterialSource');\n        document.getElementById('customOwnMaterialNotice').style.display = useOwnPackage ? 'none' : 'flex';\n        updateCustomPackagePreview();\n        syncWeightField('custom');\n      });\n    });\n    updateCustomPackagePreview();\n\n    initToggle('singleMaterialSource', true);\n    document.getElementById('singleMaterialSource').querySelectorAll('.toggle-btn').forEach(btn => {\n      btn.addEventListener('click', () => {\n        const useOwnPackage = toggleValue('singleMaterialSource');\n        document.getElementById('singleOwnMaterialNotice').style.display = useOwnPackage ? 'none' : 'flex';\n        updateSinglePackagePreview();\n        syncWeightField('single');\n      });\n    });\n    updateSinglePackagePreview();\n\n    const WEIGHT_INPUT_ID = { single: 'singleWeight', custom: 'customWeight' };\n    function updateWeightCalc(prefix) {\n      const box = document.getElementById(prefix + 'WeightCalc');\n      const weight = parseFloat(document.getElementById(WEIGHT_INPUT_ID[prefix]).value);\n      const qty = getQty(prefix);\n      if (!weight || !qty) { box.style.display = 'none'; return; }\n      const totalG = weight * qty;\n      const totalDisplay = totalG >= 1000 ? `${(totalG \/ 1000).toLocaleString('ja-JP', { maximumFractionDigits: 1 })}kg` : `${totalG.toLocaleString('ja-JP')}g`;\n      box.innerHTML = `<span class=\"wc-formula\">1\u888b ${weight}g \u00d7 ${qty.toLocaleString('ja-JP')}\u888b =<\/span><span>\u7dcf\u91cd\u91cf ${totalDisplay}<\/span>`;\n      box.style.display = 'flex';\n    }\n    syncWeightField('single');\n    syncWeightField('custom');\n\n    function updateBlendTeikeiWeightCalc() {\n      const box = document.getElementById('blendTeikeiWeightCalc');\n      const weight = window.blendWeight || FIXED_WEIGHT;\n      const qty = getQty('blendTeikei');\n      if (!weight || !qty) { box.style.display = 'none'; return; }\n      const totalG = weight * qty;\n      const totalDisplay = totalG >= 1000 ? `${(totalG \/ 1000).toLocaleString('ja-JP', { maximumFractionDigits: 1 })}kg` : `${totalG.toLocaleString('ja-JP')}g`;\n      box.innerHTML = `<span class=\"wc-formula\">1\u888b ${weight}g \u00d7 ${qty.toLocaleString('ja-JP')}\u888b =<\/span><span>\u7dcf\u91cd\u91cf ${totalDisplay}<\/span>`;\n      box.style.display = 'flex';\n    }\n\n    document.querySelectorAll('#q2opts .opt').forEach(el => {\n      el.addEventListener('click', () => {\n        window.q2 = el.dataset.value;\n        setupCustomStep(window.q2);\n        goStep('stepCustom');\n      });\n    });\n\n    function goToBlendOptions() {\n      const qty = getQty('blendTeikei');\n      if (!qty || qty < MIN_LOT) { alert(`\u6570\u91cf\u306f${MIN_LOT.toLocaleString()}\u888b\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044`); return; }\n      goStep('stepBlendOptions');\n    }\n\n    \/\/ ===== \u9078\u629e\u30d6\u30ec\u30f3\u30c9\u306e\u898b\u7a4d\u308a\u8a08\u7b97 =====\n    function calcBlendDetail() {\n      if (!validateContactEmail('Blend')) return;\n      calcStandard(BLENDS[window.selectedBlendIdx]);\n    }\n\n    \/\/ \u5b9a\u5f62\u5bb9\u91cf\uff1a\u898f\u5b9a\u5358\u4fa1\u8868\u3092\u305d\u306e\u307e\u307e\u4f7f\u7528\n    function calcStandard(blend) {\n      const weight = blend.weight;\n      const qty = getQty('blendTeikei');\n      if (!qty || qty < blend.minQty) { alert(`\u6570\u91cf\u306f${blend.minQty.toLocaleString()}\u888b\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044`); return; }\n\n      const basePerBag = blendUnitPrice(blend, qty);\n\n      const opt = collectToggleOptions('b');\n      const perBagFee = optionPerBagFee(opt);\n      const perBag = basePerBag + perBagFee;\n      const bagTotal = perBag * qty;\n      const flatFee = optionFlatFee(opt) + SHIP_FEE;\n      const grandTotal = bagTotal + flatFee;\n\n      const lines = [\n        ['\u914d\u5408', blendRatioText(blend)],\n        ['\u9069\u7528\u5358\u4fa1\uff08\u539f\u6599\u8cbb\u30fb\u888b\u4ee3\u30fb\u888b\u8a70\u3081\u8cbb\u8fbc\u307f\uff09', yen(basePerBag) + '\u5186\/\u888b'],\n      ];\n      lines.push(...optionLines(opt));\n      lines.push(['1\u888b\u5358\u4fa1 \u5c0f\u8a08', yen(perBag) + '\u5186\/\u888b']);\n      lines.push([`\u5c0f\u8a08\uff08${qty.toLocaleString()}\u888b\uff09`, yen(bagTotal) + '\u5186']);\n      lines.push(...optionExtraLines(opt));\n      lines.push(['\u767a\u9001\u4f5c\u696d\uff081\u4ef6\u3042\u305f\u308a\u30fb\u9001\u6599\u306f\u5225\u9014\u5b9f\u8cbb\uff09', yen(SHIP_FEE) + '\u5186']);\n      if (typeof useOwnPackage !== 'undefined' ? !useOwnPackage : false) lines.push(['\u8cc7\u6750\u6301\u3061\u8fbc\u307f\uff08\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u30b7\u30fc\u30eb\uff09', yen(BRING_FEE) + '\u5186']);\n      lines.push(['\u5408\u8a08\u91d1\u984d\uff08\u7a0e\u629c\uff09', yen(grandTotal) + '\u5186', true]);\n\n      showResult({\n        badge: `\u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\uff08${blend.weight}g\u30fb\u521d\u671f\u8cbb\u7528\u306a\u3057\uff09`,\n        main: `\u5408\u8a08 ${yen(grandTotal)}\u5186\uff08\u7a0e\u629c\uff09`,\n        sub: `${blend.no} ${blend.name} \uff0f ${weight}g \u00d7 ${qty.toLocaleString()}\u888b`,\n        lines,\n        notice: `\u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\uff08${blend.weight}g\uff09\u306e\u305f\u3081\u3001\u521d\u56de\u30d6\u30ec\u30f3\u30c9\u521d\u671f\u8cbb\u7528\uff08${yen(INIT_FEE)}\u5186\uff09\u306f\u767a\u751f\u3057\u307e\u305b\u3093\u3002\u9001\u6599\u306f\u5225\u9014\u5b9f\u8cbb\u3067\u3059\u3002\u300c\u5225\u9014\u304a\u898b\u7a4d\u308a\u300d\u9805\u76ee\u306f\u78ba\u5b9a\u5f8c\u306b\u500b\u5225\u306b\u3054\u6848\u5185\u3057\u307e\u3059\u3002`,\n        backStep: 'stepBlendOptions'\n      });\n    }\n\n    \/\/ ===== STEP3 \u30ab\u30b9\u30bf\u30e0\uff08\u914d\u5408\u5909\u66f4\uff0f\u5b8c\u5168\u30aa\u30ea\u30b8\u30ca\u30eb\uff09 =====\n    function setupCustomStep(type) {\n      document.getElementById('customTitle').textContent =\n        type === 'adjust' ? '\u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\u306e\u914d\u5408\u3092\u4e00\u90e8\u5909\u66f4\u3059\u308b' : '\u5b8c\u5168\u30aa\u30ea\u30b8\u30ca\u30eb\u306e\u914d\u5408\u3092\u8a2d\u8a08\u3059\u308b';\n      document.getElementById('baseBlendWrap').style.display = type === 'adjust' ? 'block' : 'none';\n\n      const wrap = document.getElementById('customMaterialSource');\n      wrap.dataset.value = 'true';\n      wrap.querySelectorAll('.toggle-btn').forEach(b => b.classList.toggle('on', b.dataset.on === 'true'));\n      document.getElementById('customOwnMaterialNotice').style.display = 'none';\n      document.getElementById('customQty').value = '';\n      document.getElementById('customWeightCalc').style.display = 'none';\n      updateCustomPackagePreview();\n      syncWeightField('custom');\n\n      if (type === 'adjust') {\n        refreshBaseBlendSelect();\n        document.getElementById('baseBlend').onchange = loadBaseBlend;\n        loadBaseBlend();\n      } else {\n        document.getElementById('itemRows').innerHTML = '';\n        addItemRow(); addItemRow();\n        updateRatioTotal();\n      }\n      window.customType = type;\n    }\n    function refreshBaseBlendSelect() {\n      const sel = document.getElementById('baseBlend');\n      if (!sel) return;\n      const prev = sel.value;\n      sel.innerHTML = BLENDS.map(b => `<option value=\"${b.no}\">${b.no} ${b.name}<\/option>`).join('');\n      if (BLENDS.some(b => b.no === prev)) sel.value = prev;\n    }\n    function loadBaseBlend() {\n      const no = document.getElementById('baseBlend').value;\n      const blend = BLENDS.find(b => b.no === no);\n      const rows = document.getElementById('itemRows');\n      rows.innerHTML = '';\n      if (!blend) return;\n      \/\/ \u5546\u54c1\u30de\u30b9\u30bf\u306e\u914d\u5408\u306b\u3001\u539f\u6750\u6599\u30de\u30b9\u30bf\u3067\u898b\u3064\u304b\u3089\u306a\u3044\u54c1\u76ee\u304c\u542b\u307e\u308c\u308b\u5834\u5408\u306f\u305d\u306e\u884c\u3092\u98db\u3070\u3059\n      blend.ratio.forEach(r => { if (r.key) addItemRow(r.key, r.pct); });\n      updateRatioTotal();\n    }\n    function addItemRow(selectedKey, ratio) {\n      const rows = document.getElementById('itemRows');\n      const row = document.createElement('div');\n      row.className = 'item-row';\n      row.innerHTML = `\n    <select onchange=\"onItemSelectChange(this)\" data-prev=\"${selectedKey ?? (SINGLE_ITEMS[0] || {}).key}\">\n      ${SINGLE_ITEMS.map(i => `<option value=\"${i.key}\" ${i.key === selectedKey ? 'selected' : ''}>${singleOptionLabel(i)}<\/option>`).join('')}\n    <\/select>\n    <input type=\"number\" placeholder=\"\u6bd4\u7387%\" min=\"0\" max=\"100\" step=\"5\" value=\"${ratio ?? ''}\" oninput=\"updateRatioTotal()\">\n    <button onclick=\"removeItemRow(this)\">\u524a\u9664<\/button>\n  `;\n      rows.appendChild(row);\n      updateRatioTotal();\n    }\n    function onItemSelectChange(sel) {\n      const rows = document.querySelectorAll('#itemRows .item-row select');\n      const isDuplicate = Array.from(rows).some(s => s !== sel ? s.value === sel.value : false);\n      if (isDuplicate) {\n        alert(`\u300c${(SINGLE_ITEMS.find(i => i.key === sel.value) || { label: sel.value }).label}\u300d\u306f\u3059\u3067\u306b\u4ed6\u306e\u884c\u3067\u9078\u629e\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u540c\u3058\u54c1\u76ee\u3092\u8907\u6570\u56de\u9078\u3076\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002`);\n        sel.value = sel.dataset.prev;\n        return;\n      }\n      sel.dataset.prev = sel.value;\n      updateRatioTotal();\n    }\n    function removeItemRow(btn) {\n      const rows = document.getElementById('itemRows');\n      if (rows.querySelectorAll('.item-row').length <= 2) {\n        alert('\u30df\u30c3\u30af\u30b9\u3068\u3057\u3066\u914d\u5408\u3059\u308b\u305f\u3081\u3001\u54c1\u76ee\u306f2\u7a2e\u985e\u4ee5\u4e0a\u5fc5\u8981\u3067\u3059');\n        return;\n      }\n      btn.parentElement.remove();\n      updateRatioTotal();\n    }\n    \/\/ \u914d\u5408\u6bd4\u7387\u306f5%\u5358\u4f4d\u306e\u307f\u30025\u3067\u5272\u308a\u5207\u308c\u306a\u3044\u5165\u529b\u884c\u3092\u8fd4\u3059\n    function getRatioStepErrors() {\n      const bad = [];\n      document.querySelectorAll('#itemRows .item-row').forEach(r => {\n        const v = parseFloat(r.querySelector('input').value);\n        if (isNaN(v) ? false : v % 5 !== 0) bad.push(`${r.querySelector('select').value} ${v}%`);\n      });\n      return bad;\n    }\n    function updateRatioTotal() {\n      const rows = document.querySelectorAll('#itemRows .item-row');\n      let total = 0;\n      rows.forEach(r => {\n        const v = parseFloat(r.querySelector('input').value);\n        if (!isNaN(v)) total += v;\n      });\n      const isOk = total === 100;\n      const valueEl = document.getElementById('ratioMeterValue');\n      const barEl = document.getElementById('ratioMeterBar');\n      const warnEl = document.getElementById('ratioMeterWarning');\n      const stepErrors = getRatioStepErrors();\n      const isUnchanged = isOk ? (stepErrors.length === 0 ? (window.customType === 'adjust' ? isSameAsBaseBlend(getCustomItems()) : false) : false) : false;\n\n      valueEl.textContent = `${total}%`;\n      if (stepErrors.length) {\n        valueEl.className = 'ratio-meter-value ng';\n        barEl.className = 'ratio-meter-bar';\n        barEl.style.width = Math.min(total, 100) + '%';\n        warnEl.className = 'ratio-meter-warning';\n        warnEl.textContent = `\u914d\u5408\u6bd4\u7387\u306f5%\u5358\u4f4d\u3067\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u30021%\u5358\u4f4d\u306e\u7d30\u304b\u3044\u8abf\u6574\u306b\u306f\u5bfe\u5fdc\u3057\u3066\u304a\u308a\u307e\u305b\u3093\u3002\uff08\u8981\u4fee\u6b63\uff1a${stepErrors.join('\uff0f')}\uff09`;\n        return;\n      }\n      if (isUnchanged) {\n        valueEl.className = 'ratio-meter-value warn';\n        barEl.className = 'ratio-meter-bar warn';\n        barEl.style.width = Math.min(total, 100) + '%';\n        warnEl.className = 'ratio-meter-warning warn';\n        warnEl.textContent = '\u6bd4\u7387\u306f100%\u3067\u3059\u304c\u3001\u54c1\u76ee\u307e\u305f\u306f\u6bd4\u7387\u3092\u30aa\u30ea\u30b8\u30ca\u30eb\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002';\n        return;\n      }\n      valueEl.className = 'ratio-meter-value ' + (isOk ? 'ok' : 'ng');\n      barEl.style.width = Math.min(total, 100) + '%';\n      barEl.className = 'ratio-meter-bar ' + (isOk ? 'ok' : '');\n      warnEl.className = 'ratio-meter-warning' + (isOk ? ' ok' : '');\n      if (isOk) {\n        warnEl.textContent = '\u914d\u5408\u6bd4\u7387\u306e\u5408\u8a08\u304c100%\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u3053\u306e\u307e\u307e\u6b21\u306b\u304a\u9032\u307f\u3044\u305f\u3060\u3051\u307e\u3059\u3002';\n      } else if (total < 100) {\n        warnEl.textContent = `\u914d\u5408\u6bd4\u7387\u304c${100 - total}%\u8db3\u308a\u3066\u3044\u307e\u305b\u3093\u3002\u5408\u8a08\u304c100%\u306b\u306a\u308b\u3088\u3046\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002`;\n      } else {\n        warnEl.textContent = `\u914d\u5408\u6bd4\u7387\u304c${total - 100}%\u8d85\u904e\u3057\u3066\u3044\u307e\u3059\u3002\u5408\u8a08\u304c100%\u306b\u306a\u308b\u3088\u3046\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002`;\n      }\n    }\n    function getCustomItems() {\n      const rows = document.querySelectorAll('#itemRows .item-row');\n      const items = [];\n      rows.forEach(r => {\n        const key = r.querySelector('select').value;\n        const master = SINGLE_ITEMS.find(i => i.key === key);\n        const ratio = parseFloat(r.querySelector('input').value);\n        if (key ? ratio > 0 : false) items.push({ key, name: master ? master.label : key, ratio });\n      });\n      return items;\n    }\n    function isSameAsBaseBlend(items) {\n      const no = document.getElementById('baseBlend').value;\n      const blend = BLENDS.find(b => b.no === no);\n      if (!blend) return false;\n      const baseEntries = blend.ratio.filter(r => r.key);\n      if (items.length !== baseEntries.length) return false;\n      return baseEntries.every(r => {\n        const match = items.find(it => it.key === r.key);\n        return !match ? false : Math.round(match.ratio) === r.pct;\n      });\n    }\n    function calcCustom() {\n      if (!validateContactEmail('Custom')) return;\n      if (!toggleValue('customMaterialSource')) {\n        const linkEl = document.getElementById('customPackageLinkUrl');\n        if (!linkEl.value.trim()) {\n          alert('\u8cc7\u6750\u3092\u6301\u3061\u8fbc\u3080\u5834\u5408\u306f\u3001\u304a\u9001\u308a\u3044\u305f\u3060\u304f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u753b\u50cf\u30fb\u4ed5\u69d8\u306eURL\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002');\n          linkEl.focus();\n          return;\n        }\n      }\n      const items = getCustomItems();\n      if (items.length < 2) { alert('\u30df\u30c3\u30af\u30b9\u3068\u3057\u3066\u914d\u5408\u3059\u308b\u305f\u3081\u3001\u54c1\u76ee\u306f2\u7a2e\u985e\u4ee5\u4e0a\u304a\u9078\u3073\u304f\u3060\u3055\u3044'); return; }\n      const uniqueNames = new Set(items.map(i => i.key));\n      if (uniqueNames.size !== items.length) { alert('\u540c\u3058\u54c1\u76ee\u304c\u8907\u6570\u306e\u884c\u3067\u9078\u629e\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u54c1\u76ee\u306f\u91cd\u8907\u306a\u304f\u304a\u9078\u3073\u304f\u3060\u3055\u3044\u3002'); return; }\n      const stepNg = items.filter(i => i.ratio % 5 !== 0);\n      if (stepNg.length) {\n        alert('\u914d\u5408\u6bd4\u7387\u306f5%\u5358\u4f4d\u3067\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u30021%\u5358\u4f4d\u306e\u7d30\u304b\u3044\u8abf\u6574\u306b\u306f\u5bfe\u5fdc\u3057\u3066\u304a\u308a\u307e\u305b\u3093\u3002\\n\\n' + stepNg.map(i => `${i.name}\uff1a${i.ratio}%`).join('\\n'));\n        return;\n      }\n      const totalRatio = items.reduce((s, i) => s + i.ratio, 0);\n      if (Math.round(totalRatio) !== 100) { alert('\u914d\u5408\u6bd4\u7387\u306e\u5408\u8a08\u3092100%\u306b\u3057\u3066\u304f\u3060\u3055\u3044'); return; }\n      if (window.customType === 'adjust' ? isSameAsBaseBlend(items) : false) {\n        alert('\u914d\u5408\u304c\u30d9\u30fc\u30b9\u306e\u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\u3068\u540c\u3058\u307e\u307e\u3067\u3059\u3002\u914d\u5408\u3092\u5909\u66f4\u3059\u308b\u304b\u3001\u5909\u66f4\u304c\u4e0d\u8981\u306a\u5834\u5408\u306f\u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\u304b\u3089\u76f4\u63a5\u304a\u9078\u3073\u304f\u3060\u3055\u3044\u3002');\n        return;\n      }\n\n      const weight = parseFloat(document.getElementById('customWeight').value);\n      const qty = getQty('custom');\n      if (!weight || !qty) { alert('\u5bb9\u91cf\u3068\u6570\u91cf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044'); return; }\n      if (!validateWeightForMaterial('custom', weight)) return;\n      if (qty < MIN_LOT) { alert(`\u5b8c\u5168\u30aa\u30ea\u30b8\u30ca\u30eb\u30fb\u914d\u5408\u5909\u66f4\u306e\u6700\u4f4e\u30ed\u30c3\u30c8\u306f${MIN_LOT.toLocaleString()}\u888b\u3067\u3059`); return; }\n\n      \/\/ \u5358\u4fa1\u304c\u7a7a\u6b04\uff08\u8981\u898b\u7a4d\u3082\u308a\uff09\u306e\u539f\u6599\u306f\u8a08\u7b97\u304b\u3089\u9664\u304d\u3001\u5225\u9014\u304a\u898b\u7a4d\u308a\u6271\u3044\u306b\u3059\u308b\n      let materialCostPerKg = 0;\n      const unknownNames = [];\n      items.forEach(it => {\n        const master = SINGLE_ITEMS.find(m => m.key === it.key);\n        if (!(master ? master.price > 0 : false)) unknownNames.push(it.name);\n        else materialCostPerKg += master.price * (it.ratio \/ 100);\n      });\n      const allUnknown = unknownNames.length === items.length;\n      const exclNote = !unknownNames.length ? '' : (allUnknown ? '\uff08\u539f\u6599\u8cbb\u3092\u9664\u304f\uff09' : '\uff08\u4e00\u90e8\u539f\u6599\u8cbb\u3092\u9664\u304f\uff09');\n      let materialCost = materialCostPerKg * (weight \/ 1000);\n      const bulkApplied = !unknownNames.length ? qty >= 1000 : false;\n      if (bulkApplied) materialCost *= BULK_DISCOUNT_RATE;\n\n      const useOwnPackage = toggleValue('customMaterialSource');\n      const bagCost = useOwnPackage ? estimateBagCost() : 0;\n      const opt = collectToggleOptions('');\n      const perBagFee = optionPerBagFee(opt);\n      const perBag = materialCost + bagCost + FILL_COST + perBagFee;\n      const bagTotal = perBag * qty;\n      const flatFee = optionFlatFee(opt) + SHIP_FEE + (useOwnPackage ? 0 : BRING_FEE);\n      const grandTotal = bagTotal + INIT_FEE + flatFee;\n\n      const lines = [\n        ['\u914d\u5408', items.map(i => `${i.name} ${i.ratio}%`).join('\uff0f')],\n        ['\u539f\u6599\u8cbb\uff081\u888b\u3042\u305f\u308a\uff09', !unknownNames.length\n          ? (yen(materialCost) + '\u5186' + (bulkApplied ? '\uff081,000\u888b\u4ee5\u4e0a\u5272\u5f15\u9069\u7528\uff09' : ''))\n          : (allUnknown ? (unknownNames.join('\u30fb') + '\u306b\u3064\u3044\u3066\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a') : (yen(materialCost) + '\u5186\uff08' + unknownNames.join('\u30fb') + '\u306e\u539f\u6599\u8cbb\u306f\u5225\u9014\u304a\u898b\u7a4d\u308a\uff09'))],\n        ['\u888b\u4ee3\uff081\u888b\u3042\u305f\u308a\uff09', useOwnPackage ? (yen(bagCost) + '\u5186') : '\u8cb4\u793e\u3054\u6301\u53c2\u306e\u305f\u30810\u5186'],\n        ['\u888b\u8a70\u3081\u8cbb\uff081\u888b\u3042\u305f\u308a\uff09', yen(FILL_COST) + '\u5186'],\n      ];\n      lines.push(...optionLines(opt));\n      lines.push(['1\u888b\u5358\u4fa1 \u5c0f\u8a08' + exclNote, yen(perBag) + '\u5186\/\u888b']);\n      lines.push([`\u888b\u8a70\u3081\u5408\u8a08\uff08${qty.toLocaleString()}\u888b\uff09` + exclNote, yen(bagTotal) + '\u5186']);\n      lines.push(['\u521d\u56de\u30d6\u30ec\u30f3\u30c9\u521d\u671f\u8cbb\u7528', yen(INIT_FEE) + '\u5186']);\n      lines.push(...optionExtraLines(opt));\n      lines.push(['\u767a\u9001\u4f5c\u696d\uff081\u4ef6\u3042\u305f\u308a\u30fb\u9001\u6599\u306f\u5225\u9014\u5b9f\u8cbb\uff09', yen(SHIP_FEE) + '\u5186']);\n      if (typeof useOwnPackage !== 'undefined' ? !useOwnPackage : false) lines.push(['\u8cc7\u6750\u6301\u3061\u8fbc\u307f\uff08\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u30b7\u30fc\u30eb\uff09', yen(BRING_FEE) + '\u5186']);\n      lines.push(['\u5408\u8a08\u91d1\u984d\uff08\u7a0e\u629c\u30fb\u521d\u56de\uff09' + exclNote, yen(grandTotal) + '\u5186', true]);\n\n      showResult({\n        badge: window.customType === 'adjust' ? '\u6a19\u6e96\u30d6\u30ec\u30f3\u30c9\u914d\u5408\u5909\u66f4' : '\u5b8c\u5168\u30aa\u30ea\u30b8\u30ca\u30eb\u30df\u30c3\u30af\u30b9',\n        main: `\u5408\u8a08 ${yen(grandTotal)}\u5186\uff08\u7a0e\u629c\u30fb\u521d\u56de\uff09` + (unknownNames.length ? `\uff0b${unknownNames.join('\u30fb')}\u306e\u539f\u6599\u8cbb\uff08\u304a\u898b\u7a4d\u308a\uff09` : ''),\n        sub: `${weight}g \u00d7 ${qty.toLocaleString()}\u888b` + (useOwnPackage ? '' : '\uff08\u8cb4\u793e\u8cc7\u6750\u4f7f\u7528\uff09'),\n        lines,\n        notice: (unknownNames.length ? unknownNames.join('\u30fb') + '\u306e\u539f\u6599\u8cbb\u306f\u304a\u898b\u7a4d\u308a\u3068\u306a\u308b\u305f\u3081\u3001\u5408\u8a08\u91d1\u984d\u306b\u306f\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3002' : '') + '2\u56de\u76ee\u4ee5\u964d\u306e\u3054\u767a\u6ce8\u3067\u306f\u521d\u56de\u30d6\u30ec\u30f3\u30c9\u521d\u671f\u8cbb\u7528\uff0815,000\u5186\uff09\u306f\u767a\u751f\u3057\u307e\u305b\u3093\u3002\u9001\u6599\u306f\u5225\u9014\u5b9f\u8cbb\u3067\u3059\u3002\u300c\u5225\u9014\u304a\u898b\u7a4d\u308a\u300d\u9805\u76ee\u306f\u78ba\u5b9a\u5f8c\u306b\u500b\u5225\u306b\u3054\u6848\u5185\u3057\u307e\u3059\u3002' + (useOwnPackage ? '' : ' \u6301\u3061\u8fbc\u307f\u8cc7\u6750\u306f\u4e8b\u524d\u306b\u30b5\u30f3\u30d7\u30eb\u3067\u5bfe\u5fdc\u53ef\u5426\u3092\u78ba\u8a8d\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3059\u3002'),\n        backStep: 'stepCustom'\n      });\n    }\n\n    \/\/ ===== \u7d50\u679c\u8868\u793a =====\n    function showResult(data) {\n      document.getElementById('resultBadge').textContent = data.badge;\n      document.getElementById('resultMain').textContent = data.main;\n      document.getElementById('resultProductName').textContent = data.sub;\n\n      const ratioLine = data.lines.find(l => l[0] === '\u914d\u5408');\n      const restLines = data.lines.filter(l => l[0] !== '\u914d\u5408');\n      const ratioBox = document.getElementById('resultProductRatio');\n      if (ratioLine) {\n        document.getElementById('resultProductRatioText').textContent = ratioLine[1];\n        ratioBox.style.display = 'block';\n      } else {\n        ratioBox.style.display = 'none';\n      }\n\n      document.getElementById('resultBreakdown').innerHTML = restLines.map(l =>\n        `<div class=\"line ${l[2] ? 'total' : (\/\u5408\u8a08|\u5c0f\u8a08\/.test(l[0]) ? 'sub-total' : '')}\"><span>${l[0]}<\/span><span>${l[1]}<\/span><\/div>`\n      ).join('');\n      document.getElementById('resultNotice').textContent = data.notice;\n      window.resultBackStep = data.backStep || 'step1';\n      window.lastResultData = data;\n      document.getElementById('submitStatus').style.display = 'none';\n      document.getElementById('submitEstimateBtn').disabled = false;\n      document.getElementById('submitEstimateBtn').textContent = '\u3053\u306e\u5185\u5bb9\u3067\u767a\u6ce8\u76f8\u8ac7\u3059\u308b';\n      goStep('stepResult');\n    }\n    document.getElementById('resultBackBtn').addEventListener('click', () => {\n      goStep(window.resultBackStep || 'step1');\n    });\n\n    \/\/ GAS\uff08Google Apps Script\uff09\u306e\u30a6\u30a7\u30d6\u30a2\u30d7\u30eaURL\u3002\u30c7\u30d7\u30ed\u30a4\u5f8c\u306b\u3053\u3053\u3078\u5dee\u3057\u66ff\u3048\u308b\n    const GAS_URL = 'https:\/\/script.google.com\/macros\/s\/AKfycbyCgCWsgVUECceoXqeU7c1nhMTdUHNdfWK9m_ra_qibM4plzfG0nyc1bfpxiscLqDO77w\/exec';\n\n    const CONTACT_SUFFIX_BY_BACKSTEP = {\n      stepSingleOptions: 'Single',\n      stepBlendOptions: 'Blend',\n      stepCustom: 'Custom',\n    };\n      \/\/ \u30e1\u30fc\u30eb\u9001\u4fe1\u306b\u52a0\u3048\u3066\u3001\u898b\u7a4d\u308a\u5185\u5bb9\u3092\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\uff08\u304a\u898b\u7a4d\u308a\u9001\u4fe1\u30ed\u30b0\uff09\u306b\u3082\u4fdd\u5b58\u3059\u308b\n      function saveEstimateLog(payload) {\n        try {\n          fetch(MASTER_API_URL, {\n            method: 'POST',\n            mode: 'no-cors',\n            headers: { 'Content-Type': 'text\/plain;charset=utf-8' },\n            body: JSON.stringify(payload),\n          }).catch(() => {});\n        } catch (err) {  }\n      }\n    function submitEstimate() {\n      const data = window.lastResultData;\n      if (!data) return;\n\n      const suffix = CONTACT_SUFFIX_BY_BACKSTEP[window.resultBackStep] || '';\n      const companyEl = document.getElementById('contactCompany' + suffix);\n      const nameEl = document.getElementById('contactName' + suffix);\n      const emailEl = document.getElementById('contactEmail' + suffix);\n      const company = companyEl ? companyEl.value.trim() : '';\n      const name = nameEl ? nameEl.value.trim() : '';\n      const email = emailEl ? emailEl.value.trim() : '';\n\n      if (!email) {\n        alert('\u81ea\u52d5\u8fd4\u4fe1\u30e1\u30fc\u30eb\u3092\u304a\u9001\u308a\u3059\u308b\u305f\u3081\u3001\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\uff08\u524d\u306e\u753b\u9762\u306e\u5165\u529b\u6b04\uff09\u3002');\n        return;\n      }\n\n      \/\/ \u6301\u3061\u8fbc\u307f\u8cc7\u6750\u3092\u9078\u3093\u3060\u5834\u5408\u3001\u9001\u4ed8\u4e88\u5b9a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30ea\u30f3\u30af\u304c\u3042\u308c\u3070\u53d6\u5f97\uff08\u5bfe\u8c61\u306f\u5358\u54c1\u30fb\u5b8c\u5168\u30aa\u30ea\u30b8\u30ca\u30eb\u306e\u307f\uff09\n      const linkPrefix = suffix.charAt(0).toLowerCase() + suffix.slice(1);\n      const packageLinkEl = document.getElementById(linkPrefix + 'PackageLinkUrl');\n      const packageLinkUrl = packageLinkEl ? packageLinkEl.value.trim() : '';\n\n      const ratioLine = data.lines.find(l => l[0] === '\u914d\u5408');\n      const payload = {\n        \/\/ GAS\u5074\u306e\u65e2\u5b9a\u5024\u306b\u983c\u3089\u305a\u3001\u5fc5\u305a\u3053\u306e\u30d5\u30a9\u30fc\u30e0\u540d\u3067\u30e1\u30fc\u30eb\u3092\u9001\u308b\n        formTitle: '\u4e7e\u71e5\u91ce\u83dc\u30fb\u4e7e\u71e5\u91ce\u83dc\u30df\u30c3\u30af\u30b9 \u304b\u3093\u305f\u3093\u304a\u898b\u7a4d\u3082\u308a\u30fb\u767a\u6ce8\u30d5\u30a9\u30fc\u30e0',\n        badge: data.badge,\n        productName: data.sub,\n        main: data.main,\n        ratioText: ratioLine ? ratioLine[1] : '',\n        lines: data.lines.filter(l => l[0] !== '\u914d\u5408'),\n        company, name, email, packageLinkUrl,\n      };\n\n      saveEstimateLog(payload);\n      const btn = document.getElementById('submitEstimateBtn');\n      const statusEl = document.getElementById('submitStatus');\n      btn.disabled = true;\n      btn.textContent = '\u9001\u4fe1\u4e2d...';\n\n      fetch(GAS_URL, {\n        method: 'POST',\n        mode: 'no-cors',\n        headers: { 'Content-Type': 'application\/json' },\n        body: JSON.stringify(payload),\n      }).then(() => {\n        statusEl.textContent = '\u304a\u898b\u7a4d\u308a\u306e\u9001\u4fe1\u3092\u53d7\u3051\u4ed8\u3051\u307e\u3057\u305f\u3002\u3054\u5165\u529b\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u5b9b\u306b\u81ea\u52d5\u8fd4\u4fe1\u30e1\u30fc\u30eb\u3092\u304a\u9001\u308a\u3057\u3066\u3044\u307e\u3059\u3002\u6570\u5206\u7d4c\u3063\u3066\u3082\u5c4a\u304b\u306a\u3044\u5834\u5408\u306f\u3001\u6b63\u3057\u304f\u9001\u4fe1\u3067\u304d\u3066\u3044\u306a\u3044\u53ef\u80fd\u6027\u304c\u3054\u3056\u3044\u307e\u3059\u306e\u3067\u3001\u304a\u624b\u6570\u3067\u3059\u304c info@agriture.jp \u307e\u3067\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002';\n        statusEl.style.display = 'block';\n        btn.textContent = '\u9001\u4fe1\u6e08\u307f';\n      }).catch(() => {\n        statusEl.textContent = '\u9001\u4fe1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u901a\u4fe1\u74b0\u5883\u3092\u3054\u78ba\u8a8d\u306e\u3046\u3048\u3001\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002';\n        statusEl.style.display = 'block';\n        btn.disabled = false;\n        btn.textContent = '\u3053\u306e\u5185\u5bb9\u3067\u767a\u6ce8\u76f8\u8ac7\u3059\u308b';\n      });\n    }\n\n  <\/script>\n\n<script>\n  (function () {\n    var root = document.getElementById('agriture-estimate');\n    if (!root) return;\n    function unlazy() {\n      root.querySelectorAll('img[data-src]').forEach(function (im) {\n        im.src = im.getAttribute('data-src');\n        im.removeAttribute('data-src');\n        im.classList.remove('lazyload');\n      });\n    }\n    unlazy();\n    new MutationObserver(unlazy).observe(root, { childList: true, subtree: true });\n    root.addEventListener('error', function (e) {\n      var t = e.target;\n      if (t && t.tagName === 'IMG') { t.style.display = 'none'; }\n    }, true);\n  })();\n<\/script>\n<\/section>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"swell_btn_cv_data":"","footnotes":"","ssp_meta_description":"","ssp_meta_keyword":""},"class_list":["post-6207","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/agriture.jp\/en\/wp-json\/wp\/v2\/pages\/6207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agriture.jp\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agriture.jp\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agriture.jp\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/agriture.jp\/en\/wp-json\/wp\/v2\/comments?post=6207"}],"version-history":[{"count":17,"href":"https:\/\/agriture.jp\/en\/wp-json\/wp\/v2\/pages\/6207\/revisions"}],"predecessor-version":[{"id":7182,"href":"https:\/\/agriture.jp\/en\/wp-json\/wp\/v2\/pages\/6207\/revisions\/7182"}],"wp:attachment":[{"href":"https:\/\/agriture.jp\/en\/wp-json\/wp\/v2\/media?parent=6207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}