html, body {
  font-family: 'Poppins', sans-serif;
    font-weight: 300;
    font-size: 12px;
    height: 100%;
}

body {
  display: flex;
  flex-direction: column;
}
.gridHolder,
.cssSwiperHolder {
  display: flex;
  flex-direction: column;
  margin: 0;
  overflow: hidden;
  height: 100%;
}

div.isLoading{
  position: fixed;
  background-color: #FFFFFF99;
top:0;
bottom: 0;
left: 0;
right:0;
/* border-radius: 0.5em;
top:0.5em;
bottom: 0.5em;
left: 0.5em;
width: calc(100% - 1em);
border-radius: 0.5em; */
  z-index: 1050;
  display: flex;
  justify-content: center; /* Centreert horizontaal */
  align-items: center;     /* Centreert verticaal */
}
div.isLoading .isLoadingIcon{
  width: 48px;
      height: 48px;
      border: 5px solid #CCC;
      border-bottom-color: transparent;
      border-radius: 50%;
      display: inline-block;
      box-sizing: border-box;
      animation: rotation 1s linear infinite;
      }

      @keyframes rotation {
      0% {
          transform: rotate(0deg);
      }
      100% {
          transform: rotate(360deg);
      }
    }

.scroll-container {
    scroll-snap-type: y mandatory;
    overflow-y: scroll;
    flex-grow: 1;
    /* border:solid 1px #F00 */
}

.scroll-item {
    scroll-snap-align: start;
    min-height: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    scroll-snap-stop: always;
}

.horizontal-scroll-container {
    scroll-snap-type: x mandatory;
    overflow-x: scroll;
    width: 100%;
    height: calc(100% - 20px);
    white-space: nowrap;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;

    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
    /* scroll-snap-stop: always; */
}
/* Hide scrollbar for Chrome, Safari and Opera */
.horizontal-scroll-container::-webkit-scrollbar {
  display: none;
}

.horizontal-scroll-item {
    scroll-snap-align: start;
    scroll-snap-stop: always;
    display: inline-block;
    width:  100%;
    height: 100%;
    /* background-color: #f0f0f0; */
     margin-right: .5em;
    /* border: 1px solid #ccc; */
}

.productHolder{
  height: calc(100% - .3em);
  width: 100%;
 display: flex;
}

.bi-icon-stack {
    position: relative;
    display: inline-block;
  }
  .bi-icon-stack .bi:nth-of-type(2) {
      position: absolute;
      top: 0rem;
      left: 0rem;
      font-size: 1rem;
    }
    .scroll-trigger {
      text-align: center;
      margin-bottom: 2em;
      width:calc(100% - 2em);
      margin-left: 1em;
      max-height: 3em;

    }
    .scroll-end{ width:calc(100% - 2em);
    margin-left: 1em}

    .end-of-list {
  padding: 20px;
  text-align: center;
  background: #f0f0f0;
  color: #666;
}

.productHolder .card{
  width:50%;
  white-space: wrap;
}

.productHolder .tool{width:3.5em;

padding: 0 0 0 10px;}
.productHolder .tool .list-group-item{
padding: var(--bs-list-group-item-padding-y) 0;
}

.productHolder .tool i.bi{
  font-size:2.25em;
cursor: pointer;}

.productHolder .tool i.bi:HOVER{
  color: #CCC;
}

.productHolder i.bi{font-size: 3.5rem;}


.productHolder .card-img-top{
   aspect-ratio: 1 / 1;
   object-fit: cover;
}

.productSizes{
  max-width:100%;
}
.productSizes strong{
  font-weight: 700}
span.productSize{
  display: inline;

}
span.productSize::after {
    content: ", ";
}

span.productSize:last-child::after {
    content: "";
}

ul.productSizes {
  list-style: none;
  padding: 0
}
ul.productSizes li{
  display: inline-block;
  cursor: default;
}
ul.productSizes li.productSize{
  font-size:80%;
  display: inline-block;
  color:#006600;
  min-width:24px;
  height:24px;
  text-align: center;
  line-height: 22px;
  padding-left: 3px;
  padding-right:3px;
  border: solid 1px #060;
  margin-right:3px;
  margin-top:3px;
  cursor: default;
}

.priceIntro {
  font-size: 0.9em;
  color: #999;
}
.priceIntro .productPriceOriginal {
  color: #c00;
  text-decoration: line-through;
}
.viewPrice {
  font-size: 1.5em;
  font-weight: 700;
  color: #060;
}

.square {
position: relative;
border:SOLID 1PX #EEE;
margin:10px;
background-color: #F8f8f8;
}

.square::after {
content: "";
display: block;
padding-bottom: 100%;
}

.square .saleLabel{
  position:absolute;
  z-index:10;
  top:15px;
  right:15px;
  text-align: center;
  font-size:1.5em;
  line-height: 1.2em;
  padding-top: .4em;
  font-weight: 700;
  background-color: #C00;
  color:#FFF;
  border-radius: 50%;
  width:60px;
  height: 60px;
  transform: rotate(10deg);
}

.square img {
aspect-ratio: 1 / 1;
object-fit: cover;
object-position: 50% bottom;
position: absolute;
width:100%;
/* width:calc(100% - 20px);
top:10px;
left:10px; */

/* height: calc(100% - 20px); */

}


  .productDescription {
    max-height: 1.5em; /* bv. 2 regels */
    overflow: hidden;
    position: relative;
  }
  .productTitle {
    max-height: 1.2em; /* bv. 2 regels */
    overflow: hidden;
    position: relative;
  }

  .productTitle::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 25%;
    height: 1.2em;
    background: linear-gradient(to right, transparent, white);
  }
  .productDescription::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 50%;
    height: 1.2em;
    background: linear-gradient(to right, transparent, white);
  }

  footer .nav-item i,
  aside .nav-item i{
  font-size: 1.75em;
  }

  footer {
  height: 4rem;
  background-color: #FFFFFF;
  margin: 0;
  border-top: solid 1px #CCC;
  }


  .modal-footer .nav-item i.bi {
    font-size: 2.25rem;
    cursor: pointer;
  }
