.beneficios-public-wrapper {
  background: #ffffff;
  border: 1px solid #d8e4cb;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(22, 40, 16, 0.06);
  padding: 1.25rem;
}

.beneficios-public-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.beneficios-public-head h2 {
  margin: 0;
  font-size: 1.3rem;
  color: #182030;
}

.beneficios-public-subtitle {
  margin: 0.55rem 0 1rem;
  color: #596173;
}

.beneficios-public-loading {
  border: 1px dashed #bfd7a0;
  border-radius: 12px;
  padding: 1.2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: #465168;
}

.beneficios-public-spinner {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  border: 2px solid #d8eac2;
  border-top-color: #76b629;
  animation: beneficiosPublicSpin 0.7s linear infinite;
}

.beneficios-public-grid {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
  gap: 1rem;
}

.beneficios-public-card {
  border: 1px solid #d9e1e8;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 6px 18px rgba(16, 24, 40, 0.05);
  padding: 0.9rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.beneficios-public-hero {
  position: relative;
  border-radius: 12px;
  border: 1px solid #dde4ea;
  background: #f3f5f8;
  overflow: hidden;
  min-height: 148px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.beneficios-public-hero img {
  width: 100%;
  height: 148px;
  object-fit: cover;
  display: block;
}

.beneficios-public-fallback {
  font-size: 2rem;
  color: #7f8ca3;
}

.beneficios-public-featured {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  border: 1px solid #d7ecb3;
  background: #eaf5db;
  color: #76b629;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
  z-index: 2;
}

.beneficios-public-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
}

.beneficios-public-title {
  margin: 0;
  font-size: 1.22rem;
  color: #0f1b36;
  line-height: 1.25;
  word-break: break-word;
}

.beneficios-public-status {
  border-radius: 999px;
  border: 1px solid #9de7b2;
  background: #e9f9ed;
  color: #15803d;
  font-size: 0.75rem;
  padding: 0.2rem 0.6rem;
  white-space: nowrap;
}

.beneficios-public-status--paused {
  border-color: #fcd34d;
  background: #fef3c7;
  color: #92400e;
}

.beneficios-public-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.beneficios-public-chip {
  font-size: 0.75rem;
  border-radius: 999px;
  border: 1px solid;
  padding: 0.15rem 0.55rem;
}

.beneficios-public-description {
  margin: 0;
  color: #3d4960;
  min-height: 62px;
  max-height: 62px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  word-break: break-word;
}

.beneficios-public-meta {
  margin: 0;
  color: #1f2d49;
  line-height: 1.5;
}

.beneficios-public-meta strong {
  color: #0f1b36;
}

.beneficios-public-meta .cupos {
  color: #15803d;
  font-weight: 700;
}

.beneficios-public-actions {
  margin-top: 0.2rem;
}

.beneficios-public-btn {
  width: 100%;
  border: 0;
  border-radius: 10px;
  background: #76b629;
  color: #ffffff;
  font-weight: 700;
  padding: 0.58rem 0.8rem;
  cursor: pointer;
}

.beneficios-public-btn:hover {
  filter: brightness(0.96);
}

.beneficios-public-btn--paused,
.beneficios-public-btn--paused:hover {
  background: #fef3c7;
  color: #92400e;
  cursor: not-allowed;
  filter: none;
}

.beneficios-public-empty {
  margin-top: 1rem;
  border: 1px dashed #c8d8b5;
  border-radius: 12px;
  padding: 1.1rem;
  color: #4b5568;
}

.beneficios-public-empty h3 {
  margin: 0 0 0.4rem;
  color: #1f2937;
}

@keyframes beneficiosPublicSpin {
  to {
    transform: rotate(360deg);
  }
}

.beneficios-public-loading.hidden,
.beneficios-public-grid.hidden,
.beneficios-public-empty.hidden,
.pqr-message.hidden {
  display: none !important;
}
