/* GreenEarth.news — shared custom CSS (Stitch "Sustainable Professional" system). */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  vertical-align: middle;
}
body {
  font-feature-settings: "kern" 1, "liga" 1;
  -webkit-font-smoothing: antialiased;
  font-family: 'Hanken Grotesk', sans-serif;
}
.ticker-scroll { animation: ticker 30s linear infinite; }
@keyframes ticker {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.bento-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.5rem; }
/* utility shortcuts so markup reads exactly like the Stitch source */
.font-display-lg { font-family: 'Hanken Grotesk', sans-serif; }
.font-headline-md, .font-headline-sm, .font-label-md, .font-caption { font-family: 'Hanken Grotesk', sans-serif; }
.font-body-lg, .font-body-md { font-family: 'Source Serif 4', serif; }
.rounded-t-xs { border-top-left-radius: 0.125rem; border-top-right-radius: 0.125rem; }
a { text-decoration: none; }

/* a11y: visible keyboard focus */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid #012d1d;
  outline-offset: 2px;
  border-radius: 2px;
}

/* a11y: skip-to-content link, hidden until focused */
.skip-link {
  position: absolute;
  left: 0.5rem;
  top: -3rem;
  z-index: 100;
  background: #012d1d;
  color: #fff;
  padding: 0.5rem 0.9rem;
  border-radius: 0 0 0.4rem 0.4rem;
  transition: top 0.15s ease;
}
.skip-link:focus { top: 0; }

/* respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .ticker-scroll { animation: none; }
}
