/* Optional ZingerFX feed widget styling. Safe to merge into the main stylesheet later. */

.feed-pulse {
  display: grid;
  gap: 18px;
}

.feed-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-top: 12px;
}

.feed-section-head h2 {
  margin: 0;
}

.feed-section-head span,
.muted {
  color: var(--muted, #94a3b8);
  font-size: 0.92rem;
}

.feed-price-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 12px;
}

.feed-price-card,
.feed-news-card {
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 18px;
  background: rgba(15, 23, 42, 0.68);
  box-shadow: 0 16px 50px rgba(0, 0, 0, 0.22);
}

.feed-price-card {
  padding: 14px;
  display: grid;
  gap: 4px;
}

.feed-price-card strong {
  letter-spacing: 0.08em;
}

.feed-price-card span {
  font-size: 1.22rem;
  font-weight: 750;
}

.feed-price-card small {
  color: var(--gold-soft, #facc15);
}

.feed-news-grid {
  display: grid;
  gap: 14px;
}

.feed-news-card {
  padding: 16px;
}

.feed-news-card h3 {
  margin: 8px 0 8px;
  font-size: clamp(1rem, 2vw, 1.18rem);
}

.feed-news-card p {
  margin: 0 0 10px;
  color: var(--muted, #94a3b8);
}

.feed-news-card a {
  color: var(--gold-soft, #facc15);
  text-decoration: none;
  font-weight: 700;
}

.feed-news-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  color: var(--muted, #94a3b8);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.feed-error {
  border: 1px solid rgba(248, 113, 113, 0.35);
  background: rgba(127, 29, 29, 0.22);
  color: #fecaca;
  padding: 14px;
  border-radius: 16px;
}

/* v11 image reliability: keep a visible generated fallback if an external news image fails. */
.news-thumbnail img.fallback-rendered {
  object-fit: cover;
  opacity: 1;
}
.news-thumbnail .fallback-icon {
  z-index: 1;
}


/* v12 image hardening */
.news-thumbnail { min-height: 74px; background-color: #0b0b0b; }
.news-thumbnail img { background-color: #0b0b0b; }
.news-thumbnail img.fallback-rendered { object-fit: cover; opacity: 1; }
.news-thumbnail .fallback-icon { position: relative; z-index: 1; }
