/* ============================================================
   Skills For Life — Page-scoped CSS for /missie.html
   ------------------------------------------------------------
   Niet bedoeld voor herbruik. style.css blijft single source
   of truth voor het brand design-systeem.
   ============================================================ */

body { overflow-x: hidden; }

/* ============================================================
   Motion (gedeeld patroon, zelfde als index.css)
   ============================================================ */
@keyframes fade-up {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero .container > *:nth-child(1) { animation: fade-up 600ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.hero .container > *:nth-child(2) { animation: fade-up 600ms cubic-bezier(0.22, 1, 0.36, 1) 120ms both; }
.hero .container > *:nth-child(3) { animation: fade-up 600ms cubic-bezier(0.22, 1, 0.36, 1) 250ms both; }
.hero .container > *:nth-child(4) { animation: fade-up 600ms cubic-bezier(0.22, 1, 0.36, 1) 400ms both; }

.js-loaded .reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1),
              transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}
.js-loaded .reveal.is-visible { opacity: 1; transform: translateY(0); }

.js-loaded .reveal-stagger > * {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 500ms cubic-bezier(0.22, 1, 0.36, 1),
              transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
}
.js-loaded .reveal-stagger.is-visible > *:nth-child(1) { opacity: 1; transform: none; }
.js-loaded .reveal-stagger.is-visible > *:nth-child(2) { opacity: 1; transform: none; transition-delay: 90ms; }
.js-loaded .reveal-stagger.is-visible > *:nth-child(3) { opacity: 1; transform: none; transition-delay: 180ms; }
.js-loaded .reveal-stagger.is-visible > *:nth-child(4) { opacity: 1; transform: none; transition-delay: 270ms; }

@media (prefers-reduced-motion: reduce) {
  .hero .container > * { animation: none; }
  .js-loaded .reveal,
  .js-loaded .reveal-stagger > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* H2 underline globaal weg op deze pagina (consistent met index.css) */
.section-rule {
  border-bottom: 0;
  padding-bottom: 0;
}
.hero .btn--inverse-outline { color: #fff; }

/* Alt-section: cream achtergrond voor afwisseling */
.section--alt {
  background: var(--cream);
}

/* Inverse overline op pattern-surfaces (eigen overline-kleur is olive-700) */
.overline--inverse {
  color: #fff;
  opacity: 0.85;
}

/* ============================================================
   Missie-sectie: tekst links, quote rechts (verticaal gecentreerd)
   ============================================================ */
.missie-row {
  align-items: center;
  gap: var(--space-10);
}
@media (min-width: 900px) {
  .missie-row { gap: var(--space-16); }
}
.missie-quote {
  margin-bottom: 0;
}

/* ============================================================
   Stat-cards (probleem-sectie)
   ============================================================ */
.stat-pair {
  margin-top: var(--space-10);
  gap: var(--space-8);
}
.stat-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-10);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.stat-card__value {
  font-size: clamp(3rem, 7vw, 4.5rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--olive-700);
  font-variant-numeric: tabular-nums;
}
.stat-card__title {
  margin: var(--space-2) 0 0;
  font-size: var(--fs-h4);
  font-weight: 700;
  letter-spacing: -0.01em;
}
.stat-card__sub {
  margin: 0;
  font-size: var(--fs-body-sm);
  color: var(--neutral-600);
  letter-spacing: 0.02em;
}
.stat-card p:not(.stat-card__sub):not(.stat-card__source) {
  margin: var(--space-3) 0 0;
  color: var(--neutral-700);
}
.stat-card__source {
  margin-top: auto;
  padding-top: var(--space-4);
  font-size: var(--fs-caption);
  color: var(--neutral-500);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 600;
}

/* ============================================================
   Pillar-list (oplossing — 3 pijlers)
   ============================================================ */
.pillar-list {
  list-style: none;
  margin: var(--space-10) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}
@media (min-width: 768px) {
  .pillar-list {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-8);
  }
}
.pillar {
  background: var(--cream);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.pillar__num {
  font-size: var(--fs-h2);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--olive-500);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.pillar h3 {
  margin: 0;
  font-size: var(--fs-h4);
  letter-spacing: -0.01em;
}
.pillar p {
  margin: 0;
  color: var(--neutral-700);
}

/* ============================================================
   Timeline (Bali — 3 fases)
   ============================================================ */
.timeline {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
  margin-top: var(--space-12);
  position: relative;
}
@media (min-width: 768px) {
  .timeline {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-8);
  }
}
.timeline__step {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  position: relative;
}
.timeline__step::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: var(--space-8);
  inset-inline-end: var(--space-8);
  height: 3px;
  background: var(--olive-500);
  border-radius: 0 0 2px 2px;
}
.timeline__phase {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-caption);
  color: var(--olive-700);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
}
.timeline__step h3 {
  margin: 0 0 var(--space-3);
  font-size: var(--fs-h4);
  letter-spacing: -0.01em;
}
.timeline__step p {
  margin: 0;
  color: var(--neutral-700);
}

