/* ========================================
   Widget Related Articles
   ======================================== */
.related-articles {
  margin-top: var(--space-8, 32px);
  padding-top: var(--space-6, 24px);
  border-top: 2px solid var(--color-border, rgba(0, 0, 0, 0.1));
}
/* --- Grid layout --- */
.widget-related {
  margin-top: var(--space-6, 24px);
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-5, 20px);
}
/* --- Card --- */
.widget-related-item {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--color-text, #1e293b);
  border-radius: var(--card-border-radius, 8px);
  overflow: hidden;
  background: var(--color-background, #fff);
  border: 1px solid var(--color-border, rgba(0, 0, 0, 0.1));
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.widget-related-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
  color: var(--color-primary, #2563eb);
}
/* --- Thumbnail --- */
.widget-related-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: var(--color-surface, rgba(0, 0, 0, 0.03));
}
/* --- Info block --- */
.widget-related-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 4px);
  padding: var(--space-3, 12px);
  flex: 1;
}
/* --- Title --- */
.widget-related-title {
  font-size: var(--font-size-sm, 0.875rem);
  font-weight: var(--font-weight-semibold, 600);
  line-height: var(--line-height-tight, 1.25);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* --- Description --- */
.widget-related-desc {
  font-size: var(--font-size-xs, 0.75rem);
  color: var(--color-text-muted, #64748b);
  line-height: var(--line-height-base, 1.5);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* --- Date --- */
.widget-related-date {
  font-size: var(--font-size-xs, 0.75rem);
  color: var(--color-text-muted, #64748b);
  margin-top: auto;
  padding-top: var(--space-2, 8px);
  display: flex;
  align-items: center;
  gap: var(--space-1, 4px);
}
.widget-related-date::before {
  font-size: 0.85em;
  opacity: 0.7;
}
/* --- Responsive: 2 columns on small screens --- */
@media (max-width: 640px) {
  .widget-related {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3, 12px);
  }
  .widget-related-desc {
    display: none;
  }
}
/* --- Responsive: 1 column on very small screens --- */
@media (max-width: 360px) {
  .widget-related {
    grid-template-columns: 1fr;
  }
}