var/cache/dev/twig/a5/a5c8306c9ee5d23cb5020f6765d1ae7ea87714084db4fe1d4a3b82caba565334.php line 53

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_77a6d9e00f1bcf5c8733be162b18c3291e10140b8d989738f4bd8ea2d37e5fd5 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 "    <link rel=\"stylesheet\" href=\"";
  60.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/css/swiper-bundle.min.css"), "html"nulltrue);
  61.         echo "\">
  62.     <link rel=\"stylesheet\" href=\"";
  63.         // line 17
  64.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/css/product-detail.css"), "html"nulltrue);
  65.         echo "\">
  66. ";
  67.         
  68.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  69.         
  70.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  71.     }
  72.     // line 20
  73.     public function block_javascript($context, array $blocks = [])
  74.     {
  75.         $macros $this->macros;
  76.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  77.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  78.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  79.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  80.         // line 21
  81.         echo "    <script>
  82.         eccube.classCategories = ";
  83.         // line 22
  84.         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.'22$this->source); })()));
  85.         echo ";
  86.         // 規格2に選択肢を割り当てる。
  87.         function fnSetClassCategories(form, classcat_id2_selected) {
  88.             var \$form = \$(form);
  89.             var product_id = \$form.find('input[name=product_id]').val();
  90.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  91.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  92.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  93.         }
  94.         ";
  95.         // line 33
  96.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse33)) {
  97.             // line 34
  98.             echo "        fnSetClassCategories(
  99.             \$('#form1'), ";
  100.             // line 35
  101.             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.'35$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse35), "vars", [], "any"falsefalsefalse35), "value", [], "any"falsefalsefalse35));
  102.             echo "
  103.         );
  104.         ";
  105.         } elseif (twig_get_attribute($this->env$this->source,         // line 37
  106. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse37)) {
  107.             // line 38
  108.             echo "        eccube.checkStock(\$('#form1'), ";
  109.             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.'38$this->source); })()), "id", [], "any"falsefalsefalse38), "html"nulltrue);
  110.             echo ", ";
  111.             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.'38$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse38), "vars", [], "any"falsefalsefalse38), "value", [], "any"falsefalsefalse38));
  112.             echo ", null);
  113.         ";
  114.         }
  115.         // line 40
  116.         echo "    </script>
  117.     <script src=\"";
  118.         // line 41
  119.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/swiper-bundle.min.js"), "html"nulltrue);
  120.         echo "\"></script>
  121.     <script>
  122.         document.addEventListener('DOMContentLoaded', function() {
  123.             // bfcache無効化
  124.             window.addEventListener('pageshow', function(event) {
  125.                 if (event.persisted) {
  126.                     location.reload(true);
  127.                 }
  128.             });
  129.             // Thumbnails swiper
  130.             const thumbnailsSwiper = new Swiper('#product-detail-thumbnails-swiper-desktop', {
  131.                 spaceBetween: 6,
  132.                 slidesPerView: 4,
  133.                 freeMode: true,
  134.                 watchSlidesProgress: true,
  135.                 breakpoints: {
  136.                     0: {
  137.                         slidesPerView: 3,
  138.                     },
  139.                     600: {
  140.                         slidesPerView: 4,
  141.                     },
  142.                 },
  143.             });
  144.             // Main swiper
  145.             const mainSwiper = new Swiper('#product-detail-main-swiper-desktop', {
  146.                 spaceBetween: 0,
  147.                 slidesPerView: 1,
  148.                 thumbs: {
  149.                     swiper: thumbnailsSwiper,
  150.                 },
  151.             });
  152.             // Quantity controls
  153.             const quantityInput = document.querySelector('#quantity');
  154.             const quantityValue = document.querySelector('.product-info__quantity-value');
  155.             const minusBtn = document.querySelector('.product-info__quantity-btn--minus');
  156.             const plusBtn = document.querySelector('.product-info__quantity-btn--plus');
  157.             if (minusBtn && plusBtn && quantityInput) {
  158.                 minusBtn.addEventListener('click', function() {
  159.                     const currentValue = parseInt(quantityInput.value) || 1;
  160.                     if (currentValue > 1) {
  161.                         quantityInput.value = currentValue - 1;
  162.                         if (quantityValue) {
  163.                             quantityValue.textContent = quantityInput.value;
  164.                         }
  165.                     }
  166.                 });
  167.                 plusBtn.addEventListener('click', function() {
  168.                     const currentValue = parseInt(quantityInput.value) || 1;
  169.                     quantityInput.value = currentValue + 1;
  170.                     if (quantityValue) {
  171.                         quantityValue.textContent = quantityInput.value;
  172.                     }
  173.                 });
  174.                 // Update display when input changes
  175.                 quantityInput.addEventListener('change', function() {
  176.                     if (quantityValue) {
  177.                         quantityValue.textContent = this.value;
  178.                     }
  179.                 });
  180.                 // Initial display
  181.                 if (quantityValue) {
  182.                     quantityValue.textContent = quantityInput.value || 1;
  183.                 }
  184.             }
  185.         });
  186.     </script>
  187.     <script>
  188.         \$(function() {
  189.             \$('.add-cart').on('click', function(event) {
  190.                 ";
  191.         // line 118
  192.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse118)) {
  193.             // line 119
  194.             echo "                // 規格1フォームの必須チェック
  195.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  196.                     \$('#classcategory_id1')[0].setCustomValidity('";
  197.             // line 121
  198.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.product.product_class_unselected"), "html"nulltrue);
  199.             echo "');
  200.                     return true;
  201.                 } else {
  202.                     \$('#classcategory_id1')[0].setCustomValidity('');
  203.                 }
  204.                 ";
  205.         }
  206.         // line 127
  207.         echo "
  208.                 ";
  209.         // line 128
  210.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse128)) {
  211.             // line 129
  212.             echo "                // 規格2フォームの必須チェック
  213.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  214.                     \$('#classcategory_id2')[0].setCustomValidity('";
  215.             // line 131
  216.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.product.product_class_unselected"), "html"nulltrue);
  217.             echo "');
  218.                     return true;
  219.                 } else {
  220.                     \$('#classcategory_id2')[0].setCustomValidity('');
  221.                 }
  222.                 ";
  223.         }
  224.         // line 137
  225.         echo "
  226.                 // 個数フォームのチェック
  227.                 const quantityInput = \$('#quantity');
  228.                 if (quantityInput.length > 0) {
  229.                     if (quantityInput.val() < 1) {
  230.                         quantityInput[0].setCustomValidity('";
  231.         // line 142
  232.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.product.invalid_quantity"), "html"nulltrue);
  233.         echo "');
  234.                         return true;
  235.                     } else {
  236.                         quantityInput[0].setCustomValidity('');
  237.                     }
  238.                 }
  239.                 event.preventDefault();
  240.                 \$form = \$('#form1');
  241.                 \$.ajax({
  242.                     url: \$form.attr('action'),
  243.                     type: \$form.attr('method'),
  244.                     data: \$form.serialize(),
  245.                     dataType: 'json',
  246.                     beforeSend: function(xhr, settings) {
  247.                         // Buttonを無効にする
  248.                         \$('.add-cart').prop('disabled', true);
  249.                     }
  250.                 }).done(function(data) {
  251.                     // レスポンス内のメッセージをalertで表示
  252.                     \$.each(data.messages, function() {
  253.                         \$('#ec-modal-header').html(this);
  254.                     });
  255.                     \$('.ec-modal').show()
  256.                     // カートブロックを更新する
  257.                     \$.ajax({
  258.                         url: \"";
  259.         // line 170
  260.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  261.         echo "\",
  262.                         type: 'GET',
  263.                         dataType: 'html'
  264.                     }).done(function(html) {
  265.                         \$('.ec-headerRole__cart').html(html);
  266.                     });
  267.                 }).fail(function(data) {
  268.                     alert('";
  269.         // line 177
  270.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.product.add_cart_error"), "html"nulltrue);
  271.         echo "');
  272.                 }).always(function(data) {
  273.                     // Buttonを有効にする
  274.                     \$('.add-cart').prop('disabled', false);
  275.                 });
  276.             });
  277.         });
  278.         \$('.ec-modal-wrap').on('click', function(e) {
  279.             // モーダル内の処理は外側にバブリングさせない
  280.             e.stopPropagation();
  281.         });
  282.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  283.             \$('.ec-modal').hide()
  284.         });
  285.         function reloadPage() {
  286.             window.location.reload();
  287.         }
  288.     </script>
  289.     <script type=\"application/ld+json\">
  290.     {
  291.         \"@context\": \"https://schema.org/\",
  292.         \"@type\": \"Product\",
  293.         \"name\": \"";
  294.         // line 201
  295.         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.'201$this->source); })()), "name", [], "any"falsefalsefalse201), "html"nulltrue);
  296.         echo "\",
  297.         \"image\": [
  298.             ";
  299.         // line 203
  300.         $context['_parent'] = $context;
  301.         $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.'203$this->source); })()), "ProductImage", [], "any"falsefalsefalse203));
  302.         $context['_iterated'] = false;
  303.         $context['loop'] = [
  304.           'parent' => $context['_parent'],
  305.           'index0' => 0,
  306.           'index'  => 1,
  307.           'first'  => true,
  308.         ];
  309.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  310.             $length count($context['_seq']);
  311.             $context['loop']['revindex0'] = $length 1;
  312.             $context['loop']['revindex'] = $length;
  313.             $context['loop']['length'] = $length;
  314.             $context['loop']['last'] = === $length;
  315.         }
  316.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  317.             // line 204
  318.             echo "                \"";
  319.             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.'204$this->source); })()), "request", [], "any"falsefalsefalse204), "schemeAndHttpHost", [], "any"falsefalsefalse204), "html"nulltrue);
  320.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html"nulltrue);
  321.             echo "\"";
  322.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse204)) {
  323.                 echo ",";
  324.             }
  325.             // line 205
  326.             echo "
  327.             ";
  328.             $context['_iterated'] = true;
  329.             ++$context['loop']['index0'];
  330.             ++$context['loop']['index'];
  331.             $context['loop']['first'] = false;
  332.             if (isset($context['loop']['length'])) {
  333.                 --$context['loop']['revindex0'];
  334.                 --$context['loop']['revindex'];
  335.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  336.             }
  337.         }
  338.         if (!$context['_iterated']) {
  339.             // line 207
  340.             echo "                \"";
  341.             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.'207$this->source); })()), "request", [], "any"falsefalsefalse207), "schemeAndHttpHost", [], "any"falsefalsefalse207), "html"nulltrue);
  342.             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);
  343.             echo "\"
  344.             ";
  345.         }
  346.         $_parent $context['_parent'];
  347.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  348.         $context array_intersect_key($context$_parent) + $_parent;
  349.         // line 209
  350.         echo "        ],
  351.         \"description\": \"";
  352.         // line 210
  353.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruefalse210)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsefalse210), 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.'210$this->source); })()), "description_detail", [], "any"falsefalsefalse210))) : (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.'210$this->source); })()), "description_detail", [], "any"falsefalsefalse210))), ["
  354. => """ " => ""]), 0300), "html"nulltrue);
  355.         echo "\",
  356.         ";
  357.         // line 211
  358.         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.'211$this->source); })()), "code_min", [], "any"falsefalsefalse211)) {
  359.             // line 212
  360.             echo "        \"sku\": \"";
  361.             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.'212$this->source); })()), "code_min", [], "any"falsefalsefalse212), "html"nulltrue);
  362.             echo "\",
  363.         ";
  364.         }
  365.         // line 214
  366.         echo "        \"offers\": {
  367.             \"@type\": \"Offer\",
  368.             \"url\": \"";
  369.         // line 216
  370.         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.'216$this->source); })()), "id", [], "any"falsefalsefalse216)]), "html"nulltrue);
  371.         echo "\",
  372.             \"priceCurrency\": \"";
  373.         // line 217
  374.         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.'217$this->source); })()), "currency", [], "any"falsefalsefalse217), "html"nulltrue);
  375.         echo "\",
  376.             \"price\": ";
  377.         // line 218
  378.         ((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.'218$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse218)) ? (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.'218$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse218), "html"nulltrue))) : (print (0)));
  379.         echo ",
  380.             \"availability\": \"";
  381.         // line 219
  382.         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.'219$this->source); })()), "stock_find", [], "any"falsefalsefalse219)) ? ("InStock") : ("OutOfStock"));
  383.         echo "\"
  384.         }
  385.     }
  386.     </script>
  387. ";
  388.         
  389.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  390.         
  391.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  392.     }
  393.     // line 225
  394.     public function block_main($context, array $blocks = [])
  395.     {
  396.         $macros $this->macros;
  397.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  398.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  399.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  400.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  401.         // line 226
  402.         echo "    <div class=\"contact_wrapper body-section-ui\">
  403.         <!-- breadcrumb -->
  404.         <nav class=\"breadcrumb\" aria-label=\"パンくずリスト\">
  405.             <a class=\"breadcrumb__item\" href=\"";
  406.         // line 229
  407.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("homepage");
  408.         echo "\">ホーム</a>
  409.             <img class=\"breadcrumb__separator\" src=\"";
  410.         // line 230
  411.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/default/icons/icon-breadcrumb-separator.svg"), "html"nulltrue);
  412.         echo "\" alt=\"\" width=\"12\" height=\"12\" />
  413.             ";
  414.         // line 231
  415.         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.'231$this->source); })()), "ProductCategories", [], "any"falsefalsefalse231))) {
  416.             // line 232
  417.             echo "                ";
  418.             $context["firstCategory"] = twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_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.'232$this->source); })()), "ProductCategories", [], "any"falsefalsefalse232), 0, [], "array"falsefalsefalse232), "Category", [], "any"falsefalsefalse232);
  419.             // line 233
  420.             echo "                ";
  421.             $context['_parent'] = $context;
  422.             $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["firstCategory"]) || array_key_exists("firstCategory"$context) ? $context["firstCategory"] : (function () { throw new RuntimeError('Variable "firstCategory" does not exist.'233$this->source); })()), "path", [], "any"falsefalsefalse233));
  423.             $context['loop'] = [
  424.               'parent' => $context['_parent'],
  425.               'index0' => 0,
  426.               'index'  => 1,
  427.               'first'  => true,
  428.             ];
  429.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  430.                 $length count($context['_seq']);
  431.                 $context['loop']['revindex0'] = $length 1;
  432.                 $context['loop']['revindex'] = $length;
  433.                 $context['loop']['length'] = $length;
  434.                 $context['loop']['last'] = === $length;
  435.             }
  436.             foreach ($context['_seq'] as $context["_key"] => $context["Category"]) {
  437.                 // line 234
  438.                 echo "                    <a class=\"breadcrumb__item\" href=\"";
  439.                 echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  440.                 echo "\">備長炭一覧</a>
  441.                     ";
  442.                 // line 235
  443.                 if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse235)) {
  444.                     // line 236
  445.                     echo "                        <img class=\"breadcrumb__separator\" src=\"";
  446.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/default/icons/icon-breadcrumb-separator.svg"), "html"nulltrue);
  447.                     echo "\" alt=\"\" width=\"12\" height=\"12\" />
  448.                     ";
  449.                 }
  450.                 // line 238
  451.                 echo "                ";
  452.                 ++$context['loop']['index0'];
  453.                 ++$context['loop']['index'];
  454.                 $context['loop']['first'] = false;
  455.                 if (isset($context['loop']['length'])) {
  456.                     --$context['loop']['revindex0'];
  457.                     --$context['loop']['revindex'];
  458.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  459.                 }
  460.             }
  461.             $_parent $context['_parent'];
  462.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Category'], $context['_parent'], $context['loop']);
  463.             $context array_intersect_key($context$_parent) + $_parent;
  464.             // line 239
  465.             echo "                <img class=\"breadcrumb__separator\" src=\"";
  466.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/default/icons/icon-breadcrumb-separator.svg"), "html"nulltrue);
  467.             echo "\" alt=\"\" width=\"12\" height=\"12\" />
  468.             ";
  469.         }
  470.         // line 241
  471.         echo "            <span class=\"breadcrumb__item breadcrumb__item--current\">";
  472.         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.'241$this->source); })()), "name", [], "any"falsefalsefalse241), "html"nulltrue);
  473.         echo "</span>
  474.         </nav>
  475.         <div class=\"container-1200\">
  476.             <!-- product detail -->
  477.             <div class=\"product-detail product-layout\">
  478.                 <!-- switch from mobile to desktop -->
  479.                 ";
  480.         // line 249
  481.         echo "                <div class=\"product-info__desktop product-layout-header\">
  482.                     <!-- Product Title -->
  483.                     <div class=\"product-info__header\">
  484.                         ";
  485.         // line 252
  486.         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.'252$this->source); })()), "ProductCategories", [], "any"falsefalsefalse252))) {
  487.             // line 253
  488.             echo "                            ";
  489.             $context["firstCategory"] = twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_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.'253$this->source); })()), "ProductCategories", [], "any"falsefalsefalse253), 0, [], "array"falsefalsefalse253), "Category", [], "any"falsefalsefalse253);
  490.             // line 254
  491.             echo "                            <div class=\"product-info__category-badge\">";
  492.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["firstCategory"]) || array_key_exists("firstCategory"$context) ? $context["firstCategory"] : (function () { throw new RuntimeError('Variable "firstCategory" does not exist.'254$this->source); })()), "name", [], "any"falsefalsefalse254), "html"nulltrue);
  493.             echo "</div>
  494.                         ";
  495.         }
  496.         // line 256
  497.         echo "                        <h1 class=\"product-info__title\">";
  498.         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.'256$this->source); })()), "name", [], "any"falsefalsefalse256), "html"nulltrue);
  499.         echo "</h1>
  500.                     </div>
  501.                     <!-- Price -->
  502.                     <div class=\"product-info__price\">
  503.                         ";
  504.         // line 261
  505.         $context["priceIncTax"] = 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.'261$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse261);
  506.         // line 262
  507.         echo "                        ";
  508.         $context["priceExTax"] = 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.'262$this->source); })()), "getPrice02Min", [], "any"falsefalsefalse262);
  509.         // line 263
  510.         echo "                        ";
  511.         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.'263$this->source); })()), "hasProductClass", [], "any"falsefalsefalse263)) {
  512.             // line 264
  513.             echo "                            ";
  514.             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.'264$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse264) == 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.'264$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse264))) {
  515.                 // line 265
  516.                 echo "                                <span class=\"product-info__price-main\">";
  517.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["priceIncTax"]) || array_key_exists("priceIncTax"$context) ? $context["priceIncTax"] : (function () { throw new RuntimeError('Variable "priceIncTax" does not exist.'265$this->source); })()), 0"."","), "html"nulltrue);
  518.                 echo "</span>
  519.                             ";
  520.             } else {
  521.                 // line 267
  522.                 echo "                                <span class=\"product-info__price-main\">";
  523.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["priceIncTax"]) || array_key_exists("priceIncTax"$context) ? $context["priceIncTax"] : (function () { throw new RuntimeError('Variable "priceIncTax" does not exist.'267$this->source); })()), 0"."","), "html"nulltrue);
  524.                 echo "</span>
  525.                             ";
  526.             }
  527.             // line 269
  528.             echo "                        ";
  529.         } else {
  530.             // line 270
  531.             echo "                            <span class=\"product-info__price-main\">";
  532.             echo twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["priceIncTax"]) || array_key_exists("priceIncTax"$context) ? $context["priceIncTax"] : (function () { throw new RuntimeError('Variable "priceIncTax" does not exist.'270$this->source); })()), 0"."","), "html"nulltrue);
  533.             echo "</span>
  534.                         ";
  535.         }
  536.         // line 272
  537.         echo "                        <span class=\"product-info__price-unit\">円</span>
  538.                         ";
  539.         // line 273
  540.         if ((isset($context["priceExTax"]) || array_key_exists("priceExTax"$context) ? $context["priceExTax"] : (function () { throw new RuntimeError('Variable "priceExTax" does not exist.'273$this->source); })())) {
  541.             // line 274
  542.             echo "                            <span class=\"product-info__price-tax\">(税抜 ";
  543.             echo twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["priceExTax"]) || array_key_exists("priceExTax"$context) ? $context["priceExTax"] : (function () { throw new RuntimeError('Variable "priceExTax" does not exist.'274$this->source); })()), 0"."","), "html"nulltrue);
  544.             echo "円)</span>
  545.                         ";
  546.         }
  547.         // line 276
  548.         echo "                    </div>
  549.                     <div class=\"product-info__product-info-wrapper\">
  550.                         <form class=\"product-info__form\" action=\"";
  551.         // line 279
  552.         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.'279$this->source); })()), "id", [], "any"falsefalsefalse279)]), "html"nulltrue);
  553.         echo "\" method=\"post\" id=\"form1\" name=\"form1\">
  554.                             ";
  555.         // line 280
  556.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse280)) {
  557.             // line 281
  558.             echo "                                <div class=\"product-info__variant-wrapper\" style=\"margin-bottom: 16px;\">
  559.                                     <div class=\"product-info__quantity-label\" style=\"margin-bottom: 8px;\">";
  560.             // line 282
  561.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"falsetruefalse282), "vars", [], "any"falsetruefalse282), "label", [], "any"truetruefalse282)) ? (_twig_default_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"falsetruefalse282), "vars", [], "any"falsetruefalse282), "label", [], "any"falsefalsefalse282), "規格1")) : ("規格1")), "html"nulltrue);
  562.             echo "</div>
  563.                                     <div class=\"ec-select\">
  564.                                         ";
  565.             // line 284
  566.             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.'284$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse284), 'widget');
  567.             echo "
  568.                                         ";
  569.             // line 285
  570.             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.'285$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse285), 'errors');
  571.             echo "
  572.                                     </div>
  573.                                     ";
  574.             // line 287
  575.             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse287)) {
  576.                 // line 288
  577.                 echo "                                        <div class=\"product-info__quantity-label\" style=\"margin-bottom: 8px; margin-top: 16px;\">";
  578.                 echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"falsetruefalse288), "vars", [], "any"falsetruefalse288), "label", [], "any"truetruefalse288)) ? (_twig_default_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"falsetruefalse288), "vars", [], "any"falsetruefalse288), "label", [], "any"falsefalsefalse288), "規格2")) : ("規格2")), "html"nulltrue);
  579.                 echo "</div>
  580.                                         <div class=\"ec-select\">
  581.                                             ";
  582.                 // line 290
  583.                 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.'290$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse290), 'widget');
  584.                 echo "
  585.                                             ";
  586.                 // line 291
  587.                 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.'291$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse291), 'errors');
  588.                 echo "
  589.                                         </div>
  590.                                     ";
  591.             }
  592.             // line 294
  593.             echo "                                </div>
  594.                             ";
  595.         }
  596.         // line 296
  597.         echo "                            <!-- Quantity Selector -->
  598.                             ";
  599.         // line 297
  600.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "quantity", [], "any"truetruefalse297)) {
  601.             // line 298
  602.             echo "                                <div class=\"product-info__quantity-wrapper\">
  603.                                     <div class=\"product-info__quantity-label\">数量</div>
  604.                                     <div class=\"product-info__quantity\">
  605.                                         <button class=\"product-info__quantity-btn product-info__quantity-btn--minus\" type=\"button\">
  606.                                             <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  607.                                                 <rect x=\"3\" y=\"8\" width=\"14\" height=\"2\" fill=\"#353535\"/>
  608.                                             </svg>
  609.                                         </button>
  610.                                         <span class=\"product-info__quantity-value\">";
  611.             // line 306
  612.             echo twig_escape_filter($this->env, ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, ($context["form"] ?? null), "quantity", [], "any"falsetruefalse306), "vars", [], "any"falsetruefalse306), "value", [], "any"truetruefalse306)) ? (_twig_default_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, ($context["form"] ?? null), "quantity", [], "any"falsetruefalse306), "vars", [], "any"falsetruefalse306), "value", [], "any"falsefalsefalse306), 1)) : (1)), "html"nulltrue);
  613.             echo "</span>
  614.                                         ";
  615.             // line 307
  616.             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.'307$this->source); })()), "quantity", [], "any"falsefalsefalse307), 'widget', ["attr" => ["style" => "display: none;"]]);
  617.             echo "
  618.                                         ";
  619.             // line 308
  620.             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.'308$this->source); })()), "quantity", [], "any"falsefalsefalse308), 'errors');
  621.             echo "
  622.                                         <button class=\"product-info__quantity-btn product-info__quantity-btn--plus\" type=\"button\">
  623.                                             <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  624.                                                 <path d=\"M9 2H11V18H9V2Z\" fill=\"#353535\"/>
  625.                                                 <path d=\"M2 9H18V11H2V9Z\" fill=\"#353535\"/>
  626.                                             </svg>
  627.                                         </button>
  628.                                     </div>
  629.                                 </div>
  630.                             ";
  631.         }
  632.         // line 318
  633.         echo "
  634.                             <!-- Add to Cart Button -->
  635.                             ";
  636.         // line 320
  637.         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.'320$this->source); })()), "stock_find", [], "any"falsefalsefalse320)) {
  638.             // line 321
  639.             echo "                                <button class=\"product-info__cart-btn add-cart\" type=\"button\">
  640.                                     <span class=\"product-info__cart-text\">
  641.                                         <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  642.                                             <path d=\"M6 18C5.46957 18 4.96086 18.2107 4.58579 18.5858C4.21071 18.9609 4 19.4696 4 20C4 20.5304 4.21071 21.0391 4.58579 21.4142C4.96086 21.7893 5.46957 22 6 22C6.53043 22 7.03914 21.7893 7.41421 21.4142C7.78929 21.0391 8 20.5304 8 20C8 18.89 7.11 18 6 18ZM22 2H18.73L17.79 4H3C2.73478 4 2.48043 4.10536 2.29289 4.29289C2.10536 4.48043 2 4.73478 2 5C2 5.17 2.05 5.34 2.12 5.5L5.7 11.97C6.04 12.58 6.7 13 7.45 13H14.9L15.8 14.63L15.83 14.75C15.83 14.8163 15.8037 14.8799 15.7568 14.9268C15.7099 14.9737 15.6463 15 15.58 15H4V17H16C16.5304 17 17.0391 16.7893 17.4142 16.4142C17.7893 16.0391 18 15.5304 18 15C18 14.65 17.91 14.32 17.76 14.04L16.4 11.59L20 4H22V2ZM16 18C15.4696 18 14.9609 18.2107 14.5858 18.5858C14.2107 18.9609 14 19.4696 14 20C14 20.5304 14.2107 21.0391 14.5858 21.4142C14.9609 21.7893 15.4696 22 16 22C16.5304 22 17.0391 21.7893 17.4142 21.4142C17.7893 21.0391 18 20.5304 18 20C18 18.89 17.11 18 16 18ZM7 11L4.22 6H16.86L14.5 11H7Z\" fill=\"#F5F5F5\"/>
  643.                                         </svg>
  644.                                         <span>カートに入れる</span>
  645.                                     </span>
  646.                                     <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  647.                                         <path d=\"M9 6L15 12L9 18\" stroke=\"#F5F5F5\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>
  648.                                     </svg>
  649.                                 </button>
  650.                             ";
  651.         } else {
  652.             // line 333
  653.             echo "                                <button class=\"product-info__cart-btn product-info__cart-btn--disabled\" type=\"button\" disabled=\"disabled\">
  654.                                     <span class=\"product-info__cart-text\">
  655.                                         <span>在庫切れ</span>
  656.                                     </span>
  657.                                 </button>
  658.                             ";
  659.         }
  660.         // line 339
  661.         echo "
  662.                             ";
  663.         // line 340
  664.         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.'340$this->source); })()), 'rest');
  665.         echo "
  666.                         </form>
  667.                     </div>
  668.                 </div>
  669.                 <div class=\"product-detail__left product-layout-media\">
  670.                     <div class=\"product-images\">
  671.                         <!-- Main Swiper -->
  672.                         <div class=\"swiper product-images__main-swiper\" id=\"product-detail-main-swiper-desktop\">
  673.                             <div class=\"swiper-wrapper\">
  674.                                 ";
  675.         // line 350
  676.         $context['_parent'] = $context;
  677.         $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.'350$this->source); })()), "ProductImage", [], "any"falsefalsefalse350));
  678.         $context['_iterated'] = false;
  679.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  680.             // line 351
  681.             echo "                                    <div class=\"swiper-slide\">
  682.                                         <img src=\"";
  683.             // line 352
  684.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  685.             echo "\" alt=\"";
  686.             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.'352$this->source); })()), "name", [], "any"falsefalsefalse352), "html"nulltrue);
  687.             echo "\" />
  688.                                     </div>
  689.                                 ";
  690.             $context['_iterated'] = true;
  691.         }
  692.         if (!$context['_iterated']) {
  693.             // line 355
  694.             echo "                                    <div class=\"swiper-slide\">
  695.                                         <img src=\"";
  696.             // line 356
  697.             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);
  698.             echo "\" alt=\"";
  699.             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.'356$this->source); })()), "name", [], "any"falsefalsefalse356), "html"nulltrue);
  700.             echo "\" />
  701.                                     </div>
  702.                                 ";
  703.         }
  704.         $_parent $context['_parent'];
  705.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  706.         $context array_intersect_key($context$_parent) + $_parent;
  707.         // line 359
  708.         echo "                            </div>
  709.                         </div>
  710.                         <!-- Thumbnails Swiper -->
  711.                         <div class=\"swiper product-images__thumbnails-swiper\" id=\"product-detail-thumbnails-swiper-desktop\">
  712.                             <div class=\"swiper-wrapper\">
  713.                                 ";
  714.         // line 365
  715.         $context['_parent'] = $context;
  716.         $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.'365$this->source); })()), "ProductImage", [], "any"falsefalsefalse365));
  717.         $context['_iterated'] = false;
  718.         $context['loop'] = [
  719.           'parent' => $context['_parent'],
  720.           'index0' => 0,
  721.           'index'  => 1,
  722.           'first'  => true,
  723.         ];
  724.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  725.             $length count($context['_seq']);
  726.             $context['loop']['revindex0'] = $length 1;
  727.             $context['loop']['revindex'] = $length;
  728.             $context['loop']['length'] = $length;
  729.             $context['loop']['last'] = === $length;
  730.         }
  731.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  732.             // line 366
  733.             echo "                                    <div class=\"swiper-slide\">
  734.                                         <div class=\"product-images__thumbnail\">
  735.                                             <img src=\"";
  736.             // line 368
  737.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  738.             echo "\" alt=\"Thumbnail ";
  739.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse368), "html"nulltrue);
  740.             echo "\" />
  741.                                         </div>
  742.                                     </div>
  743.                                 ";
  744.             $context['_iterated'] = true;
  745.             ++$context['loop']['index0'];
  746.             ++$context['loop']['index'];
  747.             $context['loop']['first'] = false;
  748.             if (isset($context['loop']['length'])) {
  749.                 --$context['loop']['revindex0'];
  750.                 --$context['loop']['revindex'];
  751.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  752.             }
  753.         }
  754.         if (!$context['_iterated']) {
  755.             // line 372
  756.             echo "                                    <div class=\"swiper-slide\">
  757.                                         <div class=\"product-images__thumbnail\">
  758.                                             <img src=\"";
  759.             // line 374
  760.             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);
  761.             echo "\" alt=\"Thumbnail\" />
  762.                                         </div>
  763.                                     </div>
  764.                                 ";
  765.         }
  766.         $_parent $context['_parent'];
  767.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  768.         $context array_intersect_key($context$_parent) + $_parent;
  769.         // line 378
  770.         echo "                            </div>
  771.                         </div>
  772.                     </div>
  773.                 </div>
  774.                 <div class=\"product-detail__right product-layout-detail\">
  775.                     <div class=\"product-info\">
  776.                         <!-- Product Details Section -->
  777.                         ";
  778.         // line 388
  779.         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.'388$this->source); })()), "product_details_info", [], "any"falsefalsefalse388)) {
  780.             // line 389
  781.             echo "                            <div class=\"product-info__section\">
  782.                                 <div class=\"product-info__section-header\">
  783.                                     <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  784.                                         <path d=\"M18.0833 16.3333H17.1617L16.835 16.0183C18.0179 14.6464 18.6681 12.8948 18.6667 11.0833C18.6667 9.58349 18.2219 8.11734 17.3886 6.87026C16.5554 5.62319 15.371 4.65121 13.9854 4.07725C12.5997 3.50329 11.0749 3.35311 9.6039 3.64572C8.13288 3.93832 6.78166 4.66056 5.72111 5.72111C4.66056 6.78166 3.93832 8.13288 3.64572 9.6039C3.35311 11.0749 3.50329 12.5997 4.07725 13.9854C4.65121 15.371 5.62319 16.5554 6.87026 17.3886C8.11734 18.2219 9.58349 18.6667 11.0833 18.6667C12.9617 18.6667 14.6883 17.9783 16.0183 16.835L16.3333 17.1617V18.0833L22.1667 23.905L23.905 22.1667L18.0833 16.3333ZM11.0833 16.3333C8.17834 16.3333 5.83334 13.9883 5.83334 11.0833C5.83334 8.17834 8.17834 5.83334 11.0833 5.83334C13.9883 5.83334 16.3333 8.17834 16.3333 11.0833C16.3333 13.9883 13.9883 16.3333 11.0833 16.3333Z\" fill=\"#353535\"/>
  785.                                     </svg>
  786.                                     <h3 class=\"product-info__section-title\">商品詳細</h3>
  787.                                 </div>
  788.                                 <div class=\"product-info__section-content\">
  789.                                     <!-- Product Specs -->
  790.                                     <div class=\"product-info__specs\">
  791.                                         ";
  792.             // line 399
  793.             $context["details_lines"] = twig_split_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.'399$this->source); })()), "product_details_info", [], "any"falsefalsefalse399), "
  794. ");
  795.             // line 400
  796.             echo "                                        ";
  797.             $context['_parent'] = $context;
  798.             $context['_seq'] = twig_ensure_traversable((isset($context["details_lines"]) || array_key_exists("details_lines"$context) ? $context["details_lines"] : (function () { throw new RuntimeError('Variable "details_lines" does not exist.'400$this->source); })()));
  799.             foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  800.                 // line 401
  801.                 echo "                                            ";
  802.                 if (twig_trim_filter($context["line"])) {
  803.                     // line 402
  804.                     echo "                                                ";
  805.                     $context["normalized_line"] = twig_replace_filter(twig_trim_filter($context["line"]), [" " => " "]);
  806.                     // line 403
  807.                     echo "                                                ";
  808.                     $context["parts"] = twig_split_filter($this->env, (isset($context["normalized_line"]) || array_key_exists("normalized_line"$context) ? $context["normalized_line"] : (function () { throw new RuntimeError('Variable "normalized_line" does not exist.'403$this->source); })()), " "2);
  809.                     // line 404
  810.                     echo "                                                ";
  811.                     if ((twig_length_filter($this->env, (isset($context["parts"]) || array_key_exists("parts"$context) ? $context["parts"] : (function () { throw new RuntimeError('Variable "parts" does not exist.'404$this->source); })())) >= 2)) {
  812.                         // line 405
  813.                         echo "                                                    <div class=\"product-info__spec-row\">
  814.                                                         <div class=\"product-info__spec-label\">";
  815.                         // line 406
  816.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["parts"]) || array_key_exists("parts"$context) ? $context["parts"] : (function () { throw new RuntimeError('Variable "parts" does not exist.'406$this->source); })()), 0, [], "array"falsefalsefalse406), "html"nulltrue);
  817.                         echo "</div>
  818.                                                         <div class=\"product-info__spec-value\">";
  819.                         // line 407
  820.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["parts"]) || array_key_exists("parts"$context) ? $context["parts"] : (function () { throw new RuntimeError('Variable "parts" does not exist.'407$this->source); })()), 1, [], "array"falsefalsefalse407), "html"nulltrue);
  821.                         echo "</div>
  822.                                                     </div>
  823.                                                 ";
  824.                     }
  825.                     // line 410
  826.                     echo "                                            ";
  827.                 }
  828.                 // line 411
  829.                 echo "                                        ";
  830.             }
  831.             $_parent $context['_parent'];
  832.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  833.             $context array_intersect_key($context$_parent) + $_parent;
  834.             // line 412
  835.             echo "                                    </div>
  836.                                 </div>
  837.                             </div>
  838.                         ";
  839.         }
  840.         // line 416
  841.         echo "
  842.                         <!-- Product Description Section -->
  843.                         ";
  844.         // line 418
  845.         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.'418$this->source); })()), "description_detail", [], "any"falsefalsefalse418)) {
  846.             // line 419
  847.             echo "                            <div class=\"product-info__section\">
  848.                                 <div class=\"product-info__section-header\">
  849.                                     <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  850.                                         <rect x=\"2.5\" y=\"5.5\" width=\"4\" height=\"4\" rx=\"2\" fill=\"#353535\"/>
  851.                                         <rect x=\"2.5\" y=\"12.5\" width=\"4\" height=\"4\" rx=\"2\" fill=\"#353535\"/>
  852.                                         <rect x=\"2.5\" y=\"19.5\" width=\"4\" height=\"4\" rx=\"2\" fill=\"#353535\"/>
  853.                                         <rect x=\"9\" y=\"6\" width=\"15\" height=\"3\" rx=\"1.5\" fill=\"#353535\"/>
  854.                                         <rect x=\"9\" y=\"13\" width=\"11\" height=\"3\" rx=\"1.5\" fill=\"#353535\"/>
  855.                                         <rect x=\"9\" y=\"20\" width=\"6\" height=\"3\" rx=\"1.5\" fill=\"#353535\"/>
  856.                                     </svg>
  857.                                     <h3 class=\"product-info__section-title\">商品説明</h3>
  858.                                 </div>
  859.                                 <div class=\"product-info__description\">
  860.                                     ";
  861.             // line 432
  862.             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.'432$this->source); })()), "description_detail", [], "any"falsefalsefalse432));
  863.             echo "
  864.                                 </div>
  865.                             </div>
  866.                         ";
  867.         }
  868.         // line 436
  869.         echo "                        <!-- Notes Section -->
  870.                         ";
  871.         // line 437
  872.         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.'437$this->source); })()), "comment_detail", [], "any"falsefalsefalse437)) {
  873.             // line 438
  874.             echo "                            <div class=\"product-info__section\">
  875.                                 <div class=\"product-info__section-header\">
  876.                                     <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  877.                                         <circle cx=\"9.78125\" cy=\"13\" r=\"1.5\" fill=\"#353535\"/>
  878.                                         <circle cx=\"14\" cy=\"13\" r=\"1.5\" fill=\"#353535\"/>
  879.                                         <circle cx=\"18.2188\" cy=\"13\" r=\"1.5\" fill=\"#353535\"/>
  880.                                         <mask id=\"path-4-inside-1_211_2082\" fill=\"white\">
  881.                                         <path d=\"M14 4C20.0751 4 24 6.76238 24 12.5C24 18.2376 20.0751 21 14 21C13.4263 21 12.8718 20.9743 12.3379 20.9248L6 25V18.2246C4.71403 16.844 4 14.9428 4 12.5C4 6.76238 7.92487 4 14 4Z\"/>
  882.                                         </mask>
  883.                                         <path d=\"M24 12.5L26 12.5V12.5H24ZM12.3379 20.9248L12.5224 18.9333L11.836 18.8698L11.2562 19.2425L12.3379 20.9248ZM6 25H4V28.6637L7.08167 26.6823L6 25ZM6 18.2246H8V17.4375L7.46349 16.8615L6 18.2246ZM4 12.5L2 12.5L4 12.5ZM14 4V6C16.771 6 18.7605 6.63437 20.0205 7.65343C21.2128 8.61777 22 10.1258 22 12.5H24H26C26 9.13659 24.8248 6.39461 22.5359 4.54335C20.3146 2.74682 17.3041 2 14 2V4ZM24 12.5L22 12.5C22 14.8742 21.2128 16.3822 20.0205 17.3466C18.7605 18.3656 16.771 19 14 19V21V23C17.3041 23 20.3146 22.2532 22.5359 20.4567C24.8248 18.6054 26 15.8634 26 12.5L24 12.5ZM14 21V19C13.486 19 12.9931 18.9769 12.5224 18.9333L12.3379 20.9248L12.1534 22.9163C12.7504 22.9716 13.3665 23 14 23V21ZM12.3379 20.9248L11.2562 19.2425L4.91833 23.3177L6 25L7.08167 26.6823L13.4196 22.6071L12.3379 20.9248ZM6 25H8V18.2246H6H4V25H6ZM6 18.2246L7.46349 16.8615C6.58412 15.9174 6 14.5356 6 12.5L4 12.5L2 12.5C2 15.3501 2.84393 17.7706 4.53651 19.5878L6 18.2246ZM4 12.5H6C6 10.1258 6.78723 8.61777 7.97954 7.65343C9.23952 6.63437 11.229 6 14 6V4V2C10.6959 2 7.68535 2.74682 5.46411 4.54335C3.1752 6.39461 2 9.13659 2 12.5H4Z\" fill=\"#353535\" mask=\"url(#path-4-inside-1_211_2082)\"/>
  884.                                     </svg>
  885.                                     <h3 class=\"product-info__section-title product-info__section-title-20\">備考</h3>
  886.                                 </div>
  887.                                 <div class=\"product-info__notes\">
  888.                                     ";
  889.             // line 452
  890.             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.'452$this->source); })()), "comment_detail", [], "any"falsefalsefalse452));
  891.             echo "
  892.                                 </div>
  893.                             </div>
  894.                         ";
  895.         }
  896.         // line 456
  897.         echo "                    </div>
  898.                 </div>
  899.             </div>
  900.             <!-- btn back to product list -->
  901.             <div class=\"product-detail-button-wrapper\">
  902.                 <button class=\"btn_primary\" type=\"button\" onclick=\"history.back()\">
  903.                     <img class=\"btn_primary-icon\" src=\"";
  904.         // line 463
  905.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/default/icons/icon-arrow-nav-left.svg"), "html"nulltrue);
  906.         echo "\" alt=\"\" width=\"24\" height=\"24\" />
  907.                     <span class=\"btn_primary-text\">前のページに戻る</span>
  908.                 </button>
  909.             </div>
  910.         </div>
  911.     </div>
  912.     <!-- Modal -->
  913.     <div class=\"ec-modal\">
  914.         <div class=\"ec-modal-overlay\" onclick=\"reloadPage()\">
  915.             <div class=\"ec-modal-wrap\">
  916.                 <span class=\"ec-modal-close\" onclick=\"reloadPage()\"><span class=\"ec-icon\"><img src=\"";
  917.         // line 474
  918.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html"nulltrue);
  919.         echo "\" alt=\"\"/></span></span>
  920.                 <div id=\"ec-modal-header\" class=\"text-center\">";
  921.         // line 475
  922.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.product.add_cart_complete"), "html"nulltrue);
  923.         echo "</div>
  924.                 <div class=\"ec-modal-box\">
  925.                     <div class=\"ec-role ec-role-modal-flex\">
  926.                         <span onclick=\"reloadPage()\" class=\"ec-inlineBtn--cancel\">";
  927.         // line 478
  928.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.product.continue"), "html"nulltrue);
  929.         echo "</span>
  930.                         <a href=\"";
  931.         // line 479
  932.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
  933.         echo "\" class=\"ec-inlineBtn--action\">";
  934.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("common.go_to_cart"), "html"nulltrue);
  935.         echo "</a>
  936.                     </div>
  937.                 </div>
  938.             </div>
  939.         </div>
  940.     </div>
  941.     ";
  942.         // line 486
  943.         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.'486$this->source); })()), "freearea", [], "any"falsefalsefalse486)) {
  944.             // line 487
  945.             echo "        <div class=\"ec-productRole__description\">
  946.             ";
  947.             // line 488
  948.             echo twig_include($this->env$contexttwig_template_from_string($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.'488$this->source); })()), "freearea", [], "any"falsefalsefalse488)));
  949.             echo "
  950.         </div>
  951.     ";
  952.         }
  953.         
  954.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  955.         
  956.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  957.     }
  958.     public function getTemplateName()
  959.     {
  960.         return "Product/detail.twig";
  961.     }
  962.     public function isTraitable()
  963.     {
  964.         return false;
  965.     }
  966.     public function getDebugInfo()
  967.     {
  968.         return array (  997 => 488,  994 => 487,  992 => 486,  980 => 479,  976 => 478,  970 => 475,  966 => 474,  952 => 463,  943 => 456,  936 => 452,  920 => 438,  918 => 437,  915 => 436,  908 => 432,  893 => 419,  891 => 418,  887 => 416,  881 => 412,  875 => 411,  872 => 410,  866 => 407,  862 => 406,  859 => 405,  856 => 404,  853 => 403,  850 => 402,  847 => 401,  842 => 400,  839 => 399,  827 => 389,  825 => 388,  813 => 378,  803 => 374,  799 => 372,  780 => 368,  776 => 366,  758 => 365,  750 => 359,  739 => 356,  736 => 355,  726 => 352,  723 => 351,  718 => 350,  705 => 340,  702 => 339,  694 => 333,  680 => 321,  678 => 320,  674 => 318,  661 => 308,  657 => 307,  653 => 306,  643 => 298,  641 => 297,  638 => 296,  634 => 294,  628 => 291,  624 => 290,  618 => 288,  616 => 287,  611 => 285,  607 => 284,  602 => 282,  599 => 281,  597 => 280,  593 => 279,  588 => 276,  582 => 274,  580 => 273,  577 => 272,  571 => 270,  568 => 269,  562 => 267,  556 => 265,  553 => 264,  550 => 263,  547 => 262,  545 => 261,  536 => 256,  530 => 254,  527 => 253,  525 => 252,  520 => 249,  509 => 241,  503 => 239,  489 => 238,  483 => 236,  481 => 235,  476 => 234,  458 => 233,  455 => 232,  453 => 231,  449 => 230,  445 => 229,  440 => 226,  430 => 225,  415 => 219,  411 => 218,  407 => 217,  403 => 216,  399 => 214,  393 => 212,  391 => 211,  386 => 210,  383 => 209,  373 => 207,  359 => 205,  351 => 204,  333 => 203,  328 => 201,  301 => 177,  291 => 170,  260 => 142,  253 => 137,  244 => 131,  240 => 129,  238 => 128,  235 => 127,  226 => 121,  222 => 119,  220 => 118,  140 => 41,  137 => 40,  129 => 38,  127 => 37,  122 => 35,  119 => 34,  117 => 33,  103 => 22,  100 => 21,  90 => 20,  78 => 17,  73 => 16,  63 => 15,  52 => 11,  50 => 13,  37 => 11,);
  969.     }
  970.     public function getSourceContext()
  971.     {
  972.         return new Source("{#
  973. This file is part of EC-CUBE
  974. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  975. http://www.ec-cube.co.jp/
  976. For the full copyright and license information, please view the LICENSE
  977. file that was distributed with this source code.
  978. #}
  979. {% extends 'default_frame.twig' %}
  980. {% set body_class = 'product_page' %}
  981. {% block stylesheet %}
  982.     <link rel=\"stylesheet\" href=\"{{ asset('assets/css/swiper-bundle.min.css') }}\">
  983.     <link rel=\"stylesheet\" href=\"{{ asset('assets/css/product-detail.css') }}\">
  984. {% endblock %}
  985. {% block javascript %}
  986.     <script>
  987.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  988.         // 規格2に選択肢を割り当てる。
  989.         function fnSetClassCategories(form, classcat_id2_selected) {
  990.             var \$form = \$(form);
  991.             var product_id = \$form.find('input[name=product_id]').val();
  992.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  993.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  994.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  995.         }
  996.         {% if form.classcategory_id2 is defined %}
  997.         fnSetClassCategories(
  998.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  999.         );
  1000.         {% elseif form.classcategory_id1 is defined %}
  1001.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  1002.         {% endif %}
  1003.     </script>
  1004.     <script src=\"{{ asset('assets/js/swiper-bundle.min.js') }}\"></script>
  1005.     <script>
  1006.         document.addEventListener('DOMContentLoaded', function() {
  1007.             // bfcache無効化
  1008.             window.addEventListener('pageshow', function(event) {
  1009.                 if (event.persisted) {
  1010.                     location.reload(true);
  1011.                 }
  1012.             });
  1013.             // Thumbnails swiper
  1014.             const thumbnailsSwiper = new Swiper('#product-detail-thumbnails-swiper-desktop', {
  1015.                 spaceBetween: 6,
  1016.                 slidesPerView: 4,
  1017.                 freeMode: true,
  1018.                 watchSlidesProgress: true,
  1019.                 breakpoints: {
  1020.                     0: {
  1021.                         slidesPerView: 3,
  1022.                     },
  1023.                     600: {
  1024.                         slidesPerView: 4,
  1025.                     },
  1026.                 },
  1027.             });
  1028.             // Main swiper
  1029.             const mainSwiper = new Swiper('#product-detail-main-swiper-desktop', {
  1030.                 spaceBetween: 0,
  1031.                 slidesPerView: 1,
  1032.                 thumbs: {
  1033.                     swiper: thumbnailsSwiper,
  1034.                 },
  1035.             });
  1036.             // Quantity controls
  1037.             const quantityInput = document.querySelector('#quantity');
  1038.             const quantityValue = document.querySelector('.product-info__quantity-value');
  1039.             const minusBtn = document.querySelector('.product-info__quantity-btn--minus');
  1040.             const plusBtn = document.querySelector('.product-info__quantity-btn--plus');
  1041.             if (minusBtn && plusBtn && quantityInput) {
  1042.                 minusBtn.addEventListener('click', function() {
  1043.                     const currentValue = parseInt(quantityInput.value) || 1;
  1044.                     if (currentValue > 1) {
  1045.                         quantityInput.value = currentValue - 1;
  1046.                         if (quantityValue) {
  1047.                             quantityValue.textContent = quantityInput.value;
  1048.                         }
  1049.                     }
  1050.                 });
  1051.                 plusBtn.addEventListener('click', function() {
  1052.                     const currentValue = parseInt(quantityInput.value) || 1;
  1053.                     quantityInput.value = currentValue + 1;
  1054.                     if (quantityValue) {
  1055.                         quantityValue.textContent = quantityInput.value;
  1056.                     }
  1057.                 });
  1058.                 // Update display when input changes
  1059.                 quantityInput.addEventListener('change', function() {
  1060.                     if (quantityValue) {
  1061.                         quantityValue.textContent = this.value;
  1062.                     }
  1063.                 });
  1064.                 // Initial display
  1065.                 if (quantityValue) {
  1066.                     quantityValue.textContent = quantityInput.value || 1;
  1067.                 }
  1068.             }
  1069.         });
  1070.     </script>
  1071.     <script>
  1072.         \$(function() {
  1073.             \$('.add-cart').on('click', function(event) {
  1074.                 {% if form.classcategory_id1 is defined %}
  1075.                 // 規格1フォームの必須チェック
  1076.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  1077.                     \$('#classcategory_id1')[0].setCustomValidity('{{ 'front.product.product_class_unselected'|trans }}');
  1078.                     return true;
  1079.                 } else {
  1080.                     \$('#classcategory_id1')[0].setCustomValidity('');
  1081.                 }
  1082.                 {% endif %}
  1083.                 {% if form.classcategory_id2 is defined %}
  1084.                 // 規格2フォームの必須チェック
  1085.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  1086.                     \$('#classcategory_id2')[0].setCustomValidity('{{ 'front.product.product_class_unselected'|trans }}');
  1087.                     return true;
  1088.                 } else {
  1089.                     \$('#classcategory_id2')[0].setCustomValidity('');
  1090.                 }
  1091.                 {% endif %}
  1092.                 // 個数フォームのチェック
  1093.                 const quantityInput = \$('#quantity');
  1094.                 if (quantityInput.length > 0) {
  1095.                     if (quantityInput.val() < 1) {
  1096.                         quantityInput[0].setCustomValidity('{{ 'front.product.invalid_quantity'|trans }}');
  1097.                         return true;
  1098.                     } else {
  1099.                         quantityInput[0].setCustomValidity('');
  1100.                     }
  1101.                 }
  1102.                 event.preventDefault();
  1103.                 \$form = \$('#form1');
  1104.                 \$.ajax({
  1105.                     url: \$form.attr('action'),
  1106.                     type: \$form.attr('method'),
  1107.                     data: \$form.serialize(),
  1108.                     dataType: 'json',
  1109.                     beforeSend: function(xhr, settings) {
  1110.                         // Buttonを無効にする
  1111.                         \$('.add-cart').prop('disabled', true);
  1112.                     }
  1113.                 }).done(function(data) {
  1114.                     // レスポンス内のメッセージをalertで表示
  1115.                     \$.each(data.messages, function() {
  1116.                         \$('#ec-modal-header').html(this);
  1117.                     });
  1118.                     \$('.ec-modal').show()
  1119.                     // カートブロックを更新する
  1120.                     \$.ajax({
  1121.                         url: \"{{ url('block_cart') }}\",
  1122.                         type: 'GET',
  1123.                         dataType: 'html'
  1124.                     }).done(function(html) {
  1125.                         \$('.ec-headerRole__cart').html(html);
  1126.                     });
  1127.                 }).fail(function(data) {
  1128.                     alert('{{ 'front.product.add_cart_error'|trans }}');
  1129.                 }).always(function(data) {
  1130.                     // Buttonを有効にする
  1131.                     \$('.add-cart').prop('disabled', false);
  1132.                 });
  1133.             });
  1134.         });
  1135.         \$('.ec-modal-wrap').on('click', function(e) {
  1136.             // モーダル内の処理は外側にバブリングさせない
  1137.             e.stopPropagation();
  1138.         });
  1139.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1140.             \$('.ec-modal').hide()
  1141.         });
  1142.         function reloadPage() {
  1143.             window.location.reload();
  1144.         }
  1145.     </script>
  1146.     <script type=\"application/ld+json\">
  1147.     {
  1148.         \"@context\": \"https://schema.org/\",
  1149.         \"@type\": \"Product\",
  1150.         \"name\": \"{{ Product.name }}\",
  1151.         \"image\": [
  1152.             {% for img in Product.ProductImage %}
  1153.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  1154.             {% else %}
  1155.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  1156.             {% endfor %}
  1157.         ],
  1158.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  1159.         {% if Product.code_min %}
  1160.         \"sku\": \"{{ Product.code_min }}\",
  1161.         {% endif %}
  1162.         \"offers\": {
  1163.             \"@type\": \"Offer\",
  1164.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  1165.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  1166.             \"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
  1167.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  1168.         }
  1169.     }
  1170.     </script>
  1171. {% endblock %}
  1172. {% block main %}
  1173.     <div class=\"contact_wrapper body-section-ui\">
  1174.         <!-- breadcrumb -->
  1175.         <nav class=\"breadcrumb\" aria-label=\"パンくずリスト\">
  1176.             <a class=\"breadcrumb__item\" href=\"{{ url('homepage') }}\">ホーム</a>
  1177.             <img class=\"breadcrumb__separator\" src=\"{{ asset('assets/img/default/icons/icon-breadcrumb-separator.svg') }}\" alt=\"\" width=\"12\" height=\"12\" />
  1178.             {% if Product.ProductCategories is not empty %}
  1179.                 {% set firstCategory = Product.ProductCategories[0].Category %}
  1180.                 {% for Category in firstCategory.path %}
  1181.                     <a class=\"breadcrumb__item\" href=\"{{ url('product_list') }}\">備長炭一覧</a>
  1182.                     {% if not loop.last %}
  1183.                         <img class=\"breadcrumb__separator\" src=\"{{ asset('assets/img/default/icons/icon-breadcrumb-separator.svg') }}\" alt=\"\" width=\"12\" height=\"12\" />
  1184.                     {% endif %}
  1185.                 {% endfor %}
  1186.                 <img class=\"breadcrumb__separator\" src=\"{{ asset('assets/img/default/icons/icon-breadcrumb-separator.svg') }}\" alt=\"\" width=\"12\" height=\"12\" />
  1187.             {% endif %}
  1188.             <span class=\"breadcrumb__item breadcrumb__item--current\">{{ Product.name }}</span>
  1189.         </nav>
  1190.         <div class=\"container-1200\">
  1191.             <!-- product detail -->
  1192.             <div class=\"product-detail product-layout\">
  1193.                 <!-- switch from mobile to desktop -->
  1194.                 {#  #}
  1195.                 <div class=\"product-info__desktop product-layout-header\">
  1196.                     <!-- Product Title -->
  1197.                     <div class=\"product-info__header\">
  1198.                         {% if Product.ProductCategories is not empty %}
  1199.                             {% set firstCategory = Product.ProductCategories[0].Category %}
  1200.                             <div class=\"product-info__category-badge\">{{ firstCategory.name }}</div>
  1201.                         {% endif %}
  1202.                         <h1 class=\"product-info__title\">{{ Product.name }}</h1>
  1203.                     </div>
  1204.                     <!-- Price -->
  1205.                     <div class=\"product-info__price\">
  1206.                         {% set priceIncTax = Product.getPrice02IncTaxMin %}
  1207.                         {% set priceExTax = Product.getPrice02Min %}
  1208.                         {% if Product.hasProductClass %}
  1209.                             {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
  1210.                                 <span class=\"product-info__price-main\">{{ priceIncTax|number_format(0, '.', ',') }}</span>
  1211.                             {% else %}
  1212.                                 <span class=\"product-info__price-main\">{{ priceIncTax|number_format(0, '.', ',') }}</span>
  1213.                             {% endif %}
  1214.                         {% else %}
  1215.                             <span class=\"product-info__price-main\">{{ priceIncTax|number_format(0, '.', ',') }}</span>
  1216.                         {% endif %}
  1217.                         <span class=\"product-info__price-unit\">円</span>
  1218.                         {% if priceExTax %}
  1219.                             <span class=\"product-info__price-tax\">(税抜 {{ priceExTax|number_format(0, '.', ',') }}円)</span>
  1220.                         {% endif %}
  1221.                     </div>
  1222.                     <div class=\"product-info__product-info-wrapper\">
  1223.                         <form class=\"product-info__form\" action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
  1224.                             {% if form.classcategory_id1 is defined %}
  1225.                                 <div class=\"product-info__variant-wrapper\" style=\"margin-bottom: 16px;\">
  1226.                                     <div class=\"product-info__quantity-label\" style=\"margin-bottom: 8px;\">{{ form.classcategory_id1.vars.label|default('規格1') }}</div>
  1227.                                     <div class=\"ec-select\">
  1228.                                         {{ form_widget(form.classcategory_id1) }}
  1229.                                         {{ form_errors(form.classcategory_id1) }}
  1230.                                     </div>
  1231.                                     {% if form.classcategory_id2 is defined %}
  1232.                                         <div class=\"product-info__quantity-label\" style=\"margin-bottom: 8px; margin-top: 16px;\">{{ form.classcategory_id2.vars.label|default('規格2') }}</div>
  1233.                                         <div class=\"ec-select\">
  1234.                                             {{ form_widget(form.classcategory_id2) }}
  1235.                                             {{ form_errors(form.classcategory_id2) }}
  1236.                                         </div>
  1237.                                     {% endif %}
  1238.                                 </div>
  1239.                             {% endif %}
  1240.                             <!-- Quantity Selector -->
  1241.                             {% if form.quantity is defined %}
  1242.                                 <div class=\"product-info__quantity-wrapper\">
  1243.                                     <div class=\"product-info__quantity-label\">数量</div>
  1244.                                     <div class=\"product-info__quantity\">
  1245.                                         <button class=\"product-info__quantity-btn product-info__quantity-btn--minus\" type=\"button\">
  1246.                                             <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  1247.                                                 <rect x=\"3\" y=\"8\" width=\"14\" height=\"2\" fill=\"#353535\"/>
  1248.                                             </svg>
  1249.                                         </button>
  1250.                                         <span class=\"product-info__quantity-value\">{{ form.quantity.vars.value|default(1) }}</span>
  1251.                                         {{ form_widget(form.quantity, {'attr': {'style': 'display: none;'}}) }}
  1252.                                         {{ form_errors(form.quantity) }}
  1253.                                         <button class=\"product-info__quantity-btn product-info__quantity-btn--plus\" type=\"button\">
  1254.                                             <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  1255.                                                 <path d=\"M9 2H11V18H9V2Z\" fill=\"#353535\"/>
  1256.                                                 <path d=\"M2 9H18V11H2V9Z\" fill=\"#353535\"/>
  1257.                                             </svg>
  1258.                                         </button>
  1259.                                     </div>
  1260.                                 </div>
  1261.                             {% endif %}
  1262.                             <!-- Add to Cart Button -->
  1263.                             {% if Product.stock_find %}
  1264.                                 <button class=\"product-info__cart-btn add-cart\" type=\"button\">
  1265.                                     <span class=\"product-info__cart-text\">
  1266.                                         <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  1267.                                             <path d=\"M6 18C5.46957 18 4.96086 18.2107 4.58579 18.5858C4.21071 18.9609 4 19.4696 4 20C4 20.5304 4.21071 21.0391 4.58579 21.4142C4.96086 21.7893 5.46957 22 6 22C6.53043 22 7.03914 21.7893 7.41421 21.4142C7.78929 21.0391 8 20.5304 8 20C8 18.89 7.11 18 6 18ZM22 2H18.73L17.79 4H3C2.73478 4 2.48043 4.10536 2.29289 4.29289C2.10536 4.48043 2 4.73478 2 5C2 5.17 2.05 5.34 2.12 5.5L5.7 11.97C6.04 12.58 6.7 13 7.45 13H14.9L15.8 14.63L15.83 14.75C15.83 14.8163 15.8037 14.8799 15.7568 14.9268C15.7099 14.9737 15.6463 15 15.58 15H4V17H16C16.5304 17 17.0391 16.7893 17.4142 16.4142C17.7893 16.0391 18 15.5304 18 15C18 14.65 17.91 14.32 17.76 14.04L16.4 11.59L20 4H22V2ZM16 18C15.4696 18 14.9609 18.2107 14.5858 18.5858C14.2107 18.9609 14 19.4696 14 20C14 20.5304 14.2107 21.0391 14.5858 21.4142C14.9609 21.7893 15.4696 22 16 22C16.5304 22 17.0391 21.7893 17.4142 21.4142C17.7893 21.0391 18 20.5304 18 20C18 18.89 17.11 18 16 18ZM7 11L4.22 6H16.86L14.5 11H7Z\" fill=\"#F5F5F5\"/>
  1268.                                         </svg>
  1269.                                         <span>カートに入れる</span>
  1270.                                     </span>
  1271.                                     <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  1272.                                         <path d=\"M9 6L15 12L9 18\" stroke=\"#F5F5F5\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>
  1273.                                     </svg>
  1274.                                 </button>
  1275.                             {% else %}
  1276.                                 <button class=\"product-info__cart-btn product-info__cart-btn--disabled\" type=\"button\" disabled=\"disabled\">
  1277.                                     <span class=\"product-info__cart-text\">
  1278.                                         <span>在庫切れ</span>
  1279.                                     </span>
  1280.                                 </button>
  1281.                             {% endif %}
  1282.                             {{ form_rest(form) }}
  1283.                         </form>
  1284.                     </div>
  1285.                 </div>
  1286.                 <div class=\"product-detail__left product-layout-media\">
  1287.                     <div class=\"product-images\">
  1288.                         <!-- Main Swiper -->
  1289.                         <div class=\"swiper product-images__main-swiper\" id=\"product-detail-main-swiper-desktop\">
  1290.                             <div class=\"swiper-wrapper\">
  1291.                                 {% for ProductImage in Product.ProductImage %}
  1292.                                     <div class=\"swiper-slide\">
  1293.                                         <img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ Product.name }}\" />
  1294.                                     </div>
  1295.                                 {% else %}
  1296.                                     <div class=\"swiper-slide\">
  1297.                                         <img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ Product.name }}\" />
  1298.                                     </div>
  1299.                                 {% endfor %}
  1300.                             </div>
  1301.                         </div>
  1302.                         <!-- Thumbnails Swiper -->
  1303.                         <div class=\"swiper product-images__thumbnails-swiper\" id=\"product-detail-thumbnails-swiper-desktop\">
  1304.                             <div class=\"swiper-wrapper\">
  1305.                                 {% for ProductImage in Product.ProductImage %}
  1306.                                     <div class=\"swiper-slide\">
  1307.                                         <div class=\"product-images__thumbnail\">
  1308.                                             <img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"Thumbnail {{ loop.index }}\" />
  1309.                                         </div>
  1310.                                     </div>
  1311.                                 {% else %}
  1312.                                     <div class=\"swiper-slide\">
  1313.                                         <div class=\"product-images__thumbnail\">
  1314.                                             <img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"Thumbnail\" />
  1315.                                         </div>
  1316.                                     </div>
  1317.                                 {% endfor %}
  1318.                             </div>
  1319.                         </div>
  1320.                     </div>
  1321.                 </div>
  1322.                 <div class=\"product-detail__right product-layout-detail\">
  1323.                     <div class=\"product-info\">
  1324.                         <!-- Product Details Section -->
  1325.                         {% if Product.product_details_info %}
  1326.                             <div class=\"product-info__section\">
  1327.                                 <div class=\"product-info__section-header\">
  1328.                                     <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  1329.                                         <path d=\"M18.0833 16.3333H17.1617L16.835 16.0183C18.0179 14.6464 18.6681 12.8948 18.6667 11.0833C18.6667 9.58349 18.2219 8.11734 17.3886 6.87026C16.5554 5.62319 15.371 4.65121 13.9854 4.07725C12.5997 3.50329 11.0749 3.35311 9.6039 3.64572C8.13288 3.93832 6.78166 4.66056 5.72111 5.72111C4.66056 6.78166 3.93832 8.13288 3.64572 9.6039C3.35311 11.0749 3.50329 12.5997 4.07725 13.9854C4.65121 15.371 5.62319 16.5554 6.87026 17.3886C8.11734 18.2219 9.58349 18.6667 11.0833 18.6667C12.9617 18.6667 14.6883 17.9783 16.0183 16.835L16.3333 17.1617V18.0833L22.1667 23.905L23.905 22.1667L18.0833 16.3333ZM11.0833 16.3333C8.17834 16.3333 5.83334 13.9883 5.83334 11.0833C5.83334 8.17834 8.17834 5.83334 11.0833 5.83334C13.9883 5.83334 16.3333 8.17834 16.3333 11.0833C16.3333 13.9883 13.9883 16.3333 11.0833 16.3333Z\" fill=\"#353535\"/>
  1330.                                     </svg>
  1331.                                     <h3 class=\"product-info__section-title\">商品詳細</h3>
  1332.                                 </div>
  1333.                                 <div class=\"product-info__section-content\">
  1334.                                     <!-- Product Specs -->
  1335.                                     <div class=\"product-info__specs\">
  1336.                                         {% set details_lines = Product.product_details_info|split(\"\\n\") %}
  1337.                                         {% for line in details_lines %}
  1338.                                             {% if line|trim %}
  1339.                                                 {% set normalized_line = line|trim|replace({' ': ' '}) %}
  1340.                                                 {% set parts = normalized_line|split(' ', 2) %}
  1341.                                                 {% if parts|length >= 2 %}
  1342.                                                     <div class=\"product-info__spec-row\">
  1343.                                                         <div class=\"product-info__spec-label\">{{ parts[0] }}</div>
  1344.                                                         <div class=\"product-info__spec-value\">{{ parts[1] }}</div>
  1345.                                                     </div>
  1346.                                                 {% endif %}
  1347.                                             {% endif %}
  1348.                                         {% endfor %}
  1349.                                     </div>
  1350.                                 </div>
  1351.                             </div>
  1352.                         {% endif %}
  1353.                         <!-- Product Description Section -->
  1354.                         {% if Product.description_detail %}
  1355.                             <div class=\"product-info__section\">
  1356.                                 <div class=\"product-info__section-header\">
  1357.                                     <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  1358.                                         <rect x=\"2.5\" y=\"5.5\" width=\"4\" height=\"4\" rx=\"2\" fill=\"#353535\"/>
  1359.                                         <rect x=\"2.5\" y=\"12.5\" width=\"4\" height=\"4\" rx=\"2\" fill=\"#353535\"/>
  1360.                                         <rect x=\"2.5\" y=\"19.5\" width=\"4\" height=\"4\" rx=\"2\" fill=\"#353535\"/>
  1361.                                         <rect x=\"9\" y=\"6\" width=\"15\" height=\"3\" rx=\"1.5\" fill=\"#353535\"/>
  1362.                                         <rect x=\"9\" y=\"13\" width=\"11\" height=\"3\" rx=\"1.5\" fill=\"#353535\"/>
  1363.                                         <rect x=\"9\" y=\"20\" width=\"6\" height=\"3\" rx=\"1.5\" fill=\"#353535\"/>
  1364.                                     </svg>
  1365.                                     <h3 class=\"product-info__section-title\">商品説明</h3>
  1366.                                 </div>
  1367.                                 <div class=\"product-info__description\">
  1368.                                     {{ Product.description_detail|raw|nl2br }}
  1369.                                 </div>
  1370.                             </div>
  1371.                         {% endif %}
  1372.                         <!-- Notes Section -->
  1373.                         {% if Product.comment_detail %}
  1374.                             <div class=\"product-info__section\">
  1375.                                 <div class=\"product-info__section-header\">
  1376.                                     <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">
  1377.                                         <circle cx=\"9.78125\" cy=\"13\" r=\"1.5\" fill=\"#353535\"/>
  1378.                                         <circle cx=\"14\" cy=\"13\" r=\"1.5\" fill=\"#353535\"/>
  1379.                                         <circle cx=\"18.2188\" cy=\"13\" r=\"1.5\" fill=\"#353535\"/>
  1380.                                         <mask id=\"path-4-inside-1_211_2082\" fill=\"white\">
  1381.                                         <path d=\"M14 4C20.0751 4 24 6.76238 24 12.5C24 18.2376 20.0751 21 14 21C13.4263 21 12.8718 20.9743 12.3379 20.9248L6 25V18.2246C4.71403 16.844 4 14.9428 4 12.5C4 6.76238 7.92487 4 14 4Z\"/>
  1382.                                         </mask>
  1383.                                         <path d=\"M24 12.5L26 12.5V12.5H24ZM12.3379 20.9248L12.5224 18.9333L11.836 18.8698L11.2562 19.2425L12.3379 20.9248ZM6 25H4V28.6637L7.08167 26.6823L6 25ZM6 18.2246H8V17.4375L7.46349 16.8615L6 18.2246ZM4 12.5L2 12.5L4 12.5ZM14 4V6C16.771 6 18.7605 6.63437 20.0205 7.65343C21.2128 8.61777 22 10.1258 22 12.5H24H26C26 9.13659 24.8248 6.39461 22.5359 4.54335C20.3146 2.74682 17.3041 2 14 2V4ZM24 12.5L22 12.5C22 14.8742 21.2128 16.3822 20.0205 17.3466C18.7605 18.3656 16.771 19 14 19V21V23C17.3041 23 20.3146 22.2532 22.5359 20.4567C24.8248 18.6054 26 15.8634 26 12.5L24 12.5ZM14 21V19C13.486 19 12.9931 18.9769 12.5224 18.9333L12.3379 20.9248L12.1534 22.9163C12.7504 22.9716 13.3665 23 14 23V21ZM12.3379 20.9248L11.2562 19.2425L4.91833 23.3177L6 25L7.08167 26.6823L13.4196 22.6071L12.3379 20.9248ZM6 25H8V18.2246H6H4V25H6ZM6 18.2246L7.46349 16.8615C6.58412 15.9174 6 14.5356 6 12.5L4 12.5L2 12.5C2 15.3501 2.84393 17.7706 4.53651 19.5878L6 18.2246ZM4 12.5H6C6 10.1258 6.78723 8.61777 7.97954 7.65343C9.23952 6.63437 11.229 6 14 6V4V2C10.6959 2 7.68535 2.74682 5.46411 4.54335C3.1752 6.39461 2 9.13659 2 12.5H4Z\" fill=\"#353535\" mask=\"url(#path-4-inside-1_211_2082)\"/>
  1384.                                     </svg>
  1385.                                     <h3 class=\"product-info__section-title product-info__section-title-20\">備考</h3>
  1386.                                 </div>
  1387.                                 <div class=\"product-info__notes\">
  1388.                                     {{ Product.comment_detail|raw|nl2br }}
  1389.                                 </div>
  1390.                             </div>
  1391.                         {% endif %}
  1392.                     </div>
  1393.                 </div>
  1394.             </div>
  1395.             <!-- btn back to product list -->
  1396.             <div class=\"product-detail-button-wrapper\">
  1397.                 <button class=\"btn_primary\" type=\"button\" onclick=\"history.back()\">
  1398.                     <img class=\"btn_primary-icon\" src=\"{{ asset('assets/img/default/icons/icon-arrow-nav-left.svg') }}\" alt=\"\" width=\"24\" height=\"24\" />
  1399.                     <span class=\"btn_primary-text\">前のページに戻る</span>
  1400.                 </button>
  1401.             </div>
  1402.         </div>
  1403.     </div>
  1404.     <!-- Modal -->
  1405.     <div class=\"ec-modal\">
  1406.         <div class=\"ec-modal-overlay\" onclick=\"reloadPage()\">
  1407.             <div class=\"ec-modal-wrap\">
  1408.                 <span class=\"ec-modal-close\" onclick=\"reloadPage()\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
  1409.                 <div id=\"ec-modal-header\" class=\"text-center\">{{ 'front.product.add_cart_complete'|trans }}</div>
  1410.                 <div class=\"ec-modal-box\">
  1411.                     <div class=\"ec-role ec-role-modal-flex\">
  1412.                         <span onclick=\"reloadPage()\" class=\"ec-inlineBtn--cancel\">{{ 'front.product.continue'|trans }}</span>
  1413.                         <a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'common.go_to_cart'|trans }}</a>
  1414.                     </div>
  1415.                 </div>
  1416.             </div>
  1417.         </div>
  1418.     </div>
  1419.     {% if Product.freearea %}
  1420.         <div class=\"ec-productRole__description\">
  1421.             {{ include(template_from_string(Product.freearea)) }}
  1422.         </div>
  1423.     {% endif %}
  1424. {% endblock %}
  1425. ""Product/detail.twig""/home/c9857171/public_html/wood-tech.tech/app/template/default/Product/detail.twig");
  1426.     }
  1427. }