/* ============================================
   Begin direct — post-2214.css + de eigen HTML-widgets van het origineel
   (route-toggle, stap-list/slider, cta-card, contact-promise, doel-grid, formulier b2180ec, trust-strip).
   ============================================ */

/* ---------- Hero (c699810) ---------- */
.bd-hero { background-color: var(--color-primary); padding: 80px 0; }
.bd-hero__inner { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: 72px; }
.bd-hero__tekst {
  display: flex; flex-direction: column; justify-content: center; gap: 24px;
  width: 51%; flex-shrink: 0; min-width: 0;
}
.bd-hero__titel {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--h-primary-size);
  font-weight: 800;
  line-height: var(--h-primary-lh);
  color: var(--color-white);
}
.bd-hero__titel em { color: var(--color-accent); font-style: italic; }
.bd-hero__sub {
  margin-bottom: 1lh; /* lege <p>&nbsp; in het origineel */
  font-family: var(--font-ui); font-size: var(--body-size); font-weight: 400; line-height: var(--body-lh);
  color: var(--color-white);
}

/* Keuzeschakelaar demo/contact (widget 6634ad2). Loopt op smalle schermen buiten de kolom, net als het origineel. */
.bd-route { align-self: flex-start; }
.route-toggle {
  display: flex; gap: 4px;
  width: fit-content; margin: 0 auto; padding: 4px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
}
.route-btn {
  padding: 13px 26px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  font-family: var(--font-ui); font-size: var(--ui-size); font-weight: 600; line-height: var(--ui-lh);
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.5s, background 0.5s;
}
.route-btn.is-active { background: var(--color-accent); color: var(--color-white); }
.route-btn.is-pulse { background: rgba(255, 255, 255, 0.08); color: var(--color-white); }
.route-btn:hover:not(.is-active) { background: rgba(238, 131, 49, 0.15); color: var(--color-accent); }

/* ---------- Route "demo" (64701a4) ---------- */
.bd-demo { background-color: var(--color-cream); padding: 80px 0; }
.bd-demo[hidden] { display: none; }
.bd-demo__inner { display: flex; gap: 72px; }
.bd-demo__stappen { display: flex; flex-direction: column; gap: 30px; width: 100%; min-width: 0; }
.bd-demo__kaart { display: flex; flex-direction: column; justify-content: center; width: 75%; min-width: 0; }

