/* FoodWasteExchange - Foundation tokens (T0) */

:root {
  --forest: #1A3C34;
  --moss: #2D5A4C;
  --cream: #FAF6EF;
  --oat: #F1EAD9;
  --citrus: #D4F34E;
  --tomato: #FF5C38;
  --ink: #16211E;
  --pet: #FFD166;
  --feed: #A8DADC;
  --ad: #E9E2D0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background-color: var(--cream);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

.font-display {
  font-family: 'Fraunces', Georgia, serif;
}

/* ---- Ticker marquee ---- */
@keyframes ticker-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.ticker-track {
  display: flex;
  width: max-content;
  animation: ticker-scroll 28s linear infinite;
}

.ticker-track:hover {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  .ticker-track { animation: none; }
  html { scroll-behavior: auto; }
}

/* ---- Card hover lift ---- */
.card-lift {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.card-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 50px rgba(26, 60, 52, 0.14);
}

/* ---- Badges ---- */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
  white-space: nowrap;
}

.badge-human {
  background-color: var(--citrus);
  color: var(--forest);
  border: 1px solid rgba(26, 60, 52, 0.15);
}

.badge-pet {
  background-color: var(--pet);
  color: var(--ink);
  border: 1px solid rgba(22, 33, 30, 0.12);
}

.badge-feed {
  background-color: var(--feed);
  color: var(--forest);
  border: 1px solid rgba(26, 60, 52, 0.15);
}

.badge-ad {
  background-color: var(--ad);
  color: var(--forest);
  border: 1px solid rgba(26, 60, 52, 0.18);
}

.badge-bbe {
  background-color: #fff;
  color: var(--forest);
  border: 1px solid rgba(26, 60, 52, 0.2);
}

.badge-bbe-urgent {
  background-color: var(--tomato);
  color: #fff;
  border: 1px solid var(--tomato);
}

/* ---- Grain texture utility ---- */
.grain {
  position: relative;
}

.grain::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.07;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
}

/* ---- FAQ accordion ---- */
.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.25s ease;
}

.faq-item[data-open="true"] .faq-answer {
  grid-template-rows: 1fr;
}

.faq-answer-inner {
  overflow: hidden;
}

.faq-item[data-open="true"] .faq-chevron {
  transform: rotate(180deg);
}

.faq-chevron {
  transition: transform 0.25s ease;
}

/* ---- Marketplace filter hidden state ---- */
.lot-card.is-hidden {
  display: none;
}

/* ---- Citrus blob helper ---- */
.blob-citrus {
  background: var(--citrus);
  border-radius: 46% 54% 58% 42% / 48% 44% 56% 52%;
}