/* ============================================================
   Win-grid (4 quadranten — iedereen wint)
   ============================================================ */
.win-grid {
  margin-top: var(--space-10);
  gap: var(--space-6);
}
@media (min-width: 768px) {
  .win-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-8);
  }
}
.win-card {
  background: var(--cream);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  border-inline-start: 3px solid var(--olive-500);
}
.win-card h3 {
  margin: 0 0 var(--space-3);
  font-size: var(--fs-h4);
  letter-spacing: -0.01em;
  color: var(--olive-800);
}
.win-card p {
  margin: 0;
  color: var(--neutral-700);
}

/* ============================================================
   Roadmap (3 jaren)
   ============================================================ */
.roadmap-grid {
  margin-top: var(--space-10);
  gap: var(--space-6);
}
@media (min-width: 900px) {
  .roadmap-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-8);
  }
}
.roadmap-card {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  border-top: 4px solid var(--olive-400);
}
.roadmap-card--mid { border-top-color: var(--olive-600); }
.roadmap-card--end {
  border-top-color: var(--olive-800);
  background: var(--olive-800);
  color: var(--cream);
}
.roadmap-card--end h3,
.roadmap-card--end .roadmap-card__year { color: #fff; }
.roadmap-card--end .checklist li::before { color: var(--olive-200); }
.roadmap-card--end .checklist li { color: var(--cream); }

.roadmap-card__year {
  margin: 0;
  font-size: var(--fs-caption);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--olive-700);
}
.roadmap-card h3 {
  margin: 0;
  font-size: var(--fs-h2);
  letter-spacing: -0.02em;
}

.checklist {
  list-style: none;
  margin: var(--space-2) 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.checklist li {
  position: relative;
  padding-left: 1.5em;
  color: var(--neutral-700);
  line-height: 1.5;
}
.checklist li::before {
  content: "→";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--olive-600);
  font-weight: 700;
}

/* ============================================================
   Bestuur cards
   ============================================================ */
.bestuur-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}
.bestuur-card h3 {
  margin: 0;
}
.bestuur-card__avatar {
  width: 120px;
  height: 120px;
  background: var(--neutral-100);
}
.bestuur-card__role {
  margin: 0;
  font-size: var(--fs-body-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--olive-700);
}

/* ============================================================
   ANBI — cream surface en compactere term-kolom
   ============================================================ */
#anbi {
  background: var(--cream);
}
.anbi__list {
  grid-template-columns: 8rem 1fr;
}
@media (max-width: 600px) {
  .anbi__list {
    grid-template-columns: 1fr;
  }
}
.anbi__cta {
  margin-top: var(--space-6);
}

/* ============================================================
   Footer — overerf de witte variant uit index.css op deze pagina ook
   ============================================================ */
.site-footer {
  background: #fff;
  color: var(--neutral-900);
}
.site-footer__col h4 { color: var(--neutral-900); }
.site-footer__col p,
.site-footer__col li,
.site-footer__col dt,
.site-footer__col dd,
.site-footer .def-list--footer .def-list__term,
.site-footer .def-list--footer .def-list__value {
  color: var(--neutral-600);
}
.site-footer__col a,
.site-footer .def-list--footer a,
.site-footer__bottom-links a {
  color: var(--neutral-800);
  opacity: 1;
}
.site-footer__col a:hover,
.site-footer .def-list--footer a:hover,
.site-footer__bottom-links a:hover {
  color: var(--neutral-900);
}
.site-footer__bottom {
  border-top-color: var(--border);
  color: var(--neutral-500);
}

/* CTA-band: platte tekstlink (consistent met index.css) */
.cta-plain-link {
  font-weight: 600;
  color: #fff;
  text-decoration: none;
}
.cta-plain-link:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.cta-plain-link:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 4px;
  border-radius: var(--radius-sm);
}
