spree_frontend 4.1.0.rc3 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/cart.svg +1 -0
  3. data/app/assets/javascripts/spree/frontend/cart.js +9 -9
  4. data/app/assets/javascripts/spree/frontend/turbolinks_scroll_fix.js +55 -0
  5. data/app/assets/javascripts/spree/frontend/views/spree/home/product_carousels.js +22 -12
  6. data/app/assets/javascripts/spree/frontend/views/spree/products/cart_form.js +9 -4
  7. data/app/assets/javascripts/spree/frontend/views/spree/products/description.js +2 -2
  8. data/app/assets/javascripts/spree/frontend/views/spree/products/index.js +31 -27
  9. data/app/assets/stylesheets/spree/frontend/helpers/spree/frontend_helper.scss +6 -4
  10. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/confirm.scss +7 -2
  11. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/edit.scss +8 -1
  12. data/app/assets/stylesheets/spree/frontend/views/spree/layouts/spree_application.scss +18 -3
  13. data/app/assets/stylesheets/spree/frontend/views/spree/orders/show.scss +4 -3
  14. data/app/assets/stylesheets/spree/frontend/views/spree/products/cart_form.scss +10 -0
  15. data/app/assets/stylesheets/spree/frontend/views/spree/products/index.scss +3 -3
  16. data/app/assets/stylesheets/spree/frontend/views/spree/products/show.scss +7 -4
  17. data/app/assets/stylesheets/spree/frontend/views/spree/shared/_color_select.scss +7 -2
  18. data/app/assets/stylesheets/spree/frontend/views/spree/shared/carousel/single.scss +4 -0
  19. data/app/assets/stylesheets/spree/frontend/views/spree/shared/carousel/thumbnails.scss +1 -1
  20. data/app/assets/stylesheets/spree/frontend/views/spree/shared/cart.scss +2 -4
  21. data/app/helpers/spree/frontend_helper.rb +37 -7
  22. data/app/helpers/spree/structured_data_helper.rb +1 -1
  23. data/app/views/spree/checkout/_confirm.html.erb +4 -38
  24. data/app/views/spree/checkout/_payment.html.erb +3 -1
  25. data/app/views/spree/checkout/_summary.html.erb +17 -16
  26. data/app/views/spree/checkout/edit.html.erb +1 -1
  27. data/app/views/spree/checkout/registration.html.erb +2 -2
  28. data/app/views/spree/orders/_line_item.html.erb +1 -5
  29. data/app/views/spree/orders/_line_item_data.html.erb +1 -1
  30. data/app/views/spree/orders/edit.html.erb +36 -4
  31. data/app/views/spree/orders/show.html.erb +7 -6
  32. data/app/views/spree/products/_cart_form.html.erb +2 -2
  33. data/app/views/spree/products/_filters_desktop.html.erb +2 -2
  34. data/app/views/spree/products/_filters_mobile.html.erb +2 -2
  35. data/app/views/spree/products/_gallery.html.erb +8 -12
  36. data/app/views/spree/products/_gallery_modal.html.erb +34 -23
  37. data/app/views/spree/shared/_cart.html.erb +2 -2
  38. data/app/views/spree/shared/_checkout_header.html.erb +15 -6
  39. data/app/views/spree/shared/_color_select.html.erb +2 -2
  40. data/app/views/spree/shared/_line_item.html.erb +34 -0
  41. data/app/views/spree/shared/_nav_bar.html.erb +2 -10
  42. data/app/views/spree/shared/_option_values.html.erb +2 -2
  43. data/app/views/spree/shared/_order_details.html.erb +1 -5
  44. data/app/views/spree/shared/_product_added_modal.html.erb +1 -1
  45. data/app/views/spree/taxons/_subcategories.html.erb +5 -1
  46. data/app/views/spree/users/show.html.erb +1 -1
  47. data/lib/generators/spree/frontend/copy_storefront/copy_storefront_generator.rb +2 -1
  48. metadata +11 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6300d485b7d4f5e1ceab8dc942affa9be2a7fcb0cca1e233837428e230d45742
