:root{
  --pl-top-margin: 0;
  --pl-bottom-margin: 0;
  --pl-side-margin: 0;
  --pl-gap: 12px;
}

.product-list-shell{
  margin-top: var(--pl-top-margin);
  margin-bottom: var(--pl-bottom-margin);
  margin-left: var(--pl-side-margin);
  margin-right: var(--pl-side-margin);
}

.product-list-shell.is-grid .product-list-row{
  --bs-gutter-x: var(--pl-gap);
  --bs-gutter-y: var(--pl-gap);
}

.product-list-shell.is-scroll .product-list-row{
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
}

.product-list-col{ min-width:0; }

.product-card{
  display:flex;
  flex-direction:column;
  height:100%;
}

.product-card .media-wrap{
  position:relative;
  overflow:hidden;
}

.product-card .media-wrap > a > img{
  display:block;
  width:100%;
  height:auto;
}

/* Overlay root */
.product-card .product-badges{
  position:absolute;
  inset:0;
  z-index:20;
  pointer-events:none;
}

/* Dynamic stacks */
.product-card .labels-left-stack,
.product-card .labels-right-stack{
  position:absolute;
  top:0;
  display:flex;
  flex-direction:column;
  gap:6px;
  max-width:75%;
  z-index:21;
  pointer-events:none;
}

.product-card .labels-left-stack{
  left:0;
  align-items:flex-start;
}

.product-card .labels-right-stack{
  right:0;
  align-items:flex-end;
}

.product-card .labels-left-stack > *,
.product-card .labels-right-stack > *{
  position:relative;
  margin:0 !important;
  pointer-events:auto;
}

/* Bas för alla labels */
.product-label{
  display:inline-flex !important;
  align-items:center;
  width:auto !important;
  max-width:max-content;
  line-height:1.1;
  white-space:normal;
  word-break:break-word;
}

/* Desktop / default */
.product-card .label-1{
  font-size:.95rem;      /* större */
  padding:.42rem .55rem;
  font-weight:600;
}

.product-card .label-2{
  font-size:.78rem;      /* mindre */
  padding:.28rem .42rem;
  font-weight:500;
}

/* Mobile */
@media (max-width: 767.98px){
  .product-card .label-1{
    font-size:.85rem;
    padding:.30rem .40rem;
    font-weight:600;
  }
  .product-card .label-2{
    font-size:.72rem;
    padding:.22rem .34rem;
    font-weight:500;
  }
}

/* Large desktop (valfritt) */
@media (min-width: 1200px){
  .product-card .label-1{
    font-size:1.2rem;
    padding:.45rem .6rem;
  }
  .product-card .label-2{
    font-size:.85rem;
    padding:.3rem .45rem;
  }
}

/* Heart / prio in right stack */
.product-card .overlay-heart,
.product-card .admin-prio-chip {
  position:relative;
  z-index:22;
}

.product-card .heart-btn {
  margin:0;
  padding:0;
  background:none;
  border:0;
  line-height:1;
}
.product-card .heart-btn img {
  width:20px !important;
  height:20px !important;
  display:inline-block !important;
  opacity: 0.3;
}

.product-card .admin-prio-chip{
  background:#fff;
  border:1px solid #ccc;
  padding:3px 4px !important;
  font-size:14px;
  line-height:1.1;
  white-space:nowrap;
}

/* Winner: always in image bottom-right */
.product-card .award-container{
  position:absolute;
  right:0;
  bottom:0;
  z-index:23;
  pointer-events:auto;
}
.product-card .award-container img{
  position:relative;
  z-index:1;
  display:block;
}
.product-card .award-container .award-centered{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
  transform:translateY(-3px);
  pointer-events:none;
}

/* Remove old absolute lane helpers completely */
.product-card .label-1,
.product-card .label-2,
.product-card .badge-left,
.product-card .badge-right,
.product-card .badge-bottom{
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;
}
