main.shop {
  padding-bottom: 40px;
}

.page_title {
  width: 100%;
  max-width: 1400px;
  margin: 50px auto;
}
  i.pretitle {
    display: block;
    font-size: .9rem;
    font-weight: 400;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: .1rem;
    text-align: left;
    margin: 0 0 20px;
  }
  h1 {
    text-align: left;
    margin: 0 0 20px;
  }
  h2.preamble {
    font-size: 1.2rem;
    font-weight: 400;
    text-transform: none;
    line-height: 1.5rem;
    letter-spacing: 0;
  }

section.grid.products {
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 0;
  align-items: start;
  background-color: #fff;
  border: none;
  margin: 0;
}
  section.grid.products .prod {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1;
  }
    section.grid.products .prod a.cover {
      display: block;
      width: 70%;
      aspect-ratio: 1;
      background-position: center center;
      background-size: contain;
      background-repeat: no-repeat;
      transition: .2s all;
      margin: 0 auto;
    }
    section.grid.products .prod:hover a.cover {

    }
    section.grid.products .prod .content {
      text-align: center;
      padding: 30px;
    }
      section.grid.products .prod .content a h3 {
        padding: 0;
        margin: 0 0 5px;
      }
        section.grid.products .prod .content a:hover h3 {
          color: #41b5ee;
        }
      section.grid.products .prod .content .price {
        font-size: .8rem;
        color: #41b5ee;
      }
      section.grid.products .prod .content .descr_short {
        margin: 20px 0 0 0;
      }
      section.grid.products .prod .content .cta {
        margin: 20px 0 0 0;
      }
        section.grid.products .prod .content .cta .addToCart.proc,
        #product .cta .addToCart.proc {
          background-color: #333;
          text-shadow: none;
          cursor: none;
        }
        section.grid.products .prod .content .cta .addToCart.sx,
        #product .cta .addToCart.sx {
          background-color: #2db86b;
        }
          section.grid.products .prod .content .cta .addToCart.proc span,
          section.grid.products .prod .content .cta .addToCart.sx span,
          #product .cta .addToCart.proc span,
          #product .cta .addToCart.sx span {
            display: inline-block;
            width: 20px;
            aspect-ratio: 1;
            background-color: #fff;
            mask-image: url('../svg/spinner.svg');
            mask-size: 100%;
            mask-position: center center;
            mask-repeat: no-repeat;
          }
          section.grid.products .prod .content .cta .addToCart.sx span,
          #product .cta .addToCart.sx span {
            mask-image: url('../svg/check.svg');
          }
        section.grid.products .prod .content .cta .btn.out,
        #product .cta .btn.out {
          opacity: .8;
          background-color: #7a2e2e;
          text-shadow: none;
          cursor: none;
        }

#product {
  margin: 0 0 50px;
}
  .product_overview_return {
    text-align: center;
    margin: 0 0 40px;
  }
  section.grid.img_text.product {
    align-items: start;
    background-color: #fff;
    border: none;
    padding: 0 40px;
    margin: 0 0 30px;
  }
    section.grid.img_text.product .g {
      aspect-ratio: unset;
    }
      section.grid.img_text.product .g:first-child .img {
        text-align: right;
        padding: 35px 0 0 0;
      }
        section.grid.img_text.product .g:first-child .img img {
          display: inline-block;
          width: 100%;
          max-width: 400px;
          height: auto;
          margin: 0 auto;
        }
      section.grid.img_text.product .g:first-child .gallery {
        float: right;
        max-width: 500px;
        column-count: 2;
        column-gap: 15px;
        column-fill: initial;
        padding: 15px 0 0 0;
      }
        section.grid.img_text.product .g:first-child .gallery a {
          margin-bottom: 15px;
          display: inline-block; /* Fix the misalignment of items */
          vertical-align: top;
        }
          section.grid.img_text.product .g:first-child .gallery a img {
            display: block;
            width: 100%;
            height: auto;
          }

      section.grid.img_text.product .g:last-child {
        padding: 0 0 0 40px;
      }

    #product .text_content {
      width: 100%;
      max-width: 800px;
    }
    #product h1 {
      text-align: left;
      padding: 0;
      margin: 0 0 5px;
    }
    #product .price {
      font-size: .9rem;
      font-weight: 300;
      color: #888;
      letter-spacing: .02rem;
    }
    #product .cta {
      margin: 20px 0 0 0;
    }
      #product .cta .btn {
        display: block;
      }
    #product .descr_short {
      font-size: 1rem;
      font-weight: 300;
      text-transform: uppercase;
      margin: 38px 0 0 0;
    }
    #product .descr {
      margin: 25px 0 0 0;
      color: #666;
    }
      #product .descr p {
        font-size: .9rem;
      }





@media screen and (max-width: 1400px){
  section.grid.products .prod .content a h3 {
    font-size: 1rem;
  }
}



@media screen and (max-width: 1200px){
  section.grid.products {
    grid-template-columns: 1fr 1fr;
    justify-items: center;
    grid-auto-rows: max-content !important;
  }
    section.grid.products .prod {
      padding: 40px 0;
    }
    section.grid.products .prod:nth-child(3n + 1) {
      background-color: rgba(0,0,0, .03);
    }
      section.grid.products .prod a.cover {
        aspect-ratio: 1.3;
      }
      section.grid.products .prod .content {
        padding: 20px 20px 0 20px;
      }

  #product h1 {
    font-size: 1.4rem;
    line-height: 1.7rem;
  }
}


@media screen and (max-width: 800px){
  #product {
    margin: 0 0 20px;
  }
  section.grid.img_text.product {
    padding: 0 30px;
  }
    section.grid.img_text.product .g:last-child { order: 2; padding: 0; }
    section.grid.img_text.product .g:first-child {
      order: 1;
    }
    section.grid.img_text.product .g:first-child .img {
      width: 100%;
      text-align: center;
      padding: 0;
      margin: 0 0 20px;
    }
      section.grid.img_text.product .g:first-child .img img {
        display: block;
        width: 100%;
        aspect-ratio: 2;
        object-fit: contain;
        max-width: none;
        height: auto;
      }
}


@media screen and (max-width: 600px){
  section.grid.img_text.product {
    padding: 0 20px;
  }
}


@media screen and (max-width: 500px){
  section.grid.products {
    grid-template-columns: 1fr;
  }
    section.grid.products .prod:nth-child(3n + 1) {
      background-color: transparent;
    }
    section.grid.products .prod:nth-child(odd) {
      background-color: rgba(0,0,0, .03);
    }
    section.grid.products .prod a.cover {
      aspect-ratio: 1.5;
    }

  section.grid.img_text.product .g:first-child .img img {
    aspect-ratio: 1.3;
  }
}