4
- data.tar.gz: b5c81d760faa402320a3f2298f9c4e22eef9ec08c63e938bae635b35c989e529
3
+ metadata.gz: 5317d2a7a6ca3ca3bfb57ecec0acf3855ac522773bff72c884ee245475c5fda7
4
+ data.tar.gz: 5b18212fba5963c66c4ef309335f5627506c384fde5ac8f50f84130f1bfdecc1
5
5
  SHA512:
6
- metadata.gz: dbdb68dfcc5c7a71b48e2e3777428e40bbbc7f86307d3fcf55fb8d5e15070414445ea372f647b3b60819f68adc0dc37bdf6de3fc3db4c45c5e424b5f6b6edb27
7
- data.tar.gz: 748be2c488b297951807df6038a97f99f48efbe2b188d19117276eeee8f260ece52dfcf2bfd38dc9bc0b6e14ecbb755c63fa3e4a721563f1fe5230070ded6585
6
+ metadata.gz: 581b2b7605797cbd41255ae3a7c6039599bfb927ca626081fc90db6ed763a70bc2be1f6e2f8b8f32199f37cdbf165dcea7cb4950ab17efe52c68d2a46782e409
7
+ data.tar.gz: 4cdc7a0dd326ff60029ea95993a213efd34ff292f01e1a2e5ff497f7d968ee61fde81e784d2993a8a86a97c77015e2e2088d7a2ef9275a0b1d9671019f5bc416
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="92" viewBox="0 0 82.6 91.7" width="83"><g fill="currentColor"><path d="M33.6 73.3c0 0 0 0 0 0 -5 0-9.2 4.1-9.2 9.2 0 5 4.1 9.2 9.2 9.2 5 0 9.2-4.1 9.2-9.2 0 0 0 0 0 0 0-5-4.2-9.2-9.2-9.2Zm0 12.4c0 0 0 0 0 0 -1.8 0-3.3-1.5-3.3-3.3 0-1.8 1.5-3.3 3.3-3.3 1.8 0 3.3 1.5 3.3 3.3 0 1.8-1.5 3.3-3.3 3.3Z"/><path d="M64.3 73.3c-5 0-9.2 4.1-9.2 9.2 0 5 4.1 9.2 9.2 9.2 5 0 9.2-4.1 9.2-9.2 0 0 0 0 0 0 0-5-4.2-9.2-9.2-9.2Zm0 12.4c-1.8 0-3.3-1.5-3.3-3.3 0-1.8 1.5-3.3 3.3-3.3 1.8 0 3.3 1.5 3.3 3.3 0 1.8-1.5 3.3-3.3 3.3Z"/><path d="M82 31.3c-0.6-0.7-1.4-1.2-2.3-1.2l-59.2 0 -2.5-9.6c-0.3-1.3-1.5-2.2-2.9-2.2l-12.2 0c-1.6 0-3 1.3-3 3 0 1.6 1.3 3 3 3l9.9 0 2.5 9.5c0 0.1 0 0.1 0 0.2l9.2 35.3c0.3 1.3 1.5 2.2 2.9 2.2l43.1 0c1.3 0 2.5-0.9 2.9-2.2l9.2-35.3c0.2-0.9 0-1.8-0.5-2.6Zm-13.8 34.2l-38.5 0 -7.6-29.4 53.8 0 -7.6 29.4Z"/></g></svg>
@@ -12,24 +12,24 @@ Spree.ready(function ($) {
12
12
  }
13
13
  }
14
14
 
