/* Peso 600 que Bootstrap no incluye */
.fw-600 { font-weight: 600 !important; }

/* Texto con opacidad reducida */
.text-muted-sm { color: var(--cth-gray-500) !important; }

/* Colores semánticos del sistema */
.text-success-cth { color: var(--cth-success) !important; }
.text-danger-cth  { color: var(--cth-danger)  !important; }
.text-warning-cth { color: var(--cth-warning) !important; }
.text-green-300   { color: var(--cth-green-300) !important; }

/* Fondos */
.bg-green-900  { background-color: var(--cth-green-900) !important; }
.bg-green-100  { background-color: var(--cth-green-100) !important; }

/* Radios */
.rounded-cth-sm { border-radius: var(--cth-radius-sm) !important; }
.rounded-cth-md { border-radius: var(--cth-radius-md) !important; }
.rounded-cth-lg { border-radius: var(--cth-radius-lg) !important; }
.rounded-cth-xl { border-radius: var(--cth-radius-xl) !important; }

/* Sombras */
.shadow-cth-sm  { box-shadow: var(--cth-shadow-sm)  !important; }
.shadow-cth-md  { box-shadow: var(--cth-shadow-md)  !important; }
.shadow-cth-lg  { box-shadow: var(--cth-shadow-lg)  !important; }
.shadow-cth-card{ box-shadow: var(--cth-shadow-card) !important; }

/* Separador decorativo de sección */
.cth-divider {
  height: 3px;
  width: 40px;
  background: var(--cth-green-500);
  border-radius: var(--cth-radius-full);
  margin-bottom: 1.5rem;
}

/* Texto truncado una línea */
.text-truncate-1 {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* Texto truncado dos líneas */
.text-truncate-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Transición suave en elementos interactivos */
.cth-hoverable {
  transition: box-shadow var(--cth-transition-fast), transform var(--cth-transition-fast);
}
.cth-hoverable:hover {
  box-shadow: var(--cth-shadow-md);
  transform: translateY(-2px);
}

/* Separador interno de tarjeta */
.cth-card-divider {
  border-top: 1px solid var(--cth-gray-200);
  margin: 1rem 0;
}

/* Centrado completo */
.cth-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Gap rápidos */
.gap-xs { gap: 0.25rem !important; }
.gap-sm { gap: 0.5rem  !important; }
