html, body {
  font-family: 'Poppins', sans-serif;
    font-weight: 300;
    font-size: 12px;
    height: 100%;
}

body {
  /* display: flex;
  flex-direction: column; */
  /* display: flex;
  justify-content: center;
  align-items: center; */
}

.btn-primary{
  --bs-btn-color: #fff;
  --bs-btn-bg: #000;
  --bs-btn-border-color: #000;
}


.gridHolder,
.cssSwiperHolder {
  display: flex;
  flex-direction: column;
  margin: 0;
  overflow: hidden;
  height: 100%;
  max-height: 100vh;
}

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;
}


.footerIconLink{
  color: #000;
  text-decoration: none;
}
.footerIconImage{
  margin-top: 5px;
  max-width:70px;
  max-height:32px;
}

.footerIconName{
  text-align: center;
  border:solid 1px #CCC;
  border-radius: 5px;
  padding:2px;
}
.footerIconLetter{
  margin-top: 5px;
font-weight: 700;
font-size: 1.5em;
line-height: 1em;
}
.footerIconTitle{
font-size: .7em;
}
.footerIcon{
font-size: 1.5em;
line-height: 1em;
}

.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 .card .card-footer{
background: none;
}
.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;
}
.targetGroup i {font-size:2em;}
/* .productHolder .tool 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;
}

.dots-container {
  text-align: center;
  width:100%;
}

.dot {
  opacity: 0.25;
  font-size: 100%;
  padding: 0;
  margin: 0;

}

/* Actieve dot */
.dot-active {
  font-size: 130% !important;
  opacity: 1 !important;
  color: #000; /* Optioneel: kleur voor actieve dot */
}
/* Actieve dot */
.dot-one-off {
  font-size: 120% !important;
  opacity: 0.75 !important;
}
/* Actieve dot */
.dot-two-off {
  font-size: 110% !important;
  opacity: 0.5 !important;
}

.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: 2.25rem;
    cursor: pointer;
  }

  footer {
  height: 4.5em;
  background-color: #FFFFFF;
  margin: 0;
  border-top: solid 1px #CCC;
  }
  footer .nav-link,
  footer .nav-item a{
    color: #000;}

.genderFilter i.bi,
  footer .nav-item i.bi,
  .modal-footer .nav-item i.bi {
    font-size: 2.25rem;
    cursor: pointer;
  }

  .modalImage{
    object-fit: none;
    object-position: 50% bottom;
    height:100%;
    width:100%;
  }


  /* Small devices (landscape phones, 576px and up) */
  @media (min-width: 576px) {

     body {
      display: flex;
      justify-content: center;
      align-items: center;
    }
.gridHolder,
  .cssSwiperHolder {
    max-width: 450px;
    max-height:860px;
    border:solid 1px #CCC;
    /* border-right:solid 1px #CCC; */
  }
  .scroll-container{ }
  }

  /* Medium devices (tablets, 768px and up) The navbar toggle appears at this breakpoint */
  @media (min-width: 768px) {

  }

  /* Large devices (desktops, 992px and up) */
  @media (min-width: 992px) {

  }

  /* Extra large devices (large desktops, 1200px and up) */
  @media (min-width: 1200px) {

  }

  /* XX-Large devices (larger desktops, 1400px and up) */
  @media (min-width: 1400px) {

  }
/* height sessings */

  @media screen and (min-height: 500px){

  }
  @media screen and (min-height: 760px){

    .productDescription {
      max-height: 4.5em; /* bv. 2 regels */
    }
  }
  @media screen and (min-height: 790px){
    .productDescription {
      max-height: 9em; /* bv.3 regels */
    }
  }

  .categoriesHolder {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    flex: 1;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    max-height:32px;
  }

  .categoriesHolder .btn-primary { white-space: nowrap; font-weight: 700}

  .cat-btn {
    padding: 6px 14px;
    border-radius: 20px;
    border: none;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    background: #efefef;
    color: #000;
    text-decoration: none;
    flex-shrink: 0;
    white-space: nowrap;
  }

  .cat-btn.active, .cat-btn:hover {
  background: #000;
  color: #fff;
}



  .categoriesHolder::-webkit-scrollbar {
    display: none;
  }

  .categoriesHolder::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 10px;
  }

  .category-scroll-container {
    position: relative;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    /* border: 1px solid #ccc; */
  }

  .scroll-indicator {
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 100%;
    padding-top: 5px;
    background: linear-gradient(to left, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
    /* pointer-events: none; */
    opacity: 0;
    transition: opacity 0.3s;
  }

  .scroll-indicator.scroll-indicator-left {
  left: 0;
  background: linear-gradient(to right, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
  }

  .scroll-indicator.scroll-indicator-right {
  right: 0;

  text-align: right;
  }

  .scroll-container:hover .scroll-indicator {
  opacity: 1;
  }
