var/cache/dev/twig/ce/ce33f1a336b501ccf515e493a104daa7fd455b12fbf3de30504bd569466a894b.php line 2972

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* Product/detail.twig */
  14. class __TwigTemplate_da5ad31feda8695d41b76c2e300641cf69fccce492d7fb053b687f2a0b3adb3c extends \Eccube\Twig\Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'stylesheet' => [$this'block_stylesheet'],
  24.             'javascript' => [$this'block_javascript'],
  25.             'main' => [$this'block_main'],
  26.         ];
  27.     }
  28.     protected function doGetParent(array $context)
  29.     {
  30.         // line 11
  31.         return "default_frame.twig";
  32.     }
  33.     protected function doDisplay(array $context, array $blocks = [])
  34.     {
  35.         $macros $this->macros;
  36.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Product/detail.twig"));
  38.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Product/detail.twig"));
  40.         // line 13
  41.         $context["body_class"] = "product_page";
  42.         // line 11
  43.         $this->parent $this->loadTemplate("default_frame.twig""Product/detail.twig"11);
  44.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  45.         
  46.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  47.         
  48.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  49.     }
  50.     // line 15
  51.     public function block_stylesheet($context, array $blocks = [])
  52.     {
  53.         $macros $this->macros;
  54.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  55.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  56.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  57.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  58.         // line 16
  59.         echo "    <style>
  60.         .slick-slider {
  61.             margin-bottom: 10px;
  62. \t\t\tmargin-top: -20px;
  63.         }
  64.         .slick-dots {
  65.             position: absolute;
  66.             bottom: -45px;
  67.             display: block;
  68.             width: 100%;
  69.             padding: 0;
  70.             list-style: none;
  71.             text-align: center;
  72.         }
  73.         .slick-dots li {
  74.             position: relative;
  75.             display: inline-block;
  76.             width: 20px;
  77.             height: 20px;
  78.             margin: 0 5px;
  79.             padding: 0;
  80.             cursor: pointer;
  81.         }
  82.         .slick-dots li button {
  83.             font-size: 0;
  84.             line-height: 0;
  85.             display: block;
  86.             width: 20px;
  87.             height: 20px;
  88.             padding: 5px;
  89.             cursor: pointer;
  90.             color: transparent;
  91.             border: 0;
  92.             outline: none;
  93.             background: transparent;
  94.         }
  95.         .slick-dots li button:hover,
  96.         .slick-dots li button:focus {
  97.             outline: none;
  98.         }
  99.         .slick-dots li button:hover:before,
  100.         .slick-dots li button:focus:before {
  101.             opacity: 1;
  102.         }
  103.         .slick-dots li button:before {
  104.             content: \" \";
  105.             line-height: 20px;
  106.             position: absolute;
  107.             top: 0;
  108.             left: 0;
  109.             width: 12px;
  110.             height: 12px;
  111.             text-align: center;
  112.             opacity: .25;
  113.             background-color: black;
  114.             border-radius: 50%;
  115.         }
  116.         .slick-dots li.slick-active button:before {
  117.             opacity: .75;
  118.             background-color: black;
  119.         }
  120.         .slick-dots li button.thumbnail img {
  121.             width: 0;
  122.             height: 0;
  123.         }
  124.     </style>
  125.     <link rel=\"stylesheet\" href=\"/html/user_data/js/style.css\">
  126.     <link rel=\"stylesheet\" href=\"/html/plugins/icheck-bootstrap/icheck-bootstrap.min.css\">
  127.     <style>
  128.         /* ============================================
  129.            商品詳細グリッド: 画像50% / 内容50%(均等)
  130.         ============================================ */
  131.         @media (min-width: 768px) {
  132.             body.product_page .ec-grid2 {
  133.                 display: flex;
  134.                 align-items: flex-start;
  135.             }
  136.             body.product_page .ec-grid2 .ec-grid2__cell {
  137.                 width: 50%;
  138.                 flex: 0 0 50%;
  139.                 min-width: 0;
  140.             }
  141.             body.product_page .ec-grid2 .ec-grid2__cell2 {
  142.                 width: 50%;
  143.                 flex: 0 0 50%;
  144.                 min-width: 0;
  145.             }
  146.         }
  147.         /* ============================================
  148.            商品説明欄内のHTMLが画面幅を突き抜けないように
  149.         ============================================ */
  150.         body.product_page .ec-productRole__description {
  151.             min-width: 0;
  152.             overflow-wrap: break-word;
  153.             word-break: break-word;
  154.         }
  155.         body.product_page .ec-productRole__description img,
  156.         body.product_page .ec-productRole__description table,
  157.         body.product_page .ec-productRole__description iframe,
  158.         body.product_page .ec-productRole__description video {
  159.             max-width: 100% !important;
  160.             height: auto;
  161.         }
  162.         body.product_page .ec-productRole__description table {
  163.             display: block;
  164.             overflow-x: auto;
  165.             -webkit-overflow-scrolling: touch;
  166.         }
  167.         /* ============================================
  168.            スマホ用 見積金額 下部固定バー
  169.         ============================================ */
  170.         #sp-mitsumori-bar {
  171.             display: none;
  172.         }
  173.         
  174.         /* ============================================
  175.            商品タイプ選択 共通スタイル
  176.         ============================================ */
  177.         /* セクションラベル */
  178.         .rp-section-label {
  179.             font-size: 14px;
  180.             font-weight: bold;
  181.             color: #333;
  182.             margin-bottom: 10px;
  183.         }
  184.         .rp-section-label span {
  185.             font-weight: normal;
  186.             color: #c00;
  187.         }
  188.         /* ---- 1. 画像付きカード ---- */
  189.         .rp-card-group {
  190.             display: flex;
  191.             flex-wrap: wrap;
  192.             gap: 8px;
  193.             margin-bottom: 4px;
  194.         }
  195.         .rp-card {
  196.             position: relative;
  197.             cursor: pointer;
  198.             width: 110px;
  199.             border: 2px solid #ddd;
  200.             border-radius: 10px;
  201.             overflow: hidden;
  202.             transition: border-color 0.2s, box-shadow 0.2s;
  203.             background: #fff;
  204.         }
  205.         .rp-card:hover {
  206.             border-color: #999;
  207.             box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  208.         }
  209.         .rp-card.is-selected {
  210.             border-color: #1a6fcf;
  211.             box-shadow: 0 2px 10px rgba(26,111,207,0.25);
  212.         }
  213.         .rp-card input[type=\"radio\"] { display: none; }
  214.         .rp-card__image {
  215.             width: 100%;
  216.             aspect-ratio: 1 / 1;
  217.             object-fit: cover;
  218.             display: block;
  219.             background: #f5f5f5;
  220.         }
  221.         .rp-card__placeholder {
  222.             width: 100%;
  223.             aspect-ratio: 1 / 1;
  224.             background: #f0f0f0;
  225.             display: flex;
  226.             align-items: center;
  227.             justify-content: center;
  228.             color: #bbb;
  229.             font-size: 24px;
  230.         }
  231.         .rp-card__name {
  232.             display: block;
  233.             padding: 5px 5px;
  234.             font-size: 11px;
  235.             color: #333;
  236.             text-align: center;
  237.             line-height: 1.4;
  238.             word-break: break-all;
  239.         }
  240.         .rp-card.is-selected .rp-card__name { color: #1a6fcf; font-weight: bold; }
  241.         .rp-card.is-selected::after {
  242.             content: \"✓\";
  243.             position: absolute;
  244.             top: 3px; right: 6px;
  245.             color: #1a6fcf;
  246.             font-size: 13px;
  247.             font-weight: bold;
  248.         }
  249.         /* ---- 2. ボタン式ラジオ(画像なし・8個以内)---- */
  250.         .rp-btn-group {
  251.             display: flex;
  252.             flex-wrap: wrap;
  253.             gap: 8px;
  254.             margin-bottom: 4px;
  255.             max-width: 100%;
  256.             min-width: 0;
  257.         }
  258.         .rp-btn {
  259.             cursor: pointer;
  260.             padding: 8px 14px;
  261.             border: 2px solid #ddd;
  262.             border-radius: 10px;
  263.             font-size: 13px;
  264.             color: #333;
  265.             background: #fff;
  266.             transition: border-color 0.2s, background 0.2s;
  267.             white-space: nowrap;
  268.             max-width: 100%;
  269.             overflow: hidden;
  270.             text-overflow: ellipsis;
  271.         }
  272.         .rp-btn:hover { border-color: #999; }
  273.         .rp-btn.is-selected {
  274.             border-color: #1a6fcf;
  275.             color: #1a6fcf;
  276.             font-weight: bold;
  277.             background: #f0f6ff;
  278.         }
  279.         .rp-btn input[type=\"radio\"] { display: none; }
  280.         /* ---- ボタン群が3行以上になる場合は1行横スクロール ---- */
  281.         .rp-btn-group.is-scroll,
  282.         .opt-btn-group.is-scroll {
  283.             flex-wrap: nowrap;
  284.             overflow-x: auto;
  285.             overflow-y: hidden;
  286.             -webkit-overflow-scrolling: touch;
  287.             scrollbar-width: thin;
  288.             padding-bottom: 6px;
  289.         }
  290.         .rp-btn-group.is-scroll::-webkit-scrollbar,
  291.         .opt-btn-group.is-scroll::-webkit-scrollbar {
  292.             height: 6px;
  293.         }
  294.         .rp-btn-group.is-scroll::-webkit-scrollbar-thumb,
  295.         .opt-btn-group.is-scroll::-webkit-scrollbar-thumb {
  296.             background: #c0c0c0;
  297.             border-radius: 3px;
  298.         }
  299.         .rp-btn-group.is-scroll > .rp-btn,
  300.         .opt-btn-group.is-scroll > .opt-btn {
  301.             flex: 0 0 auto;
  302.         }
  303.         /* ---- 3. プルダウン(画像なし・9個以上)---- */
  304.         .rp-select-wrap {
  305.             margin-bottom: 4px;
  306.         }
  307.         .rp-select {
  308.             width: 100%;
  309.             max-width: 420px;
  310.             padding: 8px 12px;
  311.             border: 2px solid #ddd;
  312.             border-radius: 10px;
  313.             font-size: 13px;
  314.             color: #333;
  315.             background: #fff;
  316.             appearance: none;
  317.             background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E\");
  318.             background-repeat: no-repeat;
  319.             background-position: right 12px center;
  320.             cursor: pointer;
  321.         }
  322.         .rp-select:focus {
  323.             outline: none;
  324.             border-color: #1a6fcf;
  325.         }
  326.         /* ---- オプション選択ボタン(枠線ラジオ)---- */
  327.         .opt-btn-group {
  328.             display: flex;
  329.             flex-wrap: wrap;
  330.             gap: 8px;
  331.             padding: 6px 0;
  332.             max-width: 100%;
  333.             min-width: 0;
  334.         }
  335.         .opt-btn {
  336.             cursor: pointer;
  337.             padding: 7px 14px;
  338.             border: 2px solid #ddd;
  339.             border-radius: 10px;
  340.             font-size: 13px;
  341.             color: #333;
  342.             background: #fff;
  343.             transition: border-color 0.2s, background 0.2s;
  344.             white-space: nowrap;
  345.             max-width: 100%;
  346.             overflow: hidden;
  347.             text-overflow: ellipsis;
  348.         }
  349.         .opt-btn:hover { border-color: #999; }
  350.         .opt-btn.is-selected {
  351.             border-color: #1a6fcf;
  352.             color: #1a6fcf;
  353.             font-weight: bold;
  354.             background: #f0f6ff;
  355.         }
  356.         .opt-btn input[type=\"radio\"] { display: none; }
  357.         /* ============================================
  358.            施工エリア案内
  359.         ============================================ */
  360.         .ec-areaNotice {
  361.             margin: 16px 0;
  362.             padding: 16px 20px;
  363.             background: #f8f9fa;
  364.             border-left: 4px solid #1a6fcf;
  365.             border-radius: 0 8px 8px 0;
  366.         }
  367.         .ec-areaNotice__inner {
  368.             display: flex;
  369.             align-items: flex-start;
  370.             gap: 12px;
  371.         }
  372.         .ec-areaNotice__icon {
  373.             font-size: 22px;
  374.             line-height: 1;
  375.             flex-shrink: 0;
  376.             margin-top: 2px;
  377.         }
  378.         .ec-areaNotice__body {
  379.             flex: 1;
  380.         }
  381.         .ec-areaNotice__title {
  382.             font-size: 13px;
  383.             font-weight: bold;
  384.             color: #1a6fcf;
  385.             margin: 0 0 6px;
  386.         }
  387.         .ec-areaNotice__text {
  388.             font-size: 13px;
  389.             color: #444;
  390.             line-height: 1.7;
  391.             margin: 0;
  392.         }
  393.         .ec-areaNotice__text strong {
  394.             color: #222;
  395.         }
  396.         .ec-areaNotice__link {
  397.             display: inline-block;
  398.             margin-top: 8px;
  399.             font-size: 12px;
  400.             color: #1a6fcf;
  401.             text-decoration: underline;
  402.         }
  403.         .ec-areaNotice__link:hover {
  404.             color: #0d4fa0;
  405.         }
  406.         /* ============================================
  407.            SNSシェア + ブランド名 タイトル行
  408.         ============================================ */
  409.         .ec-productRole__titleRow {
  410.             display: flex;
  411.             align-items: center;
  412.             justify-content: space-between;
  413.             gap: 8px;
  414.             margin-bottom: 4px;
  415.         }
  416.         .ec-productRole__titleRow .ec-headingTitle {
  417.             margin: 0;
  418.             flex: 1;
  419.             font-size: 18px;
  420.         }
  421.         .ec-share-inline {
  422.             display: flex;
  423.             align-items: center;
  424.             gap: 8px;
  425.             flex-shrink: 0;
  426.         }
  427.         @media (max-width: 767px) {
  428.             /* maker_area の float を解除して独立表示 */
  429.             #maker_area {
  430.                 float: none !important;
  431.                 width: auto !important;
  432.                 height: auto !important;
  433.                 display: block;
  434.                 margin-bottom: 4px;
  435.             }
  436.             /* タイトル行: 商品名が全幅を占有しSNSは右寄せ下段 */
  437.             .ec-productRole__titleRow {
  438.                 flex-wrap: wrap;
  439.                 clear: both;
  440.             }
  441.             .ec-productRole__titleRow .ec-headingTitle {
  442.                 flex: 1 1 100%;
  443.                 font-size: 16px;
  444.             }
  445.             .ec-share-inline {
  446.                 flex: 0 0 auto;
  447.                 margin-left: auto;
  448.             }
  449.         }
  450.         .ec-share-inline a {
  451.             display: flex;
  452.             align-items: center;
  453.             justify-content: center;
  454.             width: 32px;
  455.             height: 32px;
  456.             border-radius: 50%;
  457.             font-size: 15px;
  458.             color: #fff;
  459.             text-decoration: none;
  460.             transition: opacity 0.2s;
  461.         }
  462.         .ec-share-inline a:hover { opacity: 0.8; }
  463.         .ec-share-inline .share-twitter  { background: #000; }
  464.         .ec-share-inline .share-facebook { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
  465.         .ec-share-inline .share-line     { background: #06c755; }
  466.         /* description_detail下のシェアブロックはPC/スマホ共通で非表示(タイトル行に移動) */
  467.         .ec-productRole__share { display: none; }
  468.         /* ============================================
  469.            PC用: 現在のお見積り額カード強調
  470.         ============================================ */
  471.         @media (min-width: 768px) {
  472.             .mitsumori-card-pc {
  473.                 border: 2px solid #1a6fcf !important;
  474.                 border-radius: 10px !important;
  475.                 box-shadow: 0 4px 16px rgba(26,111,207,0.18) !important;
  476.                 margin-top: 20px;
  477.                 overflow: hidden;
  478.                 background: linear-gradient(135deg, #1a6fcf, #0d4fa0) !important;
  479.             }
  480.             .mitsumori-card-pc .card-header {
  481.                 background: linear-gradient(135deg, #1a6fcf, #0d4fa0) !important;
  482.                 color: #fff !important;
  483.                 padding: 14px 16px !important;
  484.                 border-bottom: none !important;
  485.             }
  486.             .mitsumori-card-pc .card-title {
  487.                 color: #fff !important;
  488.                 font-size: 15px !important;
  489.                 font-weight: bold !important;
  490.                 margin: 0 !important;
  491.             }
  492.             .mitsumori-card-pc #mitsumori_message {
  493.                 font-size: 22px !important;
  494.                 font-weight: bold !important;
  495.                 color: #fff !important;
  496.             }
  497.             .mitsumori-card-pc .btn-tool {
  498.                 color: #fff !important;
  499.             }
  500.             /* 合計行を大きく強調 */
  501.             .mitsumori-card-pc .nav-item:first-child .nav-link {
  502.                 font-size: 16px !important;
  503.                 font-weight: bold !important;
  504.                 color: #c00 !important;
  505.                 background: #fff8f8 !important;
  506.                 padding: 12px 16px !important;
  507.             }
  508.             .mitsumori-card-pc .nav-item:first-child #mitsumori_goukei {
  509.                 font-size: 20px !important;
  510.                 font-weight: bold !important;
  511.                 color: #c00 !important;
  512.             }
  513.             /* card-body(明細リスト)を白背景に */
  514.             .mitsumori-card-pc .card-body {
  515.                 background: #fff !important;
  516.             }
  517.             .mitsumori-card-pc .card-footer {
  518.                 background: #f8faff !important;
  519.                 border-top: 1px solid #dce8fb !important;
  520.                 padding: 12px 16px !important;
  521.             }
  522.         }
  523.         @media (max-width: 767px) {
  524.             /* スマホでは現在のお見積り額カードの強調スタイルをすべてリセット */
  525.             .mitsumori-card-pc {
  526.                 border: none !important;
  527.                 border-radius: 0 !important;
  528.                 box-shadow: none !important;
  529.                 margin-top: 0 !important;
  530.                 overflow: visible !important;
  531.                 background: none !important;
  532.             }
  533.             .mitsumori-card-pc .card-header {
  534.                 background: none !important;
  535.                 color: inherit !important;
  536.                 padding: inherit !important;
  537.                 border-bottom: inherit !important;
  538.             }
  539.             .mitsumori-card-pc .card-title { color: inherit !important; }
  540.             .mitsumori-card-pc #mitsumori_message { font-size: inherit !important; color: inherit !important; }
  541.             .mitsumori-card-pc .btn-tool { color: inherit !important; }
  542.             /* 折りたたみトグルボタン */
  543.             .btn-mitsumori-toggle {
  544.                 background: none !important;
  545.                 border: 1px solid #aaa !important;
  546.                 border-radius: 4px !important;
  547.                 padding: 2px 8px !important;
  548.                 font-size: 12px !important;
  549.                 color: #333 !important;
  550.                 line-height: 1.4 !important;
  551.             }
  552.             .btn-mitsumori-toggle .toggle-icon {
  553.                 display: inline-block;
  554.                 transition: transform 0.2s;
  555.             }
  556.             /* 展開状態: ▼→▲ */
  557.             .card:not(.collapsed-card) .btn-mitsumori-toggle .toggle-icon::before {
  558.                 content: \"▲ 閉じる\";
  559.             }
  560.             .card:not(.collapsed-card) .btn-mitsumori-toggle .toggle-icon {
  561.                 display: none;
  562.             }
  563.             .card:not(.collapsed-card) .btn-mitsumori-toggle::after {
  564.                 content: \"▲ 閉じる\";
  565.                 font-size: 12px;
  566.             }
  567.             .mitsumori-card-pc .nav-item:first-child .nav-link {
  568.                 font-size: inherit !important;
  569.                 color: inherit !important;
  570.                 background: none !important;
  571.                 padding: inherit !important;
  572.             }
  573.             .mitsumori-card-pc .nav-item:first-child #mitsumori_goukei {
  574.                 font-size: inherit !important;
  575.                 color: inherit !important;
  576.             }
  577.             .mitsumori-card-pc .card-footer {
  578.                 background: none !important;
  579.                 border-top: inherit !important;
  580.                 padding: inherit !important;
  581.             }
  582.             /* 横スクロール禁止 */
  583.             body, html {
  584.                 overflow-x: hidden;
  585.                 max-width: 100vw;
  586.             }
  587.             /* ボタンの折り返しを許可(nowrapが原因で横スクロール発生するため) */
  588.             .opt-btn,
  589.             .rp-btn {
  590.                 white-space: normal;
  591.                 word-break: break-all;
  592.             }
  593.             /* エリア案内: スマホでコンパクト */
  594.             .ec-areaNotice {
  595.                 margin: 8px 0;
  596.                 padding: 8px 10px;
  597.                 border-left-width: 3px;
  598.                 cursor: pointer;
  599.             }
  600.             .ec-areaNotice__inner {
  601.                 flex-direction: row;
  602.                 gap: 8px;
  603.                 align-items: flex-start;
  604.             }
  605.             .ec-areaNotice__icon { font-size: 15px; }
  606.             /* タイトル行: 展開トグル */
  607.             .ec-areaNotice__title {
  608.                 font-size: 11px;
  609.                 margin-bottom: 3px;
  610.                 display: flex;
  611.                 justify-content: space-between;
  612.                 align-items: center;
  613.             }
  614.             .ec-areaNotice__title::after {
  615.                 content: \"▼\";
  616.                 font-size: 9px;
  617.                 color: #888;
  618.                 margin-left: 6px;
  619.                 transition: transform 0.2s;
  620.             }
  621.             .ec-areaNotice.is-open .ec-areaNotice__title::after {
  622.                 transform: rotate(180deg);
  623.             }
  624.             /* 折りたたみ対象: 閉じた状態では非表示 */
  625.             .ec-areaNotice__detail {
  626.                 display: none;
  627.             }
  628.             .ec-areaNotice.is-open .ec-areaNotice__detail {
  629.                 display: block;
  630.             }
  631.             .ec-areaNotice__text { font-size: 11px; line-height: 1.5; }
  632.             .ec-areaNotice__text br { display: none; }
  633.             .ec-areaNotice__link { font-size: 11px; margin-top: 3px; }
  634.             .rp-card { width: calc(33.333% - 6px); min-width: 80px; }
  635.             
  636.             #sp-mitsumori-bar {
  637.                 display: flex;
  638.                 position: fixed;
  639.                 bottom: 0;
  640.                 left: 0;
  641.                 right: 0;
  642.                 z-index: 1000;
  643.                 background: #fff;
  644.                 border-top: 2px solid #e0e0e0;
  645.                 box-shadow: 0 -2px 8px rgba(0,0,0,0.12);
  646.                 align-items: center;
  647.                 padding: 8px 12px;
  648.                 gap: 10px;
  649.             }
  650.             #sp-mitsumori-bar .sp-bar__label {
  651.                 font-size: 11px;
  652.                 color: #666;
  653.                 white-space: nowrap;
  654.             }
  655.             #sp-mitsumori-bar .sp-bar__price {
  656.                 font-size: 18px;
  657.                 font-weight: bold;
  658.                 color: #c00;
  659.                 flex: 1;
  660.             }
  661.             #sp-mitsumori-bar .sp-bar__btn {
  662.                 font-size: 12px;
  663.                 padding: 8px 12px;
  664.                 background: #333;
  665.                 color: #fff;
  666.                 border: none;
  667.                 border-radius: 6px;
  668.                 white-space: nowrap;
  669.                 cursor: pointer;
  670.             }
  671.             /* 下部バーの高さ分ページ下部にpaddingを追加 */
  672.             body {
  673.                 padding-bottom: 64px;
  674.             }
  675.         }
  676.     </style>
  677. ";
  678.         
  679.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  680.         
  681.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  682.     }
  683.     // line 661
  684.     public function block_javascript($context, array $blocks = [])
  685.     {
  686.         $macros $this->macros;
  687.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  688.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  689.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  690.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  691.         // line 662
  692.         echo "
  693.     <script>
  694.         eccube.classCategories = ";
  695.         // line 664
  696.         echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson((isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'664$this->source); })()));
  697.         echo ";
  698.         // 規格2に選択肢を割り当てる。
  699.         function fnSetClassCategories(form, classcat_id2_selected) {
  700.             var \$form = \$(form);
  701.             var product_id = \$form.find('input[name=product_id]').val();
  702.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  703.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  704.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  705.         }
  706.         ";
  707.         // line 675
  708.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse675)) {
  709.             // line 676
  710.             echo "        fnSetClassCategories(
  711.             \$('#form1'), ";
  712.             // line 677
  713.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'677$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse677), "vars", [], "any"falsefalsefalse677), "value", [], "any"falsefalsefalse677));
  714.             echo "
  715.         );
  716.         ";
  717.         } elseif (twig_get_attribute($this->env$this->source,         // line 679
  718. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse679)) {
  719.             // line 680
  720.             echo "        eccube.checkStock(\$('#form1'), ";
  721.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'680$this->source); })()), "id", [], "any"falsefalsefalse680), "html"nulltrue);
  722.             echo ", ";
  723.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'680$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse680), "vars", [], "any"falsefalsefalse680), "value", [], "any"falsefalsefalse680));
  724.             echo ", null);
  725.         ";
  726.         }
  727.         // line 682
  728.         echo "    </script>
  729.     <script>
  730.         \$(function() {
  731.             // bfcache無効化
  732.             \$(window).bind('pageshow', function(event) {
  733.                 if (event.originalEvent.persisted) {
  734.                     location.reload(true);
  735.                 }
  736.             });
  737.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  738.             // img タグに width, height が付与されている.
  739.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  740.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  741.             \$('.ec-grid2__cell').hide();
  742.             var removeSize = function () {
  743.                 \$('.slide-item').height('');
  744.                 \$('.slide-item img')
  745.                     .removeAttr('width')
  746.                     .removeAttr('height')
  747.                     .removeAttr('style');
  748.             };
  749.             var slickInitial = function(slick) {
  750.                 \$('.ec-grid2__cell').fadeIn(1500);
  751.                 var baseHeight = \$(slick.target).height();
  752.                 var baseWidth = \$(slick.target).width();
  753.                 var rate = baseWidth / baseHeight;
  754. \t\t\t\tif(baseHeight * rate < 400){
  755. \t                \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  756. \t\t\t\t}else{
  757. \t                \$('.slide-item').height(400); // 余白を削除する
  758. \t\t\t\t}
  759.                 // transform を使用することでCLSの影響を受けないようにする
  760.                 \$('.slide-item img')
  761.                     .css(
  762.                         {
  763.                             'transform-origin': 'top left',
  764.                             'transform': 'scaleY(' + rate + ')',
  765.                             'transition': 'transform .1s'
  766.                         }
  767.                     );
  768.                 // 正しいサイズに近くなったら属性を解除する
  769.                 setTimeout(removeSize, 500);
  770.             };
  771.             \$('.item_visual').on('init', slickInitial);
  772.             // リサイズ時は CLS の影響を受けないため属性を解除する
  773.             \$(window).resize(removeSize);
  774.             \$('.item_visual').slick({
  775.                 dots: false,
  776.                 arrows: true,
  777.                 responsive: [{
  778.                     breakpoint: 768,
  779.                     settings: {
  780.                         dots: true,
  781.                 \t\tarrows: false
  782.                     }
  783.                 }]
  784.             });
  785.             \$('.slideThumb').on('click', function() {
  786.                 var index = \$(this).attr('data-index');
  787.                 \$('.item_visual').slick('slickGoTo', index, false);
  788.             })
  789.         });
  790.     </script>
  791.     <script>
  792.         \$(function() {
  793.             \$('.add-cart').on('click', function(event) {
  794.                 ";
  795.         // line 752
  796.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse752)) {
  797.             // line 753
  798.             echo "                // 規格1フォームの必須チェック
  799.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  800.                     \$('#classcategory_id1')[0].setCustomValidity('";
  801.             // line 755
  802.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  803.             echo "');
  804.                     return true;
  805.                 } else {
  806.                     \$('#classcategory_id1')[0].setCustomValidity('');
  807.                 }
  808.                 ";
  809.         }
  810.         // line 761
  811.         echo "
  812.                 ";
  813.         // line 762
  814.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse762)) {
  815.             // line 763
  816.             echo "                // 規格2フォームの必須チェック
  817.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  818.                     \$('#classcategory_id2')[0].setCustomValidity('";
  819.             // line 765
  820.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  821.             echo "');
  822.                     return true;
  823.                 } else {
  824.                     \$('#classcategory_id2')[0].setCustomValidity('');
  825.                 }
  826.                 ";
  827.         }
  828.         // line 771
  829.         echo "
  830.                 // タイプ2: カート送信直前に set_count を quantity に同期
  831.                 if(\$('#set_count').length){
  832.                     var _sc = parseInt(\$('#set_count').val()) || 1;
  833.                     \$('#quantity').val(_sc);
  834.                     \$('input[name=\"quantity\"]').val(_sc);
  835.                 }
  836.                 // 個数フォームのチェック
  837.                 if (\$('#quantity').val() < 1) {
  838.                     \$('#quantity')[0].setCustomValidity('";
  839.         // line 781
  840.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html"nulltrue);
  841.         echo "');
  842.                     return true;
  843.                 } else {
  844.                     \$('#quantity')[0].setCustomValidity('');
  845.                 }
  846.                 event.preventDefault();
  847.                 \$form = \$('#form1');
  848.                 \$.ajax({
  849.                     url: \$form.attr('action'),
  850.                     type: \$form.attr('method'),
  851.                     data: \$form.serialize(),
  852.                     dataType: 'json',
  853.                     beforeSend: function(xhr, settings) {
  854.                         // Buttonを無効にする
  855.                         \$('.add-cart').prop('disabled', true);
  856.                     }
  857.                 }).done(function(data) {
  858.                     // レスポンス内のメッセージをalertで表示
  859.                     \$.each(data.messages, function() {
  860.                         \$('#ec-modal-header').text(this);
  861.                     });
  862.                     \$('.ec-modal').show()
  863.                     // カートブロックを更新する
  864.                     \$.ajax({
  865.                         url: \"";
  866.         // line 808
  867.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  868.         echo "\",
  869.                         type: 'GET',
  870.                         dataType: 'html'
  871.                     }).done(function(html) {
  872.                         \$('.ec-headerRole__cart').html(html);
  873.                     });
  874.                 }).fail(function(data) {
  875.                     alert('";
  876.         // line 815
  877.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("施工検討リストへの追加に失敗しました。"), "html"nulltrue);
  878.         echo "');
  879.                 }).always(function(data) {
  880.                     // Buttonを有効にする
  881.                     \$('.add-cart').prop('disabled', false);
  882.                 });
  883.             });
  884.         });
  885.         \$('.ec-modal-wrap').on('click', function(e) {
  886.             // モーダル内の処理は外側にバブリングさせない
  887.             e.stopPropagation();
  888.         });
  889.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  890.             \$('.ec-modal').hide()
  891.         });
  892. \t\tvar pw = \"";
  893.         // line 832
  894.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'832$this->source); })())) {
  895.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'832$this->source); })()), "pw", [], "any"falsefalsefalse832), "html"nulltrue);
  896.         }
  897.         echo "\";
  898. \t\tvar pd = \"";
  899.         // line 833
  900.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'833$this->source); })())) {
  901.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'833$this->source); })()), "pd", [], "any"falsefalsefalse833), "html"nulltrue);
  902.         }
  903.         echo "\";
  904. \t\tvar ph = \"";
  905.         // line 834
  906.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'834$this->source); })())) {
  907.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'834$this->source); })()), "ph", [], "any"falsefalsefalse834), "html"nulltrue);
  908.         }
  909.         echo "\";
  910. \t\tvar pm = \"";
  911.         // line 835
  912.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'835$this->source); })())) {
  913.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'835$this->source); })()), "pm", [], "any"falsefalsefalse835), "html"nulltrue);
  914.         }
  915.         echo "\";
  916. \t\tvar pc = \"";
  917.         // line 836
  918.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'836$this->source); })())) {
  919.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'836$this->source); })()), "pc", [], "any"falsefalsefalse836), "html"nulltrue);
  920.         }
  921.         echo "\";
  922. \t\tvar op0 = \"";
  923.         // line 837
  924.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'837$this->source); })())) {
  925.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'837$this->source); })()), "op", [], "any"falsefalsefalse837), 0, [], "array"falsefalsefalse837), "html"nulltrue);
  926.         }
  927.         echo "\";
  928. \t\tvar op1 = \"";
  929.         // line 838
  930.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'838$this->source); })())) {
  931.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'838$this->source); })()), "op", [], "any"falsefalsefalse838), 1, [], "array"falsefalsefalse838), "html"nulltrue);
  932.         }
  933.         echo "\";
  934. \t\tvar op2 = \"";
  935.         // line 839
  936.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'839$this->source); })())) {
  937.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'839$this->source); })()), "op", [], "any"falsefalsefalse839), 2, [], "array"falsefalsefalse839), "html"nulltrue);
  938.         }
  939.         echo "\";
  940. \t\tvar op3 = \"";
  941.         // line 840
  942.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'840$this->source); })())) {
  943.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'840$this->source); })()), "op", [], "any"falsefalsefalse840), 3, [], "array"falsefalsefalse840), "html"nulltrue);
  944.         }
  945.         echo "\";
  946. \t\tvar op4 = \"";
  947.         // line 841
  948.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'841$this->source); })())) {
  949.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'841$this->source); })()), "op", [], "any"falsefalsefalse841), 4, [], "array"falsefalsefalse841), "html"nulltrue);
  950.         }
  951.         echo "\";
  952. \t\tvar op5 = \"";
  953.         // line 842
  954.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'842$this->source); })())) {
  955.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'842$this->source); })()), "op", [], "any"falsefalsefalse842), 5, [], "array"falsefalsefalse842), "html"nulltrue);
  956.         }
  957.         echo "\";
  958. \t\tvar op6 = \"";
  959.         // line 843
  960.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'843$this->source); })())) {
  961.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'843$this->source); })()), "op", [], "any"falsefalsefalse843), 6, [], "array"falsefalsefalse843), "html"nulltrue);
  962.         }
  963.         echo "\";
  964. \t\tvar op7 = \"";
  965.         // line 844
  966.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'844$this->source); })())) {
  967.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'844$this->source); })()), "op", [], "any"falsefalsefalse844), 7, [], "array"falsefalsefalse844), "html"nulltrue);
  968.         }
  969.         echo "\";
  970. \t\tvar op8 = \"";
  971.         // line 845
  972.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'845$this->source); })())) {
  973.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'845$this->source); })()), "op", [], "any"falsefalsefalse845), 8, [], "array"falsefalsefalse845), "html"nulltrue);
  974.         }
  975.         echo "\";
  976. \t\tvar op9 = \"";
  977.         // line 846
  978.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'846$this->source); })())) {
  979.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'846$this->source); })()), "op", [], "any"falsefalsefalse846), 9, [], "array"falsefalsefalse846), "html"nulltrue);
  980.         }
  981.         echo "\";
  982. \t\tvar op10 = \"";
  983.         // line 847
  984.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'847$this->source); })())) {
  985.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'847$this->source); })()), "op", [], "any"falsefalsefalse847), 10, [], "array"falsefalsefalse847), "html"nulltrue);
  986.         }
  987.         echo "\";
  988. \t\tconst formatter = new Intl.NumberFormat('ja-JP');
  989. \t\tfunction mitsumori_simulation(type , value_id){
  990. \t\t\tvar pp = ";
  991.         // line 852
  992.         echo (isset($context["pp"]) || array_key_exists("pp"$context) ? $context["pp"] : (function () { throw new RuntimeError('Variable "pp" does not exist.'852$this->source); })());
  993.         echo ";
  994. \t\t\tif(type == \"pw\"){
  995. \t\t\t\tpw = \$('#'+value_id).val();
  996. \t\t\t}
  997. \t\t\tif(type == \"pd\"){
  998. \t\t\t\tpd = \$('#'+value_id).val();
  999. \t\t\t}
  1000. \t\t\tif(type == \"ph\"){
  1001. \t\t\t\tph = \$('#'+value_id).val();
  1002. \t\t\t}
  1003. \t\t\tif(type == \"pm\"){
  1004. \t\t\t\tpm = \$('#'+value_id).val();
  1005. \t\t\t}
  1006. \t\t\tif(type == \"pc\"){
  1007. \t\t\t\tpc = \$('#'+value_id).val();
  1008. \t\t\t}
  1009. \t\t\tif(type == \"op0\"){ op0 = \$('#'+value_id).val(); }
  1010. \t\t\tif(type == \"op1\"){ op1 = \$('#'+value_id).val(); }
  1011. \t\t\tif(type == \"op2\"){ op2 = \$('#'+value_id).val(); }
  1012. \t\t\tif(type == \"op3\"){ op3 = \$('#'+value_id).val(); }
  1013. \t\t\tif(type == \"op4\"){ op4 = \$('#'+value_id).val(); }
  1014. \t\t\tif(type == \"op5\"){ op5 = \$('#'+value_id).val(); }
  1015. \t\t\tif(type == \"op6\"){ op6 = \$('#'+value_id).val(); }
  1016. \t\t\tif(type == \"op7\"){ op7 = \$('#'+value_id).val(); }
  1017. \t\t\tif(type == \"op8\"){ op8 = \$('#'+value_id).val(); }
  1018. \t\t\tif(type == \"op9\"){ op9 = \$('#'+value_id).val(); }
  1019. \t\t\tif(type == \"op10\"){ op10 = \$('#'+value_id).val(); }
  1020. \t\t\t// op系: ボタンの is-selected を選択中のものに付け替え + radio チェック
  1021. \t\t\tif(/^op\\d+\$/.test(type)) {
  1022. \t\t\t\tvar \$clicked = \$('#' + value_id);
  1023. \t\t\t\t\$clicked.prop('checked', true);
  1024. \t\t\t\tvar groupName = \$clicked.attr('name');
  1025. \t\t\t\t\$('input[name=\"' + groupName + '\"]').closest('.opt-btn').removeClass('is-selected');
  1026. \t\t\t\t\$clicked.closest('.opt-btn').addClass('is-selected');
  1027. \t\t\t\t// ラベルの選択値テキスト更新
  1028. \t\t\t\tvar \$group = \$clicked.closest('.form-group');
  1029. \t\t\t\tvar \$label = \$group.find('.rp-section-label');
  1030. \t\t\t\tif (\$label.length) {
  1031. \t\t\t\t\tvar labelText = \$label.text().split(':')[0].trim();
  1032. \t\t\t\t\t\$label.html(labelText + ': <span>' + \$clicked.val() + '</span>');
  1033. \t\t\t\t}
  1034. \t\t\t}
  1035. \t\t\tif(pm == \"\"){
  1036. \t\t\t\t\$('#mitsumori_message').text(\"素材を選択してください\");
  1037. \t\t\t}
  1038. \t\t\tif(ph == \"\"){
  1039. \t\t\t\t\$('#mitsumori_message').text(\"高さを選択してください\");
  1040. \t\t\t}
  1041. \t\t\tif(pd == \"\"){
  1042. \t\t\t\t\$('#mitsumori_message').text(\"奥行きを選択してください\");
  1043. \t\t\t}
  1044. \t\t\tif(pw == \"\"){
  1045. \t\t\t\t\$('#mitsumori_message').text(\"幅を選択してください\");
  1046. \t\t\t}
  1047. \t\t\tif(pc == \"\"){
  1048. \t\t\t\t\$('#mitsumori_message').text(\"カラーを選択してください\");
  1049. \t\t\t\t\$('#mitsumori_btn').hide();
  1050. \t\t\t\t\$('#mitsumori_goukei').text(\"---円\");
  1051. \t\t\t\t\$('#mitsumori_off').text(\"---円\");
  1052. \t\t\t\t\$('#mitsumori_price').text(\"---円\");
  1053. \t\t\t\t\$('#maker_price').text(\"---円\");
  1054. \t\t\t\t\$('#mitsumori_ct').text(\"---円\");
  1055. \t\t\t\t\$('#mitsumori_option').text(\"---円\");
  1056. \t\t\t}
  1057. \t\t\tif(pw != \"\" && pd != \"\" && ph != \"\" && pm != \"\" && pc != \"\"){
  1058. \t\t\t\t\$('#mitsumori_btn').show();
  1059. \t\t\t\tvar pp_matched = false;
  1060. \t\t\t\tpp.forEach((el) => {
  1061. \t\t\t\t  if((pw == el.w || pw == \"指定なし\") && (pd == el.d || pd == \"指定なし\") && (ph == el.h || ph == \"指定なし\") && (pm == el.m || pm == \"指定なし\") && (pc == el.c || pc == \"指定なし\")){
  1062. \t\t\t\t\tpp_matched = true;
  1063. \t\t\t\t\tif(op0 == \"商品購入のみ\" || op1 == \"商品購入のみ\" || op2 == \"商品購入のみ\" || op3 == \"商品購入のみ\" || op4 == \"商品購入のみ\"
  1064. \t\t\t\t\t\t|| op5 == \"商品購入のみ\" || op6 == \"商品購入のみ\" || op7 == \"商品購入のみ\" || op8 == \"商品購入のみ\" || op9 == \"商品購入のみ\"){
  1065. \t\t\t\t\t  \t\$('#mitsumori_message').text(formatter.format(parseInt(el.price)) + \"円\");
  1066. \t\t\t\t\t  \t\$('#mitsumori_goukei').text(formatter.format(parseInt(el.price)) + \"円\");
  1067. \t\t\t\t\t  \t\$('#mitsumori_off').text(formatter.format(parseInt(el.price) - parseInt(el.maker_price)) + \"円\");
  1068. \t\t\t\t\t  \t\$('#mitsumori_price').text(formatter.format(parseInt(el.price)) + \"円\");
  1069. \t\t\t\t\t  \t\$('#maker_price').text(formatter.format(parseInt(el.maker_price)) + \"円\");
  1070. \t\t\t\t\t  \t\$('#mitsumori_ct').text(\"0円\");
  1071. \t\t\t\t\t  \t\$('#mitsumori_option').text(\"0円\");
  1072. \t\t\t\t\t  \t\$('#mitsumori_kei').text(formatter.format(parseInt(el.price)) + \"円\");
  1073. \t\t\t\t\t  \t\$('#mitsumori_price_01').text(formatter.format(parseInt(el.price)) + \"円\");
  1074. \t\t\t\t\t  \t\$('#mitsumori_price_02').text(formatter.format(parseInt(el.price)) + \"円\");
  1075. \t\t\t\t\t  \t\$('#mitsumori_ct_01').text(\"0円\");
  1076. \t\t\t\t\t  \t\$('#mitsumori_ct_02').text(\"0円\");
  1077. \t\t\t\t\t  \t\$('#mitsumori_goukei_02').text(formatter.format(parseInt(el.price)) + \"円\");
  1078. \t\t\t\t\t\tmitsumori_goukei = (parseInt(el.price));
  1079. \t\t\t\t\t\tshoukei = mitsumori_goukei / 1.1;
  1080. \t\t\t\t\t\ttax = parseInt(mitsumori_goukei - shoukei);
  1081. \t\t\t\t\t  \t\$('#mitsumori_shoukei').text(formatter.format(parseInt(shoukei)) + \"円\");
  1082. \t\t\t\t\t  \t\$('#mitsumori_tax').text(formatter.format(parseInt(tax)) + \"円\");
  1083. \t\t\t\t\t}else{
  1084. \t\t\t\t\t  \t\$('#mitsumori_message').text(formatter.format(parseInt(el.price) + parseInt(el.ct)) + \"円\");
  1085. \t\t\t\t\t  \t\$('#mitsumori_goukei').text(formatter.format(parseInt(el.price) + parseInt(el.ct)) + \"円\");
  1086. \t\t\t\t\t  \t\$('#mitsumori_off').text(formatter.format(parseInt(el.price) - parseInt(el.maker_price)) + \"円\");
  1087. \t\t\t\t\t  \t\$('#mitsumori_price').text(formatter.format(parseInt(el.price)) + \"円\");
  1088. \t\t\t\t\t  \t\$('#maker_price').text(formatter.format(parseInt(el.maker_price)) + \"円\");
  1089. \t\t\t\t\t  \t\$('#mitsumori_ct').text(formatter.format(parseInt(el.ct)) + \"円\");
  1090. \t\t\t\t\t  \t\$('#mitsumori_option').text(\"0円\");
  1091. \t\t\t\t\t  \t\$('#mitsumori_kei').text(formatter.format(parseInt(el.price) + parseInt(el.ct)) + \"円\");
  1092. \t\t\t\t\t  \t\$('#mitsumori_price_01').text(formatter.format(parseInt(el.price)) + \"円\");
  1093. \t\t\t\t\t  \t\$('#mitsumori_price_02').text(formatter.format(parseInt(el.price)) + \"円\");
  1094. \t\t\t\t\t  \t\$('#mitsumori_ct_01').text(formatter.format(parseInt(el.ct)) + \"円\");
  1095. \t\t\t\t\t  \t\$('#mitsumori_ct_02').text(formatter.format(parseInt(el.ct)) + \"円\");
  1096. \t\t\t\t\t  \t\$('#mitsumori_goukei_02').text(formatter.format(parseInt(el.price) + parseInt(el.ct)) + \"円\");
  1097. \t\t\t\t\t\tmitsumori_goukei = (parseInt(el.price) + parseInt(el.ct));
  1098. \t\t\t\t\t\tshoukei = mitsumori_goukei / 1.1;
  1099. \t\t\t\t\t\ttax = parseInt(mitsumori_goukei - shoukei);
  1100. \t\t\t\t\t  \t\$('#mitsumori_shoukei').text(formatter.format(parseInt(shoukei)) + \"円\");
  1101. \t\t\t\t\t  \t\$('#mitsumori_tax').text(formatter.format(parseInt(tax)) + \"円\");
  1102. \t\t\t\t\t}
  1103. \t\t\t\t  }
  1104. \t\t\t\t});
  1105. \t\t\t\tif (!pp_matched) {
  1106. \t\t\t\t\t\$('#mitsumori_message').text(\"この組み合わせは対応しておりません\");
  1107. \t\t\t\t\t\$('#mitsumori_btn').hide();
  1108. \t\t\t\t\t\$('#mitsumori_goukei').text(\"---円\");
  1109. \t\t\t\t\t\$('#mitsumori_off').text(\"---円\");
  1110. \t\t\t\t\t\$('#mitsumori_price').text(\"---円\");
  1111. \t\t\t\t\t\$('#maker_price').text(\"---円\");
  1112. \t\t\t\t\t\$('#mitsumori_ct').text(\"---円\");
  1113. \t\t\t\t\t\$('#mitsumori_option').text(\"---円\");
  1114. \t\t\t\t\t\$('#mitsumori_kei').text(\"---円\");
  1115. \t\t\t\t\t\$('#mitsumori_shoukei').text(\"---円\");
  1116. \t\t\t\t\t\$('#mitsumori_tax').text(\"---円\");
  1117. \t\t\t\t}\t
  1118. \t\t\t\t// タイプ5: ステップ・フェンス・面積の現在値を取得
  1119. \t\t\t\tif(\$('input[name=deck_step]:checked').length){ deck_step = \$('input[name=deck_step]:checked').val(); }
  1120. \t\t\t\tif(\$('input[name=deck_fence]:checked').length){ deck_fence = \$('input[name=deck_fence]:checked').val(); }
  1121. \t\t\t\t// タイプ2: 窓サイズ・窓タイプ・ガラスタイプ・セット数
  1122. \t\t\t\tvar mado_w_val     = \$('#mado_w').val()     || '';
  1123. \t\t\t\tvar mado_h_val     = \$('#mado_h').val()     || '';
  1124. \t\t\t\tvar mado_type_val  = \$('input[name=mado_type]:checked').val()  || '';
  1125. \t\t\t\tvar glass_type_val = \$('input[name=glass_type]:checked').val() || '';
  1126. \t\t\t\tvar set_count_val  = parseInt(\$('#set_count').val()) || 1;
  1127. \t\t\t\t// タイプ3: 台数
  1128. \t\t\t\tvar daisu_val = parseInt(\$('#daisu').val()) || 1;
  1129. \t\t\t\t// タイプ4・6: 枚数
  1130. \t\t\t\tvar maisu_val = parseInt(\$('#maisu').val()) || 1;
  1131. \t\t\t\t// タイプ5: 面積
  1132. \t\t\t\tvar area_val = \$('#area').val() || '';
  1133. \t\t\t\t// sale_type
  1134. \t\t\t\tvar sale_type_id = ";
  1135.         // line 1013
  1136.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'1013$this->source); })()), "SaleType", [], "any"falsefalsefalse1013), "id", [], "any"falsefalsefalse1013), "html"nulltrue);
  1137.         echo ";
  1138. \t\t\t\tvar mitsumori_json = { \"mitsumori_goukei\": \$('#mitsumori_goukei').text(),
  1139. \t\t\t\t\t\t\t\t\t\t\"mitsumori_goukei_02\": \$('#mitsumori_goukei_02').text(),
  1140. \t\t\t\t\t\t\t\t\t\t\"mitsumori_price\": \$('#mitsumori_price').text(),
  1141. \t\t\t\t\t\t\t\t\t\t\"maker_price\": \$('#maker_price').text(),
  1142. \t\t\t\t\t\t\t\t\t\t\"mitsumori_off\": \$('#mitsumori_off').text(),
  1143. \t\t\t\t\t\t\t\t\t\t\"mitsumori_ct\": \$('#mitsumori_ct').text(),
  1144. \t\t\t\t\t\t\t\t\t\t\"mitsumori_option\": \$('#mitsumori_option').text(),
  1145. \t\t\t\t\t\t\t\t\t\t\"product_id\": ";
  1146.         // line 1022
  1147.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1022$this->source); })()), "id", [], "any"falsefalsefalse1022), "html"nulltrue);
  1148.         echo ",
  1149. \t\t\t\t\t\t\t\t\t\t\"sale_type\": sale_type_id,
  1150. \t\t\t\t\t\t\t\t\t\t\"pw\": pw,
  1151. \t\t\t\t\t\t\t\t\t\t\"pd\": pd,
  1152. \t\t\t\t\t\t\t\t\t\t\"ph\": ph,
  1153. \t\t\t\t\t\t\t\t\t\t\"pm\": pm,
  1154. \t\t\t\t\t\t\t\t\t\t\"pc\": pc,
  1155. \t\t\t\t\t\t\t\t\t\t\"op\": [op0,op1,op2,op3,op4,op5,op6,op7,op8,op9,op10],
  1156. \t\t\t\t\t\t\t\t\t\t\"mado_w\":     mado_w_val,
  1157. \t\t\t\t\t\t\t\t\t\t\"mado_h\":     mado_h_val,
  1158. \t\t\t\t\t\t\t\t\t\t\"mado_type\":  mado_type_val,
  1159. \t\t\t\t\t\t\t\t\t\t\"glass_type\": glass_type_val,
  1160. \t\t\t\t\t\t\t\t\t\t\"set_count\":  set_count_val,
  1161. \t\t\t\t\t\t\t\t\t\t\"daisu\":      daisu_val,
  1162. \t\t\t\t\t\t\t\t\t\t\"maisu\":      maisu_val,
  1163. \t\t\t\t\t\t\t\t\t\t\"area\":       area_val,
  1164. \t\t\t\t\t\t\t\t\t\t\"deck_step\":  deck_step,
  1165. \t\t\t\t\t\t\t\t\t\t\"deck_fence\": deck_fence };
  1166. \t\t\t\t\$('#mitsumori_json').val(JSON.stringify(mitsumori_json));
  1167. \t\t\t\t
  1168. \t\t\t}
  1169. \t\t\t
  1170. \t\t}
  1171.         ";
  1172.         // line 1048
  1173.         if (((isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1048$this->source); })()) && (twig_length_filter($this->env, (isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1048$this->source); })())) == 1))) {
  1174.             // line 1049
  1175.             echo "            pc = \"指定なし\";
  1176. \t\t\t";
  1177.             // line 1050
  1178.             $context['_parent'] = $context;
  1179.             $context['_seq'] = twig_ensure_traversable((isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1050$this->source); })()));
  1180.             foreach ($context['_seq'] as $context["_key"] => $context["cc"]) {
  1181.                 if (($context["cc"] && twig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1050))) {
  1182.                     echo " pc = \"";
  1183.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1050), "html"nulltrue);
  1184.                     echo "\"; ";
  1185.                 }
  1186.             }
  1187.             $_parent $context['_parent'];
  1188.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['cc'], $context['_parent'], $context['loop']);
  1189.             $context array_intersect_key($context$_parent) + $_parent;
  1190.             // line 1051
  1191.             echo "\t\t";
  1192.         }
  1193.         // line 1052
  1194.         echo "
  1195.         ";
  1196.         // line 1053
  1197.         if (((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1053$this->source); })()) && ((twig_length_filter($this->env, (isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1053$this->source); })())) == 1) || (twig_join_filter((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1053$this->source); })())) == "")))) {
  1198.             // line 1054
  1199.             echo "            pw = \"指定なし\";
  1200. \t\t\t";
  1201.             // line 1055
  1202.             $context['_parent'] = $context;
  1203.             $context['_seq'] = twig_ensure_traversable((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1055$this->source); })()));
  1204.             foreach ($context['_seq'] as $context["_key"] => $context["pw"]) {
  1205.                 if ($context["pw"]) {
  1206.                     echo " pw = \"";
  1207.                     echo twig_escape_filter($this->env$context["pw"], "html"nulltrue);
  1208.                     echo "\"; ";
  1209.                 }
  1210.             }
  1211.             $_parent $context['_parent'];
  1212.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pw'], $context['_parent'], $context['loop']);
  1213.             $context array_intersect_key($context$_parent) + $_parent;
  1214.             // line 1056
  1215.             echo "\t\t";
  1216.         }
  1217.         // line 1057
  1218.         echo "
  1219.         ";
  1220.         // line 1058
  1221.         if (((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1058$this->source); })()) && ((twig_length_filter($this->env, (isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1058$this->source); })())) == 1) || (twig_join_filter((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1058$this->source); })())) == "")))) {
  1222.             // line 1059
  1223.             echo "            pd = \"指定なし\";
  1224. \t\t\t";
  1225.             // line 1060
  1226.             $context['_parent'] = $context;
  1227.             $context['_seq'] = twig_ensure_traversable((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1060$this->source); })()));
  1228.             foreach ($context['_seq'] as $context["_key"] => $context["pd"]) {
  1229.                 if ($context["pd"]) {
  1230.                     echo " pd = \"";
  1231.                     echo twig_escape_filter($this->env$context["pd"], "html"nulltrue);
  1232.                     echo "\"; ";
  1233.                 }
  1234.             }
  1235.             $_parent $context['_parent'];
  1236.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pd'], $context['_parent'], $context['loop']);
  1237.             $context array_intersect_key($context$_parent) + $_parent;
  1238.             // line 1061
  1239.             echo "\t\t";
  1240.         }
  1241.         // line 1062
  1242.         echo "
  1243.         ";
  1244.         // line 1063
  1245.         if (((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1063$this->source); })()) && ((twig_length_filter($this->env, (isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1063$this->source); })())) == 1) || (twig_join_filter((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1063$this->source); })())) == "")))) {
  1246.             // line 1064
  1247.             echo "            ph = \"指定なし\";
  1248. \t\t\t";
  1249.             // line 1065
  1250.             $context['_parent'] = $context;
  1251.             $context['_seq'] = twig_ensure_traversable((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1065$this->source); })()));
  1252.             foreach ($context['_seq'] as $context["_key"] => $context["ph"]) {
  1253.                 if ($context["ph"]) {
  1254.                     echo " ph = \"";
  1255.                     echo twig_escape_filter($this->env$context["ph"], "html"nulltrue);
  1256.                     echo "\"; ";
  1257.                 }
  1258.             }
  1259.             $_parent $context['_parent'];
  1260.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ph'], $context['_parent'], $context['loop']);
  1261.             $context array_intersect_key($context$_parent) + $_parent;
  1262.             // line 1066
  1263.             echo "\t\t";
  1264.         }
  1265.         // line 1067
  1266.         echo "
  1267.         ";
  1268.         // line 1068
  1269.         if (((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1068$this->source); })()) && ((twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1068$this->source); })())) == 1) || (twig_join_filter((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1068$this->source); })())) == "")))) {
  1270.             // line 1069
  1271.             echo "            pm = \"指定なし\";
  1272. \t\t\t";
  1273.             // line 1070
  1274.             $context['_parent'] = $context;
  1275.             $context['_seq'] = twig_ensure_traversable((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1070$this->source); })()));
  1276.             foreach ($context['_seq'] as $context["_key"] => $context["pm"]) {
  1277.                 if ($context["pm"]) {
  1278.                     echo " pm = \"";
  1279.                     echo twig_escape_filter($this->env$context["pm"], "html"nulltrue);
  1280.                     echo "\"; ";
  1281.                 }
  1282.             }
  1283.             $_parent $context['_parent'];
  1284.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pm'], $context['_parent'], $context['loop']);
  1285.             $context array_intersect_key($context$_parent) + $_parent;
  1286.             // line 1071
  1287.             echo "\t\t";
  1288.         }
  1289.         // line 1072
  1290.         echo "
  1291. \t\t// ページ読み込み時: タイプ別に quantity の初期値をセット
  1292. \t\t(function initQuantityByType(){
  1293. \t\t\tvar saleType = ";
  1294.         // line 1075
  1295.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'1075$this->source); })()), "SaleType", [], "any"falsefalsefalse1075), "id", [], "any"falsefalsefalse1075), "html"nulltrue);
  1296.         echo ";
  1297. \t\t\tif(saleType == 2 && \$('#set_count').length){
  1298. \t\t\t\tvar _v = parseInt(\$('#set_count').val()) || 1;
  1299. \t\t\t\t\$('#quantity').val(_v);
  1300. \t\t\t\t\$('input[name=\"quantity\"]').val(_v);
  1301. \t\t\t} else if(saleType == 3 && \$('#daisu').length){
  1302. \t\t\t\t\$('#quantity').val(parseInt(\$('#daisu').val()) || 1);
  1303. \t\t\t} else if((saleType == 4 || saleType == 6) && \$('#maisu').length){
  1304. \t\t\t\t\$('#quantity').val(parseInt(\$('#maisu').val()) || 1);
  1305. \t\t\t} else if(saleType == 9 && \$('#quantity_only').length){
  1306. \t\t\t\t\$('#quantity').val(parseInt(\$('#quantity_only').val()) || 1);
  1307. \t\t\t}
  1308. \t\t})();
  1309. \t\t// type → ラベルのプレフィックス文字列
  1310. \t\tvar optLabelMap = {pc:'カラー', pw:'幅', pd:'奥行き', ph:'高さ', pm:'素材'};
  1311. \t\t// type → input[name]
  1312. \t\tvar optNameMap  = {pc:'color', pw:'pw', pd:'pd', ph:'ph', pm:'pm'};
  1313. \t\t// opt-btn用: 値を直接受け取るラッパー
  1314. \t\tfunction mitsumori_simulation_val(type, value) {
  1315. \t\t\tif (type === 'pc') pc = value;
  1316. \t\t\tif (type === 'pw') pw = value;
  1317. \t\t\tif (type === 'pd') pd = value;
  1318. \t\t\tif (type === 'ph') ph = value;
  1319. \t\t\tif (type === 'pm') pm = value;
  1320. \t\t\t// is-selected クラスを同グループ内で付け替え
  1321. \t\t\tvar inputName = optNameMap[type];
  1322. \t\t\tif (inputName) {
  1323. \t\t\t\tvar \$btns = \$('input[name=\"' + inputName + '\"]').closest('.opt-btn');
  1324. \t\t\t\t\$btns.removeClass('is-selected');
  1325. \t\t\t\t\$btns.filter(function(){
  1326. \t\t\t\t\treturn \$(this).find('input').val() === value;
  1327. \t\t\t\t}).addClass('is-selected');
  1328. \t\t\t}
  1329. \t\t\t// ラベル行の選択値テキストを更新(例: 「カラー: ブラック」)
  1330. \t\t\tvar labelPrefix = optLabelMap[type];
  1331. \t\t\tif (labelPrefix) {
  1332. \t\t\t\t// 対象のrp-section-labelを特定(input[name]を含む親を遡る)
  1333. \t\t\t\tvar \$group = \$('input[name=\"' + inputName + '\"]').first().closest('.form-group');
  1334. \t\t\t\tvar \$label = \$group.find('.rp-section-label');
  1335. \t\t\t\t\$label.html(labelPrefix + ': <span>' + value + '</span>');
  1336. \t\t\t}
  1337. \t\t\t// simulation本体を呼ぶ(value_idは空でOK、グローバル変数を使う)
  1338. \t\t\tmitsumori_simulation('', '');
  1339. \t\t}
  1340. \t\tmitsumori_simulation(\"\",\"\");
  1341. \t\t// ボタン群: 親幅を超える、または3行以上になる場合は is-scroll で1行横スクロール化
  1342. \t\tfunction applyBtnGroupScroll() {
  1343. \t\t\t\$('.rp-btn-group, .opt-btn-group').each(function() {
  1344. \t\t\t\tvar \$group = \$(this);
  1345. \t\t\t\t\$group.removeClass('is-scroll');
  1346. \t\t\t\tvar \$items = \$group.children();
  1347. \t\t\t\tif (\$items.length === 0) return;
  1348. \t\t\t\tvar parentWidth = \$group.parent().width() || \$group.width();
  1349. \t\t\t\tvar totalWidth = 0;
  1350. \t\t\t\tvar gap = parseInt(\$group.css('gap'), 10) || 8;
  1351. \t\t\t\t\$items.each(function() {
  1352. \t\t\t\t\ttotalWidth += this.offsetWidth + gap;
  1353. \t\t\t\t});
  1354. \t\t\t\t// 単一ボタンが親幅を超える、もしくは合計幅が親幅を超える → 横スクロール化
  1355. \t\t\t\tvar anyTooWide = false;
  1356. \t\t\t\t\$items.each(function() {
  1357. \t\t\t\t\tif (this.offsetWidth > parentWidth) { anyTooWide = true; return false; }
  1358. \t\t\t\t});
  1359. \t\t\t\t// 折り返し時の行数も計測
  1360. \t\t\t\tvar tops = {};
  1361. \t\t\t\t\$items.each(function() { tops[this.offsetTop] = true; });
  1362. \t\t\t\tvar rowCount = Object.keys(tops).length;
  1363. \t\t\t\tif (anyTooWide || totalWidth > parentWidth * 2 || rowCount >= 3) {
  1364. \t\t\t\t\t\$group.addClass('is-scroll');
  1365. \t\t\t\t}
  1366. \t\t\t});
  1367. \t\t}
  1368. \t\tapplyBtnGroupScroll();
  1369. \t\t\$(window).on('resize', function() {
  1370. \t\t\tclearTimeout(window._btnScrollTimer);
  1371. \t\t\twindow._btnScrollTimer = setTimeout(applyBtnGroupScroll, 150);
  1372. \t\t});
  1373. \t\t// onload: 見積金額が確定している場合は「工事費込み価格」表示を一致させる
  1374. \t\t(function syncPrice02Display() {
  1375. \t\t\tvar goukeiEl = document.getElementById('mitsumori_goukei');
  1376. \t\t\tvar displayEl = document.getElementById('price02-display');
  1377. \t\t\tif (!goukeiEl || !displayEl) return;
  1378. \t\t\tvar goukeiText = goukeiEl.textContent.trim();
  1379. \t\t\t// ---円(未確定)の場合は書き換えない
  1380. \t\t\tif (goukeiText && goukeiText !== '---円') {
  1381. \t\t\t\tdisplayEl.textContent = goukeiText;
  1382. \t\t\t}
  1383. \t\t\t// 以降の変更にも追従: mitsumori_goukei を監視
  1384. \t\t\tnew MutationObserver(function() {
  1385. \t\t\t\tvar text = goukeiEl.textContent.trim();
  1386. \t\t\t\tif (text && text !== '---円') {
  1387. \t\t\t\t\tdisplayEl.textContent = text;
  1388. \t\t\t\t}
  1389. \t\t\t}).observe(goukeiEl, { childList: true, subtree: true, characterData: true });
  1390. \t\t})();
  1391. \t\tfunction contact_form(product_id){
  1392. \t\t\t\$('#form1').attr('action', '";
  1393.         // line 1183
  1394.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("contact", ["product" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1183$this->source); })()), "id", [], "any"falsefalsefalse1183)]), "html"nulltrue);
  1395.         echo "');
  1396. \t\t\t\$('#form1').submit();
  1397. \t\t}
  1398. \t\t// maisu / madoset は下部の新しい関数定義を使用
  1399. \t\tfunction heibei(bei){
  1400. \t\t\t\$('#heibei').val(parseInt(\$('#heibei').val()) + bei);
  1401. \t\t\tif(parseInt(\$('#heibei').val()) < 1){ \$('#heibei').val(1); }
  1402. \t\t\tif(parseInt(\$('#heibei').val()) > 100){ \$('#heibei').val(100); }
  1403. \t\t\t\$('#quantity').val(\$('#heibei').val());
  1404. \t\t\tmitsumori_simulation('heibei','heibei');
  1405. \t\t}
  1406. \t\tfunction daisu(dai){
  1407. \t\t\t\$('#daisu').val(parseInt(\$('#daisu').val()) + dai);
  1408. \t\t\tif(parseInt(\$('#daisu').val()) < 1){ \$('#daisu').val(1); }
  1409. \t\t\tif(parseInt(\$('#daisu').val()) > 10){ \$('#daisu').val(10); }
  1410. \t\t\t\$('#quantity').val(\$('#daisu').val());
  1411. \t\t\tmitsumori_simulation('daisu','daisu');
  1412. \t\t}
  1413. \t\tfunction maisu(mai){
  1414. \t\t\t\$('#maisu').val(parseInt(\$('#maisu').val()) + mai);
  1415. \t\t\tif(parseInt(\$('#maisu').val()) < 1){ \$('#maisu').val(1); }
  1416. \t\t\tif(parseInt(\$('#maisu').val()) > 100){ \$('#maisu').val(100); }
  1417. \t\t\t\$('#quantity').val(\$('#maisu').val());
  1418. \t\t\tmitsumori_simulation('maisu','maisu');
  1419. \t\t}
  1420. \t\t// タイプ2: セット数プルダウン連動
  1421. \t\tfunction madosetSelect(val){
  1422. \t\t\tvar v = parseInt(val);
  1423. \t\t\tif(v < 1) v = 1;
  1424. \t\t\tif(v > 20) v = 20;
  1425. \t\t\t// id=\"quantity\" と name=\"quantity\" 両方を確実に書き換え
  1426. \t\t\t\$('#quantity').val(v);
  1427. \t\t\t\$('input[name=\"quantity\"]').val(v);
  1428. \t\t\tmitsumori_simulation('set','set_count');
  1429. \t\t}
  1430. \t\t// タイプ2: ±ボタン版(後方互換)
  1431. \t\tfunction madoset(mai){
  1432. \t\t\tvar current = parseInt(\$('#set_count').val()) || 1;
  1433. \t\t\tvar next = current + mai;
  1434. \t\t\tif(next < 1) next = 1;
  1435. \t\t\tif(next > 20) next = 20;
  1436. \t\t\t\$('#set_count').val(next);
  1437. \t\t\tmadosetSelect(next);
  1438. \t\t}
  1439. \t\t// タイプ5: ステップ・フェンス選択値を mitsumori_json に保存するためのグローバル変数
  1440. \t\tvar deck_step = \"";
  1441.         // line 1233
  1442.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1233$this->source); })())) {
  1443.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "deck_step", [], "any"truetruefalse1233)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "deck_step", [], "any"falsefalsefalse1233), "不要")) : ("不要")), "html"nulltrue);
  1444.         } else {
  1445.             echo "不要";
  1446.         }
  1447.         echo "\";
  1448. \t\tvar deck_fence = \"";
  1449.         // line 1234
  1450.         if ((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1234$this->source); })())) {
  1451.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "deck_fence", [], "any"truetruefalse1234)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "deck_fence", [], "any"falsefalsefalse1234), "不要")) : ("不要")), "html"nulltrue);
  1452.         } else {
  1453.             echo "不要";
  1454.         }
  1455.         echo "\";
  1456. \t\t// PDF出力: モーダルの mitsumori_json をフォームに同期してから送信
  1457. \t\tfunction syncPdfJson(){
  1458. \t\t\tvar jsonVal = \$('#mitsumori_json').val();
  1459. \t\t\t\$('#pdf_mitsumori_json').val(jsonVal);
  1460. \t\t}
  1461. \t\t// タイプ9: 商品のみ購入
  1462. \t\tfunction quantityOnly(val){
  1463. \t\t\tvar current = parseInt(\$('#quantity_only').val()) || 1;
  1464. \t\t\tvar next = current + val;
  1465. \t\t\tif(next < 1) next = 1;
  1466. \t\t\t\$('#quantity_only').val(next);
  1467. \t\t\t\$('#quantity').val(next);
  1468. \t\t}
  1469.         // ===== スマホ用下部固定バーへの金額同期 =====
  1470.         // mitsumori_message と mitsumori_goukei を監視して下部バーを更新
  1471.         (function() {
  1472.             var msgTarget   = document.getElementById('mitsumori_message');
  1473.             var goukeiTarget = document.getElementById('mitsumori_goukei');
  1474.             var spPrice     = document.getElementById('sp-mitsumori-price');
  1475.             var spBtn       = document.querySelector('#sp-mitsumori-bar .sp-bar__btn');
  1476.             if (!spPrice || !spBtn) return;
  1477.             function syncBar() {
  1478.                 var msg    = msgTarget ? msgTarget.textContent : '';
  1479.                 var goukei = goukeiTarget ? goukeiTarget.textContent : '---円';
  1480.                 // メッセージが「〇〇を選択してください」の場合はメッセージを表示しボタンを非表示
  1481.                 if (msg.indexOf('選択してください') !== -1) {
  1482.                     spPrice.textContent = msg;
  1483.                     spPrice.style.fontSize = '13px';
  1484.                     spPrice.style.color    = '#888';
  1485.                     spBtn.style.display    = 'none';
  1486.                 } else {
  1487.                     // 価格確定時はボタンを表示
  1488.                     spPrice.textContent = goukei;
  1489.                     spPrice.style.fontSize = '18px';
  1490.                     spPrice.style.color    = '#c00';
  1491.                     spBtn.style.display    = 'block';
  1492.                 }
  1493.             }
  1494.             // 初期値を同期
  1495.             syncBar();
  1496.             // mitsumori_message の変化を監視
  1497.             if (msgTarget) {
  1498.                 new MutationObserver(syncBar).observe(
  1499.                     msgTarget, { childList: true, subtree: true, characterData: true }
  1500.                 );
  1501.             }
  1502.             // mitsumori_goukei の変化も監視
  1503.             if (goukeiTarget) {
  1504.                 new MutationObserver(syncBar).observe(
  1505.                     goukeiTarget, { childList: true, subtree: true, characterData: true }
  1506.                 );
  1507.             }
  1508.         })();
  1509.         // ===== 現在のお見積り額: 折りたたみトグルボタンのテキスト切り替え =====
  1510.         (function() {
  1511.             var card = document.querySelector('.mitsumori-card-pc');
  1512.             var btn  = document.querySelector('.btn-mitsumori-toggle .toggle-icon');
  1513.             if (!card || !btn) return;
  1514.             // MutationObserverでcollapsed-cardクラスの変化を監視
  1515.             new MutationObserver(function() {
  1516.                 if (card.classList.contains('collapsed-card')) {
  1517.                     btn.textContent = '▼ 詳細';
  1518.                 } else {
  1519.                     btn.textContent = '▲ 閉じる';
  1520.                 }
  1521.             }).observe(card, { attributes: true, attributeFilter: ['class'] });
  1522.         })();
  1523.         // ===== エリア案内: スマホのみタップで展開 =====
  1524.         (function() {
  1525.             var notice = document.querySelector('.ec-areaNotice');
  1526.             if (!notice) return;
  1527.             notice.addEventListener('click', function(e) {
  1528.                 if (window.innerWidth > 767) return;
  1529.                 // リンククリック時は展開/折りたたみせずリンク遷移
  1530.                 if (e.target.tagName === 'A') return;
  1531.                 notice.classList.toggle('is-open');
  1532.             });
  1533.         })();
  1534.     </script>
  1535.     <script type=\"application/ld+json\">
  1536.     {
  1537.         \"@context\": \"https://schema.org/\",
  1538.         \"@type\": \"Product\",
  1539.         \"name\": \"";
  1540.         // line 1328
  1541.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1328$this->source); })()), "name", [], "any"falsefalsefalse1328), "html"nulltrue);
  1542.         echo "\",
  1543.         \"image\": [
  1544.             ";
  1545.         // line 1330
  1546.         $context['_parent'] = $context;
  1547.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1330$this->source); })()), "ProductImage", [], "any"falsefalsefalse1330));
  1548.         $context['_iterated'] = false;
  1549.         $context['loop'] = [
  1550.           'parent' => $context['_parent'],
  1551.           'index0' => 0,
  1552.           'index'  => 1,
  1553.           'first'  => true,
  1554.         ];
  1555.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  1556.             $length count($context['_seq']);
  1557.             $context['loop']['revindex0'] = $length 1;
  1558.             $context['loop']['revindex'] = $length;
  1559.             $context['loop']['length'] = $length;
  1560.             $context['loop']['last'] = === $length;
  1561.         }
  1562.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  1563.             // line 1331
  1564.             echo "                \"";
  1565.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1331$this->source); })()), "request", [], "any"falsefalsefalse1331), "schemeAndHttpHost", [], "any"falsefalsefalse1331), "html"nulltrue);
  1566.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html"nulltrue);
  1567.             echo "\"";
  1568.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse1331)) {
  1569.                 echo ",";
  1570.             }
  1571.             // line 1332
  1572.             echo "
  1573.             ";
  1574.             $context['_iterated'] = true;
  1575.             ++$context['loop']['index0'];
  1576.             ++$context['loop']['index'];
  1577.             $context['loop']['first'] = false;
  1578.             if (isset($context['loop']['length'])) {
  1579.                 --$context['loop']['revindex0'];
  1580.                 --$context['loop']['revindex'];
  1581.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  1582.             }
  1583.         }
  1584.         if (!$context['_iterated']) {
  1585.             // line 1334
  1586.             echo "                \"";
  1587.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1334$this->source); })()), "request", [], "any"falsefalsefalse1334), "schemeAndHttpHost", [], "any"falsefalsefalse1334), "html"nulltrue);
  1588.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html"nulltrue);
  1589.             echo "\"
  1590.             ";
  1591.         }
  1592.         $_parent $context['_parent'];
  1593.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  1594.         $context array_intersect_key($context$_parent) + $_parent;
  1595.         // line 1336
  1596.         echo "        ],
  1597.         \"description\": \"";
  1598.         // line 1337
  1599.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruefalse1337)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsefalse1337), twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1337$this->source); })()), "description_detail", [], "any"falsefalsefalse1337))) : (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1337$this->source); })()), "description_detail", [], "any"falsefalsefalse1337))), ["
  1600. => """ " => ""]), 0300), "html"nulltrue);
  1601.         echo "\",
  1602.         ";
  1603.         // line 1338
  1604.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1338$this->source); })()), "code_min", [], "any"falsefalsefalse1338)) {
  1605.             // line 1339
  1606.             echo "        \"sku\": \"";
  1607.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1339$this->source); })()), "code_min", [], "any"falsefalsefalse1339), "html"nulltrue);
  1608.             echo "\",
  1609.         ";
  1610.         }
  1611.         // line 1341
  1612.         echo "        \"offers\": {
  1613.             \"@type\": \"Offer\",
  1614.             \"url\": \"";
  1615.         // line 1343
  1616.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1343$this->source); })()), "id", [], "any"falsefalsefalse1343)]), "html"nulltrue);
  1617.         echo "\",
  1618.             \"priceCurrency\": \"";
  1619.         // line 1344
  1620.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["eccube_config"]) || array_key_exists("eccube_config"$context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.'1344$this->source); })()), "currency", [], "any"falsefalsefalse1344), "html"nulltrue);
  1621.         echo "\",
  1622.             \"price\": ";
  1623.         // line 1345
  1624.         ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1345$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse1345)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1345$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse1345), "html"nulltrue))) : (print (0)));
  1625.         echo ",
  1626.             \"availability\": \"";
  1627.         // line 1346
  1628.         echo ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1346$this->source); })()), "stock_find", [], "any"falsefalsefalse1346)) ? ("InStock") : ("OutOfStock"));
  1629.         echo "\"
  1630.         }
  1631.     }
  1632.     </script>
  1633. ";
  1634.         
  1635.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1636.         
  1637.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1638.     }
  1639.     // line 1353
  1640.     public function block_main($context, array $blocks = [])
  1641.     {
  1642.         $macros $this->macros;
  1643.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1644.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  1645.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1646.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  1647.         // line 1354
  1648.         echo "    <div class=\"ec-productRole\" style=\"margin-top:20px;\">
  1649.         <div class=\"ec-grid2\">
  1650.             <div class=\"ec-grid2__cell\">
  1651.                 <div class=\"ec-sliderItemRole\">
  1652. \t                ";
  1653.         // line 1359
  1654.         echo "\t                <div class=\"ec-productRole__title\">
  1655. \t                    <div class=\"ec-productRole__titleRow\">
  1656. \t                        <h2 class=\"ec-headingTitle\">";
  1657.         // line 1361
  1658.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1361$this->source); })()), "name", [], "any"falsefalsefalse1361), "html"nulltrue);
  1659.         echo "</h2>
  1660. \t                        <div class=\"ec-share-inline\">
  1661. \t                            <a href=\"https://twitter.com/share?url=";
  1662.         // line 1363
  1663.         echo twig_escape_filter($this->envtwig_urlencode_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1363$this->source); })()), "request", [], "any"falsefalsefalse1363), "uri", [], "any"falsefalsefalse1363)), "html"nulltrue);
  1664.         echo "&text=";
  1665.         echo twig_escape_filter($this->envtwig_urlencode_filter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1363$this->source); })()), "name", [], "any"falsefalsefalse1363)), "html"nulltrue);
  1666.         echo "\"
  1667. \t                               class=\"share-twitter\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Xでシェア\">
  1668. \t                                <svg viewBox=\"0 0 24 24\" style=\"width:15px;height:15px;fill:#fff;\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.74l7.73-8.835L1.254 2.25H8.08l4.254 5.622L18.244 2.25zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>
  1669. \t                            </a>
  1670. \t                            <a href=\"https://www.instagram.com/\" class=\"share-facebook\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Instagram\">
  1671. \t                                <svg viewBox=\"0 0 24 24\" style=\"width:15px;height:15px;fill:#fff;\"><path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z\"/></svg>
  1672. \t                            </a>
  1673. \t                            <a href=\"https://social-plugins.line.me/lineit/share?url=";
  1674.         // line 1370
  1675.         echo twig_escape_filter($this->envtwig_urlencode_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1370$this->source); })()), "request", [], "any"falsefalsefalse1370), "uri", [], "any"falsefalsefalse1370)), "html"nulltrue);
  1676.         echo "\"
  1677. \t                               class=\"share-line\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"LINEでシェア\">
  1678. \t                                <i class=\"fab fa-line\"></i>
  1679. \t                            </a>
  1680. \t                        </div>
  1681. \t                    </div>
  1682. \t                </div>
  1683.                     ";
  1684.         // line 1377
  1685.         if (twig_get_attribute($this->env$this->source, (isset($context["BaseInfo"]) || array_key_exists("BaseInfo"$context) ? $context["BaseInfo"] : (function () { throw new RuntimeError('Variable "BaseInfo" does not exist.'1377$this->source); })()), "option_favorite_product", [], "any"falsefalsefalse1377)) {
  1686.             // line 1378
  1687.             echo "                     <div style=\"position:relative;top: 20px;left: 10px;z-index:100;\">
  1688. \t\t\t\t\t\t";
  1689.             // line 1379
  1690.             if (((isset($context["is_favorite"]) || array_key_exists("is_favorite"$context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.'1379$this->source); })()) == false)) {
  1691.                 // line 1380
  1692.                 echo "                        <form action=\"";
  1693.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_favorite", ["id" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1380$this->source); })()), "id", [], "any"falsefalsefalse1380)]), "html"nulltrue);
  1694.                 echo "\" method=\"post\">
  1695.                            <button type=\"submit\" id=\"favorite\" class=\"favorite\">&#9825;</button>
  1696.                         </form>
  1697.                         ";
  1698.             } else {
  1699.                 // line 1384
  1700.                 echo "                        <form action=\"";
  1701.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_favorite", ["id" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1384$this->source); })()), "id", [], "any"falsefalsefalse1384)]), "html"nulltrue);
  1702.                 echo "\" method=\"post\">
  1703.                            <button type=\"submit\" id=\"favorite\" class=\"favorite\" style=\"color:red;\">&#9829;</button>
  1704.                         </form>
  1705.                         ";
  1706.             }
  1707.             // line 1388
  1708.             echo "                     </div>
  1709.                     ";
  1710.         }
  1711.         // line 1390
  1712.         echo "                    <div class=\"item_visual\">
  1713.                         ";
  1714.         // line 1391
  1715.         $context['_parent'] = $context;
  1716.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1391$this->source); })()), "ProductImage", [], "any"falsefalsefalse1391));
  1717.         $context['_iterated'] = false;
  1718.         $context['loop'] = [
  1719.           'parent' => $context['_parent'],
  1720.           'index0' => 0,
  1721.           'index'  => 1,
  1722.           'first'  => true,
  1723.         ];
  1724.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  1725.             $length count($context['_seq']);
  1726.             $context['loop']['revindex0'] = $length 1;
  1727.             $context['loop']['revindex'] = $length;
  1728.             $context['loop']['length'] = $length;
  1729.             $context['loop']['last'] = === $length;
  1730.         }
  1731.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  1732.             // line 1392
  1733.             echo "                            <div class=\"slide-item\"><img src=\"";
  1734.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  1735.             echo "\" alt=\"";
  1736.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse1392)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1392$this->source); })()), "name", [], "any"falsefalsefalse1392), "html"nulltrue))) : (print ("")));
  1737.             echo "\" width=\"550\" height=\"550\" style=\"max-height: 400px;\"";
  1738.             if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse1392) > 1)) {
  1739.                 echo " loading=\"lazy\"";
  1740.             }
  1741.             echo "></div>
  1742.                         ";
  1743.             $context['_iterated'] = true;
  1744.             ++$context['loop']['index0'];
  1745.             ++$context['loop']['index'];
  1746.             $context['loop']['first'] = false;
  1747.             if (isset($context['loop']['length'])) {
  1748.                 --$context['loop']['revindex0'];
  1749.                 --$context['loop']['revindex'];
  1750.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  1751.             }
  1752.         }
  1753.         if (!$context['_iterated']) {
  1754.             // line 1394
  1755.             echo "                            <div class=\"slide-item\"><img src=\"";
  1756.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html"nulltrue);
  1757.             echo "\" alt=\"";
  1758.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse1394)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1394$this->source); })()), "name", [], "any"falsefalsefalse1394), "html"nulltrue))) : (print ("")));
  1759.             echo "\" width=\"550\" height=\"550\" style=\"max-height: 400px;\"></div>
  1760.                         ";
  1761.         }
  1762.         $_parent $context['_parent'];
  1763.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  1764.         $context array_intersect_key($context$_parent) + $_parent;
  1765.         // line 1396
  1766.         echo "                    </div>
  1767.                     <div class=\"item_nav\">
  1768.                         ";
  1769.         // line 1398
  1770.         $context['_parent'] = $context;
  1771.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1398$this->source); })()), "ProductImage", [], "any"falsefalsefalse1398));
  1772.         $context['loop'] = [
  1773.           'parent' => $context['_parent'],
  1774.           'index0' => 0,
  1775.           'index'  => 1,
  1776.           'first'  => true,
  1777.         ];
  1778.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  1779.             $length count($context['_seq']);
  1780.             $context['loop']['revindex0'] = $length 1;
  1781.             $context['loop']['revindex'] = $length;
  1782.             $context['loop']['length'] = $length;
  1783.             $context['loop']['last'] = === $length;
  1784.         }
  1785.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  1786.             // line 1399
  1787.             echo "                            <div class=\"slideThumb\" data-index=\"";
  1788.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse1399), "html"nulltrue);
  1789.             echo "\"><img src=\"";
  1790.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  1791.             echo "\" alt=\"\" width=\"80\" height=\"80\" loading=\"lazy\"></div>
  1792.                         ";
  1793.             ++$context['loop']['index0'];
  1794.             ++$context['loop']['index'];
  1795.             $context['loop']['first'] = false;
  1796.             if (isset($context['loop']['length'])) {
  1797.                 --$context['loop']['revindex0'];
  1798.                 --$context['loop']['revindex'];
  1799.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  1800.             }
  1801.         }
  1802.         $_parent $context['_parent'];
  1803.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  1804.         $context array_intersect_key($context$_parent) + $_parent;
  1805.         // line 1401
  1806.         echo "                    </div>
  1807.                 </div>
  1808.                     ";
  1809.         // line 1406
  1810.         echo "                    <div class=\"ec-areaNotice\" style=\"margin-top:16px;margin-right:10px;\">
  1811.                         <div class=\"ec-areaNotice__inner\">
  1812.                             <div class=\"ec-areaNotice__icon\">📍</div>
  1813.                             <div class=\"ec-areaNotice__body\">
  1814.                                 <p class=\"ec-areaNotice__title\">施工対応エリアについて</p>
  1815.                                 <div class=\"ec-areaNotice__detail\">
  1816.                                     <p class=\"ec-areaNotice__text\">
  1817.                                         当店の施工サービスは、<strong>山梨県全域</strong>および<br>
  1818.                                         <strong>諏訪エリア(諏訪市・岡谷市・茅野市・諏訪郡)</strong>を対象としております。<br>
  1819.                                         上記エリア外のお客様には、商品のみのご購入が可能でございます。<br>
  1820.                                         ご不明な点がございましたら、お気軽にお問い合わせください。
  1821.                                     </p>
  1822.                                     <a class=\"ec-areaNotice__link\" href=\"";
  1823.         // line 1418
  1824.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("contact");
  1825.         echo "\">エリア外のお客様・ご相談はこちら →</a>
  1826.                                 </div>
  1827.                             </div>
  1828.                         </div>
  1829.                     </div>
  1830.             </div>
  1831.             <div class=\"ec-grid2__cell2\">
  1832.                 <div class=\"ec-productRole__profile\" >
  1833.                     ";
  1834.         // line 1429
  1835.         echo "                    ";
  1836.         if ( !twig_test_empty(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1429$this->source); })()), "ProductCategories", [], "any"falsefalsefalse1429))) {
  1837.             // line 1430
  1838.             echo "                        <div class=\"ec-productRole__category\" style=\"padding:10px 0;\">
  1839.                             ";
  1840.             // line 1431
  1841.             $context['_parent'] = $context;
  1842.             $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1431$this->source); })()), "ProductCategories", [], "any"falsefalsefalse1431));
  1843.             foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
  1844.                 // line 1432
  1845.                 echo "                                <ul>
  1846.                                     <li>
  1847.                                         ";
  1848.                 // line 1434
  1849.                 $context['_parent'] = $context;
  1850.                 $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["ProductCategory"], "Category", [], "any"falsefalsefalse1434), "path", [], "any"falsefalsefalse1434));
  1851.                 $context['loop'] = [
  1852.                   'parent' => $context['_parent'],
  1853.                   'index0' => 0,
  1854.                   'index'  => 1,
  1855.                   'first'  => true,
  1856.                 ];
  1857.                 if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  1858.                     $length count($context['_seq']);
  1859.                     $context['loop']['revindex0'] = $length 1;
  1860.                     $context['loop']['revindex'] = $length;
  1861.                     $context['loop']['length'] = $length;
  1862.                     $context['loop']['last'] = === $length;
  1863.                 }
  1864.                 foreach ($context['_seq'] as $context["_key"] => $context["Category"]) {
  1865.                     // line 1435
  1866.                     echo "                                            <a href=\"";
  1867.                     echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  1868.                     echo "?category_id=";
  1869.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Category"], "id", [], "any"falsefalsefalse1435), "html"nulltrue);
  1870.                     echo "\">";
  1871.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Category"], "name", [], "any"falsefalsefalse1435), "html"nulltrue);
  1872.                     echo "</a>";
  1873.                     if ((twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse1435) == false)) {
  1874.                         // line 1436
  1875.                         echo "                                            <span>></span>";
  1876.                     }
  1877.                     ++$context['loop']['index0'];
  1878.                     ++$context['loop']['index'];
  1879.                     $context['loop']['first'] = false;
  1880.                     if (isset($context['loop']['length'])) {
  1881.                         --$context['loop']['revindex0'];
  1882.                         --$context['loop']['revindex'];
  1883.                         $context['loop']['last'] = === $context['loop']['revindex0'];
  1884.                     }
  1885.                 }
  1886.                 $_parent $context['_parent'];
  1887.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Category'], $context['_parent'], $context['loop']);
  1888.                 $context array_intersect_key($context$_parent) + $_parent;
  1889.                 // line 1438
  1890.                 echo "                                    </li>
  1891.                                 </ul>
  1892.                             ";
  1893.             }
  1894.             $_parent $context['_parent'];
  1895.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
  1896.             $context array_intersect_key($context$_parent) + $_parent;
  1897.             // line 1441
  1898.             echo "                        </div>
  1899.                     ";
  1900.         }
  1901.         // line 1443
  1902.         echo "                    ";
  1903.         // line 1444
  1904.         echo "                    <div class=\"ec-productRole__price\">
  1905. \t\t\t\t\t\t<span style=\"color:black;font-size:15px;\">工事費込み価格</span>
  1906.                         ";
  1907.         // line 1446
  1908.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1446$this->source); })()), "hasProductClass", [], "any"falsefalsefalse1446)) {
  1909.             // line 1447
  1910.             if ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1447$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse1447) == twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1447$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse1447))) {
  1911.                 // line 1448
  1912.                 echo "                                <div class=\"ec-price\">
  1913.                                     <span id=\"price02-display\" class=\"ec-price__price price02-default\">";
  1914.                 // line 1449
  1915.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1449$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse1449)), "html"nulltrue);
  1916.                 echo "</span>
  1917.                                     <span class=\"ec-price__tax\">(";
  1918.                 // line 1450
  1919.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  1920.                 echo ")~</span>
  1921.                                 </div>
  1922.                             ";
  1923.             } else {
  1924.                 // line 1453
  1925.                 echo "                                <div class=\"ec-price\">
  1926.                                     <span id=\"price02-display\" class=\"ec-price__price price02-default\">";
  1927.                 // line 1454
  1928.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1454$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse1454)), "html"nulltrue);
  1929.                 echo " ~ ";
  1930.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1454$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse1454)), "html"nulltrue);
  1931.                 echo "</span>
  1932.                                     <span class=\"ec-price__tax\">(";
  1933.                 // line 1455
  1934.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  1935.                 echo ")</span>
  1936.                                 </div>
  1937.                             ";
  1938.             }
  1939.             // line 1458
  1940.             echo "                        ";
  1941.         } else {
  1942.             // line 1459
  1943.             echo "                            <div class=\"ec-price\">
  1944.                                 <span id=\"price02-display\" class=\"ec-price__price\">";
  1945.             // line 1460
  1946.             echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1460$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse1460)), "html"nulltrue);
  1947.             echo "</span>
  1948.                                     <span class=\"ec-price__tax\">(";
  1949.             // line 1461
  1950.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  1951.             echo ")~</span>
  1952.                             </div>
  1953.                         ";
  1954.         }
  1955.         // line 1464
  1956.         echo "                    </div>
  1957.                     ";
  1958.         // line 1466
  1959.         echo "                    <ul class=\"ec-productRole__tags\">
  1960.                         ";
  1961.         // line 1467
  1962.         $context['_parent'] = $context;
  1963.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1467$this->source); })()), "Tags", [], "any"falsefalsefalse1467));
  1964.         foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
  1965.             // line 1468
  1966.             echo "                            <li class=\"ec-productRole__tag tag_";
  1967.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Tag"], "id", [], "any"falsefalsefalse1468), "html"nulltrue);
  1968.             echo "\">";
  1969.             echo twig_escape_filter($this->env$context["Tag"], "html"nulltrue);
  1970.             echo "</li>
  1971.                         ";
  1972.         }
  1973.         $_parent $context['_parent'];
  1974.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
  1975.         $context array_intersect_key($context$_parent) + $_parent;
  1976.         // line 1470
  1977.         echo "                    </ul>
  1978.                     ";
  1979.         // line 1472
  1980.         echo "                    ";
  1981.         if ( !twig_test_empty(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1472$this->source); })()), "code_min", [], "any"falsefalsefalse1472))) {
  1982.             // line 1473
  1983.             echo "                        <div class=\"ec-productRole__code\">
  1984.                             ";
  1985.             // line 1474
  1986.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html"nulltrue);
  1987.             echo ": <span class=\"product-code-default\">";
  1988.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1474$this->source); })()), "code_min", [], "any"falsefalsefalse1474), "html"nulltrue);
  1989.             if ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1474$this->source); })()), "code_min", [], "any"falsefalsefalse1474) != twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1474$this->source); })()), "code_max", [], "any"falsefalsefalse1474))) {
  1990.                 echo " ~ ";
  1991.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1474$this->source); })()), "code_max", [], "any"falsefalsefalse1474), "html"nulltrue);
  1992.             }
  1993.             echo "</span>
  1994.                         </div>
  1995.                     ";
  1996.         }
  1997.         // line 1477
  1998.         echo "
  1999.                     <div class=\"ec-productRole__description\">
  2000. \t\t\t\t        <div class=\"ec-rectHeading\">
  2001. \t\t\t\t            <h4>製品情報</h4>
  2002. \t\t\t\t        </div>
  2003. \t\t\t\t\t\t";
  2004.         // line 1482
  2005.         echo twig_nl2br(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1482$this->source); })()), "sales_infomation", [], "any"falsefalsefalse1482));
  2006.         echo "
  2007.                     </div>
  2008. \t\t\t\t\t<div class=\"card card-danger\" style=\"clear:both;margin:1px;\">
  2009. \t\t\t\t\t  <div class=\"card-header\">
  2010. \t\t\t\t\t    <h3 class=\"card-title\">見積シミュレーション</h3>
  2011. \t\t\t\t\t  </div>
  2012. \t\t\t\t\t  <div class=\"card-body p-2\">
  2013.                         ";
  2014.         // line 1491
  2015.         $context["related_image"] = $this->extensions['Plugin\ProductField\Twig\Extension\EccubeExtension']->getProduct_field(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1491$this->source); })()), "id", [], "any"falsefalsefalse1491), "related_image");
  2016.         // line 1492
  2017.         echo "                        ";
  2018.         // line 1493
  2019.         echo "                        ";
  2020.         $context["img1"] = ((isset($context["related_image"]) || array_key_exists("related_image"$context) ? $context["related_image"] : (function () { throw new RuntimeError('Variable "related_image" does not exist.'1493$this->source); })()) && twig_in_filter("1段目画像あり", (isset($context["related_image"]) || array_key_exists("related_image"$context) ? $context["related_image"] : (function () { throw new RuntimeError('Variable "related_image" does not exist.'1493$this->source); })())));
  2021.         // line 1494
  2022.         echo "                        ";
  2023.         $context["img2"] = ((isset($context["related_image"]) || array_key_exists("related_image"$context) ? $context["related_image"] : (function () { throw new RuntimeError('Variable "related_image" does not exist.'1494$this->source); })()) && twig_in_filter("2段目画像あり", (isset($context["related_image"]) || array_key_exists("related_image"$context) ? $context["related_image"] : (function () { throw new RuntimeError('Variable "related_image" does not exist.'1494$this->source); })())));
  2024.         // line 1495
  2025.         echo "                        ";
  2026.         $context["img3"] = ((isset($context["related_image"]) || array_key_exists("related_image"$context) ? $context["related_image"] : (function () { throw new RuntimeError('Variable "related_image" does not exist.'1495$this->source); })()) && twig_in_filter("3段目画像あり", (isset($context["related_image"]) || array_key_exists("related_image"$context) ? $context["related_image"] : (function () { throw new RuntimeError('Variable "related_image" does not exist.'1495$this->source); })())));
  2027.         // line 1496
  2028.         echo "                        ";
  2029.         $context["img4"] = ((isset($context["related_image"]) || array_key_exists("related_image"$context) ? $context["related_image"] : (function () { throw new RuntimeError('Variable "related_image" does not exist.'1496$this->source); })()) && twig_in_filter("4段目画像あり", (isset($context["related_image"]) || array_key_exists("related_image"$context) ? $context["related_image"] : (function () { throw new RuntimeError('Variable "related_image" does not exist.'1496$this->source); })())));
  2030.         // line 1497
  2031.         echo "\t\t\t\t\t    ";
  2032.         $context["type1"] = $this->extensions['Plugin\ProductField\Twig\Extension\EccubeExtension']->getProduct_field(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1497$this->source); })()), "id", [], "any"falsefalsefalse1497), "related_name1");
  2033.         // line 1498
  2034.         echo "\t\t\t\t\t\t";
  2035.         $context["type2"] = $this->extensions['Plugin\ProductField\Twig\Extension\EccubeExtension']->getProduct_field(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1498$this->source); })()), "id", [], "any"falsefalsefalse1498), "related_name2");
  2036.         // line 1499
  2037.         echo "\t\t\t\t\t\t";
  2038.         $context["type3"] = $this->extensions['Plugin\ProductField\Twig\Extension\EccubeExtension']->getProduct_field(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1499$this->source); })()), "id", [], "any"falsefalsefalse1499), "related_name3");
  2039.         // line 1500
  2040.         echo "\t\t\t\t\t\t";
  2041.         $context["type4"] = $this->extensions['Plugin\ProductField\Twig\Extension\EccubeExtension']->getProduct_field(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'1500$this->source); })()), "id", [], "any"falsefalsefalse1500), "related_name4");
  2042.         // line 1501
  2043.         echo "\t\t\t\t\t\t";
  2044.         $context["hasRelated"] = ((((((isset($context["type1"]) || array_key_exists("type1"$context) ? $context["type1"] : (function () { throw new RuntimeError('Variable "type1" does not exist.'1501$this->source); })()) && (isset($context["related_product1"]) || array_key_exists("related_product1"$context) ? $context["related_product1"] : (function () { throw new RuntimeError('Variable "related_product1" does not exist.'1501$this->source); })())) && twig_length_filter($this->env, (isset($context["related_product1"]) || array_key_exists("related_product1"$context) ? $context["related_product1"] : (function () { throw new RuntimeError('Variable "related_product1" does not exist.'1501$this->source); })()))) || ((        // line 1502
  2045. (isset($context["type2"]) || array_key_exists("type2"$context) ? $context["type2"] : (function () { throw new RuntimeError('Variable "type2" does not exist.'1502$this->source); })()) && (isset($context["related_product2"]) || array_key_exists("related_product2"$context) ? $context["related_product2"] : (function () { throw new RuntimeError('Variable "related_product2" does not exist.'1502$this->source); })())) && twig_length_filter($this->env, (isset($context["related_product2"]) || array_key_exists("related_product2"$context) ? $context["related_product2"] : (function () { throw new RuntimeError('Variable "related_product2" does not exist.'1502$this->source); })())))) || ((        // line 1503
  2046. (isset($context["type3"]) || array_key_exists("type3"$context) ? $context["type3"] : (function () { throw new RuntimeError('Variable "type3" does not exist.'1503$this->source); })()) && (isset($context["related_product3"]) || array_key_exists("related_product3"$context) ? $context["related_product3"] : (function () { throw new RuntimeError('Variable "related_product3" does not exist.'1503$this->source); })())) && twig_length_filter($this->env, (isset($context["related_product3"]) || array_key_exists("related_product3"$context) ? $context["related_product3"] : (function () { throw new RuntimeError('Variable "related_product3" does not exist.'1503$this->source); })())))) || ((        // line 1504
  2047. (isset($context["type4"]) || array_key_exists("type4"$context) ? $context["type4"] : (function () { throw new RuntimeError('Variable "type4" does not exist.'1504$this->source); })()) && (isset($context["related_product4"]) || array_key_exists("related_product4"$context) ? $context["related_product4"] : (function () { throw new RuntimeError('Variable "related_product4" does not exist.'1504$this->source); })())) && twig_length_filter($this->env, (isset($context["related_product4"]) || array_key_exists("related_product4"$context) ? $context["related_product4"] : (function () { throw new RuntimeError('Variable "related_product4" does not exist.'1504$this->source); })()))));
  2048.         // line 1505
  2049.         echo "\t\t\t\t\t\t";
  2050.         if ((isset($context["hasRelated"]) || array_key_exists("hasRelated"$context) ? $context["hasRelated"] : (function () { throw new RuntimeError('Variable "hasRelated" does not exist.'1505$this->source); })())) {
  2051.             // line 1506
  2052.             echo "\t\t\t\t\t\t    <div class=\"row\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\"><label class=\"col-12 col-form-label\">この商品のタイプを選択してください。</label></div>
  2053. \t\t\t\t\t\t";
  2054.         }
  2055.         // line 1508
  2056.         echo "
  2057. \t\t\t\t\t\t";
  2058.         // line 1510
  2059.         echo "\t\t\t\t\t\t";
  2060.         if ((((isset($context["type1"]) || array_key_exists("type1"$context) ? $context["type1"] : (function () { throw new RuntimeError('Variable "type1" does not exist.'1510$this->source); })()) && (isset($context["related_product1"]) || array_key_exists("related_product1"$context) ? $context["related_product1"] : (function () { throw new RuntimeError('Variable "related_product1" does not exist.'1510$this->source); })())) && twig_length_filter($this->env, (isset($context["related_product1"]) || array_key_exists("related_product1"$context) ? $context["related_product1"] : (function () { throw new RuntimeError('Variable "related_product1" does not exist.'1510$this->source); })())))) {
  2061.             // line 1511
  2062.             echo "\t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2063. \t\t\t\t\t\t  <div class=\"rp-section-label\">";
  2064.             // line 1512
  2065.             echo twig_escape_filter($this->env, (isset($context["type1"]) || array_key_exists("type1"$context) ? $context["type1"] : (function () { throw new RuntimeError('Variable "type1" does not exist.'1512$this->source); })()), "html"nulltrue);
  2066.             if (((isset($context["img1"]) || array_key_exists("img1"$context) ? $context["img1"] : (function () { throw new RuntimeError('Variable "img1" does not exist.'1512$this->source); })()) && (isset($context["base_select1"]) || array_key_exists("base_select1"$context) ? $context["base_select1"] : (function () { throw new RuntimeError('Variable "base_select1" does not exist.'1512$this->source); })()))) {
  2067.                 echo ": <span>";
  2068.                 echo twig_escape_filter($this->env, (isset($context["base_select1"]) || array_key_exists("base_select1"$context) ? $context["base_select1"] : (function () { throw new RuntimeError('Variable "base_select1" does not exist.'1512$this->source); })()), "html"nulltrue);
  2069.                 echo "</span>";
  2070.             }
  2071.             echo "</div>
  2072. \t\t\t\t\t\t  ";
  2073.             // line 1513
  2074.             if ((isset($context["img1"]) || array_key_exists("img1"$context) ? $context["img1"] : (function () { throw new RuntimeError('Variable "img1" does not exist.'1513$this->source); })())) {
  2075.                 // line 1514
  2076.                 echo "\t\t\t\t\t\t    ";
  2077.                 // line 1515
  2078.                 echo "\t\t\t\t\t\t    <div class=\"rp-card-group\">
  2079. \t\t\t\t\t\t      ";
  2080.                 // line 1516
  2081.                 $context['_parent'] = $context;
  2082.                 $context['_seq'] = twig_ensure_traversable((isset($context["related_product1"]) || array_key_exists("related_product1"$context) ? $context["related_product1"] : (function () { throw new RuntimeError('Variable "related_product1" does not exist.'1516$this->source); })()));
  2083.                 foreach ($context['_seq'] as $context["rp_id"] => $context["rp_name"]) {
  2084.                     // line 1517
  2085.                     echo "\t\t\t\t\t\t        <label class=\"rp-card";
  2086.                     if (((isset($context["base_select1"]) || array_key_exists("base_select1"$context) ? $context["base_select1"] : (function () { throw new RuntimeError('Variable "base_select1" does not exist.'1517$this->source); })()) == $context["rp_name"])) {
  2087.                         echo " is-selected";
  2088.                     }
  2089.                     echo "\"
  2090. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/";
  2091.                     // line 1518
  2092.                     echo twig_escape_filter($this->env$context["rp_id"], "html"nulltrue);
  2093.                     echo "';\">
  2094. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp1\" value=\"";
  2095.                     // line 1519
  2096.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2097.                     echo "\"
  2098. \t\t\t\t\t\t                 ";
  2099.                     // line 1520
  2100.                     if (((isset($context["base_select1"]) || array_key_exists("base_select1"$context) ? $context["base_select1"] : (function () { throw new RuntimeError('Variable "base_select1" does not exist.'1520$this->source); })()) == $context["rp_name"])) {
  2101.                         echo "checked";
  2102.                     }
  2103.                     echo ">
  2104. \t\t\t\t\t\t          <img class=\"rp-card__image\"
  2105. \t\t\t\t\t\t               src=\"";
  2106.                     // line 1522
  2107.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl((("p" $context["rp_id"]) . "_cp_1.jpg"), "save_image"), "html"nulltrue);
  2108.                     echo "\"
  2109. \t\t\t\t\t\t               alt=\"";
  2110.                     // line 1523
  2111.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2112.                     echo "\"
  2113. \t\t\t\t\t\t               onerror=\"this.style.display='none';this.nextElementSibling.style.display='flex';\">
  2114. \t\t\t\t\t\t          <div class=\"rp-card__placeholder\" style=\"display:none;\">📦</div>
  2115. \t\t\t\t\t\t          <span class=\"rp-card__name\">";
  2116.                     // line 1526
  2117.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2118.                     echo "</span>
  2119. \t\t\t\t\t\t        </label>
  2120. \t\t\t\t\t\t      ";
  2121.                 }
  2122.                 $_parent $context['_parent'];
  2123.                 unset($context['_seq'], $context['_iterated'], $context['rp_id'], $context['rp_name'], $context['_parent'], $context['loop']);
  2124.                 $context array_intersect_key($context$_parent) + $_parent;
  2125.                 // line 1529
  2126.                 echo "\t\t\t\t\t\t    </div>
  2127. \t\t\t\t\t\t  ";
  2128.             } else {
  2129.                 // line 1531
  2130.                 echo "\t\t\t\t\t\t    ";
  2131.                 // line 1532
  2132.                 echo "\t\t\t\t\t\t    <div class=\"rp-btn-group\">
  2133. \t\t\t\t\t\t      ";
  2134.                 // line 1533
  2135.                 $context['_parent'] = $context;
  2136.                 $context['_seq'] = twig_ensure_traversable((isset($context["related_product1"]) || array_key_exists("related_product1"$context) ? $context["related_product1"] : (function () { throw new RuntimeError('Variable "related_product1" does not exist.'1533$this->source); })()));
  2137.                 foreach ($context['_seq'] as $context["rp_id"] => $context["rp_name"]) {
  2138.                     // line 1534
  2139.                     echo "\t\t\t\t\t\t        <label class=\"rp-btn";
  2140.                     if (((isset($context["base_select1"]) || array_key_exists("base_select1"$context) ? $context["base_select1"] : (function () { throw new RuntimeError('Variable "base_select1" does not exist.'1534$this->source); })()) == $context["rp_name"])) {
  2141.                         echo " is-selected";
  2142.                     }
  2143.                     echo "\"
  2144. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/";
  2145.                     // line 1535
  2146.                     echo twig_escape_filter($this->env$context["rp_id"], "html"nulltrue);
  2147.                     echo "';\">
  2148. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp1\" value=\"";
  2149.                     // line 1536
  2150.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2151.                     echo "\"
  2152. \t\t\t\t\t\t                 ";
  2153.                     // line 1537
  2154.                     if (((isset($context["base_select1"]) || array_key_exists("base_select1"$context) ? $context["base_select1"] : (function () { throw new RuntimeError('Variable "base_select1" does not exist.'1537$this->source); })()) == $context["rp_name"])) {
  2155.                         echo "checked";
  2156.                     }
  2157.                     echo ">
  2158. \t\t\t\t\t\t          ";
  2159.                     // line 1538
  2160.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2161.                     echo "
  2162. \t\t\t\t\t\t        </label>
  2163. \t\t\t\t\t\t      ";
  2164.                 }
  2165.                 $_parent $context['_parent'];
  2166.                 unset($context['_seq'], $context['_iterated'], $context['rp_id'], $context['rp_name'], $context['_parent'], $context['loop']);
  2167.                 $context array_intersect_key($context$_parent) + $_parent;
  2168.                 // line 1541
  2169.                 echo "\t\t\t\t\t\t    </div>
  2170. \t\t\t\t\t\t  ";
  2171.             }
  2172.             // line 1543
  2173.             echo "\t\t\t\t\t\t</div>
  2174. \t\t\t\t\t\t";
  2175.         }
  2176.         // line 1545
  2177.         echo "
  2178. \t\t\t\t\t\t";
  2179.         // line 1547
  2180.         echo "\t\t\t\t\t\t";
  2181.         if ((((isset($context["type2"]) || array_key_exists("type2"$context) ? $context["type2"] : (function () { throw new RuntimeError('Variable "type2" does not exist.'1547$this->source); })()) && (isset($context["related_product2"]) || array_key_exists("related_product2"$context) ? $context["related_product2"] : (function () { throw new RuntimeError('Variable "related_product2" does not exist.'1547$this->source); })())) && twig_length_filter($this->env, (isset($context["related_product2"]) || array_key_exists("related_product2"$context) ? $context["related_product2"] : (function () { throw new RuntimeError('Variable "related_product2" does not exist.'1547$this->source); })())))) {
  2182.             // line 1548
  2183.             echo "\t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2184. \t\t\t\t\t\t  <div class=\"rp-section-label\">";
  2185.             // line 1549
  2186.             echo twig_escape_filter($this->env, (isset($context["type2"]) || array_key_exists("type2"$context) ? $context["type2"] : (function () { throw new RuntimeError('Variable "type2" does not exist.'1549$this->source); })()), "html"nulltrue);
  2187.             if (((isset($context["img2"]) || array_key_exists("img2"$context) ? $context["img2"] : (function () { throw new RuntimeError('Variable "img2" does not exist.'1549$this->source); })()) && (isset($context["base_select2"]) || array_key_exists("base_select2"$context) ? $context["base_select2"] : (function () { throw new RuntimeError('Variable "base_select2" does not exist.'1549$this->source); })()))) {
  2188.                 echo ": <span>";
  2189.                 echo twig_escape_filter($this->env, (isset($context["base_select2"]) || array_key_exists("base_select2"$context) ? $context["base_select2"] : (function () { throw new RuntimeError('Variable "base_select2" does not exist.'1549$this->source); })()), "html"nulltrue);
  2190.                 echo "</span>";
  2191.             }
  2192.             echo "</div>
  2193. \t\t\t\t\t\t  ";
  2194.             // line 1550
  2195.             if ((isset($context["img2"]) || array_key_exists("img2"$context) ? $context["img2"] : (function () { throw new RuntimeError('Variable "img2" does not exist.'1550$this->source); })())) {
  2196.                 // line 1551
  2197.                 echo "\t\t\t\t\t\t    <div class=\"rp-card-group\">
  2198. \t\t\t\t\t\t      ";
  2199.                 // line 1552
  2200.                 $context['_parent'] = $context;
  2201.                 $context['_seq'] = twig_ensure_traversable((isset($context["related_product2"]) || array_key_exists("related_product2"$context) ? $context["related_product2"] : (function () { throw new RuntimeError('Variable "related_product2" does not exist.'1552$this->source); })()));
  2202.                 foreach ($context['_seq'] as $context["rp_id"] => $context["rp_name"]) {
  2203.                     // line 1553
  2204.                     echo "\t\t\t\t\t\t        <label class=\"rp-card";
  2205.                     if (((isset($context["base_select2"]) || array_key_exists("base_select2"$context) ? $context["base_select2"] : (function () { throw new RuntimeError('Variable "base_select2" does not exist.'1553$this->source); })()) == $context["rp_name"])) {
  2206.                         echo " is-selected";
  2207.                     }
  2208.                     echo "\"
  2209. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/";
  2210.                     // line 1554
  2211.                     echo twig_escape_filter($this->env$context["rp_id"], "html"nulltrue);
  2212.                     echo "';\">
  2213. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp2\" value=\"";
  2214.                     // line 1555
  2215.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2216.                     echo "\"
  2217. \t\t\t\t\t\t                 ";
  2218.                     // line 1556
  2219.                     if (((isset($context["base_select2"]) || array_key_exists("base_select2"$context) ? $context["base_select2"] : (function () { throw new RuntimeError('Variable "base_select2" does not exist.'1556$this->source); })()) == $context["rp_name"])) {
  2220.                         echo "checked";
  2221.                     }
  2222.                     echo ">
  2223. \t\t\t\t\t\t          <img class=\"rp-card__image\"
  2224. \t\t\t\t\t\t               src=\"";
  2225.                     // line 1558
  2226.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl((("p" $context["rp_id"]) . "_cp_1.jpg"), "save_image"), "html"nulltrue);
  2227.                     echo "\"
  2228. \t\t\t\t\t\t               alt=\"";
  2229.                     // line 1559
  2230.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2231.                     echo "\"
  2232. \t\t\t\t\t\t               onerror=\"this.style.display='none';this.nextElementSibling.style.display='flex';\">
  2233. \t\t\t\t\t\t          <div class=\"rp-card__placeholder\" style=\"display:none;\">📦</div>
  2234. \t\t\t\t\t\t          <span class=\"rp-card__name\">";
  2235.                     // line 1562
  2236.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2237.                     echo "</span>
  2238. \t\t\t\t\t\t        </label>
  2239. \t\t\t\t\t\t      ";
  2240.                 }
  2241.                 $_parent $context['_parent'];
  2242.                 unset($context['_seq'], $context['_iterated'], $context['rp_id'], $context['rp_name'], $context['_parent'], $context['loop']);
  2243.                 $context array_intersect_key($context$_parent) + $_parent;
  2244.                 // line 1565
  2245.                 echo "\t\t\t\t\t\t    </div>
  2246. \t\t\t\t\t\t  ";
  2247.             } else {
  2248.                 // line 1567
  2249.                 echo "\t\t\t\t\t\t    <div class=\"rp-btn-group\">
  2250. \t\t\t\t\t\t      ";
  2251.                 // line 1568
  2252.                 $context['_parent'] = $context;
  2253.                 $context['_seq'] = twig_ensure_traversable((isset($context["related_product2"]) || array_key_exists("related_product2"$context) ? $context["related_product2"] : (function () { throw new RuntimeError('Variable "related_product2" does not exist.'1568$this->source); })()));
  2254.                 foreach ($context['_seq'] as $context["rp_id"] => $context["rp_name"]) {
  2255.                     // line 1569
  2256.                     echo "\t\t\t\t\t\t        <label class=\"rp-btn";
  2257.                     if (((isset($context["base_select2"]) || array_key_exists("base_select2"$context) ? $context["base_select2"] : (function () { throw new RuntimeError('Variable "base_select2" does not exist.'1569$this->source); })()) == $context["rp_name"])) {
  2258.                         echo " is-selected";
  2259.                     }
  2260.                     echo "\"
  2261. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/";
  2262.                     // line 1570
  2263.                     echo twig_escape_filter($this->env$context["rp_id"], "html"nulltrue);
  2264.                     echo "';\">
  2265. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp2\" value=\"";
  2266.                     // line 1571
  2267.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2268.                     echo "\"
  2269. \t\t\t\t\t\t                 ";
  2270.                     // line 1572
  2271.                     if (((isset($context["base_select2"]) || array_key_exists("base_select2"$context) ? $context["base_select2"] : (function () { throw new RuntimeError('Variable "base_select2" does not exist.'1572$this->source); })()) == $context["rp_name"])) {
  2272.                         echo "checked";
  2273.                     }
  2274.                     echo ">
  2275. \t\t\t\t\t\t          ";
  2276.                     // line 1573
  2277.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2278.                     echo "
  2279. \t\t\t\t\t\t        </label>
  2280. \t\t\t\t\t\t      ";
  2281.                 }
  2282.                 $_parent $context['_parent'];
  2283.                 unset($context['_seq'], $context['_iterated'], $context['rp_id'], $context['rp_name'], $context['_parent'], $context['loop']);
  2284.                 $context array_intersect_key($context$_parent) + $_parent;
  2285.                 // line 1576
  2286.                 echo "\t\t\t\t\t\t    </div>
  2287. \t\t\t\t\t\t  ";
  2288.             }
  2289.             // line 1578
  2290.             echo "\t\t\t\t\t\t</div>
  2291. \t\t\t\t\t\t";
  2292.         }
  2293.         // line 1580
  2294.         echo "
  2295. \t\t\t\t\t\t";
  2296.         // line 1582
  2297.         echo "\t\t\t\t\t\t";
  2298.         if ((((isset($context["type3"]) || array_key_exists("type3"$context) ? $context["type3"] : (function () { throw new RuntimeError('Variable "type3" does not exist.'1582$this->source); })()) && (isset($context["related_product3"]) || array_key_exists("related_product3"$context) ? $context["related_product3"] : (function () { throw new RuntimeError('Variable "related_product3" does not exist.'1582$this->source); })())) && twig_length_filter($this->env, (isset($context["related_product3"]) || array_key_exists("related_product3"$context) ? $context["related_product3"] : (function () { throw new RuntimeError('Variable "related_product3" does not exist.'1582$this->source); })())))) {
  2299.             // line 1583
  2300.             echo "\t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2301. \t\t\t\t\t\t  <div class=\"rp-section-label\">";
  2302.             // line 1584
  2303.             echo twig_escape_filter($this->env, (isset($context["type3"]) || array_key_exists("type3"$context) ? $context["type3"] : (function () { throw new RuntimeError('Variable "type3" does not exist.'1584$this->source); })()), "html"nulltrue);
  2304.             if (((isset($context["img3"]) || array_key_exists("img3"$context) ? $context["img3"] : (function () { throw new RuntimeError('Variable "img3" does not exist.'1584$this->source); })()) && (isset($context["base_select3"]) || array_key_exists("base_select3"$context) ? $context["base_select3"] : (function () { throw new RuntimeError('Variable "base_select3" does not exist.'1584$this->source); })()))) {
  2305.                 echo ": <span>";
  2306.                 echo twig_escape_filter($this->env, (isset($context["base_select3"]) || array_key_exists("base_select3"$context) ? $context["base_select3"] : (function () { throw new RuntimeError('Variable "base_select3" does not exist.'1584$this->source); })()), "html"nulltrue);
  2307.                 echo "</span>";
  2308.             }
  2309.             echo "</div>
  2310. \t\t\t\t\t\t  ";
  2311.             // line 1585
  2312.             if ((isset($context["img3"]) || array_key_exists("img3"$context) ? $context["img3"] : (function () { throw new RuntimeError('Variable "img3" does not exist.'1585$this->source); })())) {
  2313.                 // line 1586
  2314.                 echo "\t\t\t\t\t\t    <div class=\"rp-card-group\">
  2315. \t\t\t\t\t\t      ";
  2316.                 // line 1587
  2317.                 $context['_parent'] = $context;
  2318.                 $context['_seq'] = twig_ensure_traversable((isset($context["related_product3"]) || array_key_exists("related_product3"$context) ? $context["related_product3"] : (function () { throw new RuntimeError('Variable "related_product3" does not exist.'1587$this->source); })()));
  2319.                 foreach ($context['_seq'] as $context["rp_id"] => $context["rp_name"]) {
  2320.                     // line 1588
  2321.                     echo "\t\t\t\t\t\t        <label class=\"rp-card";
  2322.                     if (((isset($context["base_select3"]) || array_key_exists("base_select3"$context) ? $context["base_select3"] : (function () { throw new RuntimeError('Variable "base_select3" does not exist.'1588$this->source); })()) == $context["rp_name"])) {
  2323.                         echo " is-selected";
  2324.                     }
  2325.                     echo "\"
  2326. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/";
  2327.                     // line 1589
  2328.                     echo twig_escape_filter($this->env$context["rp_id"], "html"nulltrue);
  2329.                     echo "';\">
  2330. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp3\" value=\"";
  2331.                     // line 1590
  2332.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2333.                     echo "\"
  2334. \t\t\t\t\t\t                 ";
  2335.                     // line 1591
  2336.                     if (((isset($context["base_select3"]) || array_key_exists("base_select3"$context) ? $context["base_select3"] : (function () { throw new RuntimeError('Variable "base_select3" does not exist.'1591$this->source); })()) == $context["rp_name"])) {
  2337.                         echo "checked";
  2338.                     }
  2339.                     echo ">
  2340. \t\t\t\t\t\t          <img class=\"rp-card__image\"
  2341. \t\t\t\t\t\t               src=\"";
  2342.                     // line 1593
  2343.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl((("p" $context["rp_id"]) . "_cp_1.jpg"), "save_image"), "html"nulltrue);
  2344.                     echo "\"
  2345. \t\t\t\t\t\t               alt=\"";
  2346.                     // line 1594
  2347.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2348.                     echo "\"
  2349. \t\t\t\t\t\t               onerror=\"this.style.display='none';this.nextElementSibling.style.display='flex';\">
  2350. \t\t\t\t\t\t          <div class=\"rp-card__placeholder\" style=\"display:none;\">📦</div>
  2351. \t\t\t\t\t\t          <span class=\"rp-card__name\">";
  2352.                     // line 1597
  2353.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2354.                     echo "</span>
  2355. \t\t\t\t\t\t        </label>
  2356. \t\t\t\t\t\t      ";
  2357.                 }
  2358.                 $_parent $context['_parent'];
  2359.                 unset($context['_seq'], $context['_iterated'], $context['rp_id'], $context['rp_name'], $context['_parent'], $context['loop']);
  2360.                 $context array_intersect_key($context$_parent) + $_parent;
  2361.                 // line 1600
  2362.                 echo "\t\t\t\t\t\t    </div>
  2363. \t\t\t\t\t\t  ";
  2364.             } else {
  2365.                 // line 1602
  2366.                 echo "\t\t\t\t\t\t    <div class=\"rp-btn-group\">
  2367. \t\t\t\t\t\t      ";
  2368.                 // line 1603
  2369.                 $context['_parent'] = $context;
  2370.                 $context['_seq'] = twig_ensure_traversable((isset($context["related_product3"]) || array_key_exists("related_product3"$context) ? $context["related_product3"] : (function () { throw new RuntimeError('Variable "related_product3" does not exist.'1603$this->source); })()));
  2371.                 foreach ($context['_seq'] as $context["rp_id"] => $context["rp_name"]) {
  2372.                     // line 1604
  2373.                     echo "\t\t\t\t\t\t        <label class=\"rp-btn";
  2374.                     if (((isset($context["base_select3"]) || array_key_exists("base_select3"$context) ? $context["base_select3"] : (function () { throw new RuntimeError('Variable "base_select3" does not exist.'1604$this->source); })()) == $context["rp_name"])) {
  2375.                         echo " is-selected";
  2376.                     }
  2377.                     echo "\"
  2378. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/";
  2379.                     // line 1605
  2380.                     echo twig_escape_filter($this->env$context["rp_id"], "html"nulltrue);
  2381.                     echo "';\">
  2382. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp3\" value=\"";
  2383.                     // line 1606
  2384.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2385.                     echo "\"
  2386. \t\t\t\t\t\t                 ";
  2387.                     // line 1607
  2388.                     if (((isset($context["base_select3"]) || array_key_exists("base_select3"$context) ? $context["base_select3"] : (function () { throw new RuntimeError('Variable "base_select3" does not exist.'1607$this->source); })()) == $context["rp_name"])) {
  2389.                         echo "checked";
  2390.                     }
  2391.                     echo ">
  2392. \t\t\t\t\t\t          ";
  2393.                     // line 1608
  2394.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2395.                     echo "
  2396. \t\t\t\t\t\t        </label>
  2397. \t\t\t\t\t\t      ";
  2398.                 }
  2399.                 $_parent $context['_parent'];
  2400.                 unset($context['_seq'], $context['_iterated'], $context['rp_id'], $context['rp_name'], $context['_parent'], $context['loop']);
  2401.                 $context array_intersect_key($context$_parent) + $_parent;
  2402.                 // line 1611
  2403.                 echo "\t\t\t\t\t\t    </div>
  2404. \t\t\t\t\t\t  ";
  2405.             }
  2406.             // line 1613
  2407.             echo "\t\t\t\t\t\t</div>
  2408. \t\t\t\t\t\t";
  2409.         }
  2410.         // line 1615
  2411.         echo "
  2412. \t\t\t\t\t\t";
  2413.         // line 1617
  2414.         echo "\t\t\t\t\t\t";
  2415.         if ((((isset($context["type4"]) || array_key_exists("type4"$context) ? $context["type4"] : (function () { throw new RuntimeError('Variable "type4" does not exist.'1617$this->source); })()) && (isset($context["related_product4"]) || array_key_exists("related_product4"$context) ? $context["related_product4"] : (function () { throw new RuntimeError('Variable "related_product4" does not exist.'1617$this->source); })())) && twig_length_filter($this->env, (isset($context["related_product4"]) || array_key_exists("related_product4"$context) ? $context["related_product4"] : (function () { throw new RuntimeError('Variable "related_product4" does not exist.'1617$this->source); })())))) {
  2416.             // line 1618
  2417.             echo "\t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2418. \t\t\t\t\t\t  <div class=\"rp-section-label\">";
  2419.             // line 1619
  2420.             echo twig_escape_filter($this->env, (isset($context["type4"]) || array_key_exists("type4"$context) ? $context["type4"] : (function () { throw new RuntimeError('Variable "type4" does not exist.'1619$this->source); })()), "html"nulltrue);
  2421.             if (((isset($context["img4"]) || array_key_exists("img4"$context) ? $context["img4"] : (function () { throw new RuntimeError('Variable "img4" does not exist.'1619$this->source); })()) && (isset($context["base_select4"]) || array_key_exists("base_select4"$context) ? $context["base_select4"] : (function () { throw new RuntimeError('Variable "base_select4" does not exist.'1619$this->source); })()))) {
  2422.                 echo ": <span>";
  2423.                 echo twig_escape_filter($this->env, (isset($context["base_select4"]) || array_key_exists("base_select4"$context) ? $context["base_select4"] : (function () { throw new RuntimeError('Variable "base_select4" does not exist.'1619$this->source); })()), "html"nulltrue);
  2424.                 echo "</span>";
  2425.             }
  2426.             echo "</div>
  2427. \t\t\t\t\t\t  ";
  2428.             // line 1620
  2429.             if ((isset($context["img4"]) || array_key_exists("img4"$context) ? $context["img4"] : (function () { throw new RuntimeError('Variable "img4" does not exist.'1620$this->source); })())) {
  2430.                 // line 1621
  2431.                 echo "\t\t\t\t\t\t    ";
  2432.                 // line 1622
  2433.                 echo "\t\t\t\t\t\t    <div class=\"rp-card-group\">
  2434. \t\t\t\t\t\t      ";
  2435.                 // line 1623
  2436.                 $context['_parent'] = $context;
  2437.                 $context['_seq'] = twig_ensure_traversable((isset($context["related_product4"]) || array_key_exists("related_product4"$context) ? $context["related_product4"] : (function () { throw new RuntimeError('Variable "related_product4" does not exist.'1623$this->source); })()));
  2438.                 foreach ($context['_seq'] as $context["rp_id"] => $context["rp_name"]) {
  2439.                     // line 1624
  2440.                     echo "\t\t\t\t\t\t        <label class=\"rp-card";
  2441.                     if (((isset($context["base_select4"]) || array_key_exists("base_select4"$context) ? $context["base_select4"] : (function () { throw new RuntimeError('Variable "base_select4" does not exist.'1624$this->source); })()) == $context["rp_name"])) {
  2442.                         echo " is-selected";
  2443.                     }
  2444.                     echo "\"
  2445. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/";
  2446.                     // line 1625
  2447.                     echo twig_escape_filter($this->env$context["rp_id"], "html"nulltrue);
  2448.                     echo "';\">
  2449. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp4\" value=\"";
  2450.                     // line 1626
  2451.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2452.                     echo "\"
  2453. \t\t\t\t\t\t                 ";
  2454.                     // line 1627
  2455.                     if (((isset($context["base_select4"]) || array_key_exists("base_select4"$context) ? $context["base_select4"] : (function () { throw new RuntimeError('Variable "base_select4" does not exist.'1627$this->source); })()) == $context["rp_name"])) {
  2456.                         echo "checked";
  2457.                     }
  2458.                     echo ">
  2459. \t\t\t\t\t\t          <img class=\"rp-card__image\"
  2460. \t\t\t\t\t\t               src=\"";
  2461.                     // line 1629
  2462.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl((("p" $context["rp_id"]) . "_cp_1.jpg"), "save_image"), "html"nulltrue);
  2463.                     echo "\"
  2464. \t\t\t\t\t\t               alt=\"";
  2465.                     // line 1630
  2466.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2467.                     echo "\" loading=\"lazy\">
  2468. \t\t\t\t\t\t          <span class=\"rp-card__label\">";
  2469.                     // line 1631
  2470.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2471.                     echo "</span>
  2472. \t\t\t\t\t\t        </label>
  2473. \t\t\t\t\t\t      ";
  2474.                 }
  2475.                 $_parent $context['_parent'];
  2476.                 unset($context['_seq'], $context['_iterated'], $context['rp_id'], $context['rp_name'], $context['_parent'], $context['loop']);
  2477.                 $context array_intersect_key($context$_parent) + $_parent;
  2478.                 // line 1634
  2479.                 echo "\t\t\t\t\t\t    </div>
  2480. \t\t\t\t\t\t  ";
  2481.             } else {
  2482.                 // line 1636
  2483.                 echo "\t\t\t\t\t\t    ";
  2484.                 // line 1637
  2485.                 echo "\t\t\t\t\t\t    <div class=\"rp-btn-group\">
  2486. \t\t\t\t\t\t      ";
  2487.                 // line 1638
  2488.                 $context['_parent'] = $context;
  2489.                 $context['_seq'] = twig_ensure_traversable((isset($context["related_product4"]) || array_key_exists("related_product4"$context) ? $context["related_product4"] : (function () { throw new RuntimeError('Variable "related_product4" does not exist.'1638$this->source); })()));
  2490.                 foreach ($context['_seq'] as $context["rp_id"] => $context["rp_name"]) {
  2491.                     // line 1639
  2492.                     echo "\t\t\t\t\t\t        <label class=\"rp-btn";
  2493.                     if (((isset($context["base_select4"]) || array_key_exists("base_select4"$context) ? $context["base_select4"] : (function () { throw new RuntimeError('Variable "base_select4" does not exist.'1639$this->source); })()) == $context["rp_name"])) {
  2494.                         echo " is-selected";
  2495.                     }
  2496.                     echo "\"
  2497. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/";
  2498.                     // line 1640
  2499.                     echo twig_escape_filter($this->env$context["rp_id"], "html"nulltrue);
  2500.                     echo "';\">
  2501. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp4\" value=\"";
  2502.                     // line 1641
  2503.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2504.                     echo "\"
  2505. \t\t\t\t\t\t                 ";
  2506.                     // line 1642
  2507.                     if (((isset($context["base_select4"]) || array_key_exists("base_select4"$context) ? $context["base_select4"] : (function () { throw new RuntimeError('Variable "base_select4" does not exist.'1642$this->source); })()) == $context["rp_name"])) {
  2508.                         echo "checked";
  2509.                     }
  2510.                     echo ">
  2511. \t\t\t\t\t\t          ";
  2512.                     // line 1643
  2513.                     echo twig_escape_filter($this->env$context["rp_name"], "html"nulltrue);
  2514.                     echo "
  2515. \t\t\t\t\t\t        </label>
  2516. \t\t\t\t\t\t      ";
  2517.                 }
  2518.                 $_parent $context['_parent'];
  2519.                 unset($context['_seq'], $context['_iterated'], $context['rp_id'], $context['rp_name'], $context['_parent'], $context['loop']);
  2520.                 $context array_intersect_key($context$_parent) + $_parent;
  2521.                 // line 1646
  2522.                 echo "\t\t\t\t\t\t    </div>
  2523. \t\t\t\t\t\t  ";
  2524.             }
  2525.             // line 1648
  2526.             echo "\t\t\t\t\t\t</div>
  2527. \t\t\t\t\t\t";
  2528.         }
  2529.         // line 1650
  2530.         echo "
  2531. \t\t\t\t\t    <div class=\"row\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\"><label class=\"col-12 col-form-label\">この商品のオプションを選択してください。</label></div>
  2532.                         ";
  2533.         // line 1654
  2534.         if ((((isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1654$this->source); })()) && twig_length_filter($this->env, (isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1654$this->source); })()))) && (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'1654$this->source); })()), "SaleType", [], "any"falsefalsefalse1654), "id", [], "any"falsefalsefalse1654) != 3))) {
  2535.             // line 1655
  2536.             echo "                        <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2537.                           <div class=\"rp-section-label\">カラー";
  2538.             // line 1656
  2539.             if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1656$this->source); })()) && twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1656$this->source); })()), "pc", [], "any"falsefalsefalse1656))) {
  2540.                 echo ": <span>";
  2541.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1656$this->source); })()), "pc", [], "any"falsefalsefalse1656), "html"nulltrue);
  2542.                 echo "</span>";
  2543.             }
  2544.             echo "</div>
  2545.                           <div class=\"opt-btn-group\">
  2546.                             ";
  2547.             // line 1658
  2548.             $context["idx"] = 0;
  2549.             // line 1659
  2550.             echo "                            ";
  2551.             $context['_parent'] = $context;
  2552.             $context['_seq'] = twig_ensure_traversable((isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1659$this->source); })()));
  2553.             foreach ($context['_seq'] as $context["_key"] => $context["cc"]) {
  2554.                 if (($context["cc"] && twig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1659))) {
  2555.                     $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1659$this->source); })()) + 1);
  2556.                     // line 1660
  2557.                     echo "                              <label class=\"opt-btn";
  2558.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1660$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1660$this->source); })()), "pc", [], "any"falsefalsefalse1660) == twig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1660))) || (twig_length_filter($this->env, (isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1660$this->source); })())) == 1))) {
  2559.                         echo " is-selected";
  2560.                     }
  2561.                     echo "\"
  2562.                                      onclick=\"mitsumori_simulation_val('pc', '";
  2563.                     // line 1661
  2564.                     echo twig_escape_filter($this->envtwig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1661), "js"), "html"nulltrue);
  2565.                     echo "');\">
  2566.                                 <input type=\"radio\" name=\"color\" id=\"cc_";
  2567.                     // line 1662
  2568.                     echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1662$this->source); })()), "html"nulltrue);
  2569.                     echo "\" value=\"";
  2570.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1662), "html"nulltrue);
  2571.                     echo "\"
  2572.                                        ";
  2573.                     // line 1663
  2574.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1663$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1663$this->source); })()), "pc", [], "any"falsefalsefalse1663) == twig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1663))) || (twig_length_filter($this->env, (isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1663$this->source); })())) == 1))) {
  2575.                         echo "checked";
  2576.                     }
  2577.                     echo ">
  2578.                                 ";
  2579.                     // line 1664
  2580.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1664), "html"nulltrue);
  2581.                     echo "
  2582.                               </label>
  2583.                             ";
  2584.                 }
  2585.             }
  2586.             $_parent $context['_parent'];
  2587.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['cc'], $context['_parent'], $context['loop']);
  2588.             $context array_intersect_key($context$_parent) + $_parent;
  2589.             // line 1667
  2590.             echo "                          </div>
  2591.                         </div>
  2592.                         ";
  2593.         }
  2594.         // line 1670
  2595.         echo "
  2596.                         ";
  2597.         // line 1671
  2598.         if ((((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1671$this->source); })()) && twig_length_filter($this->env, (isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1671$this->source); })()))) && (twig_join_filter((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1671$this->source); })())) != ""))) {
  2599.             // line 1672
  2600.             echo "                        <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2601.                           <div class=\"rp-section-label\">幅";
  2602.             // line 1673
  2603.             if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1673$this->source); })()) && twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1673$this->source); })()), "pw", [], "any"falsefalsefalse1673))) {
  2604.                 echo ": <span>";
  2605.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1673$this->source); })()), "pw", [], "any"falsefalsefalse1673), "html"nulltrue);
  2606.                 echo "</span>";
  2607.             }
  2608.             echo "</div>
  2609.                           <div class=\"opt-btn-group\">
  2610.                             ";
  2611.             // line 1675
  2612.             $context["idx"] = 0;
  2613.             // line 1676
  2614.             echo "                            ";
  2615.             $context['_parent'] = $context;
  2616.             $context['_seq'] = twig_ensure_traversable((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1676$this->source); })()));
  2617.             foreach ($context['_seq'] as $context["_key"] => $context["pw"]) {
  2618.                 if ($context["pw"]) {
  2619.                     $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1676$this->source); })()) + 1);
  2620.                     // line 1677
  2621.                     echo "                              <label class=\"opt-btn";
  2622.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1677$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1677$this->source); })()), "pw", [], "any"falsefalsefalse1677) == $context["pw"])) || (twig_length_filter($this->env, (isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1677$this->source); })())) == 1))) {
  2623.                         echo " is-selected";
  2624.                     }
  2625.                     echo "\"
  2626.                                      onclick=\"mitsumori_simulation_val('pw', '";
  2627.                     // line 1678
  2628.                     echo twig_escape_filter($this->envtwig_escape_filter($this->env$context["pw"], "js"), "html"nulltrue);
  2629.                     echo "');\">
  2630.                                 <input type=\"radio\" name=\"pw\" id=\"pw_";
  2631.                     // line 1679
  2632.                     echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1679$this->source); })()), "html"nulltrue);
  2633.                     echo "\" value=\"";
  2634.                     echo twig_escape_filter($this->env$context["pw"], "html"nulltrue);
  2635.                     echo "\"
  2636.                                        ";
  2637.                     // line 1680
  2638.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1680$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1680$this->source); })()), "pw", [], "any"falsefalsefalse1680) == $context["pw"])) || (twig_length_filter($this->env, (isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1680$this->source); })())) == 1))) {
  2639.                         echo "checked";
  2640.                     }
  2641.                     echo ">
  2642.                                 ";
  2643.                     // line 1681
  2644.                     echo twig_escape_filter($this->env$context["pw"], "html"nulltrue);
  2645.                     echo "
  2646.                               </label>
  2647.                             ";
  2648.                 }
  2649.             }
  2650.             $_parent $context['_parent'];
  2651.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pw'], $context['_parent'], $context['loop']);
  2652.             $context array_intersect_key($context$_parent) + $_parent;
  2653.             // line 1684
  2654.             echo "                          </div>
  2655.                         </div>
  2656.                         ";
  2657.         }
  2658.         // line 1687
  2659.         echo "
  2660.                         ";
  2661.         // line 1688
  2662.         if ((((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1688$this->source); })()) && twig_length_filter($this->env, (isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1688$this->source); })()))) && (twig_join_filter((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1688$this->source); })())) != ""))) {
  2663.             // line 1689
  2664.             echo "                        <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2665.                           <div class=\"rp-section-label\">奥行き";
  2666.             // line 1690
  2667.             if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1690$this->source); })()) && twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1690$this->source); })()), "pd", [], "any"falsefalsefalse1690))) {
  2668.                 echo ": <span>";
  2669.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1690$this->source); })()), "pd", [], "any"falsefalsefalse1690), "html"nulltrue);
  2670.                 echo "</span>";
  2671.             }
  2672.             echo "</div>
  2673.                           <div class=\"opt-btn-group\">
  2674.                             ";
  2675.             // line 1692
  2676.             $context["idx"] = 0;
  2677.             // line 1693
  2678.             echo "                            ";
  2679.             $context['_parent'] = $context;
  2680.             $context['_seq'] = twig_ensure_traversable((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1693$this->source); })()));
  2681.             foreach ($context['_seq'] as $context["_key"] => $context["pd"]) {
  2682.                 if ($context["pd"]) {
  2683.                     $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1693$this->source); })()) + 1);
  2684.                     // line 1694
  2685.                     echo "                              <label class=\"opt-btn";
  2686.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1694$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1694$this->source); })()), "pd", [], "any"falsefalsefalse1694) == $context["pd"])) || (twig_length_filter($this->env, (isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1694$this->source); })())) == 1))) {
  2687.                         echo " is-selected";
  2688.                     }
  2689.                     echo "\"
  2690.                                      onclick=\"mitsumori_simulation_val('pd', '";
  2691.                     // line 1695
  2692.                     echo twig_escape_filter($this->envtwig_escape_filter($this->env$context["pd"], "js"), "html"nulltrue);
  2693.                     echo "');\">
  2694.                                 <input type=\"radio\" name=\"pd\" id=\"pd_";
  2695.                     // line 1696
  2696.                     echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1696$this->source); })()), "html"nulltrue);
  2697.                     echo "\" value=\"";
  2698.                     echo twig_escape_filter($this->env$context["pd"], "html"nulltrue);
  2699.                     echo "\"
  2700.                                        ";
  2701.                     // line 1697
  2702.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1697$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1697$this->source); })()), "pd", [], "any"falsefalsefalse1697) == $context["pd"])) || (twig_length_filter($this->env, (isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1697$this->source); })())) == 1))) {
  2703.                         echo "checked";
  2704.                     }
  2705.                     echo ">
  2706.                                 ";
  2707.                     // line 1698
  2708.                     echo twig_escape_filter($this->env$context["pd"], "html"nulltrue);
  2709.                     echo "
  2710.                               </label>
  2711.                             ";
  2712.                 }
  2713.             }
  2714.             $_parent $context['_parent'];
  2715.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pd'], $context['_parent'], $context['loop']);
  2716.             $context array_intersect_key($context$_parent) + $_parent;
  2717.             // line 1701
  2718.             echo "                          </div>
  2719.                         </div>
  2720.                         ";
  2721.         }
  2722.         // line 1704
  2723.         echo "
  2724.                         ";
  2725.         // line 1705
  2726.         if ((((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1705$this->source); })()) && twig_length_filter($this->env, (isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1705$this->source); })()))) && (twig_join_filter((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1705$this->source); })())) != ""))) {
  2727.             // line 1706
  2728.             echo "                        <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2729.                           <div class=\"rp-section-label\">高さ";
  2730.             // line 1707
  2731.             if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1707$this->source); })()) && twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1707$this->source); })()), "ph", [], "any"falsefalsefalse1707))) {
  2732.                 echo ": <span>";
  2733.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1707$this->source); })()), "ph", [], "any"falsefalsefalse1707), "html"nulltrue);
  2734.                 echo "</span>";
  2735.             }
  2736.             echo "</div>
  2737.                           <div class=\"opt-btn-group\">
  2738.                             ";
  2739.             // line 1709
  2740.             $context["idx"] = 0;
  2741.             // line 1710
  2742.             echo "                            ";
  2743.             $context['_parent'] = $context;
  2744.             $context['_seq'] = twig_ensure_traversable((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1710$this->source); })()));
  2745.             foreach ($context['_seq'] as $context["_key"] => $context["ph"]) {
  2746.                 if ($context["ph"]) {
  2747.                     $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1710$this->source); })()) + 1);
  2748.                     // line 1711
  2749.                     echo "                              <label class=\"opt-btn";
  2750.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1711$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1711$this->source); })()), "ph", [], "any"falsefalsefalse1711) == $context["ph"])) || (twig_length_filter($this->env, (isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1711$this->source); })())) == 1))) {
  2751.                         echo " is-selected";
  2752.                     }
  2753.                     echo "\"
  2754.                                      onclick=\"mitsumori_simulation_val('ph', '";
  2755.                     // line 1712
  2756.                     echo twig_escape_filter($this->envtwig_escape_filter($this->env$context["ph"], "js"), "html"nulltrue);
  2757.                     echo "');\">
  2758.                                 <input type=\"radio\" name=\"ph\" id=\"ph_";
  2759.                     // line 1713
  2760.                     echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1713$this->source); })()), "html"nulltrue);
  2761.                     echo "\" value=\"";
  2762.                     echo twig_escape_filter($this->env$context["ph"], "html"nulltrue);
  2763.                     echo "\"
  2764.                                        ";
  2765.                     // line 1714
  2766.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1714$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1714$this->source); })()), "ph", [], "any"falsefalsefalse1714) == $context["ph"])) || (twig_length_filter($this->env, (isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1714$this->source); })())) == 1))) {
  2767.                         echo "checked";
  2768.                     }
  2769.                     echo ">
  2770.                                 ";
  2771.                     // line 1715
  2772.                     echo twig_escape_filter($this->env$context["ph"], "html"nulltrue);
  2773.                     echo "
  2774.                               </label>
  2775.                             ";
  2776.                 }
  2777.             }
  2778.             $_parent $context['_parent'];
  2779.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ph'], $context['_parent'], $context['loop']);
  2780.             $context array_intersect_key($context$_parent) + $_parent;
  2781.             // line 1718
  2782.             echo "                          </div>
  2783.                         </div>
  2784.                         ";
  2785.         }
  2786.         // line 1721
  2787.         echo "
  2788.                         ";
  2789.         // line 1722
  2790.         if ((((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1722$this->source); })()) && twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1722$this->source); })()))) && (twig_join_filter((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1722$this->source); })())) != ""))) {
  2791.             // line 1723
  2792.             echo "                        <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2793.                           <div class=\"rp-section-label\">素材";
  2794.             // line 1724
  2795.             if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1724$this->source); })()) && twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1724$this->source); })()), "pm", [], "any"falsefalsefalse1724))) {
  2796.                 echo ": <span>";
  2797.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1724$this->source); })()), "pm", [], "any"falsefalsefalse1724), "html"nulltrue);
  2798.                 echo "</span>";
  2799.             }
  2800.             echo "</div>
  2801.                           <div class=\"opt-btn-group\">
  2802.                             ";
  2803.             // line 1726
  2804.             $context["idx"] = 0;
  2805.             // line 1727
  2806.             echo "                            ";
  2807.             $context['_parent'] = $context;
  2808.             $context['_seq'] = twig_ensure_traversable((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1727$this->source); })()));
  2809.             foreach ($context['_seq'] as $context["_key"] => $context["pm"]) {
  2810.                 if ($context["pm"]) {
  2811.                     $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1727$this->source); })()) + 1);
  2812.                     // line 1728
  2813.                     echo "                              <label class=\"opt-btn";
  2814.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1728$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1728$this->source); })()), "pm", [], "any"falsefalsefalse1728) == $context["pm"])) || (twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1728$this->source); })())) == 1))) {
  2815.                         echo " is-selected";
  2816.                     }
  2817.                     echo "\"
  2818.                                      onclick=\"mitsumori_simulation_val('pm', '";
  2819.                     // line 1729
  2820.                     echo twig_escape_filter($this->envtwig_escape_filter($this->env$context["pm"], "js"), "html"nulltrue);
  2821.                     echo "');\">
  2822.                                 <input type=\"radio\" name=\"pm\" id=\"pm_";
  2823.                     // line 1730
  2824.                     echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1730$this->source); })()), "html"nulltrue);
  2825.                     echo "\" value=\"";
  2826.                     echo twig_escape_filter($this->env$context["pm"], "html"nulltrue);
  2827.                     echo "\"
  2828.                                        ";
  2829.                     // line 1731
  2830.                     if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1731$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1731$this->source); })()), "pm", [], "any"falsefalsefalse1731) == $context["pm"])) || (twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1731$this->source); })())) == 1))) {
  2831.                         echo "checked";
  2832.                     }
  2833.                     echo ">
  2834.                                 ";
  2835.                     // line 1732
  2836.                     echo twig_escape_filter($this->env$context["pm"], "html"nulltrue);
  2837.                     echo "
  2838.                               </label>
  2839.                             ";
  2840.                 }
  2841.             }
  2842.             $_parent $context['_parent'];
  2843.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pm'], $context['_parent'], $context['loop']);
  2844.             $context array_intersect_key($context$_parent) + $_parent;
  2845.             // line 1735
  2846.             echo "                          </div>
  2847.                         </div>
  2848.                         ";
  2849.         }
  2850.         // line 1738
  2851.         echo "
  2852. \t\t\t\t\t\t<!-- 1: 施工見積(通常) → 幅/奥行/高さ/素材/カラーは上部の共通ブロックで表示済み -->
  2853. \t\t\t\t\t\t";
  2854.         // line 1740
  2855.         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'1740$this->source); })()), "SaleType", [], "any"falsefalsefalse1740), "id", [], "any"falsefalsefalse1740) == 1)) {
  2856.             // line 1741
  2857.             echo "\t\t\t\t\t\t";
  2858.         }
  2859.         // line 1742
  2860.         echo "
  2861. \t\t\t\t\t\t<!-- 2: 施工見積(補助金・窓) -->
  2862. \t\t\t\t\t\t";
  2863.         // line 1744
  2864.         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'1744$this->source); })()), "SaleType", [], "any"falsefalsefalse1744), "id", [], "any"falsefalsefalse1744) == 2)) {
  2865.             // line 1745
  2866.             echo "
  2867. \t\t\t\t\t\t\t";
  2868.             // line 1747
  2869.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2870. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">窓サイズ</label>
  2871. \t\t\t\t\t\t\t  <div class=\"col-4\">
  2872. \t\t\t\t\t\t\t    <div class=\"input-group\">
  2873. \t\t\t\t\t\t\t      <span class=\"input-group-text\">窓幅</span>
  2874. \t\t\t\t\t\t\t      <input type=\"number\" name=\"mado_w\" id=\"mado_w\" class=\"form-control\" value=\"";
  2875.             // line 1752
  2876.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "mado_w", [], "any"truetruefalse1752)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "mado_w", [], "any"falsefalsefalse1752), "")) : ("")), "html"nulltrue);
  2877.             echo "\" placeholder=\"例: 90\" min=\"1\" onchange=\"mitsumori_simulation('mado_w','mado_w');\">
  2878. \t\t\t\t\t\t\t      <span class=\"input-group-text\">cm</span>
  2879. \t\t\t\t\t\t\t    </div>
  2880. \t\t\t\t\t\t\t  </div>
  2881. \t\t\t\t\t\t\t  <div class=\"col-4\">
  2882. \t\t\t\t\t\t\t    <div class=\"input-group\">
  2883. \t\t\t\t\t\t\t      <span class=\"input-group-text\">窓高さ</span>
  2884. \t\t\t\t\t\t\t      <input type=\"number\" name=\"mado_h\" id=\"mado_h\" class=\"form-control\" value=\"";
  2885.             // line 1759
  2886.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "mado_h", [], "any"truetruefalse1759)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "mado_h", [], "any"falsefalsefalse1759), "")) : ("")), "html"nulltrue);
  2887.             echo "\" placeholder=\"例: 110\" min=\"1\" onchange=\"mitsumori_simulation('mado_h','mado_h');\">
  2888. \t\t\t\t\t\t\t      <span class=\"input-group-text\">cm</span>
  2889. \t\t\t\t\t\t\t    </div>
  2890. \t\t\t\t\t\t\t  </div>
  2891. \t\t\t\t\t\t\t</div>
  2892. \t\t\t\t\t\t\t";
  2893.             // line 1766
  2894.             echo "\t\t\t\t\t\t\t";
  2895.             if ((((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1766$this->source); })()) && twig_length_filter($this->env, (isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1766$this->source); })()))) && (twig_join_filter((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1766$this->source); })())) != ""))) {
  2896.                 // line 1767
  2897.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2898. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">窓タイプ</label>
  2899. \t\t\t\t\t\t\t  <div class=\"col-8\">
  2900. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  2901. \t\t\t\t\t\t\t    ";
  2902.                 // line 1771
  2903.                 $context["idx"] = 0;
  2904.                 // line 1772
  2905.                 echo "\t\t\t\t\t\t\t    ";
  2906.                 $context['_parent'] = $context;
  2907.                 $context['_seq'] = twig_ensure_traversable((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1772$this->source); })()));
  2908.                 foreach ($context['_seq'] as $context["_key"] => $context["pd_val"]) {
  2909.                     // line 1773
  2910.                     echo "\t\t\t\t\t\t\t      ";
  2911.                     if ($context["pd_val"]) {
  2912.                         // line 1774
  2913.                         echo "\t\t\t\t\t\t\t      ";
  2914.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1774$this->source); })()) + 1);
  2915.                         // line 1775
  2916.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  2917. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"mado_type\" id=\"mado_type_";
  2918.                         // line 1776
  2919.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1776$this->source); })()), "html"nulltrue);
  2920.                         echo "\" value=\"";
  2921.                         echo twig_escape_filter($this->env$context["pd_val"], "html"nulltrue);
  2922.                         echo "\"
  2923. \t\t\t\t\t\t\t          ";
  2924.                         // line 1777
  2925.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1777$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1777$this->source); })()), "pd", [], "any"falsefalsefalse1777) == $context["pd_val"])) || (twig_length_filter($this->env, (isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1777$this->source); })())) == 1))) {
  2926.                             echo "checked";
  2927.                         }
  2928.                         // line 1778
  2929.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pd','mado_type_";
  2930.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1778$this->source); })()), "html"nulltrue);
  2931.                         echo "');\">
  2932. \t\t\t\t\t\t\t        <label for=\"mado_type_";
  2933.                         // line 1779
  2934.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1779$this->source); })()), "html"nulltrue);
  2935.                         echo "\">";
  2936.                         echo twig_escape_filter($this->env$context["pd_val"], "html"nulltrue);
  2937.                         echo "</label>
  2938. \t\t\t\t\t\t\t      </div>
  2939. \t\t\t\t\t\t\t      ";
  2940.                     }
  2941.                     // line 1782
  2942.                     echo "\t\t\t\t\t\t\t    ";
  2943.                 }
  2944.                 $_parent $context['_parent'];
  2945.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pd_val'], $context['_parent'], $context['loop']);
  2946.                 $context array_intersect_key($context$_parent) + $_parent;
  2947.                 // line 1783
  2948.                 echo "\t\t\t\t\t\t\t    </div>
  2949. \t\t\t\t\t\t\t  </div>
  2950. \t\t\t\t\t\t\t</div>
  2951. \t\t\t\t\t\t\t";
  2952.             }
  2953.             // line 1787
  2954.             echo "
  2955. \t\t\t\t\t\t\t";
  2956.             // line 1789
  2957.             echo "\t\t\t\t\t\t\t";
  2958.             if ((((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1789$this->source); })()) && twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1789$this->source); })()))) && (twig_join_filter((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1789$this->source); })())) != ""))) {
  2959.                 // line 1790
  2960.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  2961. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">ガラスタイプ</label>
  2962. \t\t\t\t\t\t\t  <div class=\"col-8\">
  2963. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  2964. \t\t\t\t\t\t\t    ";
  2965.                 // line 1794
  2966.                 $context["idx"] = 0;
  2967.                 // line 1795
  2968.                 echo "\t\t\t\t\t\t\t    ";
  2969.                 $context['_parent'] = $context;
  2970.                 $context['_seq'] = twig_ensure_traversable((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1795$this->source); })()));
  2971.                 foreach ($context['_seq'] as $context["_key"] => $context["pm_val"]) {
  2972.                     // line 1796
  2973.                     echo "\t\t\t\t\t\t\t      ";
  2974.                     if ($context["pm_val"]) {
  2975.                         // line 1797
  2976.                         echo "\t\t\t\t\t\t\t      ";
  2977.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1797$this->source); })()) + 1);
  2978.                         // line 1798
  2979.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  2980. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"glass_type\" id=\"glass_type_";
  2981.                         // line 1799
  2982.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1799$this->source); })()), "html"nulltrue);
  2983.                         echo "\" value=\"";
  2984.                         echo twig_escape_filter($this->env$context["pm_val"], "html"nulltrue);
  2985.                         echo "\"
  2986. \t\t\t\t\t\t\t          ";
  2987.                         // line 1800
  2988.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1800$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1800$this->source); })()), "pm", [], "any"falsefalsefalse1800) == $context["pm_val"])) || (twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1800$this->source); })())) == 1))) {
  2989.                             echo "checked";
  2990.                         }
  2991.                         // line 1801
  2992.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pm','glass_type_";
  2993.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1801$this->source); })()), "html"nulltrue);
  2994.                         echo "');\">
  2995. \t\t\t\t\t\t\t        <label for=\"glass_type_";
  2996.                         // line 1802
  2997.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1802$this->source); })()), "html"nulltrue);
  2998.                         echo "\">";
  2999.                         echo twig_escape_filter($this->env$context["pm_val"], "html"nulltrue);
  3000.                         echo "</label>
  3001. \t\t\t\t\t\t\t      </div>
  3002. \t\t\t\t\t\t\t      ";
  3003.                     }
  3004.                     // line 1805
  3005.                     echo "\t\t\t\t\t\t\t    ";
  3006.                 }
  3007.                 $_parent $context['_parent'];
  3008.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pm_val'], $context['_parent'], $context['loop']);
  3009.                 $context array_intersect_key($context$_parent) + $_parent;
  3010.                 // line 1806
  3011.                 echo "\t\t\t\t\t\t\t    </div>
  3012. \t\t\t\t\t\t\t  </div>
  3013. \t\t\t\t\t\t\t</div>
  3014. \t\t\t\t\t\t\t";
  3015.             }
  3016.             // line 1810
  3017.             echo "
  3018. \t\t\t\t\t\t\t";
  3019.             // line 1812
  3020.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3021. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">セット数</label>
  3022. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3023. \t\t\t\t\t\t\t    <select name=\"set_count\" id=\"set_count\" class=\"form-control\" onchange=\"madosetSelect(this.value);\">
  3024. \t\t\t\t\t\t\t      ";
  3025.             // line 1816
  3026.             $context['_parent'] = $context;
  3027.             $context['_seq'] = twig_ensure_traversable(range(120));
  3028.             foreach ($context['_seq'] as $context["_key"] => $context["i"]) {
  3029.                 // line 1817
  3030.                 echo "\t\t\t\t\t\t\t        <option value=\"";
  3031.                 echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3032.                 echo "\" ";
  3033.                 if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1817$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1817$this->source); })()), "set_count", [], "any"falsefalsefalse1817) == $context["i"]))) {
  3034.                     echo "selected";
  3035.                 }
  3036.                 echo ">";
  3037.                 echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3038.                 echo " セット</option>
  3039. \t\t\t\t\t\t\t      ";
  3040.             }
  3041.             $_parent $context['_parent'];
  3042.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['i'], $context['_parent'], $context['loop']);
  3043.             $context array_intersect_key($context$_parent) + $_parent;
  3044.             // line 1819
  3045.             echo "\t\t\t\t\t\t\t    </select>
  3046. \t\t\t\t\t\t\t  </div>
  3047. \t\t\t\t\t\t\t</div>
  3048. \t\t\t\t\t\t";
  3049.         }
  3050.         // line 1824
  3051.         echo "
  3052. \t\t\t\t\t\t<!-- 3: 施工見積(物置・ゴミステーション) -->
  3053. \t\t\t\t\t\t";
  3054.         // line 1826
  3055.         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'1826$this->source); })()), "SaleType", [], "any"falsefalsefalse1826), "id", [], "any"falsefalsefalse1826) == 3)) {
  3056.             // line 1827
  3057.             echo "
  3058. \t\t\t\t\t\t\t";
  3059.             // line 1829
  3060.             echo "\t\t\t\t\t\t\t";
  3061.             if ((((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1829$this->source); })()) && twig_length_filter($this->env, (isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1829$this->source); })()))) && (twig_join_filter((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1829$this->source); })())) != ""))) {
  3062.                 // line 1830
  3063.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3064. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">幅</label>
  3065. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3066. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3067. \t\t\t\t\t\t\t    ";
  3068.                 // line 1834
  3069.                 $context["idx"] = 0;
  3070.                 // line 1835
  3071.                 echo "\t\t\t\t\t\t\t    ";
  3072.                 $context['_parent'] = $context;
  3073.                 $context['_seq'] = twig_ensure_traversable((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1835$this->source); })()));
  3074.                 foreach ($context['_seq'] as $context["_key"] => $context["pw_val"]) {
  3075.                     if ($context["pw_val"]) {
  3076.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1835$this->source); })()) + 1);
  3077.                         // line 1836
  3078.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3079. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pw\" id=\"pw3_";
  3080.                         // line 1837
  3081.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1837$this->source); })()), "html"nulltrue);
  3082.                         echo "\" value=\"";
  3083.                         echo twig_escape_filter($this->env$context["pw_val"], "html"nulltrue);
  3084.                         echo "\"
  3085. \t\t\t\t\t\t\t          ";
  3086.                         // line 1838
  3087.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1838$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1838$this->source); })()), "pw", [], "any"falsefalsefalse1838) == $context["pw_val"])) || (twig_length_filter($this->env, (isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'1838$this->source); })())) == 1))) {
  3088.                             echo "checked";
  3089.                         }
  3090.                         // line 1839
  3091.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pw','pw3_";
  3092.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1839$this->source); })()), "html"nulltrue);
  3093.                         echo "');\">
  3094. \t\t\t\t\t\t\t        <label for=\"pw3_";
  3095.                         // line 1840
  3096.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1840$this->source); })()), "html"nulltrue);
  3097.                         echo "\">";
  3098.                         echo twig_escape_filter($this->env$context["pw_val"], "html"nulltrue);
  3099.                         echo "</label>
  3100. \t\t\t\t\t\t\t      </div>
  3101. \t\t\t\t\t\t\t    ";
  3102.                     }
  3103.                 }
  3104.                 $_parent $context['_parent'];
  3105.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pw_val'], $context['_parent'], $context['loop']);
  3106.                 $context array_intersect_key($context$_parent) + $_parent;
  3107.                 // line 1843
  3108.                 echo "\t\t\t\t\t\t\t    </div>
  3109. \t\t\t\t\t\t\t  </div>
  3110. \t\t\t\t\t\t\t</div>
  3111. \t\t\t\t\t\t\t";
  3112.             }
  3113.             // line 1847
  3114.             echo "
  3115. \t\t\t\t\t\t\t";
  3116.             // line 1848
  3117.             if ((((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1848$this->source); })()) && twig_length_filter($this->env, (isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1848$this->source); })()))) && (twig_join_filter((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1848$this->source); })())) != ""))) {
  3118.                 // line 1849
  3119.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3120. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">奥行き</label>
  3121. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3122. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3123. \t\t\t\t\t\t\t    ";
  3124.                 // line 1853
  3125.                 $context["idx"] = 0;
  3126.                 // line 1854
  3127.                 echo "\t\t\t\t\t\t\t    ";
  3128.                 $context['_parent'] = $context;
  3129.                 $context['_seq'] = twig_ensure_traversable((isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1854$this->source); })()));
  3130.                 foreach ($context['_seq'] as $context["_key"] => $context["pd_val"]) {
  3131.                     if ($context["pd_val"]) {
  3132.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1854$this->source); })()) + 1);
  3133.                         // line 1855
  3134.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3135. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pd\" id=\"pd3_";
  3136.                         // line 1856
  3137.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1856$this->source); })()), "html"nulltrue);
  3138.                         echo "\" value=\"";
  3139.                         echo twig_escape_filter($this->env$context["pd_val"], "html"nulltrue);
  3140.                         echo "\"
  3141. \t\t\t\t\t\t\t          ";
  3142.                         // line 1857
  3143.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1857$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1857$this->source); })()), "pd", [], "any"falsefalsefalse1857) == $context["pd_val"])) || (twig_length_filter($this->env, (isset($context["p_d"]) || array_key_exists("p_d"$context) ? $context["p_d"] : (function () { throw new RuntimeError('Variable "p_d" does not exist.'1857$this->source); })())) == 1))) {
  3144.                             echo "checked";
  3145.                         }
  3146.                         // line 1858
  3147.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pd','pd3_";
  3148.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1858$this->source); })()), "html"nulltrue);
  3149.                         echo "');\">
  3150. \t\t\t\t\t\t\t        <label for=\"pd3_";
  3151.                         // line 1859
  3152.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1859$this->source); })()), "html"nulltrue);
  3153.                         echo "\">";
  3154.                         echo twig_escape_filter($this->env$context["pd_val"], "html"nulltrue);
  3155.                         echo "</label>
  3156. \t\t\t\t\t\t\t      </div>
  3157. \t\t\t\t\t\t\t    ";
  3158.                     }
  3159.                 }
  3160.                 $_parent $context['_parent'];
  3161.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pd_val'], $context['_parent'], $context['loop']);
  3162.                 $context array_intersect_key($context$_parent) + $_parent;
  3163.                 // line 1862
  3164.                 echo "\t\t\t\t\t\t\t    </div>
  3165. \t\t\t\t\t\t\t  </div>
  3166. \t\t\t\t\t\t\t</div>
  3167. \t\t\t\t\t\t\t";
  3168.             }
  3169.             // line 1866
  3170.             echo "
  3171. \t\t\t\t\t\t\t";
  3172.             // line 1867
  3173.             if ((((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1867$this->source); })()) && twig_length_filter($this->env, (isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1867$this->source); })()))) && (twig_join_filter((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1867$this->source); })())) != ""))) {
  3174.                 // line 1868
  3175.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3176. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">高さ</label>
  3177. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3178. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3179. \t\t\t\t\t\t\t    ";
  3180.                 // line 1872
  3181.                 $context["idx"] = 0;
  3182.                 // line 1873
  3183.                 echo "\t\t\t\t\t\t\t    ";
  3184.                 $context['_parent'] = $context;
  3185.                 $context['_seq'] = twig_ensure_traversable((isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1873$this->source); })()));
  3186.                 foreach ($context['_seq'] as $context["_key"] => $context["ph_val"]) {
  3187.                     if ($context["ph_val"]) {
  3188.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1873$this->source); })()) + 1);
  3189.                         // line 1874
  3190.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3191. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"ph\" id=\"ph3_";
  3192.                         // line 1875
  3193.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1875$this->source); })()), "html"nulltrue);
  3194.                         echo "\" value=\"";
  3195.                         echo twig_escape_filter($this->env$context["ph_val"], "html"nulltrue);
  3196.                         echo "\"
  3197. \t\t\t\t\t\t\t          ";
  3198.                         // line 1876
  3199.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1876$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1876$this->source); })()), "ph", [], "any"falsefalsefalse1876) == $context["ph_val"])) || (twig_length_filter($this->env, (isset($context["p_h"]) || array_key_exists("p_h"$context) ? $context["p_h"] : (function () { throw new RuntimeError('Variable "p_h" does not exist.'1876$this->source); })())) == 1))) {
  3200.                             echo "checked";
  3201.                         }
  3202.                         // line 1877
  3203.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('ph','ph3_";
  3204.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1877$this->source); })()), "html"nulltrue);
  3205.                         echo "');\">
  3206. \t\t\t\t\t\t\t        <label for=\"ph3_";
  3207.                         // line 1878
  3208.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1878$this->source); })()), "html"nulltrue);
  3209.                         echo "\">";
  3210.                         echo twig_escape_filter($this->env$context["ph_val"], "html"nulltrue);
  3211.                         echo "</label>
  3212. \t\t\t\t\t\t\t      </div>
  3213. \t\t\t\t\t\t\t    ";
  3214.                     }
  3215.                 }
  3216.                 $_parent $context['_parent'];
  3217.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ph_val'], $context['_parent'], $context['loop']);
  3218.                 $context array_intersect_key($context$_parent) + $_parent;
  3219.                 // line 1881
  3220.                 echo "\t\t\t\t\t\t\t    </div>
  3221. \t\t\t\t\t\t\t  </div>
  3222. \t\t\t\t\t\t\t</div>
  3223. \t\t\t\t\t\t\t";
  3224.             }
  3225.             // line 1885
  3226.             echo "
  3227. \t\t\t\t\t\t\t";
  3228.             // line 1887
  3229.             echo "\t\t\t\t\t\t\t";
  3230.             if ((((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1887$this->source); })()) && twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1887$this->source); })()))) && (twig_join_filter((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1887$this->source); })())) != ""))) {
  3231.                 // line 1888
  3232.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3233. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">棚タイプ<br><small class=\"text-muted\">(間仕切り仕様)</small></label>
  3234. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3235. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3236. \t\t\t\t\t\t\t    ";
  3237.                 // line 1892
  3238.                 $context["idx"] = 0;
  3239.                 // line 1893
  3240.                 echo "\t\t\t\t\t\t\t    ";
  3241.                 $context['_parent'] = $context;
  3242.                 $context['_seq'] = twig_ensure_traversable((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1893$this->source); })()));
  3243.                 foreach ($context['_seq'] as $context["_key"] => $context["pm_val"]) {
  3244.                     if ($context["pm_val"]) {
  3245.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1893$this->source); })()) + 1);
  3246.                         // line 1894
  3247.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3248. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pm\" id=\"pm3_";
  3249.                         // line 1895
  3250.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1895$this->source); })()), "html"nulltrue);
  3251.                         echo "\" value=\"";
  3252.                         echo twig_escape_filter($this->env$context["pm_val"], "html"nulltrue);
  3253.                         echo "\"
  3254. \t\t\t\t\t\t\t          ";
  3255.                         // line 1896
  3256.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1896$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1896$this->source); })()), "pm", [], "any"falsefalsefalse1896) == $context["pm_val"])) || (twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'1896$this->source); })())) == 1))) {
  3257.                             echo "checked";
  3258.                         }
  3259.                         // line 1897
  3260.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pm','pm3_";
  3261.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1897$this->source); })()), "html"nulltrue);
  3262.                         echo "');\">
  3263. \t\t\t\t\t\t\t        <label for=\"pm3_";
  3264.                         // line 1898
  3265.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1898$this->source); })()), "html"nulltrue);
  3266.                         echo "\">";
  3267.                         echo twig_escape_filter($this->env$context["pm_val"], "html"nulltrue);
  3268.                         echo "</label>
  3269. \t\t\t\t\t\t\t      </div>
  3270. \t\t\t\t\t\t\t    ";
  3271.                     }
  3272.                 }
  3273.                 $_parent $context['_parent'];
  3274.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pm_val'], $context['_parent'], $context['loop']);
  3275.                 $context array_intersect_key($context$_parent) + $_parent;
  3276.                 // line 1901
  3277.                 echo "\t\t\t\t\t\t\t    </div>
  3278. \t\t\t\t\t\t\t  </div>
  3279. \t\t\t\t\t\t\t</div>
  3280. \t\t\t\t\t\t\t";
  3281.             }
  3282.             // line 1905
  3283.             echo "
  3284. \t\t\t\t\t\t\t";
  3285.             // line 1907
  3286.             echo "\t\t\t\t\t\t\t";
  3287.             if (((isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1907$this->source); })()) && twig_length_filter($this->env, (isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1907$this->source); })())))) {
  3288.                 // line 1908
  3289.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3290. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">カラー</label>
  3291. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3292. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3293. \t\t\t\t\t\t\t    ";
  3294.                 // line 1912
  3295.                 $context["idx"] = 0;
  3296.                 // line 1913
  3297.                 echo "\t\t\t\t\t\t\t    ";
  3298.                 $context['_parent'] = $context;
  3299.                 $context['_seq'] = twig_ensure_traversable((isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1913$this->source); })()));
  3300.                 foreach ($context['_seq'] as $context["_key"] => $context["cc"]) {
  3301.                     if (($context["cc"] && twig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1913))) {
  3302.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1913$this->source); })()) + 1);
  3303.                         // line 1914
  3304.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3305. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"color3\" id=\"cc3_";
  3306.                         // line 1915
  3307.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1915$this->source); })()), "html"nulltrue);
  3308.                         echo "\" value=\"";
  3309.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1915), "html"nulltrue);
  3310.                         echo "\"
  3311. \t\t\t\t\t\t\t          ";
  3312.                         // line 1916
  3313.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1916$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1916$this->source); })()), "pc", [], "any"falsefalsefalse1916) == twig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1916))) || (twig_length_filter($this->env, (isset($context["color"]) || array_key_exists("color"$context) ? $context["color"] : (function () { throw new RuntimeError('Variable "color" does not exist.'1916$this->source); })())) == 1))) {
  3314.                             echo "checked";
  3315.                         }
  3316.                         // line 1917
  3317.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pc','cc3_";
  3318.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1917$this->source); })()), "html"nulltrue);
  3319.                         echo "');\">
  3320. \t\t\t\t\t\t\t        <label for=\"cc3_";
  3321.                         // line 1918
  3322.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'1918$this->source); })()), "html"nulltrue);
  3323.                         echo "\">";
  3324.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["cc"], "name", [], "array"falsefalsefalse1918), "html"nulltrue);
  3325.                         echo "</label>
  3326. \t\t\t\t\t\t\t      </div>
  3327. \t\t\t\t\t\t\t    ";
  3328.                     }
  3329.                 }
  3330.                 $_parent $context['_parent'];
  3331.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['cc'], $context['_parent'], $context['loop']);
  3332.                 $context array_intersect_key($context$_parent) + $_parent;
  3333.                 // line 1921
  3334.                 echo "\t\t\t\t\t\t\t    </div>
  3335. \t\t\t\t\t\t\t  </div>
  3336. \t\t\t\t\t\t\t</div>
  3337. \t\t\t\t\t\t\t";
  3338.             }
  3339.             // line 1925
  3340.             echo "
  3341. \t\t\t\t\t\t\t";
  3342.             // line 1927
  3343.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3344. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">台数</label>
  3345. \t\t\t\t\t\t\t  <div class=\"col-4\">
  3346. \t\t\t\t\t\t\t    <div class=\"input-group mb-3\">
  3347. \t\t\t\t\t\t\t      <input type=\"number\" name=\"daisu\" id=\"daisu\" class=\"form-control\" value=\"";
  3348.             // line 1931
  3349.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "daisu", [], "any"truetruefalse1931)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "daisu", [], "any"falsefalsefalse1931), "1")) : ("1")), "html"nulltrue);
  3350.             echo "\" min=\"1\" max=\"10\" onchange=\"mitsumori_simulation('daisu','daisu');\">
  3351. \t\t\t\t\t\t\t      <span class=\"input-group-text\">台</span>
  3352. \t\t\t\t\t\t\t    </div>
  3353. \t\t\t\t\t\t\t  </div>
  3354. \t\t\t\t\t\t\t  <div class=\"col-4\">
  3355. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-info\" onclick=\"daisu(+1);\">+</button>
  3356. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-danger\" onclick=\"daisu(-1);\">ー</button>
  3357. \t\t\t\t\t\t\t  </div>
  3358. \t\t\t\t\t\t\t</div>
  3359. \t\t\t\t\t\t";
  3360.         }
  3361.         // line 1942
  3362.         echo "
  3363. \t\t\t\t\t\t<!-- 4: 施工見積(フェンス・組み立て式) -->
  3364. \t\t\t\t\t\t";
  3365.         // line 1944
  3366.         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'1944$this->source); })()), "SaleType", [], "any"falsefalsefalse1944), "id", [], "any"falsefalsefalse1944) == 4)) {
  3367.             // line 1945
  3368.             echo "
  3369. \t\t\t\t\t\t\t";
  3370.             // line 1947
  3371.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3372. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">枚数</label>
  3373. \t\t\t\t\t\t\t  <div class=\"col-4 mb-3\">
  3374. \t\t\t\t\t\t\t    <div class=\"input-group\">
  3375. \t\t\t\t\t\t\t      <input type=\"number\" name=\"maisu\" id=\"maisu\" class=\"form-control\" value=\"";
  3376.             // line 1951
  3377.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "maisu", [], "any"truetruefalse1951)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "maisu", [], "any"falsefalsefalse1951), "3")) : ("3")), "html"nulltrue);
  3378.             echo "\" min=\"3\" max=\"20\" onchange=\"mitsumori_simulation('maisu','maisu');\">
  3379. \t\t\t\t\t\t\t      <span class=\"input-group-text\">枚</span>
  3380. \t\t\t\t\t\t\t    </div>
  3381. \t\t\t\t\t\t\t  </div>
  3382. \t\t\t\t\t\t\t  <div class=\"col-4\">
  3383. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-info\" onclick=\"maisu(+1);\">+</button>
  3384. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-danger\" onclick=\"maisu(-1);\">ー</button>
  3385. \t\t\t\t\t\t\t  </div>
  3386. \t\t\t\t\t\t\t</div>
  3387. \t\t\t\t\t\t";
  3388.         }
  3389.         // line 1962
  3390.         echo "
  3391. \t\t\t\t\t\t<!-- 5: 施工見積(ウッドデッキ・タイルデッキ) -->
  3392. \t\t\t\t\t\t";
  3393.         // line 1964
  3394.         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'1964$this->source); })()), "SaleType", [], "any"falsefalsefalse1964), "id", [], "any"falsefalsefalse1964) == 5)) {
  3395.             // line 1965
  3396.             echo "
  3397. \t\t\t\t\t\t\t";
  3398.             // line 1967
  3399.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3400. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">施工面積</label>
  3401. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3402. \t\t\t\t\t\t\t    <div class=\"input-group\">
  3403. \t\t\t\t\t\t\t      <input type=\"number\" name=\"area\" id=\"area\"
  3404. \t\t\t\t\t\t\t        class=\"form-control\"
  3405. \t\t\t\t\t\t\t        value=\"";
  3406.             // line 1973
  3407.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "area", [], "any"truetruefalse1973)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "area", [], "any"falsefalsefalse1973), "")) : ("")), "html"nulltrue);
  3408.             echo "\"
  3409. \t\t\t\t\t\t\t        placeholder=\"例: 7.5\"
  3410. \t\t\t\t\t\t\t        min=\"0.1\" step=\"0.1\"
  3411. \t\t\t\t\t\t\t        onchange=\"mitsumori_simulation('area','area');\">
  3412. \t\t\t\t\t\t\t      <span class=\"input-group-text\">㎡</span>
  3413. \t\t\t\t\t\t\t    </div>
  3414. \t\t\t\t\t\t\t    <small class=\"text-muted\">幅(cm) × 奥行き(cm) ÷ 10000 = ㎡</small>
  3415. \t\t\t\t\t\t\t  </div>
  3416. \t\t\t\t\t\t\t</div>
  3417. \t\t\t\t\t\t\t";
  3418.             // line 1984
  3419.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3420. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">ステップ</label>
  3421. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3422. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3423. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3424. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"deck_step\" id=\"deck_step_yes\" value=\"必要\"
  3425. \t\t\t\t\t\t\t          ";
  3426.             // line 1990
  3427.             if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1990$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1990$this->source); })()), "deck_step", [], "any"falsefalsefalse1990) == "必要"))) {
  3428.                 echo "checked";
  3429.             }
  3430.             // line 1991
  3431.             echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('op0','deck_step_yes');\">
  3432. \t\t\t\t\t\t\t        <label for=\"deck_step_yes\">必要</label>
  3433. \t\t\t\t\t\t\t      </div>
  3434. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3435. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"deck_step\" id=\"deck_step_no\" value=\"不要\"
  3436. \t\t\t\t\t\t\t          ";
  3437.             // line 1996
  3438.             if ((( !(isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1996$this->source); })()) || (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1996$this->source); })()), "deck_step", [], "any"falsefalsefalse1996) == "不要")) ||  !twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'1996$this->source); })()), "deck_step", [], "any"falsefalsefalse1996))) {
  3439.                 echo "checked";
  3440.             }
  3441.             // line 1997
  3442.             echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('op0','deck_step_no');\">
  3443. \t\t\t\t\t\t\t        <label for=\"deck_step_no\">不要</label>
  3444. \t\t\t\t\t\t\t      </div>
  3445. \t\t\t\t\t\t\t    </div>
  3446. \t\t\t\t\t\t\t  </div>
  3447. \t\t\t\t\t\t\t</div>
  3448. \t\t\t\t\t\t\t";
  3449.             // line 2005
  3450.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3451. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">デッキフェンス</label>
  3452. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3453. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3454. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3455. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"deck_fence\" id=\"deck_fence_yes\" value=\"必要\"
  3456. \t\t\t\t\t\t\t          ";
  3457.             // line 2011
  3458.             if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2011$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2011$this->source); })()), "deck_fence", [], "any"falsefalsefalse2011) == "必要"))) {
  3459.                 echo "checked";
  3460.             }
  3461.             // line 2012
  3462.             echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('op1','deck_fence_yes');\">
  3463. \t\t\t\t\t\t\t        <label for=\"deck_fence_yes\">必要</label>
  3464. \t\t\t\t\t\t\t      </div>
  3465. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3466. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"deck_fence\" id=\"deck_fence_no\" value=\"不要\"
  3467. \t\t\t\t\t\t\t          ";
  3468.             // line 2017
  3469.             if ((( !(isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2017$this->source); })()) || (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2017$this->source); })()), "deck_fence", [], "any"falsefalsefalse2017) == "不要")) ||  !twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2017$this->source); })()), "deck_fence", [], "any"falsefalsefalse2017))) {
  3470.                 echo "checked";
  3471.             }
  3472.             // line 2018
  3473.             echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('op1','deck_fence_no');\">
  3474. \t\t\t\t\t\t\t        <label for=\"deck_fence_no\">不要</label>
  3475. \t\t\t\t\t\t\t      </div>
  3476. \t\t\t\t\t\t\t    </div>
  3477. \t\t\t\t\t\t\t  </div>
  3478. \t\t\t\t\t\t\t</div>
  3479. \t\t\t\t\t\t";
  3480.         }
  3481.         // line 2026
  3482.         echo "
  3483. \t\t\t\t\t\t<!-- 6: 施工見積(芝生・枚数・数量買い) -->
  3484. \t\t\t\t\t\t";
  3485.         // line 2028
  3486.         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'2028$this->source); })()), "SaleType", [], "any"falsefalsefalse2028), "id", [], "any"falsefalsefalse2028) == 6)) {
  3487.             // line 2029
  3488.             echo "
  3489. \t\t\t\t\t\t\t";
  3490.             // line 2031
  3491.             echo "\t\t\t\t\t\t\t";
  3492.             if ((((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'2031$this->source); })()) && twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'2031$this->source); })()))) && (twig_join_filter((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'2031$this->source); })())) != ""))) {
  3493.                 // line 2032
  3494.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3495. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">規格</label>
  3496. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3497. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3498. \t\t\t\t\t\t\t    ";
  3499.                 // line 2036
  3500.                 $context["idx"] = 0;
  3501.                 // line 2037
  3502.                 echo "\t\t\t\t\t\t\t    ";
  3503.                 $context['_parent'] = $context;
  3504.                 $context['_seq'] = twig_ensure_traversable((isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'2037$this->source); })()));
  3505.                 foreach ($context['_seq'] as $context["_key"] => $context["pm_val"]) {
  3506.                     if ($context["pm_val"]) {
  3507.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'2037$this->source); })()) + 1);
  3508.                         // line 2038
  3509.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3510. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pm\" id=\"pm6_";
  3511.                         // line 2039
  3512.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'2039$this->source); })()), "html"nulltrue);
  3513.                         echo "\" value=\"";
  3514.                         echo twig_escape_filter($this->env$context["pm_val"], "html"nulltrue);
  3515.                         echo "\"
  3516. \t\t\t\t\t\t\t          ";
  3517.                         // line 2040
  3518.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2040$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2040$this->source); })()), "pm", [], "any"falsefalsefalse2040) == $context["pm_val"])) || (twig_length_filter($this->env, (isset($context["p_m"]) || array_key_exists("p_m"$context) ? $context["p_m"] : (function () { throw new RuntimeError('Variable "p_m" does not exist.'2040$this->source); })())) == 1))) {
  3519.                             echo "checked";
  3520.                         }
  3521.                         // line 2041
  3522.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pm','pm6_";
  3523.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'2041$this->source); })()), "html"nulltrue);
  3524.                         echo "');\">
  3525. \t\t\t\t\t\t\t        <label for=\"pm6_";
  3526.                         // line 2042
  3527.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'2042$this->source); })()), "html"nulltrue);
  3528.                         echo "\">";
  3529.                         echo twig_escape_filter($this->env$context["pm_val"], "html"nulltrue);
  3530.                         echo "</label>
  3531. \t\t\t\t\t\t\t      </div>
  3532. \t\t\t\t\t\t\t    ";
  3533.                     }
  3534.                 }
  3535.                 $_parent $context['_parent'];
  3536.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pm_val'], $context['_parent'], $context['loop']);
  3537.                 $context array_intersect_key($context$_parent) + $_parent;
  3538.                 // line 2045
  3539.                 echo "\t\t\t\t\t\t\t    </div>
  3540. \t\t\t\t\t\t\t  </div>
  3541. \t\t\t\t\t\t\t</div>
  3542. \t\t\t\t\t\t\t";
  3543.             }
  3544.             // line 2049
  3545.             echo "
  3546. \t\t\t\t\t\t\t";
  3547.             // line 2051
  3548.             echo "\t\t\t\t\t\t\t";
  3549.             if ((((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'2051$this->source); })()) && twig_length_filter($this->env, (isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'2051$this->source); })()))) && (twig_join_filter((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'2051$this->source); })())) != ""))) {
  3550.                 // line 2052
  3551.                 echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3552. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">芝の長さ</label>
  3553. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3554. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  3555. \t\t\t\t\t\t\t    ";
  3556.                 // line 2056
  3557.                 $context["idx"] = 0;
  3558.                 // line 2057
  3559.                 echo "\t\t\t\t\t\t\t    ";
  3560.                 $context['_parent'] = $context;
  3561.                 $context['_seq'] = twig_ensure_traversable((isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'2057$this->source); })()));
  3562.                 foreach ($context['_seq'] as $context["_key"] => $context["pw_val"]) {
  3563.                     if ($context["pw_val"]) {
  3564.                         $context["idx"] = ((isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'2057$this->source); })()) + 1);
  3565.                         // line 2058
  3566.                         echo "\t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  3567. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pw\" id=\"pw6_";
  3568.                         // line 2059
  3569.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'2059$this->source); })()), "html"nulltrue);
  3570.                         echo "\" value=\"";
  3571.                         echo twig_escape_filter($this->env$context["pw_val"], "html"nulltrue);
  3572.                         echo "\"
  3573. \t\t\t\t\t\t\t          ";
  3574.                         // line 2060
  3575.                         if ((((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2060$this->source); })()) && (twig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2060$this->source); })()), "pw", [], "any"falsefalsefalse2060) == $context["pw_val"])) || (twig_length_filter($this->env, (isset($context["p_w"]) || array_key_exists("p_w"$context) ? $context["p_w"] : (function () { throw new RuntimeError('Variable "p_w" does not exist.'2060$this->source); })())) == 1))) {
  3576.                             echo "checked";
  3577.                         }
  3578.                         // line 2061
  3579.                         echo "\t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pw','pw6_";
  3580.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'2061$this->source); })()), "html"nulltrue);
  3581.                         echo "');\">
  3582. \t\t\t\t\t\t\t        <label for=\"pw6_";
  3583.                         // line 2062
  3584.                         echo twig_escape_filter($this->env, (isset($context["idx"]) || array_key_exists("idx"$context) ? $context["idx"] : (function () { throw new RuntimeError('Variable "idx" does not exist.'2062$this->source); })()), "html"nulltrue);
  3585.                         echo "\">";
  3586.                         echo twig_escape_filter($this->env$context["pw_val"], "html"nulltrue);
  3587.                         echo "</label>
  3588. \t\t\t\t\t\t\t      </div>
  3589. \t\t\t\t\t\t\t    ";
  3590.                     }
  3591.                 }
  3592.                 $_parent $context['_parent'];
  3593.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pw_val'], $context['_parent'], $context['loop']);
  3594.                 $context array_intersect_key($context$_parent) + $_parent;
  3595.                 // line 2065
  3596.                 echo "\t\t\t\t\t\t\t    </div>
  3597. \t\t\t\t\t\t\t  </div>
  3598. \t\t\t\t\t\t\t</div>
  3599. \t\t\t\t\t\t\t";
  3600.             }
  3601.             // line 2069
  3602.             echo "
  3603. \t\t\t\t\t\t\t";
  3604.             // line 2071
  3605.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3606. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">施工面積</label>
  3607. \t\t\t\t\t\t\t  <div class=\"col-8\">
  3608. \t\t\t\t\t\t\t    <div class=\"input-group\">
  3609. \t\t\t\t\t\t\t      <input type=\"number\" name=\"area\" id=\"area\"
  3610. \t\t\t\t\t\t\t        class=\"form-control\"
  3611. \t\t\t\t\t\t\t        value=\"";
  3612.             // line 2077
  3613.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "area", [], "any"truetruefalse2077)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["mitsumori_json"] ?? null), "area", [], "any"falsefalsefalse2077), "")) : ("")), "html"nulltrue);
  3614.             echo "\"
  3615. \t\t\t\t\t\t\t        placeholder=\"例: 10.5\"
  3616. \t\t\t\t\t\t\t        min=\"0.1\" step=\"0.1\"
  3617. \t\t\t\t\t\t\t        onchange=\"mitsumori_simulation('area','area');\">
  3618. \t\t\t\t\t\t\t      <span class=\"input-group-text\">平米</span>
  3619. \t\t\t\t\t\t\t    </div>
  3620. \t\t\t\t\t\t\t  </div>
  3621. \t\t\t\t\t\t\t</div>
  3622. \t\t\t\t\t\t";
  3623.         }
  3624.         // line 2087
  3625.         echo "
  3626. \t\t\t\t\t\t<!-- 9: 商品のみ購入 -->
  3627. \t\t\t\t\t\t";
  3628.         // line 2089
  3629.         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ProductClass"]) || array_key_exists("ProductClass"$context) ? $context["ProductClass"] : (function () { throw new RuntimeError('Variable "ProductClass" does not exist.'2089$this->source); })()), "SaleType", [], "any"falsefalsefalse2089), "id", [], "any"falsefalsefalse2089) == 9)) {
  3630.             // line 2090
  3631.             echo "\t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3632. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">数量</label>
  3633. \t\t\t\t\t\t\t  <div class=\"col-4\">
  3634. \t\t\t\t\t\t\t    <div class=\"input-group mb-3\">
  3635. \t\t\t\t\t\t\t      <input type=\"number\" name=\"quantity_only\" id=\"quantity_only\" class=\"form-control\" value=\"1\" min=\"1\" onchange=\"\$('#quantity').val(this.value);\">
  3636. \t\t\t\t\t\t\t      <span class=\"input-group-text\">個</span>
  3637. \t\t\t\t\t\t\t    </div>
  3638. \t\t\t\t\t\t\t  </div>
  3639. \t\t\t\t\t\t\t  <div class=\"col-4\">
  3640. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-info\" onclick=\"quantityOnly(+1);\">+</button>
  3641. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-danger\" onclick=\"quantityOnly(-1);\">ー</button>
  3642. \t\t\t\t\t\t\t  </div>
  3643. \t\t\t\t\t\t\t</div>
  3644. \t\t\t\t\t\t";
  3645.         }
  3646.         // line 2104
  3647.         echo "
  3648. \t\t\t\t\t    <div class=\"row\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\"><label class=\"col-12 col-form-label\">取り付け工事のご希望に関してお答えください。</label></div>
  3649. \t\t\t\t\t\t";
  3650.         // line 2109
  3651.         $context['_parent'] = $context;
  3652.         $context['_seq'] = twig_ensure_traversable(range(010));
  3653.         foreach ($context['_seq'] as $context["_key"] => $context["i"]) {
  3654.             // line 2110
  3655.             echo "\t\t\t\t\t\t\t";
  3656.             if (((isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2110$this->source); })()) && (twig_length_filter($this->env, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2110$this->source); })())) >= ($context["i"] + 1)))) {
  3657.                 // line 2111
  3658.                 echo "\t\t\t\t\t\t\t";
  3659.                 if (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2111$this->source); })()), $context["i"], [], "array"falsefalsefalse2111), "name", [], "array"falsefalsefalse2111)) {
  3660.                     // line 2112
  3661.                     echo "\t\t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  3662. \t\t\t\t\t\t\t  <div class=\"rp-section-label\">";
  3663.                     // line 2113
  3664.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2113$this->source); })()), $context["i"], [], "array"falsefalsefalse2113), "name", [], "array"falsefalsefalse2113), "html"nulltrue);
  3665.                     if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2113$this->source); })()) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2113$this->source); })()), "op", [], "any"falsefalsefalse2113), $context["i"], [], "array"falsefalsefalse2113))) {
  3666.                         echo ": <span>";
  3667.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2113$this->source); })()), "op", [], "any"falsefalsefalse2113), $context["i"], [], "array"falsefalsefalse2113), "html"nulltrue);
  3668.                         echo "</span>";
  3669.                     }
  3670.                     echo "</div>
  3671. \t\t\t\t\t\t\t  ";
  3672.                     // line 2114
  3673.                     if (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2114$this->source); })()), $context["i"], [], "array"falsefalsefalse2114), "comment", [], "array"falsefalsefalse2114)) {
  3674.                         echo "<div class=\"opt-comment\" style=\"font-size:12px;color:#666;margin:4px 0 6px;\">";
  3675.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2114$this->source); })()), $context["i"], [], "array"falsefalsefalse2114), "comment", [], "array"falsefalsefalse2114), "html"nulltrue);
  3676.                         echo "</div>";
  3677.                     }
  3678.                     // line 2115
  3679.                     echo "\t\t\t\t\t\t\t  <div class=\"opt-btn-group\">
  3680. \t\t\t\t\t\t\t    <label class=\"opt-btn";
  3681.                     // line 2116
  3682.                     if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2116$this->source); })()) && (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2116$this->source); })()), "op", [], "any"falsefalsefalse2116), $context["i"], [], "array"falsefalsefalse2116) == twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2116$this->source); })()), $context["i"], [], "array"falsefalsefalse2116), "on", [], "array"falsefalsefalse2116)))) {
  3683.                         echo " is-selected";
  3684.                     }
  3685.                     echo "\"
  3686. \t\t\t\t\t\t\t           onclick=\"mitsumori_simulation('op";
  3687.                     // line 2117
  3688.                     echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3689.                     echo "','op";
  3690.                     echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3691.                     echo "_1');\">
  3692. \t\t\t\t\t\t\t      <input type=\"radio\" name=\"op";
  3693.                     // line 2118
  3694.                     echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3695.                     echo "\" id=\"op";
  3696.                     echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3697.                     echo "_1\" value=\"";
  3698.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2118$this->source); })()), $context["i"], [], "array"falsefalsefalse2118), "on", [], "array"falsefalsefalse2118), "html"nulltrue);
  3699.                     echo "\" ";
  3700.                     if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2118$this->source); })()) && (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2118$this->source); })()), "op", [], "any"falsefalsefalse2118), $context["i"], [], "array"falsefalsefalse2118) == twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2118$this->source); })()), $context["i"], [], "array"falsefalsefalse2118), "on", [], "array"falsefalsefalse2118)))) {
  3701.                         echo "checked";
  3702.                     }
  3703.                     echo ">
  3704. \t\t\t\t\t\t\t      ";
  3705.                     // line 2119
  3706.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2119$this->source); })()), $context["i"], [], "array"falsefalsefalse2119), "on", [], "array"falsefalsefalse2119), "html"nulltrue);
  3707.                     echo "
  3708. \t\t\t\t\t\t\t    </label>
  3709. \t\t\t\t\t\t\t    <label class=\"opt-btn";
  3710.                     // line 2121
  3711.                     if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2121$this->source); })()) && (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2121$this->source); })()), "op", [], "any"falsefalsefalse2121), $context["i"], [], "array"falsefalsefalse2121) == twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2121$this->source); })()), $context["i"], [], "array"falsefalsefalse2121), "off", [], "array"falsefalsefalse2121)))) {
  3712.                         echo " is-selected";
  3713.                     }
  3714.                     echo "\"
  3715. \t\t\t\t\t\t\t           onclick=\"mitsumori_simulation('op";
  3716.                     // line 2122
  3717.                     echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3718.                     echo "','op";
  3719.                     echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3720.                     echo "_2');\">
  3721. \t\t\t\t\t\t\t      <input type=\"radio\" name=\"op";
  3722.                     // line 2123
  3723.                     echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3724.                     echo "\" id=\"op";
  3725.                     echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  3726.                     echo "_2\" value=\"";
  3727.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2123$this->source); })()), $context["i"], [], "array"falsefalsefalse2123), "off", [], "array"falsefalsefalse2123), "html"nulltrue);
  3728.                     echo "\" ";
  3729.                     if (((isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2123$this->source); })()) && (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["mitsumori_json"]) || array_key_exists("mitsumori_json"$context) ? $context["mitsumori_json"] : (function () { throw new RuntimeError('Variable "mitsumori_json" does not exist.'2123$this->source); })()), "op", [], "any"falsefalsefalse2123), $context["i"], [], "array"falsefalsefalse2123) == twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2123$this->source); })()), $context["i"], [], "array"falsefalsefalse2123), "off", [], "array"falsefalsefalse2123)))) {
  3730.                         echo "checked";
  3731.                     }
  3732.                     echo ">
  3733. \t\t\t\t\t\t\t      ";
  3734.                     // line 2124
  3735.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["op"]) || array_key_exists("op"$context) ? $context["op"] : (function () { throw new RuntimeError('Variable "op" does not exist.'2124$this->source); })()), $context["i"], [], "array"falsefalsefalse2124), "off", [], "array"falsefalsefalse2124), "html"nulltrue);
  3736.                     echo "
  3737. \t\t\t\t\t\t\t    </label>
  3738. \t\t\t\t\t\t\t  </div>
  3739. \t\t\t\t\t\t\t</div>
  3740. \t\t\t\t\t\t\t";
  3741.                 }
  3742.                 // line 2129
  3743.                 echo "\t\t\t\t\t\t\t";
  3744.             }
  3745.             // line 2130
  3746.             echo "\t\t\t\t\t\t";
  3747.         }
  3748.         $_parent $context['_parent'];
  3749.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['i'], $context['_parent'], $context['loop']);
  3750.         $context array_intersect_key($context$_parent) + $_parent;
  3751.         // line 2131
  3752.         echo "
  3753. \t\t\t\t\t  </div>
  3754. \t\t\t\t\t  <!-- /.card-body -->
  3755. \t\t\t\t\t</div>
  3756.                     <form action=\"";
  3757.         // line 2137
  3758.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_cart", ["id" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'2137$this->source); })()), "id", [], "any"falsefalsefalse2137)]), "html"nulltrue);
  3759.         echo "\" method=\"post\" id=\"form1\" name=\"form1\">
  3760.                         ";
  3761.         // line 2138
  3762.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'2138$this->source); })()), "stock_find", [], "any"falsefalsefalse2138)) {
  3763.             // line 2139
  3764.             echo "                            <div class=\"ec-productRole__actions\">
  3765.                                 ";
  3766.             // line 2140
  3767.             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse2140)) {
  3768.                 // line 2141
  3769.                 echo "                                    <div class=\"ec-select\">
  3770.                                         ";
  3771.                 // line 2142
  3772.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'2142$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse2142), 'row');
  3773.                 echo "
  3774.                                         ";
  3775.                 // line 2143
  3776.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'2143$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse2143), 'errors');
  3777.                 echo "
  3778.                                     </div>
  3779.                                     ";
  3780.                 // line 2145
  3781.                 if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse2145)) {
  3782.                     // line 2146
  3783.                     echo "                                        <div class=\"ec-select\">
  3784.                                             ";
  3785.                     // line 2147
  3786.                     echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'2147$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse2147), 'row');
  3787.                     echo "
  3788.                                             ";
  3789.                     // line 2148
  3790.                     echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'2148$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse2148), 'errors');
  3791.                     echo "
  3792.                                         </div>
  3793.                                     ";
  3794.                 }
  3795.                 // line 2151
  3796.                 echo "                                ";
  3797.             }
  3798.             // line 2152
  3799.             echo "                                <div class=\"ec-numberInput\">
  3800.                                     ";
  3801.             // line 2153
  3802.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'2153$this->source); })()), "quantity", [], "any"falsefalsefalse2153), 'widget', ["type" => "hidden"]);
  3803.             echo "
  3804.                                     ";
  3805.             // line 2154
  3806.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'2154$this->source); })()), "quantity", [], "any"falsefalsefalse2154), 'errors');
  3807.             echo "
  3808.                                 </div>
  3809.                             </div>
  3810.                         ";
  3811.         } else {
  3812.             // line 2159
  3813.             echo "                            <div class=\"ec-productRole__btn\">
  3814.                                 <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  3815.                                     ";
  3816.             // line 2161
  3817.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html"nulltrue);
  3818.             echo "
  3819.                                 </button>
  3820.                             </div>
  3821.                         ";
  3822.         }
  3823.         // line 2165
  3824.         echo "                        <div class=\"ec-productRole__btn mt-3\">
  3825.                            <button type=\"submit\" id=\"cart_btn\" class=\"ec-blockBtn--action add-cart\">施工検討リストに入れる</button>
  3826.                         </div>
  3827.                         ";
  3828.         // line 2168
  3829.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'2168$this->source); })()), 'rest');
  3830.         echo "
  3831.                     </form>
  3832.                     <div class=\"ec-modal\">
  3833.                         <div class=\"ec-modal-overlay\">
  3834.                             <div class=\"ec-modal-wrap\">
  3835.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
  3836.         // line 2173
  3837.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html"nulltrue);
  3838.         echo "\" alt=\"\"/></span></span>
  3839.                                 <div id=\"ec-modal-header\" class=\"text-center\">";
  3840.         // line 2174
  3841.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("施工検討リストに追加しました。"), "html"nulltrue);
  3842.         echo "</div>
  3843.                                 <div class=\"ec-modal-box\">
  3844.                                     <div class=\"ec-role\">
  3845.                                         <span class=\"ec-inlineBtn--cancel\">";
  3846.         // line 2177
  3847.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品検索を続ける"), "html"nulltrue);
  3848.         echo "</span>
  3849.                                         <a href=\"";
  3850.         // line 2178
  3851.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
  3852.         echo "\" class=\"ec-inlineBtn--action\">";
  3853.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("施工検討リストへ進む"), "html"nulltrue);
  3854.         echo "</a>
  3855.                                     </div>
  3856.                                 </div>
  3857.                             </div>
  3858.                         </div>
  3859.                     </div>
  3860.                     <div class=\"ec-productRole__description\">";
  3861.         // line 2184
  3862.         echo twig_nl2br(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'2184$this->source); })()), "description_detail", [], "any"falsefalsefalse2184));
  3863.         echo "
  3864.                     </div>
  3865.                     ";
  3866.         // line 2188
  3867.         echo "                    <div class=\"ec-productRole__share\">
  3868.                         <ul class=\"ec-share\">
  3869.                             <li class=\"ec-share__item\">
  3870.                                 <a href=\"https://twitter.com/share?url=";
  3871.         // line 2191
  3872.         echo twig_escape_filter($this->envtwig_urlencode_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'2191$this->source); })()), "request", [], "any"falsefalsefalse2191), "uri", [], "any"falsefalsefalse2191)), "html"nulltrue);
  3873.         echo "&text=";
  3874.         echo twig_escape_filter($this->envtwig_urlencode_filter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'2191$this->source); })()), "name", [], "any"falsefalsefalse2191)), "html"nulltrue);
  3875.         echo "\" class=\"ec-share__link ec-share__link--twitter\" target=\"_blank\" rel=\"noreferrer noopener\">
  3876.                                     <i class=\"fab fa-twitter\"></i>
  3877.                                 </a>
  3878.                             </li>
  3879.                             <li class=\"ec-share__item\">
  3880.                                 <a href=\"https://www.facebook.com/sharer/sharer.php?u=";
  3881.         // line 2196
  3882.         echo twig_escape_filter($this->envtwig_urlencode_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'2196$this->source); })()), "request", [], "any"falsefalsefalse2196), "uri", [], "any"falsefalsefalse2196)), "html"nulltrue);
  3883.         echo "\" class=\"ec-share__link ec-share__link--facebook\" target=\"_blank\" rel=\"noreferrer noopener\">
  3884.                                     <i class=\"fab fa-facebook-f\"></i>
  3885.                                 </a>
  3886.                             </li>
  3887.                             <li class=\"ec-share__item\">
  3888.                                 <a href=\"https://social-plugins.line.me/lineit/share?url=";
  3889.         // line 2201
  3890.         echo twig_escape_filter($this->envtwig_urlencode_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'2201$this->source); })()), "request", [], "any"falsefalsefalse2201), "uri", [], "any"falsefalsefalse2201)), "html"nulltrue);
  3891.         echo "\" class=\"ec-share__link ec-share__link--line\" target=\"_blank\" rel=\"noreferrer noopener\">
  3892.                                     <i class=\"fab fa-line\"></i>
  3893.                                 </a>
  3894.                             </li>
  3895.                         </ul>
  3896.                     </div>
  3897.                 </div>
  3898. \t\t\t\t";
  3899.         // line 2209
  3900.         echo "\t\t\t\t<div id=\"sp-mitsumori-bar\">
  3901. \t\t\t\t    <div>
  3902. \t\t\t\t        <div class=\"sp-bar__label\">合計(工事費・税込)</div>
  3903. \t\t\t\t        <div class=\"sp-bar__price\" id=\"sp-mitsumori-price\">---円</div>
  3904. \t\t\t\t    </div>
  3905. \t\t\t\t    <button type=\"button\" class=\"sp-bar__btn\"
  3906. \t\t\t\t            onclick=\"document.getElementById('cart_btn2') && document.getElementById('cart_btn2').click();\">
  3907. \t\t\t\t        検討リストへ
  3908. \t\t\t\t    </button>
  3909. \t\t\t\t</div>
  3910. \t\t\t\t<div class=\"card col-12 collapsed-card sticky-top float-right mitsumori-card-pc\">
  3911. \t\t\t\t\t<div class=\"card-header\">
  3912. \t\t\t\t\t  <h3 class=\"card-title\">現在のお見積り額</h3>
  3913. \t\t\t\t\t  <div class=\"card-tools\">
  3914. \t\t\t\t\t    <span class=\"float-left\" id=\"mitsumori_message\">395000円</span>
  3915. \t\t\t\t\t    <button type=\"button\" class=\"btn btn-tool btn-mitsumori-toggle\" data-card-widget=\"collapse\" title=\"詳細を表示\">
  3916. \t\t\t\t\t      <span class=\"toggle-icon\">▼ 詳細</span>
  3917. \t\t\t\t\t    </button>
  3918. \t\t\t\t\t  </div>
  3919. \t\t\t\t\t</div>
  3920. \t\t\t\t\t<div class=\"card-body p-0\">
  3921. \t\t\t\t\t  <ul class=\"nav nav-pills flex-column\">
  3922. \t\t\t\t\t    <li class=\"nav-item active\">
  3923. \t\t\t\t\t      <a class=\"nav-link\">
  3924. \t\t\t\t\t        <i class=\"far fa-file-alt\"></i> 合計(工事費・税込)
  3925. \t\t\t\t\t        <span class=\"float-right\" id=\"mitsumori_goukei\">395,000円</span>
  3926. \t\t\t\t\t      </a>
  3927. \t\t\t\t\t    </li>
  3928. \t\t\t\t\t    <li class=\"nav-item active\">
  3929. \t\t\t\t\t      <a class=\"nav-link\">
  3930. \t\t\t\t\t        <i class=\"far fa-file-alt\"></i> 商品価格
  3931. \t\t\t\t\t        <span class=\"float-right\" id=\"mitsumori_price\">307,008円</span>
  3932. \t\t\t\t\t      </a>
  3933. \t\t\t\t\t    </li>
  3934. \t\t\t\t\t    <li class=\"nav-item\">
  3935. \t\t\t\t\t      <a class=\"nav-link\">
  3936. \t\t\t\t\t        &nbsp;&nbsp;<i class=\"far fa-file-alt\"></i> カタログ価格
  3937. \t\t\t\t\t        <span class=\"float-right\" id=\"maker_price\">479,700円</span>
  3938. \t\t\t\t\t      </a>
  3939. \t\t\t\t\t    </li>
  3940. \t\t\t\t\t    <li class=\"nav-item\">
  3941. \t\t\t\t\t      <a class=\"nav-link\">
  3942. \t\t\t\t\t        &nbsp;&nbsp;<i class=\"far fa-file-alt\"></i> お値引き
  3943. \t\t\t\t\t        <span class=\"float-right\" id=\"mitsumori_off\">-172,692円</span>
  3944. \t\t\t\t\t      </a>
  3945. \t\t\t\t\t    </li>
  3946. \t\t\t\t\t    <li class=\"nav-item\">
  3947. \t\t\t\t\t      <a class=\"nav-link\">
  3948. \t\t\t\t\t        <i class=\"far fa-file-alt\"></i> 基本工事費
  3949. \t\t\t\t\t        <span class=\"float-right\" id=\"mitsumori_ct\">53,250円</span>
  3950. \t\t\t\t\t      </a>
  3951. \t\t\t\t\t    </li>
  3952. \t\t\t\t\t    <li class=\"nav-item\">
  3953. \t\t\t\t\t      <a class=\"nav-link\">
  3954. \t\t\t\t\t        <i class=\"far fa-file-alt\"></i> 施工オプション
  3955. \t\t\t\t\t        <span class=\"float-right\"id=\"mitsumori_option\">6,297円</span>
  3956. \t\t\t\t\t      </a>
  3957. \t\t\t\t\t    </li>
  3958. \t\t\t\t\t  </ul>
  3959. \t\t\t\t\t</div>
  3960. \t\t\t\t\t<div class=\"card-footer\">
  3961. \t\t                <button type=\"button\" id=\"mitsumori_btn\" class=\"btn btn-info\" data-toggle=\"modal\" data-target=\"#modal-mitsumori\">
  3962. \t\t                  見積書表示
  3963. \t\t                </button>
  3964.                         <button type=\"submit\" id=\"cart_btn2\" class=\"btn btn-info add-cart\">施工検討リストに入れる</button>
  3965. \t\t\t\t\t</div>
  3966. \t\t\t\t</div>
  3967.             </div>
  3968.         </div>
  3969.     </div>
  3970.   <div class=\"modal\" id=\"modal-mitsumori\">
  3971.     <div class=\"modal-dialog modal-mitsumori\" style=\"max-width:1000px\">
  3972.       <div class=\"modal-content\">
  3973.         <div class=\"modal-header\">
  3974.           <h4 class=\"modal-title\">お見積書</h4>
  3975.           <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
  3976.             <span aria-hidden=\"true\">&times;</span>
  3977.           </button>
  3978.         </div>
  3979.         <div class=\"modal-body\">
  3980. \t\t\t<div class=\"invoice p-3 mb-5\" style=\"max-width:1000px; margin:auto;\">
  3981. \t\t\t  <!-- title row -->
  3982. \t\t\t  <div class=\"row\">
  3983. \t\t\t    <div class=\"col-12\">
  3984. \t\t\t      <h2>概算お見積書 
  3985. \t\t\t        <small class=\"float-right\" style=\"font-size:14px;\">発行日: 2025/03/14</small>
  3986. \t\t\t      </h2>
  3987. \t\t\t    </div>
  3988. \t\t\t    <!-- /.col -->
  3989. \t\t\t  </div>
  3990. \t\t\t  <!-- info row -->
  3991. \t\t\t  <div class=\"row invoice-info\">
  3992. \t\t\t    <div class=\"col-sm-8 invoice-col\">
  3993. \t\t\t      <h3>お客様</h3>
  3994. \t\t\t      <span>下記の通り、お見積もり申し上げます。</span>
  3995. \t\t\t      <br />
  3996. \t\t\t      <br / >
  3997. \t\t\t      <br />
  3998. \t\t\t      <h2>お見積金額: <span id=\"mitsumori_kei\">399,080円</span></h2>
  3999. \t\t\t      <span>
  4000. \t\t\t        <br/>
  4001. \t\t\t        <br/>
  4002. \t\t\t        <br/>
  4003. \t\t\t        <br/>
  4004. \t\t\t      </span>
  4005. \t\t\t    </div>
  4006. \t\t\t    <div class=\"col-sm-4 invoice-col\">
  4007. \t\t\t      <p>
  4008. \t\t\t        <img alt=\"\" src=\"/html/user_data/js/images/logo.png\" style=\"width: 260px; max-width: 100%; max-height: 10mm;\">
  4009. \t\t\t      </p>
  4010. \t\t\t      <p>有限会社プラス</p>
  4011. \t\t\t      <p>〒400-0334</p>
  4012. \t\t\t      <p>山梨県南アルプス市藤田1450番地2</p>
  4013. \t\t\t      <p>TEL: 055-284-6480</p>
  4014. \t\t\t      <img alt=\"\" src=\"/html/user_data/js/images/seal.svg\" style=\"z-index: 2; position: absolute; width: 21mm; left: 58mm; top: 36mm;\">
  4015. \t\t\t    </div>
  4016. \t\t\t    <!-- /.col -->
  4017. \t\t\t    <!-- /.col -->
  4018. \t\t\t  </div>
  4019. \t\t\t  <!-- /.row -->
  4020. \t\t\t  <!-- Table row -->
  4021. \t\t\t  <div class=\"row\">
  4022. \t\t\t    <div class=\"col-12 table-responsive\">
  4023. \t\t\t      <table class=\"table table-striped\">
  4024. \t\t\t        <thead>
  4025. \t\t\t          <tr>
  4026. \t\t\t            <th>項目</th>
  4027. \t\t\t            <th>数量</th>
  4028. \t\t\t            <th>単位</th>
  4029. \t\t\t            <th>単価</th>
  4030. \t\t\t            <th>小計</th>
  4031. \t\t\t          </tr>
  4032. \t\t\t        </thead>
  4033. \t\t\t        <tbody>
  4034. \t\t\t          <tr>
  4035. \t\t\t            <td>プレーンルーフ 600タイプ 1台用 単体セット</td>
  4036. \t\t\t            <td>1</td>
  4037. \t\t\t            <td>式</td>
  4038. \t\t\t            <td id=\"mitsumori_price_01\">352,800</td>
  4039. \t\t\t            <td id=\"mitsumori_price_02\">352,800</td>
  4040. \t\t\t          </tr>
  4041. \t\t\t          <tr>
  4042. \t\t\t            <td>基本工事費</td>
  4043. \t\t\t            <td>1</td>
  4044. \t\t\t            <td>式</td>
  4045. \t\t\t            <td id=\"mitsumori_ct_01\">10,000</td>
  4046. \t\t\t            <td id=\"mitsumori_ct_02\">10,000</td>
  4047. \t\t\t          </tr>
  4048. \t\t\t          <tr>
  4049. \t\t\t            <td>残土・ガラ処理</td>
  4050. \t\t\t            <td>1</td>
  4051. \t\t\t            <td>式</td>
  4052. \t\t\t            <td>0円</td>
  4053. \t\t\t            <td></td>
  4054. \t\t\t          </tr>
  4055. \t\t\t          <tr>
  4056. \t\t\t            <td> </td>
  4057. \t\t\t            <td></td>
  4058. \t\t\t            <td></td>
  4059. \t\t\t            <td></td>
  4060. \t\t\t            <td></td>
  4061. \t\t\t          </tr>
  4062. \t\t\t        </tbody>
  4063. \t\t\t      </table>
  4064. \t\t\t    </div>
  4065. \t\t\t    <!-- /.col -->
  4066. \t\t\t  </div>
  4067. \t\t\t  <!-- /.row -->
  4068. \t\t\t  <div class=\"row\">
  4069. \t\t\t    <!-- accepted payments column -->
  4070. \t\t\t    <div class=\"col-6\">
  4071. \t\t\t      <p class=\"lead\">お支払い方法</p>
  4072. \t\t\t      <p class=\"text-muted well well-sm shadow-none\" style=\"margin-top: 10px;\">銀行振込、クレジットカード決済、PAYPAY決済
  4073. \t\t\t        <br>銀行振込:山梨中央銀行 白根支店 普通口座 391402
  4074. \t\t\t        <br>※商品代金と工事代金の総額が金100万円(税込)を超える場合、着手金として代金の半額をご契約後お支払いいただきます。 
  4075. \t\t\t      </p>
  4076. \t\t\t    </div>
  4077. \t\t\t    <!-- /.col -->
  4078. \t\t\t    <div class=\"col-6\">
  4079. \t\t\t      <div class=\"table-responsive\">
  4080. \t\t\t        <table class=\"table\">
  4081. \t\t\t          <tbody>
  4082. \t\t\t            <tr>
  4083. \t\t\t              <th style=\"width:50%\">小計:</th>
  4084. \t\t\t              <td id=\"mitsumori_shoukei\">362,800</td>
  4085. \t\t\t            </tr>
  4086. \t\t\t            <tr>
  4087. \t\t\t              <th>消費税 (10%)</th>
  4088. \t\t\t              <td id=\"mitsumori_tax\">36,280</td>
  4089. \t\t\t            </tr>
  4090. \t\t\t            <tr>
  4091. \t\t\t              <th>合計:</th>
  4092. \t\t\t              <td id=\"mitsumori_goukei_02\">399,080</td>
  4093. \t\t\t            </tr>
  4094. \t\t\t          </tbody>
  4095. \t\t\t        </table>
  4096. \t\t\t      </div>
  4097. \t\t\t    </div>
  4098. \t\t\t    <!-- /.col -->
  4099. \t\t\t  </div>
  4100. \t\t\t  <!-- /.row -->
  4101. \t\t\t</div>
  4102.         </div>
  4103.         <div class=\"modal-footer justify-content-between\">
  4104. \t\t\t      ";
  4105.         // line 2419
  4106.         echo "\t\t\t      <form method=\"post\" action=\"";
  4107.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("mitsumori_pdf");
  4108.         echo "\" target=\"_blank\" id=\"pdf_download_form\">
  4109. \t\t\t        <input type=\"hidden\" name=\"_token\" value=\"";
  4110.         // line 2420
  4111.         echo twig_escape_filter($this->env$this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderCsrfToken("mitsumori_pdf"), "html"nulltrue);
  4112.         echo "\">
  4113. \t\t\t        <input type=\"hidden\" name=\"mitsumori_json\" id=\"pdf_mitsumori_json\">
  4114. \t\t\t        <button type=\"submit\" class=\"btn btn-primary float-right\" style=\"margin-right: 5px;\" onclick=\"syncPdfJson();\">
  4115. \t\t\t          <i class=\"fas fa-download\"></i>PDF出力
  4116. \t\t\t        </button>
  4117. \t\t\t      </form>
  4118.                   <button type=\"submit\" id=\"cart_btn3\" class=\"btn btn-info add-cart\">施工検討リストに入れる</button>
  4119.         </div>
  4120.       </div>
  4121.       <!-- /.modal-content -->
  4122.     </div>
  4123.     <!-- /.modal-dialog -->
  4124.   </div>
  4125.   <!-- /.modal -->
  4126. ";
  4127.         
  4128.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  4129.         
  4130.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  4131.     }
  4132.     public function getTemplateName()
  4133.     {
  4134.         return "Product/detail.twig";
  4135.     }
  4136.     public function isTraitable()
  4137.     {
  4138.         return false;
  4139.     }
  4140.     public function getDebugInfo()
  4141.     {
  4142.         return array (  4255 => 2420,  4250 => 2419,  4039 => 2209,  4029 => 2201,  4021 => 2196,  4011 => 2191,  4006 => 2188,  4000 => 2184,  3989 => 2178,  3985 => 2177,  3979 => 2174,  3975 => 2173,  3967 => 2168,  3962 => 2165,  3955 => 2161,  3951 => 2159,  3943 => 2154,  3939 => 2153,  3936 => 2152,  3933 => 2151,  3927 => 2148,  3923 => 2147,  3920 => 2146,  3918 => 2145,  3913 => 2143,  3909 => 2142,  3906 => 2141,  3904 => 2140,  3901 => 2139,  3899 => 2138,  3895 => 2137,  3887 => 2131,  3881 => 2130,  3878 => 2129,  3870 => 2124,  3858 => 2123,  3852 => 2122,  3846 => 2121,  3841 => 2119,  3829 => 2118,  3823 => 2117,  3817 => 2116,  3814 => 2115,  3808 => 2114,  3799 => 2113,  3796 => 2112,  3793 => 2111,  3790 => 2110,  3786 => 2109,  3779 => 2104,  3763 => 2090,  3761 => 2089,  3757 => 2087,  3744 => 2077,  3736 => 2071,  3733 => 2069,  3727 => 2065,  3715 => 2062,  3710 => 2061,  3706 => 2060,  3700 => 2059,  3697 => 2058,  3690 => 2057,  3688 => 2056,  3682 => 2052,  3679 => 2051,  3676 => 2049,  3670 => 2045,  3658 => 2042,  3653 => 2041,  3649 => 2040,  3643 => 2039,  3640 => 2038,  3633 => 2037,  3631 => 2036,  3625 => 2032,  3622 => 2031,  3619 => 2029,  3617 => 2028,  3613 => 2026,  3603 => 2018,  3599 => 2017,  3592 => 2012,  3588 => 2011,  3580 => 2005,  3571 => 1997,  3567 => 1996,  3560 => 1991,  3556 => 1990,  3548 => 1984,  3535 => 1973,  3527 => 1967,  3524 => 1965,  3522 => 1964,  3518 => 1962,  3504 => 1951,  3498 => 1947,  3495 => 1945,  3493 => 1944,  3489 => 1942,  3475 => 1931,  3469 => 1927,  3466 => 1925,  3460 => 1921,  3448 => 1918,  3443 => 1917,  3439 => 1916,  3433 => 1915,  3430 => 1914,  3423 => 1913,  3421 => 1912,  3415 => 1908,  3412 => 1907,  3409 => 1905,  3403 => 1901,  3391 => 1898,  3386 => 1897,  3382 => 1896,  3376 => 1895,  3373 => 1894,  3366 => 1893,  3364 => 1892,  3358 => 1888,  3355 => 1887,  3352 => 1885,  3346 => 1881,  3334 => 1878,  3329 => 1877,  3325 => 1876,  3319 => 1875,  3316 => 1874,  3309 => 1873,  3307 => 1872,  3301 => 1868,  3299 => 1867,  3296 => 1866,  3290 => 1862,  3278 => 1859,  3273 => 1858,  3269 => 1857,  3263 => 1856,  3260 => 1855,  3253 => 1854,  3251 => 1853,  3245 => 1849,  3243 => 1848,  3240 => 1847,  3234 => 1843,  3222 => 1840,  3217 => 1839,  3213 => 1838,  3207 => 1837,  3204 => 1836,  3197 => 1835,  3195 => 1834,  3189 => 1830,  3186 => 1829,  3183 => 1827,  3181 => 1826,  3177 => 1824,  3170 => 1819,  3155 => 1817,  3151 => 1816,  3145 => 1812,  3142 => 1810,  3136 => 1806,  3130 => 1805,  3122 => 1802,  3117 => 1801,  3113 => 1800,  3107 => 1799,  3104 => 1798,  3101 => 1797,  3098 => 1796,  3093 => 1795,  3091 => 1794,  3085 => 1790,  3082 => 1789,  3079 => 1787,  3073 => 1783,  3067 => 1782,  3059 => 1779,  3054 => 1778,  3050 => 1777,  3044 => 1776,  3041 => 1775,  3038 => 1774,  3035 => 1773,  3030 => 1772,  3028 => 1771,  3022 => 1767,  3019 => 1766,  3010 => 1759,  3000 => 1752,  2993 => 1747,  2990 => 1745,  2988 => 1744,  2984 => 1742,  2981 => 1741,  2979 => 1740,  2975 => 1738,  2970 => 1735,  2960 => 1732,  2954 => 1731,  2948 => 1730,  2944 => 1729,  2937 => 1728,  2930 => 1727,  2928 => 1726,  2919 => 1724,  2916 => 1723,  2914 => 1722,  2911 => 1721,  2906 => 1718,  2896 => 1715,  2890 => 1714,  2884 => 1713,  2880 => 1712,  2873 => 1711,  2866 => 1710,  2864 => 1709,  2855 => 1707,  2852 => 1706,  2850 => 1705,  2847 => 1704,  2842 => 1701,  2832 => 1698,  2826 => 1697,  2820 => 1696,  2816 => 1695,  2809 => 1694,  2802 => 1693,  2800 => 1692,  2791 => 1690,  2788 => 1689,  2786 => 1688,  2783 => 1687,  2778 => 1684,  2768 => 1681,  2762 => 1680,  2756 => 1679,  2752 => 1678,  2745 => 1677,  2738 => 1676,  2736 => 1675,  2727 => 1673,  2724 => 1672,  2722 => 1671,  2719 => 1670,  2714 => 1667,  2704 => 1664,  2698 => 1663,  2692 => 1662,  2688 => 1661,  2681 => 1660,  2674 => 1659,  2672 => 1658,  2663 => 1656,  2660 => 1655,  2658 => 1654,  2652 => 1650,  2648 => 1648,  2644 => 1646,  2635 => 1643,  2629 => 1642,  2625 => 1641,  2621 => 1640,  2614 => 1639,  2610 => 1638,  2607 => 1637,  2605 => 1636,  2601 => 1634,  2592 => 1631,  2588 => 1630,  2584 => 1629,  2577 => 1627,  2573 => 1626,  2569 => 1625,  2562 => 1624,  2558 => 1623,  2555 => 1622,  2553 => 1621,  2551 => 1620,  2542 => 1619,  2539 => 1618,  2536 => 1617,  2533 => 1615,  2529 => 1613,  2525 => 1611,  2516 => 1608,  2510 => 1607,  2506 => 1606,  2502 => 1605,  2495 => 1604,  2491 => 1603,  2488 => 1602,  2484 => 1600,  2475 => 1597,  2469 => 1594,  2465 => 1593,  2458 => 1591,  2454 => 1590,  2450 => 1589,  2443 => 1588,  2439 => 1587,  2436 => 1586,  2434 => 1585,  2425 => 1584,  2422 => 1583,  2419 => 1582,  2416 => 1580,  2412 => 1578,  2408 => 1576,  2399 => 1573,  2393 => 1572,  2389 => 1571,  2385 => 1570,  2378 => 1569,  2374 => 1568,  2371 => 1567,  2367 => 1565,  2358 => 1562,  2352 => 1559,  2348 => 1558,  2341 => 1556,  2337 => 1555,  2333 => 1554,  2326 => 1553,  2322 => 1552,  2319 => 1551,  2317 => 1550,  2308 => 1549,  2305 => 1548,  2302 => 1547,  2299 => 1545,  2295 => 1543,  2291 => 1541,  2282 => 1538,  2276 => 1537,  2272 => 1536,  2268 => 1535,  2261 => 1534,  2257 => 1533,  2254 => 1532,  2252 => 1531,  2248 => 1529,  2239 => 1526,  2233 => 1523,  2229 => 1522,  2222 => 1520,  2218 => 1519,  2214 => 1518,  2207 => 1517,  2203 => 1516,  2200 => 1515,  2198 => 1514,  2196 => 1513,  2187 => 1512,  2184 => 1511,  2181 => 1510,  2178 => 1508,  2174 => 1506,  2171 => 1505,  2169 => 1504,  2168 => 1503,  2167 => 1502,  2165 => 1501,  2162 => 1500,  2159 => 1499,  2156 => 1498,  2153 => 1497,  2150 => 1496,  2147 => 1495,  2144 => 1494,  2141 => 1493,  2139 => 1492,  2137 => 1491,  2125 => 1482,  2118 => 1477,  2106 => 1474,  2103 => 1473,  2100 => 1472,  2097 => 1470,  2086 => 1468,  2082 => 1467,  2079 => 1466,  2076 => 1464,  2070 => 1461,  2066 => 1460,  2063 => 1459,  2060 => 1458,  2054 => 1455,  2048 => 1454,  2045 => 1453,  2039 => 1450,  2035 => 1449,  2032 => 1448,  2030 => 1447,  2028 => 1446,  2024 => 1444,  2022 => 1443,  2018 => 1441,  2010 => 1438,  1995 => 1436,  1986 => 1435,  1969 => 1434,  1965 => 1432,  1961 => 1431,  1958 => 1430,  1955 => 1429,  1942 => 1418,  1928 => 1406,  1922 => 1401,  1903 => 1399,  1886 => 1398,  1882 => 1396,  1871 => 1394,  1849 => 1392,  1831 => 1391,  1828 => 1390,  1824 => 1388,  1816 => 1384,  1808 => 1380,  1806 => 1379,  1803 => 1378,  1801 => 1377,  1791 => 1370,  1779 => 1363,  1774 => 1361,  1770 => 1359,  1764 => 1354,  1754 => 1353,  1738 => 1346,  1734 => 1345,  1730 => 1344,  1726 => 1343,  1722 => 1341,  1716 => 1339,  1714 => 1338,  1709 => 1337,  1706 => 1336,  1696 => 1334,  1682 => 1332,  1674 => 1331,  1656 => 1330,  1651 => 1328,  1550 => 1234,  1542 => 1233,  1489 => 1183,  1378 => 1075,  1373 => 1072,  1370 => 1071,  1357 => 1070,  1354 => 1069,  1352 => 1068,  1349 => 1067,  1346 => 1066,  1333 => 1065,  1330 => 1064,  1328 => 1063,  1325 => 1062,  1322 => 1061,  1309 => 1060,  1306 => 1059,  1304 => 1058,  1301 => 1057,  1298 => 1056,  1285 => 1055,  1282 => 1054,  1280 => 1053,  1277 => 1052,  1274 => 1051,  1261 => 1050,  1258 => 1049,  1256 => 1048,  1227 => 1022,  1215 => 1013,  1051 => 852,  1041 => 847,  1035 => 846,  1029 => 845,  1023 => 844,  1017 => 843,  1011 => 842,  1005 => 841,  999 => 840,  993 => 839,  987 => 838,  981 => 837,  975 => 836,  969 => 835,  963 => 834,  957 => 833,  951 => 832,  931 => 815,  921 => 808,  891 => 781,  879 => 771,  870 => 765,  866 => 763,  864 => 762,  861 => 761,  852 => 755,  848 => 753,  846 => 752,  774 => 682,  766 => 680,  764 => 679,  759 => 677,  756 => 676,  754 => 675,  740 => 664,  736 => 662,  726 => 661,  73 => 16,  63 => 15,  52 => 11,  50 => 13,  37 => 11,);
  4143.     }
  4144.     public function getSourceContext()
  4145.     {
  4146.         return new Source("{#
  4147. This file is part of EC-CUBE
  4148. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  4149. http://www.ec-cube.co.jp/
  4150. For the full copyright and license information, please view the LICENSE
  4151. file that was distributed with this source code.
  4152. #}
  4153. {% extends 'default_frame.twig' %}
  4154. {% set body_class = 'product_page' %}
  4155. {% block stylesheet %}
  4156.     <style>
  4157.         .slick-slider {
  4158.             margin-bottom: 10px;
  4159. \t\t\tmargin-top: -20px;
  4160.         }
  4161.         .slick-dots {
  4162.             position: absolute;
  4163.             bottom: -45px;
  4164.             display: block;
  4165.             width: 100%;
  4166.             padding: 0;
  4167.             list-style: none;
  4168.             text-align: center;
  4169.         }
  4170.         .slick-dots li {
  4171.             position: relative;
  4172.             display: inline-block;
  4173.             width: 20px;
  4174.             height: 20px;
  4175.             margin: 0 5px;
  4176.             padding: 0;
  4177.             cursor: pointer;
  4178.         }
  4179.         .slick-dots li button {
  4180.             font-size: 0;
  4181.             line-height: 0;
  4182.             display: block;
  4183.             width: 20px;
  4184.             height: 20px;
  4185.             padding: 5px;
  4186.             cursor: pointer;
  4187.             color: transparent;
  4188.             border: 0;
  4189.             outline: none;
  4190.             background: transparent;
  4191.         }
  4192.         .slick-dots li button:hover,
  4193.         .slick-dots li button:focus {
  4194.             outline: none;
  4195.         }
  4196.         .slick-dots li button:hover:before,
  4197.         .slick-dots li button:focus:before {
  4198.             opacity: 1;
  4199.         }
  4200.         .slick-dots li button:before {
  4201.             content: \" \";
  4202.             line-height: 20px;
  4203.             position: absolute;
  4204.             top: 0;
  4205.             left: 0;
  4206.             width: 12px;
  4207.             height: 12px;
  4208.             text-align: center;
  4209.             opacity: .25;
  4210.             background-color: black;
  4211.             border-radius: 50%;
  4212.         }
  4213.         .slick-dots li.slick-active button:before {
  4214.             opacity: .75;
  4215.             background-color: black;
  4216.         }
  4217.         .slick-dots li button.thumbnail img {
  4218.             width: 0;
  4219.             height: 0;
  4220.         }
  4221.     </style>
  4222.     <link rel=\"stylesheet\" href=\"/html/user_data/js/style.css\">
  4223.     <link rel=\"stylesheet\" href=\"/html/plugins/icheck-bootstrap/icheck-bootstrap.min.css\">
  4224.     <style>
  4225.         /* ============================================
  4226.            商品詳細グリッド: 画像50% / 内容50%(均等)
  4227.         ============================================ */
  4228.         @media (min-width: 768px) {
  4229.             body.product_page .ec-grid2 {
  4230.                 display: flex;
  4231.                 align-items: flex-start;
  4232.             }
  4233.             body.product_page .ec-grid2 .ec-grid2__cell {
  4234.                 width: 50%;
  4235.                 flex: 0 0 50%;
  4236.                 min-width: 0;
  4237.             }
  4238.             body.product_page .ec-grid2 .ec-grid2__cell2 {
  4239.                 width: 50%;
  4240.                 flex: 0 0 50%;
  4241.                 min-width: 0;
  4242.             }
  4243.         }
  4244.         /* ============================================
  4245.            商品説明欄内のHTMLが画面幅を突き抜けないように
  4246.         ============================================ */
  4247.         body.product_page .ec-productRole__description {
  4248.             min-width: 0;
  4249.             overflow-wrap: break-word;
  4250.             word-break: break-word;
  4251.         }
  4252.         body.product_page .ec-productRole__description img,
  4253.         body.product_page .ec-productRole__description table,
  4254.         body.product_page .ec-productRole__description iframe,
  4255.         body.product_page .ec-productRole__description video {
  4256.             max-width: 100% !important;
  4257.             height: auto;
  4258.         }
  4259.         body.product_page .ec-productRole__description table {
  4260.             display: block;
  4261.             overflow-x: auto;
  4262.             -webkit-overflow-scrolling: touch;
  4263.         }
  4264.         /* ============================================
  4265.            スマホ用 見積金額 下部固定バー
  4266.         ============================================ */
  4267.         #sp-mitsumori-bar {
  4268.             display: none;
  4269.         }
  4270.         
  4271.         /* ============================================
  4272.            商品タイプ選択 共通スタイル
  4273.         ============================================ */
  4274.         /* セクションラベル */
  4275.         .rp-section-label {
  4276.             font-size: 14px;
  4277.             font-weight: bold;
  4278.             color: #333;
  4279.             margin-bottom: 10px;
  4280.         }
  4281.         .rp-section-label span {
  4282.             font-weight: normal;
  4283.             color: #c00;
  4284.         }
  4285.         /* ---- 1. 画像付きカード ---- */
  4286.         .rp-card-group {
  4287.             display: flex;
  4288.             flex-wrap: wrap;
  4289.             gap: 8px;
  4290.             margin-bottom: 4px;
  4291.         }
  4292.         .rp-card {
  4293.             position: relative;
  4294.             cursor: pointer;
  4295.             width: 110px;
  4296.             border: 2px solid #ddd;
  4297.             border-radius: 10px;
  4298.             overflow: hidden;
  4299.             transition: border-color 0.2s, box-shadow 0.2s;
  4300.             background: #fff;
  4301.         }
  4302.         .rp-card:hover {
  4303.             border-color: #999;
  4304.             box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  4305.         }
  4306.         .rp-card.is-selected {
  4307.             border-color: #1a6fcf;
  4308.             box-shadow: 0 2px 10px rgba(26,111,207,0.25);
  4309.         }
  4310.         .rp-card input[type=\"radio\"] { display: none; }
  4311.         .rp-card__image {
  4312.             width: 100%;
  4313.             aspect-ratio: 1 / 1;
  4314.             object-fit: cover;
  4315.             display: block;
  4316.             background: #f5f5f5;
  4317.         }
  4318.         .rp-card__placeholder {
  4319.             width: 100%;
  4320.             aspect-ratio: 1 / 1;
  4321.             background: #f0f0f0;
  4322.             display: flex;
  4323.             align-items: center;
  4324.             justify-content: center;
  4325.             color: #bbb;
  4326.             font-size: 24px;
  4327.         }
  4328.         .rp-card__name {
  4329.             display: block;
  4330.             padding: 5px 5px;
  4331.             font-size: 11px;
  4332.             color: #333;
  4333.             text-align: center;
  4334.             line-height: 1.4;
  4335.             word-break: break-all;
  4336.         }
  4337.         .rp-card.is-selected .rp-card__name { color: #1a6fcf; font-weight: bold; }
  4338.         .rp-card.is-selected::after {
  4339.             content: \"✓\";
  4340.             position: absolute;
  4341.             top: 3px; right: 6px;
  4342.             color: #1a6fcf;
  4343.             font-size: 13px;
  4344.             font-weight: bold;
  4345.         }
  4346.         /* ---- 2. ボタン式ラジオ(画像なし・8個以内)---- */
  4347.         .rp-btn-group {
  4348.             display: flex;
  4349.             flex-wrap: wrap;
  4350.             gap: 8px;
  4351.             margin-bottom: 4px;
  4352.             max-width: 100%;
  4353.             min-width: 0;
  4354.         }
  4355.         .rp-btn {
  4356.             cursor: pointer;
  4357.             padding: 8px 14px;
  4358.             border: 2px solid #ddd;
  4359.             border-radius: 10px;
  4360.             font-size: 13px;
  4361.             color: #333;
  4362.             background: #fff;
  4363.             transition: border-color 0.2s, background 0.2s;
  4364.             white-space: nowrap;
  4365.             max-width: 100%;
  4366.             overflow: hidden;
  4367.             text-overflow: ellipsis;
  4368.         }
  4369.         .rp-btn:hover { border-color: #999; }
  4370.         .rp-btn.is-selected {
  4371.             border-color: #1a6fcf;
  4372.             color: #1a6fcf;
  4373.             font-weight: bold;
  4374.             background: #f0f6ff;
  4375.         }
  4376.         .rp-btn input[type=\"radio\"] { display: none; }
  4377.         /* ---- ボタン群が3行以上になる場合は1行横スクロール ---- */
  4378.         .rp-btn-group.is-scroll,
  4379.         .opt-btn-group.is-scroll {
  4380.             flex-wrap: nowrap;
  4381.             overflow-x: auto;
  4382.             overflow-y: hidden;
  4383.             -webkit-overflow-scrolling: touch;
  4384.             scrollbar-width: thin;
  4385.             padding-bottom: 6px;
  4386.         }
  4387.         .rp-btn-group.is-scroll::-webkit-scrollbar,
  4388.         .opt-btn-group.is-scroll::-webkit-scrollbar {
  4389.             height: 6px;
  4390.         }
  4391.         .rp-btn-group.is-scroll::-webkit-scrollbar-thumb,
  4392.         .opt-btn-group.is-scroll::-webkit-scrollbar-thumb {
  4393.             background: #c0c0c0;
  4394.             border-radius: 3px;
  4395.         }
  4396.         .rp-btn-group.is-scroll > .rp-btn,
  4397.         .opt-btn-group.is-scroll > .opt-btn {
  4398.             flex: 0 0 auto;
  4399.         }
  4400.         /* ---- 3. プルダウン(画像なし・9個以上)---- */
  4401.         .rp-select-wrap {
  4402.             margin-bottom: 4px;
  4403.         }
  4404.         .rp-select {
  4405.             width: 100%;
  4406.             max-width: 420px;
  4407.             padding: 8px 12px;
  4408.             border: 2px solid #ddd;
  4409.             border-radius: 10px;
  4410.             font-size: 13px;
  4411.             color: #333;
  4412.             background: #fff;
  4413.             appearance: none;
  4414.             background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E\");
  4415.             background-repeat: no-repeat;
  4416.             background-position: right 12px center;
  4417.             cursor: pointer;
  4418.         }
  4419.         .rp-select:focus {
  4420.             outline: none;
  4421.             border-color: #1a6fcf;
  4422.         }
  4423.         /* ---- オプション選択ボタン(枠線ラジオ)---- */
  4424.         .opt-btn-group {
  4425.             display: flex;
  4426.             flex-wrap: wrap;
  4427.             gap: 8px;
  4428.             padding: 6px 0;
  4429.             max-width: 100%;
  4430.             min-width: 0;
  4431.         }
  4432.         .opt-btn {
  4433.             cursor: pointer;
  4434.             padding: 7px 14px;
  4435.             border: 2px solid #ddd;
  4436.             border-radius: 10px;
  4437.             font-size: 13px;
  4438.             color: #333;
  4439.             background: #fff;
  4440.             transition: border-color 0.2s, background 0.2s;
  4441.             white-space: nowrap;
  4442.             max-width: 100%;
  4443.             overflow: hidden;
  4444.             text-overflow: ellipsis;
  4445.         }
  4446.         .opt-btn:hover { border-color: #999; }
  4447.         .opt-btn.is-selected {
  4448.             border-color: #1a6fcf;
  4449.             color: #1a6fcf;
  4450.             font-weight: bold;
  4451.             background: #f0f6ff;
  4452.         }
  4453.         .opt-btn input[type=\"radio\"] { display: none; }
  4454.         /* ============================================
  4455.            施工エリア案内
  4456.         ============================================ */
  4457.         .ec-areaNotice {
  4458.             margin: 16px 0;
  4459.             padding: 16px 20px;
  4460.             background: #f8f9fa;
  4461.             border-left: 4px solid #1a6fcf;
  4462.             border-radius: 0 8px 8px 0;
  4463.         }
  4464.         .ec-areaNotice__inner {
  4465.             display: flex;
  4466.             align-items: flex-start;
  4467.             gap: 12px;
  4468.         }
  4469.         .ec-areaNotice__icon {
  4470.             font-size: 22px;
  4471.             line-height: 1;
  4472.             flex-shrink: 0;
  4473.             margin-top: 2px;
  4474.         }
  4475.         .ec-areaNotice__body {
  4476.             flex: 1;
  4477.         }
  4478.         .ec-areaNotice__title {
  4479.             font-size: 13px;
  4480.             font-weight: bold;
  4481.             color: #1a6fcf;
  4482.             margin: 0 0 6px;
  4483.         }
  4484.         .ec-areaNotice__text {
  4485.             font-size: 13px;
  4486.             color: #444;
  4487.             line-height: 1.7;
  4488.             margin: 0;
  4489.         }
  4490.         .ec-areaNotice__text strong {
  4491.             color: #222;
  4492.         }
  4493.         .ec-areaNotice__link {
  4494.             display: inline-block;
  4495.             margin-top: 8px;
  4496.             font-size: 12px;
  4497.             color: #1a6fcf;
  4498.             text-decoration: underline;
  4499.         }
  4500.         .ec-areaNotice__link:hover {
  4501.             color: #0d4fa0;
  4502.         }
  4503.         /* ============================================
  4504.            SNSシェア + ブランド名 タイトル行
  4505.         ============================================ */
  4506.         .ec-productRole__titleRow {
  4507.             display: flex;
  4508.             align-items: center;
  4509.             justify-content: space-between;
  4510.             gap: 8px;
  4511.             margin-bottom: 4px;
  4512.         }
  4513.         .ec-productRole__titleRow .ec-headingTitle {
  4514.             margin: 0;
  4515.             flex: 1;
  4516.             font-size: 18px;
  4517.         }
  4518.         .ec-share-inline {
  4519.             display: flex;
  4520.             align-items: center;
  4521.             gap: 8px;
  4522.             flex-shrink: 0;
  4523.         }
  4524.         @media (max-width: 767px) {
  4525.             /* maker_area の float を解除して独立表示 */
  4526.             #maker_area {
  4527.                 float: none !important;
  4528.                 width: auto !important;
  4529.                 height: auto !important;
  4530.                 display: block;
  4531.                 margin-bottom: 4px;
  4532.             }
  4533.             /* タイトル行: 商品名が全幅を占有しSNSは右寄せ下段 */
  4534.             .ec-productRole__titleRow {
  4535.                 flex-wrap: wrap;
  4536.                 clear: both;
  4537.             }
  4538.             .ec-productRole__titleRow .ec-headingTitle {
  4539.                 flex: 1 1 100%;
  4540.                 font-size: 16px;
  4541.             }
  4542.             .ec-share-inline {
  4543.                 flex: 0 0 auto;
  4544.                 margin-left: auto;
  4545.             }
  4546.         }
  4547.         .ec-share-inline a {
  4548.             display: flex;
  4549.             align-items: center;
  4550.             justify-content: center;
  4551.             width: 32px;
  4552.             height: 32px;
  4553.             border-radius: 50%;
  4554.             font-size: 15px;
  4555.             color: #fff;
  4556.             text-decoration: none;
  4557.             transition: opacity 0.2s;
  4558.         }
  4559.         .ec-share-inline a:hover { opacity: 0.8; }
  4560.         .ec-share-inline .share-twitter  { background: #000; }
  4561.         .ec-share-inline .share-facebook { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
  4562.         .ec-share-inline .share-line     { background: #06c755; }
  4563.         /* description_detail下のシェアブロックはPC/スマホ共通で非表示(タイトル行に移動) */
  4564.         .ec-productRole__share { display: none; }
  4565.         /* ============================================
  4566.            PC用: 現在のお見積り額カード強調
  4567.         ============================================ */
  4568.         @media (min-width: 768px) {
  4569.             .mitsumori-card-pc {
  4570.                 border: 2px solid #1a6fcf !important;
  4571.                 border-radius: 10px !important;
  4572.                 box-shadow: 0 4px 16px rgba(26,111,207,0.18) !important;
  4573.                 margin-top: 20px;
  4574.                 overflow: hidden;
  4575.                 background: linear-gradient(135deg, #1a6fcf, #0d4fa0) !important;
  4576.             }
  4577.             .mitsumori-card-pc .card-header {
  4578.                 background: linear-gradient(135deg, #1a6fcf, #0d4fa0) !important;
  4579.                 color: #fff !important;
  4580.                 padding: 14px 16px !important;
  4581.                 border-bottom: none !important;
  4582.             }
  4583.             .mitsumori-card-pc .card-title {
  4584.                 color: #fff !important;
  4585.                 font-size: 15px !important;
  4586.                 font-weight: bold !important;
  4587.                 margin: 0 !important;
  4588.             }
  4589.             .mitsumori-card-pc #mitsumori_message {
  4590.                 font-size: 22px !important;
  4591.                 font-weight: bold !important;
  4592.                 color: #fff !important;
  4593.             }
  4594.             .mitsumori-card-pc .btn-tool {
  4595.                 color: #fff !important;
  4596.             }
  4597.             /* 合計行を大きく強調 */
  4598.             .mitsumori-card-pc .nav-item:first-child .nav-link {
  4599.                 font-size: 16px !important;
  4600.                 font-weight: bold !important;
  4601.                 color: #c00 !important;
  4602.                 background: #fff8f8 !important;
  4603.                 padding: 12px 16px !important;
  4604.             }
  4605.             .mitsumori-card-pc .nav-item:first-child #mitsumori_goukei {
  4606.                 font-size: 20px !important;
  4607.                 font-weight: bold !important;
  4608.                 color: #c00 !important;
  4609.             }
  4610.             /* card-body(明細リスト)を白背景に */
  4611.             .mitsumori-card-pc .card-body {
  4612.                 background: #fff !important;
  4613.             }
  4614.             .mitsumori-card-pc .card-footer {
  4615.                 background: #f8faff !important;
  4616.                 border-top: 1px solid #dce8fb !important;
  4617.                 padding: 12px 16px !important;
  4618.             }
  4619.         }
  4620.         @media (max-width: 767px) {
  4621.             /* スマホでは現在のお見積り額カードの強調スタイルをすべてリセット */
  4622.             .mitsumori-card-pc {
  4623.                 border: none !important;
  4624.                 border-radius: 0 !important;
  4625.                 box-shadow: none !important;
  4626.                 margin-top: 0 !important;
  4627.                 overflow: visible !important;
  4628.                 background: none !important;
  4629.             }
  4630.             .mitsumori-card-pc .card-header {
  4631.                 background: none !important;
  4632.                 color: inherit !important;
  4633.                 padding: inherit !important;
  4634.                 border-bottom: inherit !important;
  4635.             }
  4636.             .mitsumori-card-pc .card-title { color: inherit !important; }
  4637.             .mitsumori-card-pc #mitsumori_message { font-size: inherit !important; color: inherit !important; }
  4638.             .mitsumori-card-pc .btn-tool { color: inherit !important; }
  4639.             /* 折りたたみトグルボタン */
  4640.             .btn-mitsumori-toggle {
  4641.                 background: none !important;
  4642.                 border: 1px solid #aaa !important;
  4643.                 border-radius: 4px !important;
  4644.                 padding: 2px 8px !important;
  4645.                 font-size: 12px !important;
  4646.                 color: #333 !important;
  4647.                 line-height: 1.4 !important;
  4648.             }
  4649.             .btn-mitsumori-toggle .toggle-icon {
  4650.                 display: inline-block;
  4651.                 transition: transform 0.2s;
  4652.             }
  4653.             /* 展開状態: ▼→▲ */
  4654.             .card:not(.collapsed-card) .btn-mitsumori-toggle .toggle-icon::before {
  4655.                 content: \"▲ 閉じる\";
  4656.             }
  4657.             .card:not(.collapsed-card) .btn-mitsumori-toggle .toggle-icon {
  4658.                 display: none;
  4659.             }
  4660.             .card:not(.collapsed-card) .btn-mitsumori-toggle::after {
  4661.                 content: \"▲ 閉じる\";
  4662.                 font-size: 12px;
  4663.             }
  4664.             .mitsumori-card-pc .nav-item:first-child .nav-link {
  4665.                 font-size: inherit !important;
  4666.                 color: inherit !important;
  4667.                 background: none !important;
  4668.                 padding: inherit !important;
  4669.             }
  4670.             .mitsumori-card-pc .nav-item:first-child #mitsumori_goukei {
  4671.                 font-size: inherit !important;
  4672.                 color: inherit !important;
  4673.             }
  4674.             .mitsumori-card-pc .card-footer {
  4675.                 background: none !important;
  4676.                 border-top: inherit !important;
  4677.                 padding: inherit !important;
  4678.             }
  4679.             /* 横スクロール禁止 */
  4680.             body, html {
  4681.                 overflow-x: hidden;
  4682.                 max-width: 100vw;
  4683.             }
  4684.             /* ボタンの折り返しを許可(nowrapが原因で横スクロール発生するため) */
  4685.             .opt-btn,
  4686.             .rp-btn {
  4687.                 white-space: normal;
  4688.                 word-break: break-all;
  4689.             }
  4690.             /* エリア案内: スマホでコンパクト */
  4691.             .ec-areaNotice {
  4692.                 margin: 8px 0;
  4693.                 padding: 8px 10px;
  4694.                 border-left-width: 3px;
  4695.                 cursor: pointer;
  4696.             }
  4697.             .ec-areaNotice__inner {
  4698.                 flex-direction: row;
  4699.                 gap: 8px;
  4700.                 align-items: flex-start;
  4701.             }
  4702.             .ec-areaNotice__icon { font-size: 15px; }
  4703.             /* タイトル行: 展開トグル */
  4704.             .ec-areaNotice__title {
  4705.                 font-size: 11px;
  4706.                 margin-bottom: 3px;
  4707.                 display: flex;
  4708.                 justify-content: space-between;
  4709.                 align-items: center;
  4710.             }
  4711.             .ec-areaNotice__title::after {
  4712.                 content: \"▼\";
  4713.                 font-size: 9px;
  4714.                 color: #888;
  4715.                 margin-left: 6px;
  4716.                 transition: transform 0.2s;
  4717.             }
  4718.             .ec-areaNotice.is-open .ec-areaNotice__title::after {
  4719.                 transform: rotate(180deg);
  4720.             }
  4721.             /* 折りたたみ対象: 閉じた状態では非表示 */
  4722.             .ec-areaNotice__detail {
  4723.                 display: none;
  4724.             }
  4725.             .ec-areaNotice.is-open .ec-areaNotice__detail {
  4726.                 display: block;
  4727.             }
  4728.             .ec-areaNotice__text { font-size: 11px; line-height: 1.5; }
  4729.             .ec-areaNotice__text br { display: none; }
  4730.             .ec-areaNotice__link { font-size: 11px; margin-top: 3px; }
  4731.             .rp-card { width: calc(33.333% - 6px); min-width: 80px; }
  4732.             
  4733.             #sp-mitsumori-bar {
  4734.                 display: flex;
  4735.                 position: fixed;
  4736.                 bottom: 0;
  4737.                 left: 0;
  4738.                 right: 0;
  4739.                 z-index: 1000;
  4740.                 background: #fff;
  4741.                 border-top: 2px solid #e0e0e0;
  4742.                 box-shadow: 0 -2px 8px rgba(0,0,0,0.12);
  4743.                 align-items: center;
  4744.                 padding: 8px 12px;
  4745.                 gap: 10px;
  4746.             }
  4747.             #sp-mitsumori-bar .sp-bar__label {
  4748.                 font-size: 11px;
  4749.                 color: #666;
  4750.                 white-space: nowrap;
  4751.             }
  4752.             #sp-mitsumori-bar .sp-bar__price {
  4753.                 font-size: 18px;
  4754.                 font-weight: bold;
  4755.                 color: #c00;
  4756.                 flex: 1;
  4757.             }
  4758.             #sp-mitsumori-bar .sp-bar__btn {
  4759.                 font-size: 12px;
  4760.                 padding: 8px 12px;
  4761.                 background: #333;
  4762.                 color: #fff;
  4763.                 border: none;
  4764.                 border-radius: 6px;
  4765.                 white-space: nowrap;
  4766.                 cursor: pointer;
  4767.             }
  4768.             /* 下部バーの高さ分ページ下部にpaddingを追加 */
  4769.             body {
  4770.                 padding-bottom: 64px;
  4771.             }
  4772.         }
  4773.     </style>
  4774. {% endblock %}
  4775. {% block javascript %}
  4776.     <script>
  4777.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  4778.         // 規格2に選択肢を割り当てる。
  4779.         function fnSetClassCategories(form, classcat_id2_selected) {
  4780.             var \$form = \$(form);
  4781.             var product_id = \$form.find('input[name=product_id]').val();
  4782.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  4783.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  4784.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  4785.         }
  4786.         {% if form.classcategory_id2 is defined %}
  4787.         fnSetClassCategories(
  4788.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  4789.         );
  4790.         {% elseif form.classcategory_id1 is defined %}
  4791.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  4792.         {% endif %}
  4793.     </script>
  4794.     <script>
  4795.         \$(function() {
  4796.             // bfcache無効化
  4797.             \$(window).bind('pageshow', function(event) {
  4798.                 if (event.originalEvent.persisted) {
  4799.                     location.reload(true);
  4800.                 }
  4801.             });
  4802.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  4803.             // img タグに width, height が付与されている.
  4804.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  4805.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  4806.             \$('.ec-grid2__cell').hide();
  4807.             var removeSize = function () {
  4808.                 \$('.slide-item').height('');
  4809.                 \$('.slide-item img')
  4810.                     .removeAttr('width')
  4811.                     .removeAttr('height')
  4812.                     .removeAttr('style');
  4813.             };
  4814.             var slickInitial = function(slick) {
  4815.                 \$('.ec-grid2__cell').fadeIn(1500);
  4816.                 var baseHeight = \$(slick.target).height();
  4817.                 var baseWidth = \$(slick.target).width();
  4818.                 var rate = baseWidth / baseHeight;
  4819. \t\t\t\tif(baseHeight * rate < 400){
  4820. \t                \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  4821. \t\t\t\t}else{
  4822. \t                \$('.slide-item').height(400); // 余白を削除する
  4823. \t\t\t\t}
  4824.                 // transform を使用することでCLSの影響を受けないようにする
  4825.                 \$('.slide-item img')
  4826.                     .css(
  4827.                         {
  4828.                             'transform-origin': 'top left',
  4829.                             'transform': 'scaleY(' + rate + ')',
  4830.                             'transition': 'transform .1s'
  4831.                         }
  4832.                     );
  4833.                 // 正しいサイズに近くなったら属性を解除する
  4834.                 setTimeout(removeSize, 500);
  4835.             };
  4836.             \$('.item_visual').on('init', slickInitial);
  4837.             // リサイズ時は CLS の影響を受けないため属性を解除する
  4838.             \$(window).resize(removeSize);
  4839.             \$('.item_visual').slick({
  4840.                 dots: false,
  4841.                 arrows: true,
  4842.                 responsive: [{
  4843.                     breakpoint: 768,
  4844.                     settings: {
  4845.                         dots: true,
  4846.                 \t\tarrows: false
  4847.                     }
  4848.                 }]
  4849.             });
  4850.             \$('.slideThumb').on('click', function() {
  4851.                 var index = \$(this).attr('data-index');
  4852.                 \$('.item_visual').slick('slickGoTo', index, false);
  4853.             })
  4854.         });
  4855.     </script>
  4856.     <script>
  4857.         \$(function() {
  4858.             \$('.add-cart').on('click', function(event) {
  4859.                 {% if form.classcategory_id1 is defined %}
  4860.                 // 規格1フォームの必須チェック
  4861.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  4862.                     \$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  4863.                     return true;
  4864.                 } else {
  4865.                     \$('#classcategory_id1')[0].setCustomValidity('');
  4866.                 }
  4867.                 {% endif %}
  4868.                 {% if form.classcategory_id2 is defined %}
  4869.                 // 規格2フォームの必須チェック
  4870.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  4871.                     \$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  4872.                     return true;
  4873.                 } else {
  4874.                     \$('#classcategory_id2')[0].setCustomValidity('');
  4875.                 }
  4876.                 {% endif %}
  4877.                 // タイプ2: カート送信直前に set_count を quantity に同期
  4878.                 if(\$('#set_count').length){
  4879.                     var _sc = parseInt(\$('#set_count').val()) || 1;
  4880.                     \$('#quantity').val(_sc);
  4881.                     \$('input[name=\"quantity\"]').val(_sc);
  4882.                 }
  4883.                 // 個数フォームのチェック
  4884.                 if (\$('#quantity').val() < 1) {
  4885.                     \$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
  4886.                     return true;
  4887.                 } else {
  4888.                     \$('#quantity')[0].setCustomValidity('');
  4889.                 }
  4890.                 event.preventDefault();
  4891.                 \$form = \$('#form1');
  4892.                 \$.ajax({
  4893.                     url: \$form.attr('action'),
  4894.                     type: \$form.attr('method'),
  4895.                     data: \$form.serialize(),
  4896.                     dataType: 'json',
  4897.                     beforeSend: function(xhr, settings) {
  4898.                         // Buttonを無効にする
  4899.                         \$('.add-cart').prop('disabled', true);
  4900.                     }
  4901.                 }).done(function(data) {
  4902.                     // レスポンス内のメッセージをalertで表示
  4903.                     \$.each(data.messages, function() {
  4904.                         \$('#ec-modal-header').text(this);
  4905.                     });
  4906.                     \$('.ec-modal').show()
  4907.                     // カートブロックを更新する
  4908.                     \$.ajax({
  4909.                         url: \"{{ url('block_cart') }}\",
  4910.                         type: 'GET',
  4911.                         dataType: 'html'
  4912.                     }).done(function(html) {
  4913.                         \$('.ec-headerRole__cart').html(html);
  4914.                     });
  4915.                 }).fail(function(data) {
  4916.                     alert('{{ '施工検討リストへの追加に失敗しました。'|trans }}');
  4917.                 }).always(function(data) {
  4918.                     // Buttonを有効にする
  4919.                     \$('.add-cart').prop('disabled', false);
  4920.                 });
  4921.             });
  4922.         });
  4923.         \$('.ec-modal-wrap').on('click', function(e) {
  4924.             // モーダル内の処理は外側にバブリングさせない
  4925.             e.stopPropagation();
  4926.         });
  4927.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  4928.             \$('.ec-modal').hide()
  4929.         });
  4930. \t\tvar pw = \"{% if mitsumori_json %}{{ mitsumori_json.pw }}{% endif %}\";
  4931. \t\tvar pd = \"{% if mitsumori_json %}{{ mitsumori_json.pd }}{% endif %}\";
  4932. \t\tvar ph = \"{% if mitsumori_json %}{{ mitsumori_json.ph }}{% endif %}\";
  4933. \t\tvar pm = \"{% if mitsumori_json %}{{ mitsumori_json.pm }}{% endif %}\";
  4934. \t\tvar pc = \"{% if mitsumori_json %}{{ mitsumori_json.pc }}{% endif %}\";
  4935. \t\tvar op0 = \"{% if mitsumori_json %}{{ mitsumori_json.op[0] }}{% endif %}\";
  4936. \t\tvar op1 = \"{% if mitsumori_json %}{{ mitsumori_json.op[1] }}{% endif %}\";
  4937. \t\tvar op2 = \"{% if mitsumori_json %}{{ mitsumori_json.op[2] }}{% endif %}\";
  4938. \t\tvar op3 = \"{% if mitsumori_json %}{{ mitsumori_json.op[3] }}{% endif %}\";
  4939. \t\tvar op4 = \"{% if mitsumori_json %}{{ mitsumori_json.op[4] }}{% endif %}\";
  4940. \t\tvar op5 = \"{% if mitsumori_json %}{{ mitsumori_json.op[5] }}{% endif %}\";
  4941. \t\tvar op6 = \"{% if mitsumori_json %}{{ mitsumori_json.op[6] }}{% endif %}\";
  4942. \t\tvar op7 = \"{% if mitsumori_json %}{{ mitsumori_json.op[7] }}{% endif %}\";
  4943. \t\tvar op8 = \"{% if mitsumori_json %}{{ mitsumori_json.op[8] }}{% endif %}\";
  4944. \t\tvar op9 = \"{% if mitsumori_json %}{{ mitsumori_json.op[9] }}{% endif %}\";
  4945. \t\tvar op10 = \"{% if mitsumori_json %}{{ mitsumori_json.op[10] }}{% endif %}\";
  4946. \t\tconst formatter = new Intl.NumberFormat('ja-JP');
  4947. \t\tfunction mitsumori_simulation(type , value_id){
  4948. \t\t\tvar pp = {{ pp|raw }};
  4949. \t\t\tif(type == \"pw\"){
  4950. \t\t\t\tpw = \$('#'+value_id).val();
  4951. \t\t\t}
  4952. \t\t\tif(type == \"pd\"){
  4953. \t\t\t\tpd = \$('#'+value_id).val();
  4954. \t\t\t}
  4955. \t\t\tif(type == \"ph\"){
  4956. \t\t\t\tph = \$('#'+value_id).val();
  4957. \t\t\t}
  4958. \t\t\tif(type == \"pm\"){
  4959. \t\t\t\tpm = \$('#'+value_id).val();
  4960. \t\t\t}
  4961. \t\t\tif(type == \"pc\"){
  4962. \t\t\t\tpc = \$('#'+value_id).val();
  4963. \t\t\t}
  4964. \t\t\tif(type == \"op0\"){ op0 = \$('#'+value_id).val(); }
  4965. \t\t\tif(type == \"op1\"){ op1 = \$('#'+value_id).val(); }
  4966. \t\t\tif(type == \"op2\"){ op2 = \$('#'+value_id).val(); }
  4967. \t\t\tif(type == \"op3\"){ op3 = \$('#'+value_id).val(); }
  4968. \t\t\tif(type == \"op4\"){ op4 = \$('#'+value_id).val(); }
  4969. \t\t\tif(type == \"op5\"){ op5 = \$('#'+value_id).val(); }
  4970. \t\t\tif(type == \"op6\"){ op6 = \$('#'+value_id).val(); }
  4971. \t\t\tif(type == \"op7\"){ op7 = \$('#'+value_id).val(); }
  4972. \t\t\tif(type == \"op8\"){ op8 = \$('#'+value_id).val(); }
  4973. \t\t\tif(type == \"op9\"){ op9 = \$('#'+value_id).val(); }
  4974. \t\t\tif(type == \"op10\"){ op10 = \$('#'+value_id).val(); }
  4975. \t\t\t// op系: ボタンの is-selected を選択中のものに付け替え + radio チェック
  4976. \t\t\tif(/^op\\d+\$/.test(type)) {
  4977. \t\t\t\tvar \$clicked = \$('#' + value_id);
  4978. \t\t\t\t\$clicked.prop('checked', true);
  4979. \t\t\t\tvar groupName = \$clicked.attr('name');
  4980. \t\t\t\t\$('input[name=\"' + groupName + '\"]').closest('.opt-btn').removeClass('is-selected');
  4981. \t\t\t\t\$clicked.closest('.opt-btn').addClass('is-selected');
  4982. \t\t\t\t// ラベルの選択値テキスト更新
  4983. \t\t\t\tvar \$group = \$clicked.closest('.form-group');
  4984. \t\t\t\tvar \$label = \$group.find('.rp-section-label');
  4985. \t\t\t\tif (\$label.length) {
  4986. \t\t\t\t\tvar labelText = \$label.text().split(':')[0].trim();
  4987. \t\t\t\t\t\$label.html(labelText + ': <span>' + \$clicked.val() + '</span>');
  4988. \t\t\t\t}
  4989. \t\t\t}
  4990. \t\t\tif(pm == \"\"){
  4991. \t\t\t\t\$('#mitsumori_message').text(\"素材を選択してください\");
  4992. \t\t\t}
  4993. \t\t\tif(ph == \"\"){
  4994. \t\t\t\t\$('#mitsumori_message').text(\"高さを選択してください\");
  4995. \t\t\t}
  4996. \t\t\tif(pd == \"\"){
  4997. \t\t\t\t\$('#mitsumori_message').text(\"奥行きを選択してください\");
  4998. \t\t\t}
  4999. \t\t\tif(pw == \"\"){
  5000. \t\t\t\t\$('#mitsumori_message').text(\"幅を選択してください\");
  5001. \t\t\t}
  5002. \t\t\tif(pc == \"\"){
  5003. \t\t\t\t\$('#mitsumori_message').text(\"カラーを選択してください\");
  5004. \t\t\t\t\$('#mitsumori_btn').hide();
  5005. \t\t\t\t\$('#mitsumori_goukei').text(\"---円\");
  5006. \t\t\t\t\$('#mitsumori_off').text(\"---円\");
  5007. \t\t\t\t\$('#mitsumori_price').text(\"---円\");
  5008. \t\t\t\t\$('#maker_price').text(\"---円\");
  5009. \t\t\t\t\$('#mitsumori_ct').text(\"---円\");
  5010. \t\t\t\t\$('#mitsumori_option').text(\"---円\");
  5011. \t\t\t}
  5012. \t\t\tif(pw != \"\" && pd != \"\" && ph != \"\" && pm != \"\" && pc != \"\"){
  5013. \t\t\t\t\$('#mitsumori_btn').show();
  5014. \t\t\t\tvar pp_matched = false;
  5015. \t\t\t\tpp.forEach((el) => {
  5016. \t\t\t\t  if((pw == el.w || pw == \"指定なし\") && (pd == el.d || pd == \"指定なし\") && (ph == el.h || ph == \"指定なし\") && (pm == el.m || pm == \"指定なし\") && (pc == el.c || pc == \"指定なし\")){
  5017. \t\t\t\t\tpp_matched = true;
  5018. \t\t\t\t\tif(op0 == \"商品購入のみ\" || op1 == \"商品購入のみ\" || op2 == \"商品購入のみ\" || op3 == \"商品購入のみ\" || op4 == \"商品購入のみ\"
  5019. \t\t\t\t\t\t|| op5 == \"商品購入のみ\" || op6 == \"商品購入のみ\" || op7 == \"商品購入のみ\" || op8 == \"商品購入のみ\" || op9 == \"商品購入のみ\"){
  5020. \t\t\t\t\t  \t\$('#mitsumori_message').text(formatter.format(parseInt(el.price)) + \"円\");
  5021. \t\t\t\t\t  \t\$('#mitsumori_goukei').text(formatter.format(parseInt(el.price)) + \"円\");
  5022. \t\t\t\t\t  \t\$('#mitsumori_off').text(formatter.format(parseInt(el.price) - parseInt(el.maker_price)) + \"円\");
  5023. \t\t\t\t\t  \t\$('#mitsumori_price').text(formatter.format(parseInt(el.price)) + \"円\");
  5024. \t\t\t\t\t  \t\$('#maker_price').text(formatter.format(parseInt(el.maker_price)) + \"円\");
  5025. \t\t\t\t\t  \t\$('#mitsumori_ct').text(\"0円\");
  5026. \t\t\t\t\t  \t\$('#mitsumori_option').text(\"0円\");
  5027. \t\t\t\t\t  \t\$('#mitsumori_kei').text(formatter.format(parseInt(el.price)) + \"円\");
  5028. \t\t\t\t\t  \t\$('#mitsumori_price_01').text(formatter.format(parseInt(el.price)) + \"円\");
  5029. \t\t\t\t\t  \t\$('#mitsumori_price_02').text(formatter.format(parseInt(el.price)) + \"円\");
  5030. \t\t\t\t\t  \t\$('#mitsumori_ct_01').text(\"0円\");
  5031. \t\t\t\t\t  \t\$('#mitsumori_ct_02').text(\"0円\");
  5032. \t\t\t\t\t  \t\$('#mitsumori_goukei_02').text(formatter.format(parseInt(el.price)) + \"円\");
  5033. \t\t\t\t\t\tmitsumori_goukei = (parseInt(el.price));
  5034. \t\t\t\t\t\tshoukei = mitsumori_goukei / 1.1;
  5035. \t\t\t\t\t\ttax = parseInt(mitsumori_goukei - shoukei);
  5036. \t\t\t\t\t  \t\$('#mitsumori_shoukei').text(formatter.format(parseInt(shoukei)) + \"円\");
  5037. \t\t\t\t\t  \t\$('#mitsumori_tax').text(formatter.format(parseInt(tax)) + \"円\");
  5038. \t\t\t\t\t}else{
  5039. \t\t\t\t\t  \t\$('#mitsumori_message').text(formatter.format(parseInt(el.price) + parseInt(el.ct)) + \"円\");
  5040. \t\t\t\t\t  \t\$('#mitsumori_goukei').text(formatter.format(parseInt(el.price) + parseInt(el.ct)) + \"円\");
  5041. \t\t\t\t\t  \t\$('#mitsumori_off').text(formatter.format(parseInt(el.price) - parseInt(el.maker_price)) + \"円\");
  5042. \t\t\t\t\t  \t\$('#mitsumori_price').text(formatter.format(parseInt(el.price)) + \"円\");
  5043. \t\t\t\t\t  \t\$('#maker_price').text(formatter.format(parseInt(el.maker_price)) + \"円\");
  5044. \t\t\t\t\t  \t\$('#mitsumori_ct').text(formatter.format(parseInt(el.ct)) + \"円\");
  5045. \t\t\t\t\t  \t\$('#mitsumori_option').text(\"0円\");
  5046. \t\t\t\t\t  \t\$('#mitsumori_kei').text(formatter.format(parseInt(el.price) + parseInt(el.ct)) + \"円\");
  5047. \t\t\t\t\t  \t\$('#mitsumori_price_01').text(formatter.format(parseInt(el.price)) + \"円\");
  5048. \t\t\t\t\t  \t\$('#mitsumori_price_02').text(formatter.format(parseInt(el.price)) + \"円\");
  5049. \t\t\t\t\t  \t\$('#mitsumori_ct_01').text(formatter.format(parseInt(el.ct)) + \"円\");
  5050. \t\t\t\t\t  \t\$('#mitsumori_ct_02').text(formatter.format(parseInt(el.ct)) + \"円\");
  5051. \t\t\t\t\t  \t\$('#mitsumori_goukei_02').text(formatter.format(parseInt(el.price) + parseInt(el.ct)) + \"円\");
  5052. \t\t\t\t\t\tmitsumori_goukei = (parseInt(el.price) + parseInt(el.ct));
  5053. \t\t\t\t\t\tshoukei = mitsumori_goukei / 1.1;
  5054. \t\t\t\t\t\ttax = parseInt(mitsumori_goukei - shoukei);
  5055. \t\t\t\t\t  \t\$('#mitsumori_shoukei').text(formatter.format(parseInt(shoukei)) + \"円\");
  5056. \t\t\t\t\t  \t\$('#mitsumori_tax').text(formatter.format(parseInt(tax)) + \"円\");
  5057. \t\t\t\t\t}
  5058. \t\t\t\t  }
  5059. \t\t\t\t});
  5060. \t\t\t\tif (!pp_matched) {
  5061. \t\t\t\t\t\$('#mitsumori_message').text(\"この組み合わせは対応しておりません\");
  5062. \t\t\t\t\t\$('#mitsumori_btn').hide();
  5063. \t\t\t\t\t\$('#mitsumori_goukei').text(\"---円\");
  5064. \t\t\t\t\t\$('#mitsumori_off').text(\"---円\");
  5065. \t\t\t\t\t\$('#mitsumori_price').text(\"---円\");
  5066. \t\t\t\t\t\$('#maker_price').text(\"---円\");
  5067. \t\t\t\t\t\$('#mitsumori_ct').text(\"---円\");
  5068. \t\t\t\t\t\$('#mitsumori_option').text(\"---円\");
  5069. \t\t\t\t\t\$('#mitsumori_kei').text(\"---円\");
  5070. \t\t\t\t\t\$('#mitsumori_shoukei').text(\"---円\");
  5071. \t\t\t\t\t\$('#mitsumori_tax').text(\"---円\");
  5072. \t\t\t\t}\t
  5073. \t\t\t\t// タイプ5: ステップ・フェンス・面積の現在値を取得
  5074. \t\t\t\tif(\$('input[name=deck_step]:checked').length){ deck_step = \$('input[name=deck_step]:checked').val(); }
  5075. \t\t\t\tif(\$('input[name=deck_fence]:checked').length){ deck_fence = \$('input[name=deck_fence]:checked').val(); }
  5076. \t\t\t\t// タイプ2: 窓サイズ・窓タイプ・ガラスタイプ・セット数
  5077. \t\t\t\tvar mado_w_val     = \$('#mado_w').val()     || '';
  5078. \t\t\t\tvar mado_h_val     = \$('#mado_h').val()     || '';
  5079. \t\t\t\tvar mado_type_val  = \$('input[name=mado_type]:checked').val()  || '';
  5080. \t\t\t\tvar glass_type_val = \$('input[name=glass_type]:checked').val() || '';
  5081. \t\t\t\tvar set_count_val  = parseInt(\$('#set_count').val()) || 1;
  5082. \t\t\t\t// タイプ3: 台数
  5083. \t\t\t\tvar daisu_val = parseInt(\$('#daisu').val()) || 1;
  5084. \t\t\t\t// タイプ4・6: 枚数
  5085. \t\t\t\tvar maisu_val = parseInt(\$('#maisu').val()) || 1;
  5086. \t\t\t\t// タイプ5: 面積
  5087. \t\t\t\tvar area_val = \$('#area').val() || '';
  5088. \t\t\t\t// sale_type
  5089. \t\t\t\tvar sale_type_id = {{ ProductClass.SaleType.id }};
  5090. \t\t\t\tvar mitsumori_json = { \"mitsumori_goukei\": \$('#mitsumori_goukei').text(),
  5091. \t\t\t\t\t\t\t\t\t\t\"mitsumori_goukei_02\": \$('#mitsumori_goukei_02').text(),
  5092. \t\t\t\t\t\t\t\t\t\t\"mitsumori_price\": \$('#mitsumori_price').text(),
  5093. \t\t\t\t\t\t\t\t\t\t\"maker_price\": \$('#maker_price').text(),
  5094. \t\t\t\t\t\t\t\t\t\t\"mitsumori_off\": \$('#mitsumori_off').text(),
  5095. \t\t\t\t\t\t\t\t\t\t\"mitsumori_ct\": \$('#mitsumori_ct').text(),
  5096. \t\t\t\t\t\t\t\t\t\t\"mitsumori_option\": \$('#mitsumori_option').text(),
  5097. \t\t\t\t\t\t\t\t\t\t\"product_id\": {{ Product.id }},
  5098. \t\t\t\t\t\t\t\t\t\t\"sale_type\": sale_type_id,
  5099. \t\t\t\t\t\t\t\t\t\t\"pw\": pw,
  5100. \t\t\t\t\t\t\t\t\t\t\"pd\": pd,
  5101. \t\t\t\t\t\t\t\t\t\t\"ph\": ph,
  5102. \t\t\t\t\t\t\t\t\t\t\"pm\": pm,
  5103. \t\t\t\t\t\t\t\t\t\t\"pc\": pc,
  5104. \t\t\t\t\t\t\t\t\t\t\"op\": [op0,op1,op2,op3,op4,op5,op6,op7,op8,op9,op10],
  5105. \t\t\t\t\t\t\t\t\t\t\"mado_w\":     mado_w_val,
  5106. \t\t\t\t\t\t\t\t\t\t\"mado_h\":     mado_h_val,
  5107. \t\t\t\t\t\t\t\t\t\t\"mado_type\":  mado_type_val,
  5108. \t\t\t\t\t\t\t\t\t\t\"glass_type\": glass_type_val,
  5109. \t\t\t\t\t\t\t\t\t\t\"set_count\":  set_count_val,
  5110. \t\t\t\t\t\t\t\t\t\t\"daisu\":      daisu_val,
  5111. \t\t\t\t\t\t\t\t\t\t\"maisu\":      maisu_val,
  5112. \t\t\t\t\t\t\t\t\t\t\"area\":       area_val,
  5113. \t\t\t\t\t\t\t\t\t\t\"deck_step\":  deck_step,
  5114. \t\t\t\t\t\t\t\t\t\t\"deck_fence\": deck_fence };
  5115. \t\t\t\t\$('#mitsumori_json').val(JSON.stringify(mitsumori_json));
  5116. \t\t\t\t
  5117. \t\t\t}
  5118. \t\t\t
  5119. \t\t}
  5120.         {% if color and color|length == 1 %}
  5121.             pc = \"指定なし\";
  5122. \t\t\t{% for cc in color %}{% if cc and cc['name'] %} pc = \"{{ cc['name'] }}\"; {% endif %}{% endfor %}
  5123. \t\t{% endif %}
  5124.         {% if p_w and (p_w|length == 1 or p_w|join == \"\") %}
  5125.             pw = \"指定なし\";
  5126. \t\t\t{% for pw in p_w %}{% if pw %} pw = \"{{ pw }}\"; {% endif %}{% endfor %}
  5127. \t\t{% endif %}
  5128.         {% if p_d and (p_d|length == 1 or p_d|join == \"\") %}
  5129.             pd = \"指定なし\";
  5130. \t\t\t{% for pd in p_d %}{% if pd %} pd = \"{{ pd }}\"; {% endif %}{% endfor %}
  5131. \t\t{% endif %}
  5132.         {% if p_h and (p_h|length == 1 or p_h|join == \"\") %}
  5133.             ph = \"指定なし\";
  5134. \t\t\t{% for ph in p_h %}{% if ph %} ph = \"{{ ph }}\"; {% endif %}{% endfor %}
  5135. \t\t{% endif %}
  5136.         {% if p_m and (p_m|length == 1 or p_m|join == \"\") %}
  5137.             pm = \"指定なし\";
  5138. \t\t\t{% for pm in p_m %}{% if pm %} pm = \"{{ pm }}\"; {% endif %}{% endfor %}
  5139. \t\t{% endif %}
  5140. \t\t// ページ読み込み時: タイプ別に quantity の初期値をセット
  5141. \t\t(function initQuantityByType(){
  5142. \t\t\tvar saleType = {{ ProductClass.SaleType.id }};
  5143. \t\t\tif(saleType == 2 && \$('#set_count').length){
  5144. \t\t\t\tvar _v = parseInt(\$('#set_count').val()) || 1;
  5145. \t\t\t\t\$('#quantity').val(_v);
  5146. \t\t\t\t\$('input[name=\"quantity\"]').val(_v);
  5147. \t\t\t} else if(saleType == 3 && \$('#daisu').length){
  5148. \t\t\t\t\$('#quantity').val(parseInt(\$('#daisu').val()) || 1);
  5149. \t\t\t} else if((saleType == 4 || saleType == 6) && \$('#maisu').length){
  5150. \t\t\t\t\$('#quantity').val(parseInt(\$('#maisu').val()) || 1);
  5151. \t\t\t} else if(saleType == 9 && \$('#quantity_only').length){
  5152. \t\t\t\t\$('#quantity').val(parseInt(\$('#quantity_only').val()) || 1);
  5153. \t\t\t}
  5154. \t\t})();
  5155. \t\t// type → ラベルのプレフィックス文字列
  5156. \t\tvar optLabelMap = {pc:'カラー', pw:'幅', pd:'奥行き', ph:'高さ', pm:'素材'};
  5157. \t\t// type → input[name]
  5158. \t\tvar optNameMap  = {pc:'color', pw:'pw', pd:'pd', ph:'ph', pm:'pm'};
  5159. \t\t// opt-btn用: 値を直接受け取るラッパー
  5160. \t\tfunction mitsumori_simulation_val(type, value) {
  5161. \t\t\tif (type === 'pc') pc = value;
  5162. \t\t\tif (type === 'pw') pw = value;
  5163. \t\t\tif (type === 'pd') pd = value;
  5164. \t\t\tif (type === 'ph') ph = value;
  5165. \t\t\tif (type === 'pm') pm = value;
  5166. \t\t\t// is-selected クラスを同グループ内で付け替え
  5167. \t\t\tvar inputName = optNameMap[type];
  5168. \t\t\tif (inputName) {
  5169. \t\t\t\tvar \$btns = \$('input[name=\"' + inputName + '\"]').closest('.opt-btn');
  5170. \t\t\t\t\$btns.removeClass('is-selected');
  5171. \t\t\t\t\$btns.filter(function(){
  5172. \t\t\t\t\treturn \$(this).find('input').val() === value;
  5173. \t\t\t\t}).addClass('is-selected');
  5174. \t\t\t}
  5175. \t\t\t// ラベル行の選択値テキストを更新(例: 「カラー: ブラック」)
  5176. \t\t\tvar labelPrefix = optLabelMap[type];
  5177. \t\t\tif (labelPrefix) {
  5178. \t\t\t\t// 対象のrp-section-labelを特定(input[name]を含む親を遡る)
  5179. \t\t\t\tvar \$group = \$('input[name=\"' + inputName + '\"]').first().closest('.form-group');
  5180. \t\t\t\tvar \$label = \$group.find('.rp-section-label');
  5181. \t\t\t\t\$label.html(labelPrefix + ': <span>' + value + '</span>');
  5182. \t\t\t}
  5183. \t\t\t// simulation本体を呼ぶ(value_idは空でOK、グローバル変数を使う)
  5184. \t\t\tmitsumori_simulation('', '');
  5185. \t\t}
  5186. \t\tmitsumori_simulation(\"\",\"\");
  5187. \t\t// ボタン群: 親幅を超える、または3行以上になる場合は is-scroll で1行横スクロール化
  5188. \t\tfunction applyBtnGroupScroll() {
  5189. \t\t\t\$('.rp-btn-group, .opt-btn-group').each(function() {
  5190. \t\t\t\tvar \$group = \$(this);
  5191. \t\t\t\t\$group.removeClass('is-scroll');
  5192. \t\t\t\tvar \$items = \$group.children();
  5193. \t\t\t\tif (\$items.length === 0) return;
  5194. \t\t\t\tvar parentWidth = \$group.parent().width() || \$group.width();
  5195. \t\t\t\tvar totalWidth = 0;
  5196. \t\t\t\tvar gap = parseInt(\$group.css('gap'), 10) || 8;
  5197. \t\t\t\t\$items.each(function() {
  5198. \t\t\t\t\ttotalWidth += this.offsetWidth + gap;
  5199. \t\t\t\t});
  5200. \t\t\t\t// 単一ボタンが親幅を超える、もしくは合計幅が親幅を超える → 横スクロール化
  5201. \t\t\t\tvar anyTooWide = false;
  5202. \t\t\t\t\$items.each(function() {
  5203. \t\t\t\t\tif (this.offsetWidth > parentWidth) { anyTooWide = true; return false; }
  5204. \t\t\t\t});
  5205. \t\t\t\t// 折り返し時の行数も計測
  5206. \t\t\t\tvar tops = {};
  5207. \t\t\t\t\$items.each(function() { tops[this.offsetTop] = true; });
  5208. \t\t\t\tvar rowCount = Object.keys(tops).length;
  5209. \t\t\t\tif (anyTooWide || totalWidth > parentWidth * 2 || rowCount >= 3) {
  5210. \t\t\t\t\t\$group.addClass('is-scroll');
  5211. \t\t\t\t}
  5212. \t\t\t});
  5213. \t\t}
  5214. \t\tapplyBtnGroupScroll();
  5215. \t\t\$(window).on('resize', function() {
  5216. \t\t\tclearTimeout(window._btnScrollTimer);
  5217. \t\t\twindow._btnScrollTimer = setTimeout(applyBtnGroupScroll, 150);
  5218. \t\t});
  5219. \t\t// onload: 見積金額が確定している場合は「工事費込み価格」表示を一致させる
  5220. \t\t(function syncPrice02Display() {
  5221. \t\t\tvar goukeiEl = document.getElementById('mitsumori_goukei');
  5222. \t\t\tvar displayEl = document.getElementById('price02-display');
  5223. \t\t\tif (!goukeiEl || !displayEl) return;
  5224. \t\t\tvar goukeiText = goukeiEl.textContent.trim();
  5225. \t\t\t// ---円(未確定)の場合は書き換えない
  5226. \t\t\tif (goukeiText && goukeiText !== '---円') {
  5227. \t\t\t\tdisplayEl.textContent = goukeiText;
  5228. \t\t\t}
  5229. \t\t\t// 以降の変更にも追従: mitsumori_goukei を監視
  5230. \t\t\tnew MutationObserver(function() {
  5231. \t\t\t\tvar text = goukeiEl.textContent.trim();
  5232. \t\t\t\tif (text && text !== '---円') {
  5233. \t\t\t\t\tdisplayEl.textContent = text;
  5234. \t\t\t\t}
  5235. \t\t\t}).observe(goukeiEl, { childList: true, subtree: true, characterData: true });
  5236. \t\t})();
  5237. \t\tfunction contact_form(product_id){
  5238. \t\t\t\$('#form1').attr('action', '{{ url('contact', {product:Product.id}) }}');
  5239. \t\t\t\$('#form1').submit();
  5240. \t\t}
  5241. \t\t// maisu / madoset は下部の新しい関数定義を使用
  5242. \t\tfunction heibei(bei){
  5243. \t\t\t\$('#heibei').val(parseInt(\$('#heibei').val()) + bei);
  5244. \t\t\tif(parseInt(\$('#heibei').val()) < 1){ \$('#heibei').val(1); }
  5245. \t\t\tif(parseInt(\$('#heibei').val()) > 100){ \$('#heibei').val(100); }
  5246. \t\t\t\$('#quantity').val(\$('#heibei').val());
  5247. \t\t\tmitsumori_simulation('heibei','heibei');
  5248. \t\t}
  5249. \t\tfunction daisu(dai){
  5250. \t\t\t\$('#daisu').val(parseInt(\$('#daisu').val()) + dai);
  5251. \t\t\tif(parseInt(\$('#daisu').val()) < 1){ \$('#daisu').val(1); }
  5252. \t\t\tif(parseInt(\$('#daisu').val()) > 10){ \$('#daisu').val(10); }
  5253. \t\t\t\$('#quantity').val(\$('#daisu').val());
  5254. \t\t\tmitsumori_simulation('daisu','daisu');
  5255. \t\t}
  5256. \t\tfunction maisu(mai){
  5257. \t\t\t\$('#maisu').val(parseInt(\$('#maisu').val()) + mai);
  5258. \t\t\tif(parseInt(\$('#maisu').val()) < 1){ \$('#maisu').val(1); }
  5259. \t\t\tif(parseInt(\$('#maisu').val()) > 100){ \$('#maisu').val(100); }
  5260. \t\t\t\$('#quantity').val(\$('#maisu').val());
  5261. \t\t\tmitsumori_simulation('maisu','maisu');
  5262. \t\t}
  5263. \t\t// タイプ2: セット数プルダウン連動
  5264. \t\tfunction madosetSelect(val){
  5265. \t\t\tvar v = parseInt(val);
  5266. \t\t\tif(v < 1) v = 1;
  5267. \t\t\tif(v > 20) v = 20;
  5268. \t\t\t// id=\"quantity\" と name=\"quantity\" 両方を確実に書き換え
  5269. \t\t\t\$('#quantity').val(v);
  5270. \t\t\t\$('input[name=\"quantity\"]').val(v);
  5271. \t\t\tmitsumori_simulation('set','set_count');
  5272. \t\t}
  5273. \t\t// タイプ2: ±ボタン版(後方互換)
  5274. \t\tfunction madoset(mai){
  5275. \t\t\tvar current = parseInt(\$('#set_count').val()) || 1;
  5276. \t\t\tvar next = current + mai;
  5277. \t\t\tif(next < 1) next = 1;
  5278. \t\t\tif(next > 20) next = 20;
  5279. \t\t\t\$('#set_count').val(next);
  5280. \t\t\tmadosetSelect(next);
  5281. \t\t}
  5282. \t\t// タイプ5: ステップ・フェンス選択値を mitsumori_json に保存するためのグローバル変数
  5283. \t\tvar deck_step = \"{% if mitsumori_json %}{{ mitsumori_json.deck_step|default('不要') }}{% else %}不要{% endif %}\";
  5284. \t\tvar deck_fence = \"{% if mitsumori_json %}{{ mitsumori_json.deck_fence|default('不要') }}{% else %}不要{% endif %}\";
  5285. \t\t// PDF出力: モーダルの mitsumori_json をフォームに同期してから送信
  5286. \t\tfunction syncPdfJson(){
  5287. \t\t\tvar jsonVal = \$('#mitsumori_json').val();
  5288. \t\t\t\$('#pdf_mitsumori_json').val(jsonVal);
  5289. \t\t}
  5290. \t\t// タイプ9: 商品のみ購入
  5291. \t\tfunction quantityOnly(val){
  5292. \t\t\tvar current = parseInt(\$('#quantity_only').val()) || 1;
  5293. \t\t\tvar next = current + val;
  5294. \t\t\tif(next < 1) next = 1;
  5295. \t\t\t\$('#quantity_only').val(next);
  5296. \t\t\t\$('#quantity').val(next);
  5297. \t\t}
  5298.         // ===== スマホ用下部固定バーへの金額同期 =====
  5299.         // mitsumori_message と mitsumori_goukei を監視して下部バーを更新
  5300.         (function() {
  5301.             var msgTarget   = document.getElementById('mitsumori_message');
  5302.             var goukeiTarget = document.getElementById('mitsumori_goukei');
  5303.             var spPrice     = document.getElementById('sp-mitsumori-price');
  5304.             var spBtn       = document.querySelector('#sp-mitsumori-bar .sp-bar__btn');
  5305.             if (!spPrice || !spBtn) return;
  5306.             function syncBar() {
  5307.                 var msg    = msgTarget ? msgTarget.textContent : '';
  5308.                 var goukei = goukeiTarget ? goukeiTarget.textContent : '---円';
  5309.                 // メッセージが「〇〇を選択してください」の場合はメッセージを表示しボタンを非表示
  5310.                 if (msg.indexOf('選択してください') !== -1) {
  5311.                     spPrice.textContent = msg;
  5312.                     spPrice.style.fontSize = '13px';
  5313.                     spPrice.style.color    = '#888';
  5314.                     spBtn.style.display    = 'none';
  5315.                 } else {
  5316.                     // 価格確定時はボタンを表示
  5317.                     spPrice.textContent = goukei;
  5318.                     spPrice.style.fontSize = '18px';
  5319.                     spPrice.style.color    = '#c00';
  5320.                     spBtn.style.display    = 'block';
  5321.                 }
  5322.             }
  5323.             // 初期値を同期
  5324.             syncBar();
  5325.             // mitsumori_message の変化を監視
  5326.             if (msgTarget) {
  5327.                 new MutationObserver(syncBar).observe(
  5328.                     msgTarget, { childList: true, subtree: true, characterData: true }
  5329.                 );
  5330.             }
  5331.             // mitsumori_goukei の変化も監視
  5332.             if (goukeiTarget) {
  5333.                 new MutationObserver(syncBar).observe(
  5334.                     goukeiTarget, { childList: true, subtree: true, characterData: true }
  5335.                 );
  5336.             }
  5337.         })();
  5338.         // ===== 現在のお見積り額: 折りたたみトグルボタンのテキスト切り替え =====
  5339.         (function() {
  5340.             var card = document.querySelector('.mitsumori-card-pc');
  5341.             var btn  = document.querySelector('.btn-mitsumori-toggle .toggle-icon');
  5342.             if (!card || !btn) return;
  5343.             // MutationObserverでcollapsed-cardクラスの変化を監視
  5344.             new MutationObserver(function() {
  5345.                 if (card.classList.contains('collapsed-card')) {
  5346.                     btn.textContent = '▼ 詳細';
  5347.                 } else {
  5348.                     btn.textContent = '▲ 閉じる';
  5349.                 }
  5350.             }).observe(card, { attributes: true, attributeFilter: ['class'] });
  5351.         })();
  5352.         // ===== エリア案内: スマホのみタップで展開 =====
  5353.         (function() {
  5354.             var notice = document.querySelector('.ec-areaNotice');
  5355.             if (!notice) return;
  5356.             notice.addEventListener('click', function(e) {
  5357.                 if (window.innerWidth > 767) return;
  5358.                 // リンククリック時は展開/折りたたみせずリンク遷移
  5359.                 if (e.target.tagName === 'A') return;
  5360.                 notice.classList.toggle('is-open');
  5361.             });
  5362.         })();
  5363.     </script>
  5364.     <script type=\"application/ld+json\">
  5365.     {
  5366.         \"@context\": \"https://schema.org/\",
  5367.         \"@type\": \"Product\",
  5368.         \"name\": \"{{ Product.name }}\",
  5369.         \"image\": [
  5370.             {% for img in Product.ProductImage %}
  5371.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  5372.             {% else %}
  5373.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  5374.             {% endfor %}
  5375.         ],
  5376.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  5377.         {% if Product.code_min %}
  5378.         \"sku\": \"{{ Product.code_min }}\",
  5379.         {% endif %}
  5380.         \"offers\": {
  5381.             \"@type\": \"Offer\",
  5382.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  5383.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  5384.             \"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
  5385.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  5386.         }
  5387.     }
  5388.     </script>
  5389. {% endblock %}
  5390. {% block main %}
  5391.     <div class=\"ec-productRole\" style=\"margin-top:20px;\">
  5392.         <div class=\"ec-grid2\">
  5393.             <div class=\"ec-grid2__cell\">
  5394.                 <div class=\"ec-sliderItemRole\">
  5395. \t                {# 商品名 + ブランド名 + SNSシェア #}
  5396. \t                <div class=\"ec-productRole__title\">
  5397. \t                    <div class=\"ec-productRole__titleRow\">
  5398. \t                        <h2 class=\"ec-headingTitle\">{{ Product.name }}</h2>
  5399. \t                        <div class=\"ec-share-inline\">
  5400. \t                            <a href=\"https://twitter.com/share?url={{ app.request.uri|url_encode }}&text={{ Product.name|url_encode }}\"
  5401. \t                               class=\"share-twitter\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Xでシェア\">
  5402. \t                                <svg viewBox=\"0 0 24 24\" style=\"width:15px;height:15px;fill:#fff;\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.74l7.73-8.835L1.254 2.25H8.08l4.254 5.622L18.244 2.25zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>
  5403. \t                            </a>
  5404. \t                            <a href=\"https://www.instagram.com/\" class=\"share-facebook\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Instagram\">
  5405. \t                                <svg viewBox=\"0 0 24 24\" style=\"width:15px;height:15px;fill:#fff;\"><path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z\"/></svg>
  5406. \t                            </a>
  5407. \t                            <a href=\"https://social-plugins.line.me/lineit/share?url={{ app.request.uri|url_encode }}\"
  5408. \t                               class=\"share-line\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"LINEでシェア\">
  5409. \t                                <i class=\"fab fa-line\"></i>
  5410. \t                            </a>
  5411. \t                        </div>
  5412. \t                    </div>
  5413. \t                </div>
  5414.                     {% if BaseInfo.option_favorite_product %}
  5415.                      <div style=\"position:relative;top: 20px;left: 10px;z-index:100;\">
  5416. \t\t\t\t\t\t{% if is_favorite == false %}
  5417.                         <form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  5418.                            <button type=\"submit\" id=\"favorite\" class=\"favorite\">&#9825;</button>
  5419.                         </form>
  5420.                         {% else %}
  5421.                         <form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  5422.                            <button type=\"submit\" id=\"favorite\" class=\"favorite\" style=\"color:red;\">&#9829;</button>
  5423.                         </form>
  5424.                         {% endif %}
  5425.                      </div>
  5426.                     {% endif %}
  5427.                     <div class=\"item_visual\">
  5428.                         {% for ProductImage in Product.ProductImage %}
  5429.                             <div class=\"slide-item\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" width=\"550\" height=\"550\" style=\"max-height: 400px;\"{% if loop.index > 1 %} loading=\"lazy\"{% endif %}></div>
  5430.                         {% else %}
  5431.                             <div class=\"slide-item\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" width=\"550\" height=\"550\" style=\"max-height: 400px;\"></div>
  5432.                         {% endfor %}
  5433.                     </div>
  5434.                     <div class=\"item_nav\">
  5435.                         {% for ProductImage in Product.ProductImage %}
  5436.                             <div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\" width=\"80\" height=\"80\" loading=\"lazy\"></div>
  5437.                         {% endfor %}
  5438.                     </div>
  5439.                 </div>
  5440.                     {# ===== 施工エリア案内(見積シミュレーションの下)===== #}
  5441.                     <div class=\"ec-areaNotice\" style=\"margin-top:16px;margin-right:10px;\">
  5442.                         <div class=\"ec-areaNotice__inner\">
  5443.                             <div class=\"ec-areaNotice__icon\">📍</div>
  5444.                             <div class=\"ec-areaNotice__body\">
  5445.                                 <p class=\"ec-areaNotice__title\">施工対応エリアについて</p>
  5446.                                 <div class=\"ec-areaNotice__detail\">
  5447.                                     <p class=\"ec-areaNotice__text\">
  5448.                                         当店の施工サービスは、<strong>山梨県全域</strong>および<br>
  5449.                                         <strong>諏訪エリア(諏訪市・岡谷市・茅野市・諏訪郡)</strong>を対象としております。<br>
  5450.                                         上記エリア外のお客様には、商品のみのご購入が可能でございます。<br>
  5451.                                         ご不明な点がございましたら、お気軽にお問い合わせください。
  5452.                                     </p>
  5453.                                     <a class=\"ec-areaNotice__link\" href=\"{{ url('contact') }}\">エリア外のお客様・ご相談はこちら →</a>
  5454.                                 </div>
  5455.                             </div>
  5456.                         </div>
  5457.                     </div>
  5458.             </div>
  5459.             <div class=\"ec-grid2__cell2\">
  5460.                 <div class=\"ec-productRole__profile\" >
  5461.                     {# 関連カテゴリ #}
  5462.                     {% if Product.ProductCategories is not empty %}
  5463.                         <div class=\"ec-productRole__category\" style=\"padding:10px 0;\">
  5464.                             {% for ProductCategory in Product.ProductCategories %}
  5465.                                 <ul>
  5466.                                     <li>
  5467.                                         {% for Category in ProductCategory.Category.path %}
  5468.                                             <a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\">{{ Category.name }}</a> {%- if loop.last == false %}
  5469.                                             <span>></span>{% endif -%}
  5470.                                         {% endfor %}
  5471.                                     </li>
  5472.                                 </ul>
  5473.                             {% endfor %}
  5474.                         </div>
  5475.                     {% endif %}
  5476.                     {# 販売価格 #}
  5477.                     <div class=\"ec-productRole__price\">
  5478. \t\t\t\t\t\t<span style=\"color:black;font-size:15px;\">工事費込み価格</span>
  5479.                         {% if Product.hasProductClass -%}
  5480.                             {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
  5481.                                 <div class=\"ec-price\">
  5482.                                     <span id=\"price02-display\" class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }}</span>
  5483.                                     <span class=\"ec-price__tax\">({{ '税込'|trans }})~</span>
  5484.                                 </div>
  5485.                             {% else %}
  5486.                                 <div class=\"ec-price\">
  5487.                                     <span id=\"price02-display\" class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}</span>
  5488.                                     <span class=\"ec-price__tax\">({{ '税込'|trans }})</span>
  5489.                                 </div>
  5490.                             {% endif %}
  5491.                         {% else %}
  5492.                             <div class=\"ec-price\">
  5493.                                 <span id=\"price02-display\" class=\"ec-price__price\">{{ Product.getPrice02IncTaxMin|price }}</span>
  5494.                                     <span class=\"ec-price__tax\">({{ '税込'|trans }})~</span>
  5495.                             </div>
  5496.                         {% endif %}
  5497.                     </div>
  5498.                     {# タグ #}
  5499.                     <ul class=\"ec-productRole__tags\">
  5500.                         {% for Tag in Product.Tags %}
  5501.                             <li class=\"ec-productRole__tag tag_{{ Tag.id }}\">{{ Tag }}</li>
  5502.                         {% endfor %}
  5503.                     </ul>
  5504.                     {# 商品コード #}
  5505.                     {% if Product.code_min is not empty %}
  5506.                         <div class=\"ec-productRole__code\">
  5507.                             {{ '商品コード'|trans }}: <span class=\"product-code-default\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span>
  5508.                         </div>
  5509.                     {% endif %}
  5510.                     <div class=\"ec-productRole__description\">
  5511. \t\t\t\t        <div class=\"ec-rectHeading\">
  5512. \t\t\t\t            <h4>製品情報</h4>
  5513. \t\t\t\t        </div>
  5514. \t\t\t\t\t\t{{ Product.sales_infomation|raw|nl2br }}
  5515.                     </div>
  5516. \t\t\t\t\t<div class=\"card card-danger\" style=\"clear:both;margin:1px;\">
  5517. \t\t\t\t\t  <div class=\"card-header\">
  5518. \t\t\t\t\t    <h3 class=\"card-title\">見積シミュレーション</h3>
  5519. \t\t\t\t\t  </div>
  5520. \t\t\t\t\t  <div class=\"card-body p-2\">
  5521.                         {% set related_image = getProduct_field(Product.id,\"related_image\") %}
  5522.                         {# related_image は配列: [\"1段目画像あり\",\"2段目画像あり\",\"3段目画像あり\"] のうち該当するものが格納 #}
  5523.                         {% set img1 = related_image and (\"1段目画像あり\" in related_image) %}
  5524.                         {% set img2 = related_image and (\"2段目画像あり\" in related_image) %}
  5525.                         {% set img3 = related_image and (\"3段目画像あり\" in related_image) %}
  5526.                         {% set img4 = related_image and (\"4段目画像あり\" in related_image) %}
  5527. \t\t\t\t\t    {% set type1 = getProduct_field(Product.id,\"related_name1\") %}
  5528. \t\t\t\t\t\t{% set type2 = getProduct_field(Product.id,\"related_name2\") %}
  5529. \t\t\t\t\t\t{% set type3 = getProduct_field(Product.id,\"related_name3\") %}
  5530. \t\t\t\t\t\t{% set type4 = getProduct_field(Product.id,\"related_name4\") %}
  5531. \t\t\t\t\t\t{% set hasRelated = (type1 and related_product1 and related_product1|length)
  5532. \t\t\t\t\t\t                 or (type2 and related_product2 and related_product2|length)
  5533. \t\t\t\t\t\t                 or (type3 and related_product3 and related_product3|length)
  5534. \t\t\t\t\t\t                 or (type4 and related_product4 and related_product4|length) %}
  5535. \t\t\t\t\t\t{% if hasRelated %}
  5536. \t\t\t\t\t\t    <div class=\"row\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\"><label class=\"col-12 col-form-label\">この商品のタイプを選択してください。</label></div>
  5537. \t\t\t\t\t\t{% endif %}
  5538. \t\t\t\t\t\t{# ===== 1段目 ===== #}
  5539. \t\t\t\t\t\t{% if type1 and related_product1 and related_product1|length %}
  5540. \t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5541. \t\t\t\t\t\t  <div class=\"rp-section-label\">{{ type1 }}{% if img1 and base_select1 %}: <span>{{ base_select1 }}</span>{% endif %}</div>
  5542. \t\t\t\t\t\t  {% if img1 %}
  5543. \t\t\t\t\t\t    {# --- 画像付きカード --- #}
  5544. \t\t\t\t\t\t    <div class=\"rp-card-group\">
  5545. \t\t\t\t\t\t      {% for rp_id, rp_name in related_product1 %}
  5546. \t\t\t\t\t\t        <label class=\"rp-card{% if base_select1 == rp_name %} is-selected{% endif %}\"
  5547. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/{{ rp_id }}';\">
  5548. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp1\" value=\"{{ rp_name }}\"
  5549. \t\t\t\t\t\t                 {% if base_select1 == rp_name %}checked{% endif %}>
  5550. \t\t\t\t\t\t          <img class=\"rp-card__image\"
  5551. \t\t\t\t\t\t               src=\"{{ asset('p' ~ rp_id ~ '_cp_1.jpg', 'save_image') }}\"
  5552. \t\t\t\t\t\t               alt=\"{{ rp_name }}\"
  5553. \t\t\t\t\t\t               onerror=\"this.style.display='none';this.nextElementSibling.style.display='flex';\">
  5554. \t\t\t\t\t\t          <div class=\"rp-card__placeholder\" style=\"display:none;\">📦</div>
  5555. \t\t\t\t\t\t          <span class=\"rp-card__name\">{{ rp_name }}</span>
  5556. \t\t\t\t\t\t        </label>
  5557. \t\t\t\t\t\t      {% endfor %}
  5558. \t\t\t\t\t\t    </div>
  5559. \t\t\t\t\t\t  {% else %}
  5560. \t\t\t\t\t\t    {# --- ボタン式ラジオ --- #}
  5561. \t\t\t\t\t\t    <div class=\"rp-btn-group\">
  5562. \t\t\t\t\t\t      {% for rp_id, rp_name in related_product1 %}
  5563. \t\t\t\t\t\t        <label class=\"rp-btn{% if base_select1 == rp_name %} is-selected{% endif %}\"
  5564. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/{{ rp_id }}';\">
  5565. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp1\" value=\"{{ rp_name }}\"
  5566. \t\t\t\t\t\t                 {% if base_select1 == rp_name %}checked{% endif %}>
  5567. \t\t\t\t\t\t          {{ rp_name }}
  5568. \t\t\t\t\t\t        </label>
  5569. \t\t\t\t\t\t      {% endfor %}
  5570. \t\t\t\t\t\t    </div>
  5571. \t\t\t\t\t\t  {% endif %}
  5572. \t\t\t\t\t\t</div>
  5573. \t\t\t\t\t\t{% endif %}
  5574. \t\t\t\t\t\t{# ===== 2段目 ===== #}
  5575. \t\t\t\t\t\t{% if type2 and related_product2 and related_product2|length %}
  5576. \t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5577. \t\t\t\t\t\t  <div class=\"rp-section-label\">{{ type2 }}{% if img2 and base_select2 %}: <span>{{ base_select2 }}</span>{% endif %}</div>
  5578. \t\t\t\t\t\t  {% if img2 %}
  5579. \t\t\t\t\t\t    <div class=\"rp-card-group\">
  5580. \t\t\t\t\t\t      {% for rp_id, rp_name in related_product2 %}
  5581. \t\t\t\t\t\t        <label class=\"rp-card{% if base_select2 == rp_name %} is-selected{% endif %}\"
  5582. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/{{ rp_id }}';\">
  5583. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp2\" value=\"{{ rp_name }}\"
  5584. \t\t\t\t\t\t                 {% if base_select2 == rp_name %}checked{% endif %}>
  5585. \t\t\t\t\t\t          <img class=\"rp-card__image\"
  5586. \t\t\t\t\t\t               src=\"{{ asset('p' ~ rp_id ~ '_cp_1.jpg', 'save_image') }}\"
  5587. \t\t\t\t\t\t               alt=\"{{ rp_name }}\"
  5588. \t\t\t\t\t\t               onerror=\"this.style.display='none';this.nextElementSibling.style.display='flex';\">
  5589. \t\t\t\t\t\t          <div class=\"rp-card__placeholder\" style=\"display:none;\">📦</div>
  5590. \t\t\t\t\t\t          <span class=\"rp-card__name\">{{ rp_name }}</span>
  5591. \t\t\t\t\t\t        </label>
  5592. \t\t\t\t\t\t      {% endfor %}
  5593. \t\t\t\t\t\t    </div>
  5594. \t\t\t\t\t\t  {% else %}
  5595. \t\t\t\t\t\t    <div class=\"rp-btn-group\">
  5596. \t\t\t\t\t\t      {% for rp_id, rp_name in related_product2 %}
  5597. \t\t\t\t\t\t        <label class=\"rp-btn{% if base_select2 == rp_name %} is-selected{% endif %}\"
  5598. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/{{ rp_id }}';\">
  5599. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp2\" value=\"{{ rp_name }}\"
  5600. \t\t\t\t\t\t                 {% if base_select2 == rp_name %}checked{% endif %}>
  5601. \t\t\t\t\t\t          {{ rp_name }}
  5602. \t\t\t\t\t\t        </label>
  5603. \t\t\t\t\t\t      {% endfor %}
  5604. \t\t\t\t\t\t    </div>
  5605. \t\t\t\t\t\t  {% endif %}
  5606. \t\t\t\t\t\t</div>
  5607. \t\t\t\t\t\t{% endif %}
  5608. \t\t\t\t\t\t{# ===== 3段目 ===== #}
  5609. \t\t\t\t\t\t{% if type3 and related_product3 and related_product3|length %}
  5610. \t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5611. \t\t\t\t\t\t  <div class=\"rp-section-label\">{{ type3 }}{% if img3 and base_select3 %}: <span>{{ base_select3 }}</span>{% endif %}</div>
  5612. \t\t\t\t\t\t  {% if img3 %}
  5613. \t\t\t\t\t\t    <div class=\"rp-card-group\">
  5614. \t\t\t\t\t\t      {% for rp_id, rp_name in related_product3 %}
  5615. \t\t\t\t\t\t        <label class=\"rp-card{% if base_select3 == rp_name %} is-selected{% endif %}\"
  5616. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/{{ rp_id }}';\">
  5617. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp3\" value=\"{{ rp_name }}\"
  5618. \t\t\t\t\t\t                 {% if base_select3 == rp_name %}checked{% endif %}>
  5619. \t\t\t\t\t\t          <img class=\"rp-card__image\"
  5620. \t\t\t\t\t\t               src=\"{{ asset('p' ~ rp_id ~ '_cp_1.jpg', 'save_image') }}\"
  5621. \t\t\t\t\t\t               alt=\"{{ rp_name }}\"
  5622. \t\t\t\t\t\t               onerror=\"this.style.display='none';this.nextElementSibling.style.display='flex';\">
  5623. \t\t\t\t\t\t          <div class=\"rp-card__placeholder\" style=\"display:none;\">📦</div>
  5624. \t\t\t\t\t\t          <span class=\"rp-card__name\">{{ rp_name }}</span>
  5625. \t\t\t\t\t\t        </label>
  5626. \t\t\t\t\t\t      {% endfor %}
  5627. \t\t\t\t\t\t    </div>
  5628. \t\t\t\t\t\t  {% else %}
  5629. \t\t\t\t\t\t    <div class=\"rp-btn-group\">
  5630. \t\t\t\t\t\t      {% for rp_id, rp_name in related_product3 %}
  5631. \t\t\t\t\t\t        <label class=\"rp-btn{% if base_select3 == rp_name %} is-selected{% endif %}\"
  5632. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/{{ rp_id }}';\">
  5633. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp3\" value=\"{{ rp_name }}\"
  5634. \t\t\t\t\t\t                 {% if base_select3 == rp_name %}checked{% endif %}>
  5635. \t\t\t\t\t\t          {{ rp_name }}
  5636. \t\t\t\t\t\t        </label>
  5637. \t\t\t\t\t\t      {% endfor %}
  5638. \t\t\t\t\t\t    </div>
  5639. \t\t\t\t\t\t  {% endif %}
  5640. \t\t\t\t\t\t</div>
  5641. \t\t\t\t\t\t{% endif %}
  5642. \t\t\t\t\t\t{# ===== 4段目 ===== #}
  5643. \t\t\t\t\t\t{% if type4 and related_product4 and related_product4|length %}
  5644. \t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5645. \t\t\t\t\t\t  <div class=\"rp-section-label\">{{ type4 }}{% if img4 and base_select4 %}: <span>{{ base_select4 }}</span>{% endif %}</div>
  5646. \t\t\t\t\t\t  {% if img4 %}
  5647. \t\t\t\t\t\t    {# --- 画像付きカード --- #}
  5648. \t\t\t\t\t\t    <div class=\"rp-card-group\">
  5649. \t\t\t\t\t\t      {% for rp_id, rp_name in related_product4 %}
  5650. \t\t\t\t\t\t        <label class=\"rp-card{% if base_select4 == rp_name %} is-selected{% endif %}\"
  5651. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/{{ rp_id }}';\">
  5652. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp4\" value=\"{{ rp_name }}\"
  5653. \t\t\t\t\t\t                 {% if base_select4 == rp_name %}checked{% endif %}>
  5654. \t\t\t\t\t\t          <img class=\"rp-card__image\"
  5655. \t\t\t\t\t\t               src=\"{{ asset('p' ~ rp_id ~ '_cp_1.jpg', 'save_image') }}\"
  5656. \t\t\t\t\t\t               alt=\"{{ rp_name }}\" loading=\"lazy\">
  5657. \t\t\t\t\t\t          <span class=\"rp-card__label\">{{ rp_name }}</span>
  5658. \t\t\t\t\t\t        </label>
  5659. \t\t\t\t\t\t      {% endfor %}
  5660. \t\t\t\t\t\t    </div>
  5661. \t\t\t\t\t\t  {% else %}
  5662. \t\t\t\t\t\t    {# --- ボタン式ラジオ --- #}
  5663. \t\t\t\t\t\t    <div class=\"rp-btn-group\">
  5664. \t\t\t\t\t\t      {% for rp_id, rp_name in related_product4 %}
  5665. \t\t\t\t\t\t        <label class=\"rp-btn{% if base_select4 == rp_name %} is-selected{% endif %}\"
  5666. \t\t\t\t\t\t               onclick=\"location.href='/products/detail/{{ rp_id }}';\">
  5667. \t\t\t\t\t\t          <input type=\"radio\" name=\"rp4\" value=\"{{ rp_name }}\"
  5668. \t\t\t\t\t\t                 {% if base_select4 == rp_name %}checked{% endif %}>
  5669. \t\t\t\t\t\t          {{ rp_name }}
  5670. \t\t\t\t\t\t        </label>
  5671. \t\t\t\t\t\t      {% endfor %}
  5672. \t\t\t\t\t\t    </div>
  5673. \t\t\t\t\t\t  {% endif %}
  5674. \t\t\t\t\t\t</div>
  5675. \t\t\t\t\t\t{% endif %}
  5676. \t\t\t\t\t    <div class=\"row\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\"><label class=\"col-12 col-form-label\">この商品のオプションを選択してください。</label></div>
  5677.                         {% if color and color|length and ProductClass.SaleType.id != 3 %}
  5678.                         <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5679.                           <div class=\"rp-section-label\">カラー{% if mitsumori_json and mitsumori_json.pc %}: <span>{{ mitsumori_json.pc }}</span>{% endif %}</div>
  5680.                           <div class=\"opt-btn-group\">
  5681.                             {% set idx = 0 %}
  5682.                             {% for cc in color %}{% if cc and cc['name'] %}{% set idx = idx + 1 %}
  5683.                               <label class=\"opt-btn{% if (mitsumori_json and mitsumori_json.pc == cc['name']) or color|length == 1 %} is-selected{% endif %}\"
  5684.                                      onclick=\"mitsumori_simulation_val('pc', '{{ cc['name']|e('js') }}');\">
  5685.                                 <input type=\"radio\" name=\"color\" id=\"cc_{{ idx }}\" value=\"{{ cc['name'] }}\"
  5686.                                        {% if (mitsumori_json and mitsumori_json.pc == cc['name']) or color|length == 1 %}checked{% endif %}>
  5687.                                 {{ cc['name'] }}
  5688.                               </label>
  5689.                             {% endif %}{% endfor %}
  5690.                           </div>
  5691.                         </div>
  5692.                         {% endif %}
  5693.                         {% if p_w and p_w|length and p_w|join != \"\" %}
  5694.                         <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5695.                           <div class=\"rp-section-label\">幅{% if mitsumori_json and mitsumori_json.pw %}: <span>{{ mitsumori_json.pw }}</span>{% endif %}</div>
  5696.                           <div class=\"opt-btn-group\">
  5697.                             {% set idx = 0 %}
  5698.                             {% for pw in p_w %}{% if pw %}{% set idx = idx + 1 %}
  5699.                               <label class=\"opt-btn{% if (mitsumori_json and mitsumori_json.pw == pw) or p_w|length == 1 %} is-selected{% endif %}\"
  5700.                                      onclick=\"mitsumori_simulation_val('pw', '{{ pw|e('js') }}');\">
  5701.                                 <input type=\"radio\" name=\"pw\" id=\"pw_{{ idx }}\" value=\"{{ pw }}\"
  5702.                                        {% if (mitsumori_json and mitsumori_json.pw == pw) or p_w|length == 1 %}checked{% endif %}>
  5703.                                 {{ pw }}
  5704.                               </label>
  5705.                             {% endif %}{% endfor %}
  5706.                           </div>
  5707.                         </div>
  5708.                         {% endif %}
  5709.                         {% if p_d and p_d|length and p_d|join != \"\" %}
  5710.                         <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5711.                           <div class=\"rp-section-label\">奥行き{% if mitsumori_json and mitsumori_json.pd %}: <span>{{ mitsumori_json.pd }}</span>{% endif %}</div>
  5712.                           <div class=\"opt-btn-group\">
  5713.                             {% set idx = 0 %}
  5714.                             {% for pd in p_d %}{% if pd %}{% set idx = idx + 1 %}
  5715.                               <label class=\"opt-btn{% if (mitsumori_json and mitsumori_json.pd == pd) or p_d|length == 1 %} is-selected{% endif %}\"
  5716.                                      onclick=\"mitsumori_simulation_val('pd', '{{ pd|e('js') }}');\">
  5717.                                 <input type=\"radio\" name=\"pd\" id=\"pd_{{ idx }}\" value=\"{{ pd }}\"
  5718.                                        {% if (mitsumori_json and mitsumori_json.pd == pd) or p_d|length == 1 %}checked{% endif %}>
  5719.                                 {{ pd }}
  5720.                               </label>
  5721.                             {% endif %}{% endfor %}
  5722.                           </div>
  5723.                         </div>
  5724.                         {% endif %}
  5725.                         {% if p_h and p_h|length and p_h|join != \"\" %}
  5726.                         <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5727.                           <div class=\"rp-section-label\">高さ{% if mitsumori_json and mitsumori_json.ph %}: <span>{{ mitsumori_json.ph }}</span>{% endif %}</div>
  5728.                           <div class=\"opt-btn-group\">
  5729.                             {% set idx = 0 %}
  5730.                             {% for ph in p_h %}{% if ph %}{% set idx = idx + 1 %}
  5731.                               <label class=\"opt-btn{% if (mitsumori_json and mitsumori_json.ph == ph) or p_h|length == 1 %} is-selected{% endif %}\"
  5732.                                      onclick=\"mitsumori_simulation_val('ph', '{{ ph|e('js') }}');\">
  5733.                                 <input type=\"radio\" name=\"ph\" id=\"ph_{{ idx }}\" value=\"{{ ph }}\"
  5734.                                        {% if (mitsumori_json and mitsumori_json.ph == ph) or p_h|length == 1 %}checked{% endif %}>
  5735.                                 {{ ph }}
  5736.                               </label>
  5737.                             {% endif %}{% endfor %}
  5738.                           </div>
  5739.                         </div>
  5740.                         {% endif %}
  5741.                         {% if p_m and p_m|length and p_m|join != \"\" %}
  5742.                         <div class=\"form-group mt-3 pb-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5743.                           <div class=\"rp-section-label\">素材{% if mitsumori_json and mitsumori_json.pm %}: <span>{{ mitsumori_json.pm }}</span>{% endif %}</div>
  5744.                           <div class=\"opt-btn-group\">
  5745.                             {% set idx = 0 %}
  5746.                             {% for pm in p_m %}{% if pm %}{% set idx = idx + 1 %}
  5747.                               <label class=\"opt-btn{% if (mitsumori_json and mitsumori_json.pm == pm) or p_m|length == 1 %} is-selected{% endif %}\"
  5748.                                      onclick=\"mitsumori_simulation_val('pm', '{{ pm|e('js') }}');\">
  5749.                                 <input type=\"radio\" name=\"pm\" id=\"pm_{{ idx }}\" value=\"{{ pm }}\"
  5750.                                        {% if (mitsumori_json and mitsumori_json.pm == pm) or p_m|length == 1 %}checked{% endif %}>
  5751.                                 {{ pm }}
  5752.                               </label>
  5753.                             {% endif %}{% endfor %}
  5754.                           </div>
  5755.                         </div>
  5756.                         {% endif %}
  5757. \t\t\t\t\t\t<!-- 1: 施工見積(通常) → 幅/奥行/高さ/素材/カラーは上部の共通ブロックで表示済み -->
  5758. \t\t\t\t\t\t{% if ProductClass.SaleType.id == 1 %}
  5759. \t\t\t\t\t\t{% endif %}
  5760. \t\t\t\t\t\t<!-- 2: 施工見積(補助金・窓) -->
  5761. \t\t\t\t\t\t{% if ProductClass.SaleType.id == 2 %}
  5762. \t\t\t\t\t\t\t{# 窓サイズ(自由入力) #}
  5763. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5764. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">窓サイズ</label>
  5765. \t\t\t\t\t\t\t  <div class=\"col-4\">
  5766. \t\t\t\t\t\t\t    <div class=\"input-group\">
  5767. \t\t\t\t\t\t\t      <span class=\"input-group-text\">窓幅</span>
  5768. \t\t\t\t\t\t\t      <input type=\"number\" name=\"mado_w\" id=\"mado_w\" class=\"form-control\" value=\"{{ mitsumori_json.mado_w|default('') }}\" placeholder=\"例: 90\" min=\"1\" onchange=\"mitsumori_simulation('mado_w','mado_w');\">
  5769. \t\t\t\t\t\t\t      <span class=\"input-group-text\">cm</span>
  5770. \t\t\t\t\t\t\t    </div>
  5771. \t\t\t\t\t\t\t  </div>
  5772. \t\t\t\t\t\t\t  <div class=\"col-4\">
  5773. \t\t\t\t\t\t\t    <div class=\"input-group\">
  5774. \t\t\t\t\t\t\t      <span class=\"input-group-text\">窓高さ</span>
  5775. \t\t\t\t\t\t\t      <input type=\"number\" name=\"mado_h\" id=\"mado_h\" class=\"form-control\" value=\"{{ mitsumori_json.mado_h|default('') }}\" placeholder=\"例: 110\" min=\"1\" onchange=\"mitsumori_simulation('mado_h','mado_h');\">
  5776. \t\t\t\t\t\t\t      <span class=\"input-group-text\">cm</span>
  5777. \t\t\t\t\t\t\t    </div>
  5778. \t\t\t\t\t\t\t  </div>
  5779. \t\t\t\t\t\t\t</div>
  5780. \t\t\t\t\t\t\t{# 窓タイプ(p_d データから選択肢を生成) #}
  5781. \t\t\t\t\t\t\t{% if p_d and p_d|length and p_d|join != \"\" %}
  5782. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5783. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">窓タイプ</label>
  5784. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5785. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  5786. \t\t\t\t\t\t\t    {% set idx = 0 %}
  5787. \t\t\t\t\t\t\t    {% for pd_val in p_d %}
  5788. \t\t\t\t\t\t\t      {% if pd_val %}
  5789. \t\t\t\t\t\t\t      {% set idx = idx + 1 %}
  5790. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5791. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"mado_type\" id=\"mado_type_{{ idx }}\" value=\"{{ pd_val }}\"
  5792. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.pd == pd_val) or (p_d|length == 1) %}checked{% endif %}
  5793. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pd','mado_type_{{ idx }}');\">
  5794. \t\t\t\t\t\t\t        <label for=\"mado_type_{{ idx }}\">{{ pd_val }}</label>
  5795. \t\t\t\t\t\t\t      </div>
  5796. \t\t\t\t\t\t\t      {% endif %}
  5797. \t\t\t\t\t\t\t    {% endfor %}
  5798. \t\t\t\t\t\t\t    </div>
  5799. \t\t\t\t\t\t\t  </div>
  5800. \t\t\t\t\t\t\t</div>
  5801. \t\t\t\t\t\t\t{% endif %}
  5802. \t\t\t\t\t\t\t{# ガラスタイプ(p_m データから選択肢を生成) #}
  5803. \t\t\t\t\t\t\t{% if p_m and p_m|length and p_m|join != \"\" %}
  5804. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5805. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">ガラスタイプ</label>
  5806. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5807. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  5808. \t\t\t\t\t\t\t    {% set idx = 0 %}
  5809. \t\t\t\t\t\t\t    {% for pm_val in p_m %}
  5810. \t\t\t\t\t\t\t      {% if pm_val %}
  5811. \t\t\t\t\t\t\t      {% set idx = idx + 1 %}
  5812. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5813. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"glass_type\" id=\"glass_type_{{ idx }}\" value=\"{{ pm_val }}\"
  5814. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.pm == pm_val) or (p_m|length == 1) %}checked{% endif %}
  5815. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pm','glass_type_{{ idx }}');\">
  5816. \t\t\t\t\t\t\t        <label for=\"glass_type_{{ idx }}\">{{ pm_val }}</label>
  5817. \t\t\t\t\t\t\t      </div>
  5818. \t\t\t\t\t\t\t      {% endif %}
  5819. \t\t\t\t\t\t\t    {% endfor %}
  5820. \t\t\t\t\t\t\t    </div>
  5821. \t\t\t\t\t\t\t  </div>
  5822. \t\t\t\t\t\t\t</div>
  5823. \t\t\t\t\t\t\t{% endif %}
  5824. \t\t\t\t\t\t\t{# セット数(プルダウン) → quantity に連動 #}
  5825. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5826. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">セット数</label>
  5827. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5828. \t\t\t\t\t\t\t    <select name=\"set_count\" id=\"set_count\" class=\"form-control\" onchange=\"madosetSelect(this.value);\">
  5829. \t\t\t\t\t\t\t      {% for i in 1..20 %}
  5830. \t\t\t\t\t\t\t        <option value=\"{{ i }}\" {% if mitsumori_json and mitsumori_json.set_count == i %}selected{% endif %}>{{ i }} セット</option>
  5831. \t\t\t\t\t\t\t      {% endfor %}
  5832. \t\t\t\t\t\t\t    </select>
  5833. \t\t\t\t\t\t\t  </div>
  5834. \t\t\t\t\t\t\t</div>
  5835. \t\t\t\t\t\t{% endif %}
  5836. \t\t\t\t\t\t<!-- 3: 施工見積(物置・ゴミステーション) -->
  5837. \t\t\t\t\t\t{% if ProductClass.SaleType.id == 3 %}
  5838. \t\t\t\t\t\t\t{# 幅・奥行き・高さ(p_w/p_d/p_h からラジオボタン生成) #}
  5839. \t\t\t\t\t\t\t{% if p_w and p_w|length and p_w|join != \"\" %}
  5840. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5841. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">幅</label>
  5842. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5843. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  5844. \t\t\t\t\t\t\t    {% set idx = 0 %}
  5845. \t\t\t\t\t\t\t    {% for pw_val in p_w %}{% if pw_val %}{% set idx = idx + 1 %}
  5846. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5847. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pw\" id=\"pw3_{{ idx }}\" value=\"{{ pw_val }}\"
  5848. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.pw == pw_val) or p_w|length == 1 %}checked{% endif %}
  5849. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pw','pw3_{{ idx }}');\">
  5850. \t\t\t\t\t\t\t        <label for=\"pw3_{{ idx }}\">{{ pw_val }}</label>
  5851. \t\t\t\t\t\t\t      </div>
  5852. \t\t\t\t\t\t\t    {% endif %}{% endfor %}
  5853. \t\t\t\t\t\t\t    </div>
  5854. \t\t\t\t\t\t\t  </div>
  5855. \t\t\t\t\t\t\t</div>
  5856. \t\t\t\t\t\t\t{% endif %}
  5857. \t\t\t\t\t\t\t{% if p_d and p_d|length and p_d|join != \"\" %}
  5858. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5859. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">奥行き</label>
  5860. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5861. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  5862. \t\t\t\t\t\t\t    {% set idx = 0 %}
  5863. \t\t\t\t\t\t\t    {% for pd_val in p_d %}{% if pd_val %}{% set idx = idx + 1 %}
  5864. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5865. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pd\" id=\"pd3_{{ idx }}\" value=\"{{ pd_val }}\"
  5866. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.pd == pd_val) or p_d|length == 1 %}checked{% endif %}
  5867. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pd','pd3_{{ idx }}');\">
  5868. \t\t\t\t\t\t\t        <label for=\"pd3_{{ idx }}\">{{ pd_val }}</label>
  5869. \t\t\t\t\t\t\t      </div>
  5870. \t\t\t\t\t\t\t    {% endif %}{% endfor %}
  5871. \t\t\t\t\t\t\t    </div>
  5872. \t\t\t\t\t\t\t  </div>
  5873. \t\t\t\t\t\t\t</div>
  5874. \t\t\t\t\t\t\t{% endif %}
  5875. \t\t\t\t\t\t\t{% if p_h and p_h|length and p_h|join != \"\" %}
  5876. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5877. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">高さ</label>
  5878. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5879. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  5880. \t\t\t\t\t\t\t    {% set idx = 0 %}
  5881. \t\t\t\t\t\t\t    {% for ph_val in p_h %}{% if ph_val %}{% set idx = idx + 1 %}
  5882. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5883. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"ph\" id=\"ph3_{{ idx }}\" value=\"{{ ph_val }}\"
  5884. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.ph == ph_val) or p_h|length == 1 %}checked{% endif %}
  5885. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('ph','ph3_{{ idx }}');\">
  5886. \t\t\t\t\t\t\t        <label for=\"ph3_{{ idx }}\">{{ ph_val }}</label>
  5887. \t\t\t\t\t\t\t      </div>
  5888. \t\t\t\t\t\t\t    {% endif %}{% endfor %}
  5889. \t\t\t\t\t\t\t    </div>
  5890. \t\t\t\t\t\t\t  </div>
  5891. \t\t\t\t\t\t\t</div>
  5892. \t\t\t\t\t\t\t{% endif %}
  5893. \t\t\t\t\t\t\t{# 棚タイプ(p_m データから選択肢を生成) #}
  5894. \t\t\t\t\t\t\t{% if p_m and p_m|length and p_m|join != \"\" %}
  5895. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5896. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">棚タイプ<br><small class=\"text-muted\">(間仕切り仕様)</small></label>
  5897. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5898. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  5899. \t\t\t\t\t\t\t    {% set idx = 0 %}
  5900. \t\t\t\t\t\t\t    {% for pm_val in p_m %}{% if pm_val %}{% set idx = idx + 1 %}
  5901. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5902. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pm\" id=\"pm3_{{ idx }}\" value=\"{{ pm_val }}\"
  5903. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.pm == pm_val) or p_m|length == 1 %}checked{% endif %}
  5904. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pm','pm3_{{ idx }}');\">
  5905. \t\t\t\t\t\t\t        <label for=\"pm3_{{ idx }}\">{{ pm_val }}</label>
  5906. \t\t\t\t\t\t\t      </div>
  5907. \t\t\t\t\t\t\t    {% endif %}{% endfor %}
  5908. \t\t\t\t\t\t\t    </div>
  5909. \t\t\t\t\t\t\t  </div>
  5910. \t\t\t\t\t\t\t</div>
  5911. \t\t\t\t\t\t\t{% endif %}
  5912. \t\t\t\t\t\t\t{# カラー(共通の color データ使用) #}
  5913. \t\t\t\t\t\t\t{% if color and color|length %}
  5914. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5915. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">カラー</label>
  5916. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5917. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  5918. \t\t\t\t\t\t\t    {% set idx = 0 %}
  5919. \t\t\t\t\t\t\t    {% for cc in color %}{% if cc and cc['name'] %}{% set idx = idx + 1 %}
  5920. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5921. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"color3\" id=\"cc3_{{ idx }}\" value=\"{{ cc['name'] }}\"
  5922. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.pc == cc['name']) or color|length == 1 %}checked{% endif %}
  5923. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pc','cc3_{{ idx }}');\">
  5924. \t\t\t\t\t\t\t        <label for=\"cc3_{{ idx }}\">{{ cc['name'] }}</label>
  5925. \t\t\t\t\t\t\t      </div>
  5926. \t\t\t\t\t\t\t    {% endif %}{% endfor %}
  5927. \t\t\t\t\t\t\t    </div>
  5928. \t\t\t\t\t\t\t  </div>
  5929. \t\t\t\t\t\t\t</div>
  5930. \t\t\t\t\t\t\t{% endif %}
  5931. \t\t\t\t\t\t\t{# 台数 #}
  5932. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5933. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">台数</label>
  5934. \t\t\t\t\t\t\t  <div class=\"col-4\">
  5935. \t\t\t\t\t\t\t    <div class=\"input-group mb-3\">
  5936. \t\t\t\t\t\t\t      <input type=\"number\" name=\"daisu\" id=\"daisu\" class=\"form-control\" value=\"{{ mitsumori_json.daisu|default('1') }}\" min=\"1\" max=\"10\" onchange=\"mitsumori_simulation('daisu','daisu');\">
  5937. \t\t\t\t\t\t\t      <span class=\"input-group-text\">台</span>
  5938. \t\t\t\t\t\t\t    </div>
  5939. \t\t\t\t\t\t\t  </div>
  5940. \t\t\t\t\t\t\t  <div class=\"col-4\">
  5941. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-info\" onclick=\"daisu(+1);\">+</button>
  5942. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-danger\" onclick=\"daisu(-1);\">ー</button>
  5943. \t\t\t\t\t\t\t  </div>
  5944. \t\t\t\t\t\t\t</div>
  5945. \t\t\t\t\t\t{% endif %}
  5946. \t\t\t\t\t\t<!-- 4: 施工見積(フェンス・組み立て式) -->
  5947. \t\t\t\t\t\t{% if ProductClass.SaleType.id == 4 %}
  5948. \t\t\t\t\t\t\t{# 枚数 #}
  5949. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5950. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">枚数</label>
  5951. \t\t\t\t\t\t\t  <div class=\"col-4 mb-3\">
  5952. \t\t\t\t\t\t\t    <div class=\"input-group\">
  5953. \t\t\t\t\t\t\t      <input type=\"number\" name=\"maisu\" id=\"maisu\" class=\"form-control\" value=\"{{ mitsumori_json.maisu|default('3') }}\" min=\"3\" max=\"20\" onchange=\"mitsumori_simulation('maisu','maisu');\">
  5954. \t\t\t\t\t\t\t      <span class=\"input-group-text\">枚</span>
  5955. \t\t\t\t\t\t\t    </div>
  5956. \t\t\t\t\t\t\t  </div>
  5957. \t\t\t\t\t\t\t  <div class=\"col-4\">
  5958. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-info\" onclick=\"maisu(+1);\">+</button>
  5959. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-danger\" onclick=\"maisu(-1);\">ー</button>
  5960. \t\t\t\t\t\t\t  </div>
  5961. \t\t\t\t\t\t\t</div>
  5962. \t\t\t\t\t\t{% endif %}
  5963. \t\t\t\t\t\t<!-- 5: 施工見積(ウッドデッキ・タイルデッキ) -->
  5964. \t\t\t\t\t\t{% if ProductClass.SaleType.id == 5 %}
  5965. \t\t\t\t\t\t\t{# 施工面積(㎡ 直接入力) #}
  5966. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5967. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">施工面積</label>
  5968. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5969. \t\t\t\t\t\t\t    <div class=\"input-group\">
  5970. \t\t\t\t\t\t\t      <input type=\"number\" name=\"area\" id=\"area\"
  5971. \t\t\t\t\t\t\t        class=\"form-control\"
  5972. \t\t\t\t\t\t\t        value=\"{{ mitsumori_json.area|default('') }}\"
  5973. \t\t\t\t\t\t\t        placeholder=\"例: 7.5\"
  5974. \t\t\t\t\t\t\t        min=\"0.1\" step=\"0.1\"
  5975. \t\t\t\t\t\t\t        onchange=\"mitsumori_simulation('area','area');\">
  5976. \t\t\t\t\t\t\t      <span class=\"input-group-text\">㎡</span>
  5977. \t\t\t\t\t\t\t    </div>
  5978. \t\t\t\t\t\t\t    <small class=\"text-muted\">幅(cm) × 奥行き(cm) ÷ 10000 = ㎡</small>
  5979. \t\t\t\t\t\t\t  </div>
  5980. \t\t\t\t\t\t\t</div>
  5981. \t\t\t\t\t\t\t{# ステップの有無 #}
  5982. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  5983. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">ステップ</label>
  5984. \t\t\t\t\t\t\t  <div class=\"col-8\">
  5985. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  5986. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5987. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"deck_step\" id=\"deck_step_yes\" value=\"必要\"
  5988. \t\t\t\t\t\t\t          {% if mitsumori_json and mitsumori_json.deck_step == '必要' %}checked{% endif %}
  5989. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('op0','deck_step_yes');\">
  5990. \t\t\t\t\t\t\t        <label for=\"deck_step_yes\">必要</label>
  5991. \t\t\t\t\t\t\t      </div>
  5992. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  5993. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"deck_step\" id=\"deck_step_no\" value=\"不要\"
  5994. \t\t\t\t\t\t\t          {% if not mitsumori_json or mitsumori_json.deck_step == '不要' or not mitsumori_json.deck_step %}checked{% endif %}
  5995. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('op0','deck_step_no');\">
  5996. \t\t\t\t\t\t\t        <label for=\"deck_step_no\">不要</label>
  5997. \t\t\t\t\t\t\t      </div>
  5998. \t\t\t\t\t\t\t    </div>
  5999. \t\t\t\t\t\t\t  </div>
  6000. \t\t\t\t\t\t\t</div>
  6001. \t\t\t\t\t\t\t{# ウッドデッキフェンスの有無 #}
  6002. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  6003. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">デッキフェンス</label>
  6004. \t\t\t\t\t\t\t  <div class=\"col-8\">
  6005. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  6006. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  6007. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"deck_fence\" id=\"deck_fence_yes\" value=\"必要\"
  6008. \t\t\t\t\t\t\t          {% if mitsumori_json and mitsumori_json.deck_fence == '必要' %}checked{% endif %}
  6009. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('op1','deck_fence_yes');\">
  6010. \t\t\t\t\t\t\t        <label for=\"deck_fence_yes\">必要</label>
  6011. \t\t\t\t\t\t\t      </div>
  6012. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  6013. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"deck_fence\" id=\"deck_fence_no\" value=\"不要\"
  6014. \t\t\t\t\t\t\t          {% if not mitsumori_json or mitsumori_json.deck_fence == '不要' or not mitsumori_json.deck_fence %}checked{% endif %}
  6015. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('op1','deck_fence_no');\">
  6016. \t\t\t\t\t\t\t        <label for=\"deck_fence_no\">不要</label>
  6017. \t\t\t\t\t\t\t      </div>
  6018. \t\t\t\t\t\t\t    </div>
  6019. \t\t\t\t\t\t\t  </div>
  6020. \t\t\t\t\t\t\t</div>
  6021. \t\t\t\t\t\t{% endif %}
  6022. \t\t\t\t\t\t<!-- 6: 施工見積(芝生・枚数・数量買い) -->
  6023. \t\t\t\t\t\t{% if ProductClass.SaleType.id == 6 %}
  6024. \t\t\t\t\t\t\t{# 規格(p_m データ → 素材から抽出) #}
  6025. \t\t\t\t\t\t\t{% if p_m and p_m|length and p_m|join != \"\" %}
  6026. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  6027. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">規格</label>
  6028. \t\t\t\t\t\t\t  <div class=\"col-8\">
  6029. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  6030. \t\t\t\t\t\t\t    {% set idx = 0 %}
  6031. \t\t\t\t\t\t\t    {% for pm_val in p_m %}{% if pm_val %}{% set idx = idx + 1 %}
  6032. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  6033. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pm\" id=\"pm6_{{ idx }}\" value=\"{{ pm_val }}\"
  6034. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.pm == pm_val) or p_m|length == 1 %}checked{% endif %}
  6035. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pm','pm6_{{ idx }}');\">
  6036. \t\t\t\t\t\t\t        <label for=\"pm6_{{ idx }}\">{{ pm_val }}</label>
  6037. \t\t\t\t\t\t\t      </div>
  6038. \t\t\t\t\t\t\t    {% endif %}{% endfor %}
  6039. \t\t\t\t\t\t\t    </div>
  6040. \t\t\t\t\t\t\t  </div>
  6041. \t\t\t\t\t\t\t</div>
  6042. \t\t\t\t\t\t\t{% endif %}
  6043. \t\t\t\t\t\t\t{# 芝の長さ(p_w データ → 幅から抽出) #}
  6044. \t\t\t\t\t\t\t{% if p_w and p_w|length and p_w|join != \"\" %}
  6045. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  6046. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">芝の長さ</label>
  6047. \t\t\t\t\t\t\t  <div class=\"col-8\">
  6048. \t\t\t\t\t\t\t    <div class=\"form-group clearfix\">
  6049. \t\t\t\t\t\t\t    {% set idx = 0 %}
  6050. \t\t\t\t\t\t\t    {% for pw_val in p_w %}{% if pw_val %}{% set idx = idx + 1 %}
  6051. \t\t\t\t\t\t\t      <div class=\"icheck-danger d-inline\">
  6052. \t\t\t\t\t\t\t        <input type=\"radio\" name=\"pw\" id=\"pw6_{{ idx }}\" value=\"{{ pw_val }}\"
  6053. \t\t\t\t\t\t\t          {% if (mitsumori_json and mitsumori_json.pw == pw_val) or p_w|length == 1 %}checked{% endif %}
  6054. \t\t\t\t\t\t\t          onclick=\"mitsumori_simulation('pw','pw6_{{ idx }}');\">
  6055. \t\t\t\t\t\t\t        <label for=\"pw6_{{ idx }}\">{{ pw_val }}</label>
  6056. \t\t\t\t\t\t\t      </div>
  6057. \t\t\t\t\t\t\t    {% endif %}{% endfor %}
  6058. \t\t\t\t\t\t\t    </div>
  6059. \t\t\t\t\t\t\t  </div>
  6060. \t\t\t\t\t\t\t</div>
  6061. \t\t\t\t\t\t\t{% endif %}
  6062. \t\t\t\t\t\t\t{# 施工面積(㎡ 自由入力) #}
  6063. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  6064. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">施工面積</label>
  6065. \t\t\t\t\t\t\t  <div class=\"col-8\">
  6066. \t\t\t\t\t\t\t    <div class=\"input-group\">
  6067. \t\t\t\t\t\t\t      <input type=\"number\" name=\"area\" id=\"area\"
  6068. \t\t\t\t\t\t\t        class=\"form-control\"
  6069. \t\t\t\t\t\t\t        value=\"{{ mitsumori_json.area|default('') }}\"
  6070. \t\t\t\t\t\t\t        placeholder=\"例: 10.5\"
  6071. \t\t\t\t\t\t\t        min=\"0.1\" step=\"0.1\"
  6072. \t\t\t\t\t\t\t        onchange=\"mitsumori_simulation('area','area');\">
  6073. \t\t\t\t\t\t\t      <span class=\"input-group-text\">平米</span>
  6074. \t\t\t\t\t\t\t    </div>
  6075. \t\t\t\t\t\t\t  </div>
  6076. \t\t\t\t\t\t\t</div>
  6077. \t\t\t\t\t\t{% endif %}
  6078. \t\t\t\t\t\t<!-- 9: 商品のみ購入 -->
  6079. \t\t\t\t\t\t{% if ProductClass.SaleType.id == 9 %}
  6080. \t\t\t\t\t\t\t<div class=\"form-group row mt-2\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  6081. \t\t\t\t\t\t\t  <label class=\"col-4 col-form-label\">数量</label>
  6082. \t\t\t\t\t\t\t  <div class=\"col-4\">
  6083. \t\t\t\t\t\t\t    <div class=\"input-group mb-3\">
  6084. \t\t\t\t\t\t\t      <input type=\"number\" name=\"quantity_only\" id=\"quantity_only\" class=\"form-control\" value=\"1\" min=\"1\" onchange=\"\$('#quantity').val(this.value);\">
  6085. \t\t\t\t\t\t\t      <span class=\"input-group-text\">個</span>
  6086. \t\t\t\t\t\t\t    </div>
  6087. \t\t\t\t\t\t\t  </div>
  6088. \t\t\t\t\t\t\t  <div class=\"col-4\">
  6089. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-info\" onclick=\"quantityOnly(+1);\">+</button>
  6090. \t\t\t\t\t\t\t    <button type=\"button\" class=\"btn btn-danger\" onclick=\"quantityOnly(-1);\">ー</button>
  6091. \t\t\t\t\t\t\t  </div>
  6092. \t\t\t\t\t\t\t</div>
  6093. \t\t\t\t\t\t{% endif %}
  6094. \t\t\t\t\t    <div class=\"row\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\"><label class=\"col-12 col-form-label\">取り付け工事のご希望に関してお答えください。</label></div>
  6095. \t\t\t\t\t\t{% for i in 0..10 %}
  6096. \t\t\t\t\t\t\t{% if op and op|length >= i+1 %}
  6097. \t\t\t\t\t\t\t{% if op[i]['name'] %}
  6098. \t\t\t\t\t\t\t<div class=\"form-group mt-3 pb-3\" style=\"border-bottom:1px solid rgba(0,0,0,.125)\">
  6099. \t\t\t\t\t\t\t  <div class=\"rp-section-label\">{{ op[i]['name'] }}{% if mitsumori_json and mitsumori_json.op[i] %}: <span>{{ mitsumori_json.op[i] }}</span>{% endif %}</div>
  6100. \t\t\t\t\t\t\t  {% if op[i]['comment'] %}<div class=\"opt-comment\" style=\"font-size:12px;color:#666;margin:4px 0 6px;\">{{ op[i]['comment'] }}</div>{% endif %}
  6101. \t\t\t\t\t\t\t  <div class=\"opt-btn-group\">
  6102. \t\t\t\t\t\t\t    <label class=\"opt-btn{% if mitsumori_json and mitsumori_json.op[i] == op[i]['on'] %} is-selected{% endif %}\"
  6103. \t\t\t\t\t\t\t           onclick=\"mitsumori_simulation('op{{ i }}','op{{ i }}_1');\">
  6104. \t\t\t\t\t\t\t      <input type=\"radio\" name=\"op{{ i }}\" id=\"op{{ i }}_1\" value=\"{{ op[i]['on'] }}\" {% if mitsumori_json and mitsumori_json.op[i] == op[i]['on'] %}checked{% endif %}>
  6105. \t\t\t\t\t\t\t      {{ op[i]['on'] }}
  6106. \t\t\t\t\t\t\t    </label>
  6107. \t\t\t\t\t\t\t    <label class=\"opt-btn{% if mitsumori_json and mitsumori_json.op[i] == op[i]['off'] %} is-selected{% endif %}\"
  6108. \t\t\t\t\t\t\t           onclick=\"mitsumori_simulation('op{{ i }}','op{{ i }}_2');\">
  6109. \t\t\t\t\t\t\t      <input type=\"radio\" name=\"op{{ i }}\" id=\"op{{ i }}_2\" value=\"{{ op[i]['off'] }}\" {% if mitsumori_json and mitsumori_json.op[i] == op[i]['off'] %}checked{% endif %}>
  6110. \t\t\t\t\t\t\t      {{ op[i]['off'] }}
  6111. \t\t\t\t\t\t\t    </label>
  6112. \t\t\t\t\t\t\t  </div>
  6113. \t\t\t\t\t\t\t</div>
  6114. \t\t\t\t\t\t\t{% endif %}
  6115. \t\t\t\t\t\t\t{% endif %}
  6116. \t\t\t\t\t\t{% endfor %}
  6117. \t\t\t\t\t  </div>
  6118. \t\t\t\t\t  <!-- /.card-body -->
  6119. \t\t\t\t\t</div>
  6120.                     <form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
  6121.                         {% if Product.stock_find %}
  6122.                             <div class=\"ec-productRole__actions\">
  6123.                                 {% if form.classcategory_id1 is defined %}
  6124.                                     <div class=\"ec-select\">
  6125.                                         {{ form_row(form.classcategory_id1) }}
  6126.                                         {{ form_errors(form.classcategory_id1) }}
  6127.                                     </div>
  6128.                                     {% if form.classcategory_id2 is defined %}
  6129.                                         <div class=\"ec-select\">
  6130.                                             {{ form_row(form.classcategory_id2) }}
  6131.                                             {{ form_errors(form.classcategory_id2) }}
  6132.                                         </div>
  6133.                                     {% endif %}
  6134.                                 {% endif %}
  6135.                                 <div class=\"ec-numberInput\">
  6136.                                     {{ form_widget(form.quantity, { type: 'hidden' }) }}
  6137.                                     {{ form_errors(form.quantity) }}
  6138.                                 </div>
  6139.                             </div>
  6140.                         {% else %}
  6141.                             <div class=\"ec-productRole__btn\">
  6142.                                 <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  6143.                                     {{ 'ただいま品切れ中です。'|trans }}
  6144.                                 </button>
  6145.                             </div>
  6146.                         {% endif %}
  6147.                         <div class=\"ec-productRole__btn mt-3\">
  6148.                            <button type=\"submit\" id=\"cart_btn\" class=\"ec-blockBtn--action add-cart\">施工検討リストに入れる</button>
  6149.                         </div>
  6150.                         {{ form_rest(form) }}
  6151.                     </form>
  6152.                     <div class=\"ec-modal\">
  6153.                         <div class=\"ec-modal-overlay\">
  6154.                             <div class=\"ec-modal-wrap\">
  6155.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
  6156.                                 <div id=\"ec-modal-header\" class=\"text-center\">{{ '施工検討リストに追加しました。'|trans }}</div>
  6157.                                 <div class=\"ec-modal-box\">
  6158.                                     <div class=\"ec-role\">
  6159.                                         <span class=\"ec-inlineBtn--cancel\">{{ '商品検索を続ける'|trans }}</span>
  6160.                                         <a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ '施工検討リストへ進む'|trans }}</a>
  6161.                                     </div>
  6162.                                 </div>
  6163.                             </div>
  6164.                         </div>
  6165.                     </div>
  6166.                     <div class=\"ec-productRole__description\">{{ Product.description_detail|raw|nl2br }}
  6167.                     </div>
  6168.                     {# SNSシェア #}
  6169.                     <div class=\"ec-productRole__share\">
  6170.                         <ul class=\"ec-share\">
  6171.                             <li class=\"ec-share__item\">
  6172.                                 <a href=\"https://twitter.com/share?url={{ app.request.uri|url_encode }}&text={{ Product.name|url_encode }}\" class=\"ec-share__link ec-share__link--twitter\" target=\"_blank\" rel=\"noreferrer noopener\">
  6173.                                     <i class=\"fab fa-twitter\"></i>
  6174.                                 </a>
  6175.                             </li>
  6176.                             <li class=\"ec-share__item\">
  6177.                                 <a href=\"https://www.facebook.com/sharer/sharer.php?u={{ app.request.uri|url_encode }}\" class=\"ec-share__link ec-share__link--facebook\" target=\"_blank\" rel=\"noreferrer noopener\">
  6178.                                     <i class=\"fab fa-facebook-f\"></i>
  6179.                                 </a>
  6180.                             </li>
  6181.                             <li class=\"ec-share__item\">
  6182.                                 <a href=\"https://social-plugins.line.me/lineit/share?url={{ app.request.uri|url_encode }}\" class=\"ec-share__link ec-share__link--line\" target=\"_blank\" rel=\"noreferrer noopener\">
  6183.                                     <i class=\"fab fa-line\"></i>
  6184.                                 </a>
  6185.                             </li>
  6186.                         </ul>
  6187.                     </div>
  6188.                 </div>
  6189. \t\t\t\t{# ===== スマホ用 見積金額 下部固定バー ===== #}
  6190. \t\t\t\t<div id=\"sp-mitsumori-bar\">
  6191. \t\t\t\t    <div>
  6192. \t\t\t\t        <div class=\"sp-bar__label\">合計(工事費・税込)</div>
  6193. \t\t\t\t        <div class=\"sp-bar__price\" id=\"sp-mitsumori-price\">---円</div>
  6194. \t\t\t\t    </div>
  6195. \t\t\t\t    <button type=\"button\" class=\"sp-bar__btn\"
  6196. \t\t\t\t            onclick=\"document.getElementById('cart_btn2') && document.getElementById('cart_btn2').click();\">
  6197. \t\t\t\t        検討リストへ
  6198. \t\t\t\t    </button>
  6199. \t\t\t\t</div>
  6200. \t\t\t\t<div class=\"card col-12 collapsed-card sticky-top float-right mitsumori-card-pc\">
  6201. \t\t\t\t\t<div class=\"card-header\">
  6202. \t\t\t\t\t  <h3 class=\"card-title\">現在のお見積り額</h3>
  6203. \t\t\t\t\t  <div class=\"card-tools\">
  6204. \t\t\t\t\t    <span class=\"float-left\" id=\"mitsumori_message\">395000円</span>
  6205. \t\t\t\t\t    <button type=\"button\" class=\"btn btn-tool btn-mitsumori-toggle\" data-card-widget=\"collapse\" title=\"詳細を表示\">
  6206. \t\t\t\t\t      <span class=\"toggle-icon\">▼ 詳細</span>
  6207. \t\t\t\t\t    </button>
  6208. \t\t\t\t\t  </div>
  6209. \t\t\t\t\t</div>
  6210. \t\t\t\t\t<div class=\"card-body p-0\">
  6211. \t\t\t\t\t  <ul class=\"nav nav-pills flex-column\">
  6212. \t\t\t\t\t    <li class=\"nav-item active\">
  6213. \t\t\t\t\t      <a class=\"nav-link\">
  6214. \t\t\t\t\t        <i class=\"far fa-file-alt\"></i> 合計(工事費・税込)
  6215. \t\t\t\t\t        <span class=\"float-right\" id=\"mitsumori_goukei\">395,000円</span>
  6216. \t\t\t\t\t      </a>
  6217. \t\t\t\t\t    </li>
  6218. \t\t\t\t\t    <li class=\"nav-item active\">
  6219. \t\t\t\t\t      <a class=\"nav-link\">
  6220. \t\t\t\t\t        <i class=\"far fa-file-alt\"></i> 商品価格
  6221. \t\t\t\t\t        <span class=\"float-right\" id=\"mitsumori_price\">307,008円</span>
  6222. \t\t\t\t\t      </a>
  6223. \t\t\t\t\t    </li>
  6224. \t\t\t\t\t    <li class=\"nav-item\">
  6225. \t\t\t\t\t      <a class=\"nav-link\">
  6226. \t\t\t\t\t        &nbsp;&nbsp;<i class=\"far fa-file-alt\"></i> カタログ価格
  6227. \t\t\t\t\t        <span class=\"float-right\" id=\"maker_price\">479,700円</span>
  6228. \t\t\t\t\t      </a>
  6229. \t\t\t\t\t    </li>
  6230. \t\t\t\t\t    <li class=\"nav-item\">
  6231. \t\t\t\t\t      <a class=\"nav-link\">
  6232. \t\t\t\t\t        &nbsp;&nbsp;<i class=\"far fa-file-alt\"></i> お値引き
  6233. \t\t\t\t\t        <span class=\"float-right\" id=\"mitsumori_off\">-172,692円</span>
  6234. \t\t\t\t\t      </a>
  6235. \t\t\t\t\t    </li>
  6236. \t\t\t\t\t    <li class=\"nav-item\">
  6237. \t\t\t\t\t      <a class=\"nav-link\">
  6238. \t\t\t\t\t        <i class=\"far fa-file-alt\"></i> 基本工事費
  6239. \t\t\t\t\t        <span class=\"float-right\" id=\"mitsumori_ct\">53,250円</span>
  6240. \t\t\t\t\t      </a>
  6241. \t\t\t\t\t    </li>
  6242. \t\t\t\t\t    <li class=\"nav-item\">
  6243. \t\t\t\t\t      <a class=\"nav-link\">
  6244. \t\t\t\t\t        <i class=\"far fa-file-alt\"></i> 施工オプション
  6245. \t\t\t\t\t        <span class=\"float-right\"id=\"mitsumori_option\">6,297円</span>
  6246. \t\t\t\t\t      </a>
  6247. \t\t\t\t\t    </li>
  6248. \t\t\t\t\t  </ul>
  6249. \t\t\t\t\t</div>
  6250. \t\t\t\t\t<div class=\"card-footer\">
  6251. \t\t                <button type=\"button\" id=\"mitsumori_btn\" class=\"btn btn-info\" data-toggle=\"modal\" data-target=\"#modal-mitsumori\">
  6252. \t\t                  見積書表示
  6253. \t\t                </button>
  6254.                         <button type=\"submit\" id=\"cart_btn2\" class=\"btn btn-info add-cart\">施工検討リストに入れる</button>
  6255. \t\t\t\t\t</div>
  6256. \t\t\t\t</div>
  6257.             </div>
  6258.         </div>
  6259.     </div>
  6260.   <div class=\"modal\" id=\"modal-mitsumori\">
  6261.     <div class=\"modal-dialog modal-mitsumori\" style=\"max-width:1000px\">
  6262.       <div class=\"modal-content\">
  6263.         <div class=\"modal-header\">
  6264.           <h4 class=\"modal-title\">お見積書</h4>
  6265.           <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
  6266.             <span aria-hidden=\"true\">&times;</span>
  6267.           </button>
  6268.         </div>
  6269.         <div class=\"modal-body\">
  6270. \t\t\t<div class=\"invoice p-3 mb-5\" style=\"max-width:1000px; margin:auto;\">
  6271. \t\t\t  <!-- title row -->
  6272. \t\t\t  <div class=\"row\">
  6273. \t\t\t    <div class=\"col-12\">
  6274. \t\t\t      <h2>概算お見積書 
  6275. \t\t\t        <small class=\"float-right\" style=\"font-size:14px;\">発行日: 2025/03/14</small>
  6276. \t\t\t      </h2>
  6277. \t\t\t    </div>
  6278. \t\t\t    <!-- /.col -->
  6279. \t\t\t  </div>
  6280. \t\t\t  <!-- info row -->
  6281. \t\t\t  <div class=\"row invoice-info\">
  6282. \t\t\t    <div class=\"col-sm-8 invoice-col\">
  6283. \t\t\t      <h3>お客様</h3>
  6284. \t\t\t      <span>下記の通り、お見積もり申し上げます。</span>
  6285. \t\t\t      <br />
  6286. \t\t\t      <br / >
  6287. \t\t\t      <br />
  6288. \t\t\t      <h2>お見積金額: <span id=\"mitsumori_kei\">399,080円</span></h2>
  6289. \t\t\t      <span>
  6290. \t\t\t        <br/>
  6291. \t\t\t        <br/>
  6292. \t\t\t        <br/>
  6293. \t\t\t        <br/>
  6294. \t\t\t      </span>
  6295. \t\t\t    </div>
  6296. \t\t\t    <div class=\"col-sm-4 invoice-col\">
  6297. \t\t\t      <p>
  6298. \t\t\t        <img alt=\"\" src=\"/html/user_data/js/images/logo.png\" style=\"width: 260px; max-width: 100%; max-height: 10mm;\">
  6299. \t\t\t      </p>
  6300. \t\t\t      <p>有限会社プラス</p>
  6301. \t\t\t      <p>〒400-0334</p>
  6302. \t\t\t      <p>山梨県南アルプス市藤田1450番地2</p>
  6303. \t\t\t      <p>TEL: 055-284-6480</p>
  6304. \t\t\t      <img alt=\"\" src=\"/html/user_data/js/images/seal.svg\" style=\"z-index: 2; position: absolute; width: 21mm; left: 58mm; top: 36mm;\">
  6305. \t\t\t    </div>
  6306. \t\t\t    <!-- /.col -->
  6307. \t\t\t    <!-- /.col -->
  6308. \t\t\t  </div>
  6309. \t\t\t  <!-- /.row -->
  6310. \t\t\t  <!-- Table row -->
  6311. \t\t\t  <div class=\"row\">
  6312. \t\t\t    <div class=\"col-12 table-responsive\">
  6313. \t\t\t      <table class=\"table table-striped\">
  6314. \t\t\t        <thead>
  6315. \t\t\t          <tr>
  6316. \t\t\t            <th>項目</th>
  6317. \t\t\t            <th>数量</th>
  6318. \t\t\t            <th>単位</th>
  6319. \t\t\t            <th>単価</th>
  6320. \t\t\t            <th>小計</th>
  6321. \t\t\t          </tr>
  6322. \t\t\t        </thead>
  6323. \t\t\t        <tbody>
  6324. \t\t\t          <tr>
  6325. \t\t\t            <td>プレーンルーフ 600タイプ 1台用 単体セット</td>
  6326. \t\t\t            <td>1</td>
  6327. \t\t\t            <td>式</td>
  6328. \t\t\t            <td id=\"mitsumori_price_01\">352,800</td>
  6329. \t\t\t            <td id=\"mitsumori_price_02\">352,800</td>
  6330. \t\t\t          </tr>
  6331. \t\t\t          <tr>
  6332. \t\t\t            <td>基本工事費</td>
  6333. \t\t\t            <td>1</td>
  6334. \t\t\t            <td>式</td>
  6335. \t\t\t            <td id=\"mitsumori_ct_01\">10,000</td>
  6336. \t\t\t            <td id=\"mitsumori_ct_02\">10,000</td>
  6337. \t\t\t          </tr>
  6338. \t\t\t          <tr>
  6339. \t\t\t            <td>残土・ガラ処理</td>
  6340. \t\t\t            <td>1</td>
  6341. \t\t\t            <td>式</td>
  6342. \t\t\t            <td>0円</td>
  6343. \t\t\t            <td></td>
  6344. \t\t\t          </tr>
  6345. \t\t\t          <tr>
  6346. \t\t\t            <td> </td>
  6347. \t\t\t            <td></td>
  6348. \t\t\t            <td></td>
  6349. \t\t\t            <td></td>
  6350. \t\t\t            <td></td>
  6351. \t\t\t          </tr>
  6352. \t\t\t        </tbody>
  6353. \t\t\t      </table>
  6354. \t\t\t    </div>
  6355. \t\t\t    <!-- /.col -->
  6356. \t\t\t  </div>
  6357. \t\t\t  <!-- /.row -->
  6358. \t\t\t  <div class=\"row\">
  6359. \t\t\t    <!-- accepted payments column -->
  6360. \t\t\t    <div class=\"col-6\">
  6361. \t\t\t      <p class=\"lead\">お支払い方法</p>
  6362. \t\t\t      <p class=\"text-muted well well-sm shadow-none\" style=\"margin-top: 10px;\">銀行振込、クレジットカード決済、PAYPAY決済
  6363. \t\t\t        <br>銀行振込:山梨中央銀行 白根支店 普通口座 391402
  6364. \t\t\t        <br>※商品代金と工事代金の総額が金100万円(税込)を超える場合、着手金として代金の半額をご契約後お支払いいただきます。 
  6365. \t\t\t      </p>
  6366. \t\t\t    </div>
  6367. \t\t\t    <!-- /.col -->
  6368. \t\t\t    <div class=\"col-6\">
  6369. \t\t\t      <div class=\"table-responsive\">
  6370. \t\t\t        <table class=\"table\">
  6371. \t\t\t          <tbody>
  6372. \t\t\t            <tr>
  6373. \t\t\t              <th style=\"width:50%\">小計:</th>
  6374. \t\t\t              <td id=\"mitsumori_shoukei\">362,800</td>
  6375. \t\t\t            </tr>
  6376. \t\t\t            <tr>
  6377. \t\t\t              <th>消費税 (10%)</th>
  6378. \t\t\t              <td id=\"mitsumori_tax\">36,280</td>
  6379. \t\t\t            </tr>
  6380. \t\t\t            <tr>
  6381. \t\t\t              <th>合計:</th>
  6382. \t\t\t              <td id=\"mitsumori_goukei_02\">399,080</td>
  6383. \t\t\t            </tr>
  6384. \t\t\t          </tbody>
  6385. \t\t\t        </table>
  6386. \t\t\t      </div>
  6387. \t\t\t    </div>
  6388. \t\t\t    <!-- /.col -->
  6389. \t\t\t  </div>
  6390. \t\t\t  <!-- /.row -->
  6391. \t\t\t</div>
  6392.         </div>
  6393.         <div class=\"modal-footer justify-content-between\">
  6394. \t\t\t      {# PDF出力: mitsumori_json を POST して PDF ダウンロード #}
  6395. \t\t\t      <form method=\"post\" action=\"{{ url('mitsumori_pdf') }}\" target=\"_blank\" id=\"pdf_download_form\">
  6396. \t\t\t        <input type=\"hidden\" name=\"_token\" value=\"{{ csrf_token('mitsumori_pdf') }}\">
  6397. \t\t\t        <input type=\"hidden\" name=\"mitsumori_json\" id=\"pdf_mitsumori_json\">
  6398. \t\t\t        <button type=\"submit\" class=\"btn btn-primary float-right\" style=\"margin-right: 5px;\" onclick=\"syncPdfJson();\">
  6399. \t\t\t          <i class=\"fas fa-download\"></i>PDF出力
  6400. \t\t\t        </button>
  6401. \t\t\t      </form>
  6402.                   <button type=\"submit\" id=\"cart_btn3\" class=\"btn btn-info add-cart\">施工検討リストに入れる</button>
  6403.         </div>
  6404.       </div>
  6405.       <!-- /.modal-content -->
  6406.     </div>
  6407.     <!-- /.modal-dialog -->
  6408.   </div>
  6409.   <!-- /.modal -->
  6410. {% endblock %}
  6411. ""Product/detail.twig""/home/xs538259/exterior-plus.jp/public_html/app/template/default/Product/detail.twig");
  6412.     }
  6413. }