:root {
  --gov-red: #0ea5e9;
  --gov-red-dark: #0369a1;
  --gov-yellow: #7dd3fc;
  --gov-blue: #0284c7;
  --gov-bg: #f0f9ff;
}

html, body {
  height: 100%;
}

body {
  font-family: Roboto, system-ui, -apple-system, Segoe UI, sans-serif;
  background: var(--gov-bg);
}

.font-serif-header {
  font-family: Merriweather, serif;
}

/* Article content helpers (for future “news detail” pages) */
.news-content p {
  margin-bottom: 1rem;
  line-height: 1.6;
  text-align: justify;
}

.news-content img {
  display: block;
  margin: 1.5rem auto;
  max-width: 100%;
  border-radius: 6px;
}

.news-content figure {
  text-align: center;
  margin-bottom: 1.5rem;
}

.news-content figcaption {
  font-style: italic;
  color: #666;
  font-size: 0.9em;
  margin-top: 0.5rem;
  background: #e9ecef;
  padding: 4px 8px;
  display: inline-block;
  border-radius: 4px;
}

/* ========== LIVE PULSE INDICATOR ========== */
.live-pulse-container {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
}

.live-pulse-dot {
  position: absolute;
  width: 10px;
  height: 10px;
  background: #2563eb;
  border-radius: 9999px;
  animation: pulse-dot 1.5s ease-in-out infinite;
  z-index: 2;
}

.live-pulse-ring-1,
.live-pulse-ring-2 {
  position: absolute;
  width: 10px;
  height: 10px;
  border: 2px solid #3b82f6;
  border-radius: 9999px;
  animation: pulse-ring 1.5s ease-out infinite;
  opacity: 0;
}

.live-pulse-ring-2 {
  animation-delay: 0.5s;
}

@keyframes pulse-dot {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.25);
    opacity: 0.8;
  }
}

@keyframes pulse-ring {
  0% {
    transform: scale(0.85);
    opacity: 0.7;
  }
  50% {
    opacity: 0.35;
  }
  100% {
    transform: scale(2.7);
    opacity: 0;
  }
}

/* ========== MARQUEE (seamless) ========== */
@keyframes seamless-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.marquee-track {
  display: flex;
  width: max-content;
  animation: seamless-scroll 50s linear infinite;
}

.marquee:hover .marquee-track {
  animation-play-state: paused;
}