/* Stappen: lijst op desktop, slider op ≤768px (widget ac5cdf9) */
.stappen { font-family: var(--font-ui); }
.stappen__lijst { display: flex; flex-direction: column; gap: 28px; margin: 0; padding: 0; list-style: none; }
.stap { display: flex; align-items: flex-start; gap: 20px; }
.stap__num {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--color-accent);
  color: var(--color-white);
  font-family: var(--font-heading); font-size: 18px; font-weight: 800;
}
.stap__titel {
  margin: 0 0 4px;
  font-family: var(--font-heading); font-size: 17px; font-weight: 800; line-height: 1.5;
  color: var(--color-primary);
}
.stap__tekst { margin: 0; font-size: 14px; line-height: 1.6; color: #666; }
.stappen__lijn { width: 2px; height: 20px; margin: -12px 0 -12px 21px; background: rgba(238, 131, 49, 0.25); }

.stappen__slider { display: none; }

.stappen__trust {
  display: flex; align-items: center; gap: 14px;
  margin-top: 40px; padding: 20px;
  border-radius: 14px;
  background: var(--color-white);
  font-family: var(--font-body);
}
.stappen__trust-dot { flex-shrink: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--color-accent); }
.stappen__trust-titel { margin: 0; font-size: 14px; font-weight: 700; color: var(--color-primary); }
.stappen__trust-sub { margin: 2px 0 0; font-size: 13px; color: #666; }

@media (max-width: 768px) {
  .stappen__lijst { display: none; }
  .stappen__slider { display: block; font-family: var(--font-body); } /* buiten .stap-list: Inter, zoals het origineel */
  .stappen__venster { overflow: hidden; width: 100%; cursor: grab; user-select: none; }
  .stappen__venster.is-dragging { cursor: grabbing; }
  .stappen__rij {
    display: flex; gap: 12px;
    width: max-content; margin: 0; padding: 4px 0 8px;
    list-style: none;
    transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: transform;
  }
  .stappen__rij.no-anim { transition: none; }
  .stap-kaart {
    display: flex; flex-direction: column; gap: 14px; flex-shrink: 0;
    padding: 24px 20px;
    border-radius: 16px;
    background: var(--color-white);
    box-shadow: rgba(0, 5, 22, 0.07) 0 4px 20px;
  }
  .stap-kaart .stap__num { width: 52px; height: 52px; font-size: 22px; }
  .stap-kaart .stap__titel { font-size: 16px; }
  .stap-kaart .stap__tekst { font-size: 13px; }

  .stappen__nav { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 8px; }
  .stappen__dots { display: flex; align-items: center; min-height: 24px; }
  .stappen__dot {
    display: inline-block; flex-shrink: 0;
    width: 8px; height: 8px; margin: 0 1px; padding: 0;
    border: 0; border-radius: 100px;
    background: rgba(0, 0, 0, 0.2);
    cursor: pointer;
    transition: background 0.25s, width 0.25s;
  }
  .stappen__dot.is-active { width: 24px; background: var(--color-accent); }
  .stappen__knop {
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    width: 40px; height: 40px; padding: 0;
    border: 1.5px solid rgba(0, 0, 0, 0.15); border-radius: 50%;
    background: var(--color-white);
    color: var(--color-primary);
    cursor: pointer;
    transition: 0.2s;
  }
  .stappen__knop svg { display: block; pointer-events: none; }
  .stappen__knop:hover:not(:disabled) { transform: scale(1.08); background: var(--color-accent); border-color: var(--color-accent); color: var(--color-white); }
  .stappen__knop:disabled { opacity: 0.35; cursor: not-allowed; }
  .stappen__trust { margin-top: 24px; }
}

/* Intake-kaart (widget dd01512) */
.intake-kaart {
  padding: 40px;
  border-radius: 20px;
  background: var(--color-white);
  box-shadow: rgba(0, 5, 22, 0.08) 0 8px 40px;
  font-family: var(--font-ui);
  text-align: center;
}
.intake-kaart__icoon {
  display: flex; align-items: center; justify-content: center;
  width: 64px; height: 64px; margin: 0 auto 24px;
  border-radius: 16px;
  background: rgba(238, 131, 49, 0.12);
  color: var(--color-accent);
  font-size: 26px;
}
.intake-kaart__icoon .fa { vertical-align: 0; }
.intake-kaart__titel {
  margin: 0 0 12px;
  font-family: var(--font-heading); font-size: 24px; font-weight: 800; line-height: 1.5;
  color: var(--color-primary);
}
.intake-kaart__sub { margin: 0; font-size: 15px; line-height: 1.7; color: #666; }
.intake-kaart__sub strong { color: var(--color-primary); }
.intake-kaart__knop {
  display: block;
  margin-top: 30px; padding: 18px 24px;
  border-radius: 8px;
  background: var(--color-accent);
  color: var(--color-white);
  font-size: 17px; font-weight: 600;
  text-align: center;
  transition: background 0.2s;
}
.intake-kaart__knop:hover { background: #d4721f; color: var(--color-white); }
.intake-kaart__hint { margin: 20px 0 0; font-size: 12px; color: #bbb; }
.intake-kaart__lijn { margin-top: 32px; padding-top: 28px; border-top: 1px solid #f0f0f0; }
.intake-kaart__lijst { display: flex; flex-direction: column; gap: 20px; margin: 0; padding: 0; list-style: none; }
.intake-kaart__lijst li { display: flex; align-items: center; gap: 12px; font-size: 14px; color: #555; text-align: left; }
.intake-kaart__lijst .fa { flex-shrink: 0; font-size: 20px; color: var(--color-accent); vertical-align: 0; }

/* ---------- Route "contact" (4baa0dc) — verborgen tot gekozen ---------- */
.bd-contact { background-color: var(--color-cream); padding: 80px 0; }
.bd-contact[hidden] { display: none; }
.bd-contact__inner { display: flex; gap: 72px; }
.bd-contact__tekst { display: flex; flex-direction: column; gap: 30px; width: 100%; min-width: 0; }
.bd-contact__titel { width: 68%; }
.bd-contact__sub { font-family: var(--font-ui); font-size: var(--body-size); font-weight: 400; line-height: var(--body-lh); color: var(--color-text); }

.belofte {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 12px; padding: 20px;
  border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 12px;
  background: var(--color-white);
  box-shadow: rgba(0, 5, 22, 0.05) 0 4px 16px;
  font-family: var(--font-ui);
}
.belofte--link { margin-bottom: 0; transition: background 0.2s; }
.belofte--link:hover { background: #fafafa; }
.belofte__icoon {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 10px;
  background: rgba(238, 131, 49, 0.1);
  color: var(--color-accent);
  font-size: 18px;
}
.belofte__icoon .fa { vertical-align: 0; }
.belofte__tekst { margin: 0; font-size: 14px; line-height: 1.65; color: #555; }
.belofte__tekst strong {
  display: block; margin-bottom: 4px;
  font-family: var(--font-heading); font-size: 15px; font-weight: 800;
  color: var(--color-primary);
}
.belofte--link .belofte__tekst strong { margin-bottom: 0; font-weight: 700; }
.belofte__pijl { flex-shrink: 0; margin-left: auto; color: var(--color-accent); font-size: 16px; }

.bd-contact__kaart {
  display: flex; flex-direction: column; justify-content: center; gap: 14px;
  width: 75%; min-width: 0;
  padding: 40px;
  border-radius: 20px;
  background: var(--color-white);
}
.bd-contact__vraag {
  margin: 0;
  font-family: var(--font-heading); font-size: 28px; font-weight: 800; line-height: 1.2; letter-spacing: 0;
  color: var(--color-primary);
}

/* Doelen (widget 2e55a89): vinkjes die het verborgen veld "doelen" vullen */
.bd-form { display: flex; flex-direction: column; gap: 14px; }
.doelen { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
.doelen__optie--breed { grid-column: 1 / -1; }
.doelen__vink { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.doelen__label {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px;
  border: 2px solid transparent; border-radius: 10px;
  background: var(--color-cream);
  color: var(--color-primary);
  font-family: var(--font-ui); font-size: 14px; font-weight: 600; line-height: 1.3;
  cursor: pointer;
  user-select: none;
  transition: 0.2s;
}
.doelen__label:hover { border-color: rgba(238, 131, 49, 0.4); }
.doelen__check {
  flex-shrink: 0;
  width: 16px; height: 16px;
  border: 2px solid #ccc; border-radius: 4px;
  transition: 0.15s;
}
.doelen__vink:checked + .doelen__label { border-color: var(--color-accent); background: rgba(238, 131, 49, 0.08); color: var(--color-accent); }
.doelen__vink:checked + .doelen__label .doelen__check { border-color: var(--color-accent); background: var(--color-accent); }
.doelen__vink:focus-visible + .doelen__label { outline: 2px solid var(--color-accent); outline-offset: 2px; }
@media (max-width: 480px) { .doelen { grid-template-columns: 1fr; } }

/* Formulier (Elementor-formulier b2180ec): labels boven, 10px kolomafstand, 14px rijafstand */
.bd-form__velden { display: flex; flex-wrap: wrap; margin: 0 -5px -14px; }
.bd-form__veld { display: flex; flex-wrap: wrap; align-items: center; width: 100%; margin-bottom: 14px; padding: 0 5px; }
.bd-form__label {
  display: block;
  font-family: var(--font-ui); font-size: 13px; font-weight: 600; line-height: 1.7;
  color: #444;
  cursor: pointer;
}
.bd-form__veld--verplicht .bd-form__label::after { content: "*"; padding-inline-start: 0.2em; color: var(--color-accent); }
.bd-form__optioneel { font-weight: 400; color: #bbb; }
.bd-form__input {
  flex-basis: 100%;
  width: 100%; max-width: 100%; min-height: 40px;
  padding: 8px 16px;
  border: 1.5px solid #e0e0e0; border-radius: 10px;
  background-color: var(--color-white);
  color: #1f2124;
  font-family: inherit; font-size: 15px; font-weight: 400; line-height: 1.4;
  vertical-align: middle;
  transition: all 0.3s;
}
.bd-form__input--tekst { padding: 5px 14px; }
.bd-form__input::placeholder { color: inherit; font-family: inherit; opacity: 0.6; }
.bd-form__input:focus { border-color: var(--color-accent); outline: none; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); }
.bd-form__veld--knop { align-items: flex-end; }
.bd-form__knop {
  display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 8px;
  flex-basis: 100%;
  min-height: 40px; padding: 13px 26px;
  border: 0; border-radius: 7px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-family: var(--font-ui); font-size: 16px; font-weight: 600; line-height: 1.7;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.3s;
}
.bd-form__knop .fa { width: 1em; height: auto; }
/* kit: knop-hover wordt bijna zwart met 5px hoeken */
.bd-form__knop:hover, .bd-form__knop:focus { background-color: #0a0705; border-radius: 5px; color: var(--color-white); }
.bd-form__honeypot { display: none; }

/* ---------- Reviews (1b2e42f) en resultaten (c18a7c5) ---------- */
.bd-reviews { background-color: var(--color-primary); padding: 80px 0; }
.bd-reviews__inner { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 24px; }
.bd-cases { background-color: var(--color-white); padding: 80px 0; }

/* ---------- Vertrouwensbalk (de83ca0) ---------- */
.bd-trust { background-color: var(--color-primary); padding: 80px 0; }
.trust-strip { display: flex; justify-content: space-between; align-items: center; width: 100%; margin: 0; padding: 0; list-style: none; }
.trust-strip__item {
  display: flex; align-items: center; gap: 10px;
  color: var(--color-white);
  font-family: var(--font-ui); font-size: 14px; font-weight: 500;
  white-space: nowrap;
}
.trust-strip__dot { flex-shrink: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--color-accent); }
@media (max-width: 768px) {
  .trust-strip { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
  .bd-hero { padding: 50px 30px 75px; }
}

/* ---------- Mobiel ---------- */
@media (max-width: 767px) {
  .bd-hero { padding: 30px 20px 60px; }
  .bd-hero__inner { flex-direction: column; justify-content: center; align-items: flex-start; gap: 50px; }
  .bd-hero__tekst { width: 100%; justify-content: flex-start; align-items: flex-start; align-self: flex-start; }
  .bd-hero__tekst .eyebrow { width: 100%; }
  .bd-hero__titel { max-width: 339px; }
  .route-btn { padding: 11px 22px; }

  .bd-demo { padding: 80px 20px; }
  .bd-demo__inner { flex-direction: column-reverse; }
  .bd-demo__stappen, .bd-demo__kaart { width: 100%; }

  .bd-contact__inner { flex-wrap: wrap; }
  .bd-contact__tekst { padding: 60px 20px; }
  .bd-contact__kaart { width: 100%; }
  .bd-contact__vraag { font-size: 22px; line-height: 1.12; }
  .bd-form__label { font-size: 16px; line-height: 1.2; }
  .bd-form__knop { font-size: 16px; line-height: 1.2; }

  .bd-reviews { padding: 60px 20px 0; }
  .bd-reviews__inner { gap: 20px; }
  .bd-cases { padding: 60px 20px; }
  .bd-trust { padding: 60px 20px; }
}