15
- $('form#update-cart a.delete').show().one('click', function () {
15
+ formUpdateCart.find('a.delete').show().one('click', function () {
16
16
  $(this).parents('.shopping-cart-item').first().find('input.shopping-cart-item-quantity-input').val(0)
17
17
  clearInvalidCouponField()
18
- $(this).parents('form').first().submit()
18
+ formUpdateCart.submit()
19
19
  return false
20
20
  })
21
- $('form#update-cart input.shopping-cart-item-quantity-input').on('keyup', function(e) {
21
+ formUpdateCart.find('input.shopping-cart-item-quantity-input').on('keyup', function(e) {
22
22
  var itemId = $(this).attr('data-id')
23
23
  var value = $(this).val()
24
24
  var newValue = isNaN(value) || value === '' ? value : parseInt(value, 10)
25
25
  var targetInputs = $("form#update-cart input.shopping-cart-item-quantity-input[data-id='" + itemId + "']")
26
26
  $(targetInputs).val(newValue)
27
27
  })
28
- $('form#update-cart input.shopping-cart-item-quantity-input').on('change', function(e) {
28
+ formUpdateCart.find('input.shopping-cart-item-quantity-input').on('change', function(e) {
29
29
  clearInvalidCouponField()
30
30
  formUpdateCart.submit()
31
31
  })
32
- $('form#update-cart button.shopping-cart-item-quantity-decrease-btn').off('click').on('click', function() {
32
+ formUpdateCart.find('button.shopping-cart-item-quantity-decrease-btn').off('click').on('click', function() {
33
33
  var itemId = $(this).attr('data-id')
34
34
  var input = $("input[data-id='" + itemId + "']")
35
35
  var inputValue = parseInt($(input).val(), 10)
@@ -40,7 +40,7 @@ Spree.ready(function ($) {
40
40
  formUpdateCart.submit()
41
41
  }
42
42
  })
43
- $('form#update-cart button.shopping-cart-item-quantity-increase-btn').off('click').on('click', function() {
43
+ formUpdateCart.find('button.shopping-cart-item-quantity-increase-btn').off('click').on('click', function() {
44
44
  var itemId = $(this).attr('data-id')
45
45
  var input = $("input[data-id='" + itemId + "']")
46
46
  var inputValue = parseInt($(input).val(), 10)
@@ -49,7 +49,7 @@ Spree.ready(function ($) {
49
49
  clearInvalidCouponField()
50
50
  formUpdateCart.submit()
51
51
  })
52
- $('form#update-cart button#shopping-cart-coupon-code-button').off('click').on('click', function(event) {
52
+ formUpdateCart.find('button#shopping-cart-coupon-code-button').off('click').on('click', function(event) {
53
53
  var couponCodeField = $('#order_coupon_code');
54
54
 
55
55
  if (!$.trim(couponCodeField.val()).length) {
@@ -58,7 +58,7 @@ Spree.ready(function ($) {
58
58
  }
59
59
  })
60
60
 
61
- $('form#update-cart button#shopping-cart-remove-coupon-code-button').off('click').on('click', function(event) {
61
+ formUpdateCart.find('button#shopping-cart-remove-coupon-code-button').off('click').on('click', function(event) {
62
62
  var input = {
63
63
  appliedCouponCodeField: $('#order_applied_coupon_code'),
64
64
  couponCodeField: $('#order_coupon_code'),
@@ -81,7 +81,7 @@ Spree.ready(function ($) {
81
81
  couponStatus: $('#coupon_status'),
82
82
  couponButton: $('#shopping-cart-coupon-code-button')
83
83
  }
84
- var updateButton = $('form#update-cart #update-button')
84
+ var updateButton = formUpdateCart.find('#update-button')
85
85
  updateButton.attr('disabled', true)
86
86
  if ($.trim(input.couponCodeField.val()).length > 0) {
87
87
  // eslint-disable-next-line no-undef
@@ -0,0 +1,55 @@
1
+ ; (function () {
2
+ // Tell the browser not to handle scrolling when restoring via the history or
3
+ // when reloading
4
+ if ('scrollRestoration' in history) {
5
+ history.scrollRestoration = 'manual'
6
+ }
7
+
8
+ var SCROLL_POSITION = 'scroll-position'
9
+ var PAGE_INVALIDATED = 'page-invalidated'
10
+
11
+ // Persist the scroll position on refresh
12
+ addEventListener('beforeunload', function () {
13
+ sessionStorage.setItem(SCROLL_POSITION, JSON.stringify(scrollData()))
14
+ });
15
+
16
+ // Invalidate the page when the next page is different from the current page
17
+ // Persist scroll information across pages
18
+ document.addEventListener('turbolinks:before-visit', function (event) {
19
+ if (event.data.url !== location.href) {
20
+ sessionStorage.setItem(PAGE_INVALIDATED, 'true')
21
+ }
22
+ sessionStorage.setItem(SCROLL_POSITION, JSON.stringify(scrollData()))
23
+ })
24
+
25
+ // When a page is fully loaded:
26
+ // 1. Get the persisted scroll position
27
+ // 2. If the locations match and the load did not originate from a page
28
+ // invalidation,
29
+ // 3. scroll to the persisted position if there, or to the top otherwise
30
+ // 4. Remove the persisted information
31
+ addEventListener('turbolinks:load', function (event) {
32
+ var scrollPosition = JSON.parse(sessionStorage.getItem(SCROLL_POSITION))
33
+
34
+ if (shouldScroll(scrollPosition)) {
35
+ scrollTo(scrollPosition.scrollX, scrollPosition.scrollY)
36
+ } else {
37
+ scrollTo(0, 0)
38
+ }
39
+ sessionStorage.removeItem(PAGE_INVALIDATED)
40
+ });
41
+
42
+ function shouldScroll(scrollPosition) {
43
+ return (scrollPosition
44
+ && scrollPosition.location === location.href
45
+ && !JSON.parse(sessionStorage.getItem(PAGE_INVALIDATED)))
46
+ }
47
+
48
+ function scrollData() {
49
+ return {
50
+ scrollX: scrollX,
51
+ scrollY: scrollY,
52
+ location: location.href
53
+ }
54
+ }
55
+ })()
@@ -9,23 +9,33 @@ Spree.fetchProductCarousel = function (taxonId, htmlContainer) {
9
9
  })
10
10
  }
11
11
 
12
+ Spree.loadCarousel = function (element, div) {
13
+ var container = $(element)
14
+ var productCarousel = $(div)
15
+ var carouselLoaded = productCarousel.attr('data-product-carousel-loaded')
16
+
17
+ if (container.length && !carouselLoaded && container.isInViewport()) {
18
+ var taxonId = productCarousel.attr('data-product-carousel-taxon-id')
19
+ productCarousel.attr('data-product-carousel-loaded', 'true')
20
+
21
+ Spree.fetchProductCarousel(taxonId, container)
22
+ }
23
+ }
24
+
25
+ Spree.loadsCarouselElements = function () {
26
+ $('div[data-product-carousel]').each(function (_index, element) { Spree.loadCarousel(element, this) })
27
+ }
28
+
12
29
  document.addEventListener('turbolinks:load', function () {
13
30
  var homePage = $('body#home')
14
31
 
15
32
  if (homePage.length) {
33
+ // load Carousels straight away if they are in the viewport
34
+ Spree.loadsCarouselElements()
35
+
36
+ // load additional Carousels when scrolling down
16
37
  $(window).on('resize scroll', function () {
17
- $('div[data-product-carousel').each(function (_index, element) {
18
- var container = $(element)
19
- var productCarousel = $(this)
20
- var carouselLoaded = productCarousel.attr('data-product-carousel-loaded')
21
-
22
- if (container.length && !carouselLoaded && container.isInViewport()) {
23
- var taxonId = productCarousel.attr('data-product-carousel-taxon-id')
24
- productCarousel.attr('data-product-carousel-loaded', 'true')
25
-
26
- Spree.fetchProductCarousel(taxonId, container)
27
- }
28
- })
38
+ Spree.loadsCarouselElements()
29
39
  })
30
40
  }
31
41
  })
@@ -34,7 +34,7 @@ function CartForm($, $cartForm) {
34
34
  this.initializeForm = function() {
35
35
  if (this.withOptionValues) {
36
36
  var $optionValue = this.firstCheckedOptionValue()
37
- this.applyCheckedOptionValue($optionValue)
37
+ this.applyCheckedOptionValue($optionValue, true)
38
38
  } else {
39
39
  this.updateAddToCart()
40
40
  this.triggerVariantImages()
@@ -49,11 +49,12 @@ function CartForm($, $cartForm) {
49
49
  this.applyCheckedOptionValue($(event.currentTarget))
50
50
  }.bind(this)
51
51
 
52
- this.applyCheckedOptionValue = function($optionValue) {
52
+ this.applyCheckedOptionValue = function($optionValue, initialUpdate) {
53
53
  this.saveCheckedOptionValue($optionValue)
54
54
  this.showAvailableVariants()
55
55
  this.updateAddToCart()
56
- this.updateVariantAvailability()
56
+ // we don't want to remove availability status on initial page load
57
+ if (!initialUpdate) this.updateVariantAvailability()
57
58
  this.updateVariantPrice()
58
59
  this.updateVariantId()
59
60
 
@@ -203,7 +204,11 @@ function CartForm($, $cartForm) {
203
204
  this.updateVariantAvailability = function() {
204
205
  var variant = this.selectedVariant()
205
206
 
206
- if (!variant) return
207
+ if (!variant) {
208
+ return $cartForm
209
+ .find('.add-to-cart-form-general-availability .add-to-cart-form-general-availability-value')
210
+ .html('')
211
+ }
207
212
 
208
213
  return $cartForm
209
214
  .find('.add-to-cart-form-general-availability .add-to-cart-form-general-availability-value')
@@ -1,5 +1,5 @@
1
- $(function() {
2
- $('#product-description-arrow').click(function() {
1
+ document.addEventListener('turbolinks:load', function () {
2
+ $('#product-description-arrow').click(function () {
3
3
  document.getElementById('product-description-long').classList.remove('d-none')
4
4
  document.getElementById('product-description-short').classList.add('d-none')
5
5
  document.getElementById('product-description-arrow').classList.remove('d-flex')
@@ -1,37 +1,41 @@
1
1
  Spree.ready(function($) {
2
- $('#sort-by-overlay-show-button').click(function() { $('#sort-by-overlay').show() })
3
- $('#sort-by-overlay-hide-button').click(function() { $('#sort-by-overlay').hide() })
4
-
5
- $('#filter-by-overlay-show-button').click(function() { $('#filter-by-overlay').show() })
6
- $('#filter-by-overlay-hide-button').click(function() { $('#filter-by-overlay').hide() })
2
+ $('#sort-by-overlay-show-button').click(function() {
3
+ $('#sort-by-overlay').show();
4
+ });
5
+ $('#sort-by-overlay-hide-button').click(function() {
6
+ $('#sort-by-overlay').hide();
7
+ });
8
+
9
+ $('#filter-by-overlay-show-button').click(function() {
10
+ $('#filter-by-overlay').show();
11
+ });
12
+ $('#filter-by-overlay-hide-button').click(function() {
13
+ $('#filter-by-overlay').hide();
14
+ });
7
15
 
8
16
  function closeNoProductModal() {
9
- $('#no-product-available').removeClass('shown')
10
- $('#overlay').removeClass('shown')
17
+ $('#no-product-available').removeClass('shown');
18
+ $('#overlay').removeClass('shown');
11
19
  }
12
20
 
13
- $('#no-product-available-close-button').click(closeNoProductModal)
14
- $('#no-product-available-hide-button').click(closeNoProductModal)
21
+ $('#no-product-available-close-button').click(closeNoProductModal);
22
+ $('#no-product-available-hide-button').click(closeNoProductModal);
15
23
 
16
24
  $('.plp-overlay-card-item').click(function() {
17
- $(this).toggleClass('plp-overlay-card-item--selected')
18
- })
19
-
20
- $('.color-select').click(function() {
21
- var allOptionsBorders = $('.color-select-border')
22
- var borderElement = $(this).find('.color-select-border')
25
+ $(this).toggleClass('plp-overlay-card-item--selected');
26
+ });
23
27
 
24
- allOptionsBorders.each(function() {
25
- $(this).removeClass('color-select-border--selected')
26
- })
27
- borderElement.addClass('color-select-border--selected')
28
- })
28
+ $('#filters-accordion .color-select, #plp-filters-accordion .color-select').click(function() {
29
+ $(this).find('.plp-overlay-color-item').toggleClass('color-select-border--selected')
30
+ });
29
31
 
30
32
  $('.plp-overlay-ul-li').click(function() {
31
- $('.plp-overlay-ul-li--active').removeClass('plp-overlay-ul-li--active')
32
- .addClass('plp-overlay-ul-li')
33
-
34
- $(this).removeClass('plp-overlay-ul-li')
35
- .addClass('plp-overlay-ul-li--active')
36
- })
37
- })
33
+ $('.plp-overlay-ul-li--active')
34
+ .removeClass('plp-overlay-ul-li--active')
35
+ .addClass('plp-overlay-ul-li');
36
+
37
+ $(this)
38
+ .removeClass('plp-overlay-ul-li')
39
+ .addClass('plp-overlay-ul-li--active');
40
+ });
41
+ });
@@ -14,10 +14,12 @@
14
14
  @include media-breakpoint-up(lg) {
15
15
  font-size: font-px-to-rem(12px);
16
16
  }
17
- span {
18
- a {
19
- color: inherit;
20
- }
17
+ a {
18
+ color: inherit;
21
19
  }
22
20
  }
23
21
  }
22
+
23
+ .breadcrumb-product-name {
24
+ padding-right: 9.5px;
25
+ }
@@ -62,11 +62,11 @@
62
62
  height: auto;
63
63
 
64
64
  @include media-breakpoint-up(sm) {
65
- width: 206px;
65
+ width: 120px;
66
66
  }
67
67
 
68
68
  @include media-breakpoint-up(lg) {
69
- width: 255px;
69
+ width: 190px;
70
70
  }
71
71
  }
72
72
 
@@ -185,6 +185,11 @@
185
185
  }
186
186
 
187
187
  &-delivery-informations {
188
+ div:first-child {
189
+ flex-shrink: unset;
190
+ -webkit-flex: unset;
191
+ }
192
+
188
193
  border-bottom: 1px solid $global-border-style;
189
194
  font-weight: 500;
190
195
 
@@ -25,12 +25,18 @@
25
25
  }
26
26
  a {
27
27
  color: $header-font-color;
28
- padding-left: 15px;
29
28
  letter-spacing: 0.5px;
29
+ text-decoration: none;
30
30
  @include media-breakpoint-down(sm) {
31
31
  padding-left: 0px;
32
32
  }
33
33
  }
34
+ &-text {
35
+ padding-left: 15px;
36
+ &:hover {
37
+ text-decoration: underline;
38
+ }
39
+ }
34
40
  }
35
41
  &-title {
36
42
  margin: 10px 0;
@@ -499,6 +505,7 @@
499
505
  }
500
506
 
501
507
  @include media-breakpoint-up(lg) {
508
+ height: 100%;
502
509
  padding: 0;
503
510
  max-width: 380px;
504
511
  align-self: flex-end;
@@ -12,7 +12,7 @@ body {
12
12
  left: 0;
13
13
  right: 0;
14
14
  bottom: 0;
15
- background-color: theme-color('overlay');
15
+ background-color: theme-color("overlay");
16
16
  opacity: 0;
17
17
  z-index: 5;
18
18
  cursor: pointer;
@@ -24,12 +24,12 @@ body {
24
24
  }
25
25
  }
26
26
 
27
-
28
27
  .dropdown-menu {
29
28
  background: $primary-background;
30
29
  border-color: $global-border-style;
31
30
  .dropdown-item {
32
- &:hover, &:focus {
31
+ &:hover,
32
+ &:focus {
33
33
  background: $secondary-background;
34
34
  color: $secondary-font-color;
35
35
  }
@@ -42,3 +42,18 @@ body {
42
42
  background: $input-background;
43
43
  color: color-yiq($input-background);
44
44
  }
45
+
46
+ @include media-breakpoint-down(md) {
47
+ input[type="email"],
48
+ input[type="number"],
49
+ input[type="password"],
50
+ input[type="search"],
51
+ input[type="tel"],
52
+ input[type="text"],
53
+ input[type="url"],
54
+ select,
55
+ select:focus,
56
+ textarea {
57
+ font-size: 16px !important;
58
+ }
59
+ }
@@ -5,8 +5,10 @@
5
5
  & > .order-show-check-mark {
6
6
  color: $secondary-color;
7
7
  margin-bottom: 25px;
8
+ margin-top: 27px;
8
9
  @include media-breakpoint-up(sm) {
9
10
  margin-bottom: 42px;
11
+ margin-top: 84px;
10
12
  }
11
13
  }
12
14
 
@@ -45,7 +47,7 @@
45
47
  }
46
48
 
47
49
  &-number {
48
- margin-top: 100px;
50
+ margin-top: 38px;
49
51
  margin-bottom: 38px;
50
52
  @include media-breakpoint-up(sm) {
51
53
  margin-top: 80px;
@@ -105,7 +107,7 @@
105
107
  padding-bottom: 0;
106
108
  }
107
109
  }
108
-
110
+
109
111
  a {
110
112
  max-width: 50%;
111
113
  margin-right: 20px;
@@ -270,4 +272,3 @@
270
272
  }
271
273
  }
272
274
  }
273
-