.product_catalog_display {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 15px;
  width: 100%;
  box-sizing: border-box;
  padding: 0 10px;
}

.virtual_list {
  width: 100%;
  position: relative;
}

.virtual_list_inner {
  width: 100%;
  position: relative;
}

.virtual_row {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

.catalog_virtual_cell {
  width: calc((100% - 45px) / 4); /* 3 × gap 15px */
  max-width: calc((100% - 45px) / 4);
  box-sizing: border-box;
  overflow: hidden;
}

img.product_loading {
  width: 150px;
  height: auto;
}

.load_product {
  position: absolute;
  z-index: 100;
  top: 0;
  left: 0;
}
/** BREAKPOINT */
@media only screen and (min-width: 1600px) {
}
@media only screen and (max-width: 1420px) {
}
@media only screen and (min-width: 1024px) and (max-width: 1300px) {
}

/** MOBILE BREAKPOINT */

/* Tablet 651–1023: 3 kolom, gap 10 → 2×10 = 20 */
@media only screen and (min-width: 651px) and (max-width: 1023px) {
  .product_catalog_display {
    justify-content: flex-start;
    gap: 10px;
    padding: 0 10px;
    width: 100%;
    box-sizing: border-box;
    overflow-x: hidden;
  }

  .product_catalog_display > div,
  .catalog_virtual_cell {
    width: calc((100% - 20px) / 3);
    max-width: calc((100% - 20px) / 3);
    box-sizing: border-box;
    overflow: hidden;
  }
}

@media only screen and (max-width: 650px) {
  .product_catalog_display {
    justify-content: flex-start;
    gap: 5px;
    padding: 0 10px;
    width: 100%;
    box-sizing: border-box;
    overflow-x: hidden;
  }

  .product_catalog_display > div,
  .catalog_virtual_cell {
    width: calc((100% - 5px) / 2);
    max-width: calc((100% - 5px) / 2);
    box-sizing: border-box;
    overflow: hidden;
  }

  img.product_loading {
    width: 70px;
    height: auto;
  }

}
