.vdt-wrap{
  margin: 18px 0;
  width: 100%;
}

.vdt-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--vdt-min-card, 280px), 1fr));
  gap: var(--vdt-gap, 22px);
}

.vdt-card{
  background: var(--vdt-card-bg, #fff);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 var(--vdt-shadow, 10)px calc(var(--vdt-shadow, 10)*2.5px) rgba(0,0,0,.10);
  display:flex;
  flex-direction:column;
}

.vdt-image a{
  display:block;
}

.vdt-image img{
  width: 100%;
  aspect-ratio: var(--vdt-image-ratio, 16 / 9);
  height: auto;
  object-fit: cover;
  display: block;
  background: #f1f1f1;
}

.vdt-image-placeholder{
  width:100%;
  aspect-ratio: var(--vdt-image-ratio, 16 / 9);
  background:#f1f1f1;
}

.vdt-body{
  padding:14px 14px 16px;
}

.vdt-title{
  font-size: var(--vdt-title-size, 18px);
  line-height:1.2;
  margin:0 0 10px 0;
  font-weight:700;
}

.vdt-title a:hover{
  text-decoration:underline;
}

.vdt-bottom{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.vdt-rating-row{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  color:#666;
}

.vdt-stars{
  display:inline-flex;
  gap:2px;
  font-size:14px;
  line-height:1;
}

.vdt-star{ color:#d6d6d6; }
.vdt-star.is-on{ color: var(--vdt-stars-color, #f5a623); }

.vdt-price-row{
  display:flex;
  justify-content:flex-end;
  align-items:baseline;
  gap:6px;
  font-size:14px;
  color:#666;
}

.vdt-from{
  color:#777;
  font-size:13px;
}

.vdt-price{
  font-size:22px;
  font-weight:700;
  color:#222;
}

.vdt-button{
  display:block;
  width:100%;
  text-align:center;
  padding:12px 14px;
  border-radius:10px;
  background: var(--vdt-button-bg, #4f8f1f);
  color: var(--vdt-button-text, #fff) !important;
  text-decoration:none !important;
  font-weight:700;
  font-size:15px;
}

.vdt-button:hover{
  opacity:.92;
}

.vdt-error{
  padding:12px 14px;
  border-left:4px solid #d63638;
  background:#fff5f5;
  border-radius:12px;
}

.vdt-empty{
  padding:12px 14px;
  border-left:4px solid #999;
  background:#f8f8f8;
  border-radius:12px;
}


.vdt-meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.vdt-price-row{
  margin-left:auto;
}


.vdt-meta-row{ width:100%; }
.vdt-price-row{ white-space:nowrap; margin-left:auto; }


/* Default line clamps: Title 1 line, Description 3 lines */
.vdt-title a{
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 1 !important;
  overflow: hidden !important;
}

.vdt-desc{
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
}
