/* foodtruck-verhaal 1.0.0 · ReactBits ScrollVelocity (reactbits.dev/text-animations/scroll-velocity) in vanilla.
   Behouden: twee tegengesteld lopende tekstbanen die met de scrollsnelheid versnellen en van richting
   wisselen, modulo-wrap op de breedte van één kopie, randvervaging (smootherstep-masker) en de
   afwisseling vol/omlijnd. Zonder script en bij reduced motion staan de banen stil. */
.msm-foodtruck-verhaal {
  --ftv-ink: var(--m-ink, #1f2020);
  --ftv-primary: var(--m-primary, #2f6f62);
  --ftv-sand: var(--m-bg, #f2dfb5);
  display: block;
  position: relative;
  scroll-margin-top: 116px;
  padding: clamp(28px, 4vw, 48px) 0;
  background: #ffffff;
  color: var(--ftv-ink);
  font-family: var(--m-font-body, Arial, sans-serif);
  font-size: 16px;
  line-height: 1.55;
  overflow: hidden;
}
.msm-foodtruck-verhaal *,
.msm-foodtruck-verhaal *::before,
.msm-foodtruck-verhaal *::after { box-sizing: border-box; }

/* Tekstbanen: één kopie bepaalt de wrap-breedte; het script vult kopieën aan tot de baan vol is. */
.msm-foodtruck-verhaal .ftv-baan {
  position: relative;
  overflow: hidden;
  padding: 0.08em 0;
  font: 900 clamp(44px, 8.5vw, 118px) / 1 var(--m-font-display, Impact, sans-serif);
  letter-spacing: -0.01em;
  text-transform: uppercase;
  -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.007) 1.5%, rgba(0, 0, 0, 0.104) 3%, rgba(0, 0, 0, 0.316) 4.5%, rgba(0, 0, 0, 0.5) 6%, rgba(0, 0, 0, 0.684) 7.5%, rgba(0, 0, 0, 0.897) 9%, rgba(0, 0, 0, 0.993) 10.5%, rgba(0, 0, 0, 1) 12%, rgba(0, 0, 0, 1) 88%, rgba(0, 0, 0, 0.993) 89.5%, rgba(0, 0, 0, 0.897) 91%, rgba(0, 0, 0, 0.684) 92.5%, rgba(0, 0, 0, 0.5) 94%, rgba(0, 0, 0, 0.316) 95.5%, rgba(0, 0, 0, 0.104) 97%, rgba(0, 0, 0, 0.007) 98.5%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.007) 1.5%, rgba(0, 0, 0, 0.104) 3%, rgba(0, 0, 0, 0.316) 4.5%, rgba(0, 0, 0, 0.5) 6%, rgba(0, 0, 0, 0.684) 7.5%, rgba(0, 0, 0, 0.897) 9%, rgba(0, 0, 0, 0.993) 10.5%, rgba(0, 0, 0, 1) 12%, rgba(0, 0, 0, 1) 88%, rgba(0, 0, 0, 0.993) 89.5%, rgba(0, 0, 0, 0.897) 91%, rgba(0, 0, 0, 0.684) 92.5%, rgba(0, 0, 0, 0.5) 94%, rgba(0, 0, 0, 0.316) 95.5%, rgba(0, 0, 0, 0.104) 97%, rgba(0, 0, 0, 0.007) 98.5%, rgba(0, 0, 0, 0) 100%);
  -webkit-user-select: none;
  user-select: none;
}
.msm-foodtruck-verhaal .ftv-scroller {
  display: flex;
  white-space: nowrap;
  will-change: transform;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.1));
}
.msm-foodtruck-verhaal .ftv-copy { flex: 0 0 auto; padding-right: 0.3em; }
.msm-foodtruck-verhaal .ftv-sep { display: inline-block; margin-left: 0.3em; transform: translateY(-0.03em); }
.msm-foodtruck-verhaal .ftv-baan--vol { color: var(--ftv-ink); }
.msm-foodtruck-verhaal .ftv-baan--lijn {
  color: var(--ftv-primary);
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: max(1px, 0.028em) currentColor;
}

.msm-foodtruck-verhaal .ftv-inner {
  max-width: 1180px;
  margin: clamp(40px, 6vw, 88px) auto;
  padding: 0 clamp(16px, 4vw, 48px);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(28px, 5vw, 80px);
  align-items: center;
}
.msm-foodtruck-verhaal .ftv-eyebrow {
  margin: 0 0 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ftv-primary);
}
.msm-foodtruck-verhaal h2 {
  margin: 0 0 22px;
  font: 900 clamp(44px, 7vw, 96px) / 0.9 var(--m-font-display, Impact, sans-serif);
  letter-spacing: -0.015em;
}
.msm-foodtruck-verhaal .ftv-tekst > p { margin: 0 0 14px; max-width: 56ch; }
.msm-foodtruck-verhaal .ftv-feiten {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 28px 0 0;
  padding: 22px 0 0;
  border-top: 1px solid color-mix(in srgb, var(--ftv-ink) 16%, transparent);
}
.msm-foodtruck-verhaal .ftv-feiten div { min-width: 0; }
.msm-foodtruck-verhaal dt {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ftv-primary);
}
.msm-foodtruck-verhaal dd { margin: 0; font-size: 14px; line-height: 1.5; opacity: 0.85; }

/* Truck met gestippelde route en aankomstspeld erachter. */
.msm-foodtruck-verhaal .ftv-art {
  position: relative;
  margin: 0;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 24px 0 48px;
}
.msm-foodtruck-verhaal .ftv-route {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: var(--ftv-primary);
  opacity: 0.7;
}
.msm-foodtruck-verhaal .ftv-art img {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 26px 26px rgba(0, 0, 0, 0.28));
}
.msm-foodtruck-verhaal figcaption {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 8px;
  padding: 6px 12px;
  border: 1px solid color-mix(in srgb, var(--ftv-ink) 18%, transparent);
  border-radius: 999px;
  background: #ffffff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: center;
  text-wrap: balance;
}

@media (max-width: 900px) {
  .msm-foodtruck-verhaal .ftv-inner { grid-template-columns: minmax(0, 1fr); }
  .msm-foodtruck-verhaal .ftv-art { width: min(100%, 420px); margin: 0 auto; }
}
@media (max-width: 560px) {
  .msm-foodtruck-verhaal .ftv-feiten { grid-template-columns: minmax(0, 1fr); }
}
