<commit_before><div data-hook="product_show" itemscope itemtype="https://schema.org/Product">
  <div class="col-md-6" data-hook="product_left_part">
    <div data-hook="product_left_part_wrap">
      <div id="product-images" data-hook="product_images">
        <div id="main-image" data-hook>

          <% if defined?(image) && image %>
            <%= image_tag image.attachment.url(:large), :itemprop => "image" %>
          <% else %>
            <%= large_image(@product, :itemprop => "image") %>
          <% end %>

        </div>
        <div id="thumbnails" data-hook>

          <%# no need for thumbnails unless there is more than one image %>
          <% if (@product.images + @product.variant_images).uniq.size > 1 %>
            <ul id="product-thumbnails" class="thumbnails list-inline" data-hook>
              <% @product.images.each do |i| %>
                <li class='tmb-all tmb-<%= i.viewable.id %>'>
                  <%= link_to(image_tag(i.attachment.url(:mini), class: "thumbnail"), i.attachment.url(:large)) %>
                </li>
              <% end %>

              <% if @product.has_variants? %>
                <% @product.variant_images.each do |i| %>
                  <% next if @product.images.include?(i) %>
                  <li class='vtmb tmb-<%= i.viewable.id %>'>
                    <%= link_to(image_tag(i.attachment.url(:mini), class: "thumbnail"), i.attachment.url(:large)) %>
                  </li>
                <% end %>
              <% end %>
            </ul>
          <% end %>

        </div>
      </div>
    </div>
  </div>

  <div class="col-md-6" data-hook="product_right_part">
    <div data-hook="product_right_part_wrap">
      <div id="product-description" data-hook="product_description">
        <h1 class="product-title" itemprop="name"><%= @product.name %></h1>

        <div itemprop="description" class="stacked-block" data-hook="description">
          <%= product_description(@product) rescue Spree.t(:product_has_no_description) %>
        </div>

        <div id="cart-form" class="stacked-block" data-hook="cart_form">
          <%= render :partial => 'cart_form' %>
        </div>

        <div class="stacked-block" data-hook="product_properties">
          <% unless @product_properties.empty? %>  
            <table id="product-properties" class="table" data-hook>
              <tbody>
                <% @product_properties.each do |product_property| %>
                  <% css_class = cycle('even', 'odd', :name => "properties") %>
                  <tr>
                    <th><%= product_property.property.presentation %></th>
                    <td><%= product_property.value %></td>
                  </tr>
                <% end %>
                <% reset_cycle('properties') %>
              </tbody>
            </table>
          <% end %>
        </div>

        <div class="stacked-block" data-hook="promotions">
          <%= render :partial => 'promotions' %>
        </div>
      </div>
    </div>
  </div>
</div>
<commit_msg>fix Product screen title spacing w/ description text<commit_after><div data-hook="product_show" itemscope itemtype="https://schema.org/Product">
  <div class="col-md-6" data-hook="product_left_part">
    <div data-hook="product_left_part_wrap">
      <div id="product-images" data-hook="product_images">
        <div id="main-image" data-hook>

          <% if defined?(image) && image %>
            <%= image_tag image.attachment.url(:large), :itemprop => "image" %>
          <% else %>
            <%= large_image(@product, :itemprop => "image") %>
          <% end %>

        </div>
        <div id="thumbnails" data-hook>

          <%# no need for thumbnails unless there is more than one image %>
          <% if (@product.images + @product.variant_images).uniq.size > 1 %>
            <ul id="product-thumbnails" class="thumbnails list-inline" data-hook>
              <% @product.images.each do |i| %>
                <li class='tmb-all tmb-<%= i.viewable.id %>'>
                  <%= link_to(image_tag(i.attachment.url(:mini), class: "thumbnail"), i.attachment.url(:large)) %>
                </li>
              <% end %>

              <% if @product.has_variants? %>
                <% @product.variant_images.each do |i| %>
                  <% next if @product.images.include?(i) %>
                  <li class='vtmb tmb-<%= i.viewable.id %>'>
                    <%= link_to(image_tag(i.attachment.url(:mini), class: "thumbnail"), i.attachment.url(:large)) %>
                  </li>
                <% end %>
              <% end %>
            </ul>
          <% end %>

        </div>
      </div>
    </div>
  </div>

  <div class="col-md-6" data-hook="product_right_part">
    <div data-hook="product_right_part_wrap">
      <div id="product-description" data-hook="product_description">
        <h1 class="product-title stacked-block" itemprop="name"><%= @product.name %></h1>

        <div itemprop="description" class="stacked-block" data-hook="description">
          <%= product_description(@product) rescue Spree.t(:product_has_no_description) %>
        </div>

        <div id="cart-form" class="stacked-block" data-hook="cart_form">
          <%= render :partial => 'cart_form' %>
        </div>

        <div class="stacked-block" data-hook="product_properties">
          <% unless @product_properties.empty? %>  
            <table id="product-properties" class="table" data-hook>
              <tbody>
                <% @product_properties.each do |product_property| %>
                  <% css_class = cycle('even', 'odd', :name => "properties") %>
                  <tr>
                    <th><%= product_property.property.presentation %></th>
                    <td><%= product_property.value %></td>
                  </tr>
                <% end %>
                <% reset_cycle('properties') %>
              </tbody>
            </table>
          <% end %>
        </div>

        <div class="stacked-block" data-hook="promotions">
          <%= render :partial => 'promotions' %>
        </div>
      </div>
    </div>
  </div>
</div>

{'fraction_non_alphanumeric': 0.17290406929236804, 'fraction_numerical': 0.0016342539630658604, 'mean_word_length': 1.9156741305383516, 'pattern_counts': {'":': 0, '<': 153, '<?xml version=': 0, '>': 165, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4929276', 'n_tokens_mistral': 1952, 'n_tokens_neox': 1769, 'n_words': 330}