.card {
  display: flex;
  flex-direction: column;
  padding: var(--card-padding, 24px);
  background: var(--card-background, var(--color-white));
  border: 1px solid var(--card-border-color, var(--color-gray-200));
  border-radius: var(--card-border-radius, 8px);
  text-decoration: none;
  transition: all 120ms ease-out;
}

a.card:hover {
  border-color: var(--card-hover-border-color, var(--color-gray-300));
  box-shadow: var(--card-hover-shadow, 0 1px 3px rgba(0, 0, 0, 0.04));
}

.card-list {
  display: flex;
  flex-direction: column;
  gap: var(--card-list-gap, 12px);
}

.card__content {
  display: flex;
  flex-direction: column;
  gap: var(--card-content-gap, 4px);
}

.card__title {
  margin: 0;
  font-size: var(--card-title-font-size, var(--font-size-sm));
  line-height: var(--card-title-line-height, var(--line-height-sm));
  font-weight: var(--card-title-font-weight, var(--font-weight-medium));
  color: var(--card-title-color, var(--color-gray-600));
}

.card__subtitle {
  margin: 0;
  font-size: var(--card-subtitle-font-size, var(--font-size-base));
  line-height: var(--card-subtitle-line-height, var(--line-height-base));
  color: var(--card-subtitle-color, var(--color-gray-600));
}

.card-grid {
  display: grid;
  grid-template-columns: var(--card-grid-columns, 1fr);
  gap: var(--card-grid-gap, 20px);
}

@media (min-width: 768px) {
  .card-grid {
    grid-template-columns: var(--card-grid-columns-desktop, repeat(2, 1fr));
  }
}

.card__header {
  margin-bottom: var(--card-header-margin-bottom, 20px);
}

.card__body {
  display: flex;
  flex-direction: column;
  gap: var(--card-body-gap, 12px);
  flex-grow: 1;
}

.card__footer {
  margin-top: var(--card-footer-margin-top, 20px);
}

.card__list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--card-list-item-padding, 14px 12px);
  margin: var(--card-list-item-margin, 0 -12px);
  text-decoration: none;
  transition: all 120ms ease-out;
  border-radius: var(--card-list-item-border-radius, 6px);
}

.card__list-item:hover {
  background: var(--card-list-item-hover-background, var(--color-gray-50));
}

.card__list-item:hover .card__list-item-label {
  color: var(--card-list-item-label-hover-color, var(--color-gray-950));
}

.card__list-item-label {
  font-size: var(--card-list-item-label-font-size, var(--font-size-base));
  font-weight: var(--card-list-item-label-font-weight, var(--font-weight-medium));
  color: var(--card-list-item-label-color, var(--color-gray-950));
}

.card__list-item-count {
  font-size: var(--card-list-item-count-font-size, var(--font-size-sm));
  font-weight: var(--card-list-item-count-font-weight, var(--font-weight-medium));
  color: var(--card-list-item-count-color, var(--color-gray-600));
  padding: var(--card-list-item-count-padding, 2px 8px);
  background: var(--card-list-item-count-background, var(--color-gray-100));
  border-radius: var(--card-list-item-count-border-radius, 12px);
  font-variant-numeric: tabular-nums;
}

.card__meta {
  font-size: var(--card-meta-font-size, var(--font-size-sm));
  color: var(--card-meta-color, var(--color-gray-600));
}

.card__primary-text {
  margin: 0;
  font-size: var(--card-primary-text-font-size, var(--font-size-xl));
  font-weight: var(--card-primary-text-font-weight, var(--font-weight-semibold));
  color: var(--card-primary-text-color, var(--color-gray-950));
}

.card__secondary-text {
  margin-left: var(--card-secondary-text-margin-left, 12px);
  font-size: var(--card-secondary-text-font-size, var(--font-size-base));
  font-weight: var(--card-secondary-text-font-weight, var(--font-weight-normal));
  color: var(--card-secondary-text-color, var(--color-gray-500));
}
