/**
 * PostCard Component Styles
 * Text-forward blog post card with category badge, metadata, and author info.
 */

.postCard {
  display: flex;
  flex-direction: column;
  padding: var(--ai-spacing-xl);
  background: var(--ai-bg-card);
  border: 1px solid var(--ai-border-light);
  border-radius: var(--ai-radius-lg);
  transition: border-color var(--ai-transition-normal),
              box-shadow var(--ai-transition-normal);
}

.postCard:hover {
  border-color: var(--ai-border-medium);
  box-shadow: var(--ai-shadow-sm);
}

.postCard__link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.postCard__link:hover {
  text-decoration: none;
}

/* Header with meta and title */
.postCard__header {
  margin-bottom: var(--ai-spacing-md);
}

.postCard__meta {
  display: flex;
  align-items: center;
  gap: var(--ai-spacing-xs);
  margin-bottom: var(--ai-spacing-sm);
  font-size: 1.4rem;
  color: var(--ai-text-secondary);
}

.postCard__separator {
  color: var(--ai-gray-300);
}

.postCard__date,
.postCard__readingTime {
  color: var(--ai-text-secondary);
}

/* Category badge */
.postCard__category {
  font-size: 1.2rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 2px 8px;
  border-radius: var(--ai-radius-xs);
  background: var(--ai-gray-100);
  color: var(--ai-text-secondary);
}

.postCard__category--release {
  background: var(--ai-blue-lighter);
  color: var(--ai-blue);
}

.postCard__category--technical {
  background: var(--ai-gray-100);
  color: var(--ai-gray-400);
}

.postCard__category--tutorial {
  background: var(--ai-primary-lightest);
  color: var(--ai-primary-dark);
}

.postCard__category--community {
  background: #e8f0fa;
  color: var(--ai-blue-dark);
}

/* Title */
.postCard__title {
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ai-text-primary);
  margin: 0;
  transition: color var(--ai-transition-normal);
}

.postCard__link:hover .postCard__title {
  color: var(--ai-blue);
}

/* Description */
.postCard__description {
  font-size: 1.6rem;
  line-height: 1.6;
  color: var(--ai-text-secondary);
  margin: 0 0 var(--ai-spacing-md) 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Footer with author and date */
.postCard__footer {
  margin-top: auto;
  padding-top: var(--ai-spacing-md);
}

/* Author */
.postCard__author {
  display: flex;
  align-items: center;
  gap: var(--ai-spacing-sm);
}

.postCard__authorImage {
  width: 36px;
  height: 36px;
  border-radius: var(--ai-radius-circle);
  object-fit: cover;
}

.postCard__authorInfo {
  display: flex;
  flex-direction: column;
}

.postCard__authorName {
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--ai-text-primary);
}

.postCard__authorTitle {
  font-size: 1.3rem;
  color: var(--ai-text-secondary);
}

/* Date line under category */
.postCard__dateLine {
  display: flex;
  align-items: center;
  gap: var(--ai-spacing-xs);
  font-size: 1.3rem;
  color: var(--ai-text-tertiary);
  margin-bottom: var(--ai-spacing-sm);
}

/* Tags */
.postCard__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ai-spacing-xs);
  margin-top: var(--ai-spacing-md);
  padding-top: var(--ai-spacing-md);
  border-top: 1px solid var(--ai-border-light);
}

.postCard__tag {
  font-size: 1.3rem;
  color: var(--ai-blue);
  background: var(--ai-blue-lighter);
  padding: 4px 12px;
  border-radius: var(--ai-radius-full);
  text-decoration: none;
  transition: background var(--ai-transition-normal);
}

.postCard__tag:hover {
  background: var(--ai-blue-light);
  text-decoration: none;
}

/* === Variant: Featured === */
.postCard--featured {
  padding: var(--ai-spacing-2xl);
  background: linear-gradient(135deg, var(--ai-bg-card) 0%, var(--ai-gray-50) 100%);
  border: none;
  box-shadow: var(--ai-shadow-md);
}

.postCard--featured .postCard__title {
  font-size: 2.8rem;
}

.postCard--featured .postCard__description {
  font-size: 1.7rem;
  -webkit-line-clamp: 4;
}

/* === Variant: Compact === */
.postCard--compact {
  padding: var(--ai-spacing-md);
  background: transparent;
  border: none;
  border-radius: 0;
}

.postCard--compact:hover {
  background: var(--ai-gray-50);
  box-shadow: none;
}

.postCard--compact .postCard__header {
  margin-bottom: 0;
}

.postCard--compact .postCard__meta {
  font-size: 1.2rem;
  margin-bottom: var(--ai-spacing-xs);
}

.postCard--compact .postCard__title {
  font-size: 1.6rem;
}

.postCard--compact .postCard__category {
  display: none;
}

/* === Variant: Related === */
.postCard--related {
  padding: var(--ai-spacing-lg);
}

.postCard--related .postCard__title {
  font-size: 1.8rem;
}

.postCard--related .postCard__description {
  font-size: 1.5rem;
  -webkit-line-clamp: 2;
}

/* === Responsive === */
@media (max-width: 768px) {
  .postCard {
    padding: var(--ai-spacing-lg);
  }

  .postCard__title {
    font-size: 2rem;
  }

  .postCard__description {
    font-size: 1.5rem;
  }

  .postCard--featured {
    padding: var(--ai-spacing-xl);
  }

  .postCard--featured .postCard__title {
    font-size: 2.2rem;
  }
}
