/* ============================================================
   KIOSKTOUCH — BESTELLEN als SLIDE FORM (Typeform-stijl)
   Één keuze per scherm, horizontaal glijdende slides, elke slide
   vult exact het podium onder de nav. De bezoeker scrollt NOOIT
   binnen de flow. Bouwt voort op style.css (donker/glas/oranje).
   ============================================================ */

/* nav-link actief */
.nav-links a.is-active { color: var(--ink); }
.nav-links a.is-active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1.5px;
  background: var(--accent); border-radius: 2px;
}

/* ============================================================
   PODIUM — full-viewport onder de vaste nav (72px)
   ============================================================ */
.sf {
  position: relative; overflow: hidden;
  padding-top: 72px;              /* ruimte voor de vaste nav */
  background: var(--bg-2);
}
/* scroll-anchoring uit: het horizontaal glijden van de slides mag de pagina
   NOOIT verticaal verschuiven (anders 'springt' de pagina bij een stapwissel) */
body { overflow-anchor: none; }
.sf, .sf-viewport, .sf-track, .sf-slide { overflow-anchor: none; }
/* geen smooth page-scroll op de bestel-pagina: een eventuele scroll-into-view
   gebeurt dan direct (niet als animatie), zodat de flow bovenaan blijft staan */
html { scroll-behavior: auto; }
.sf-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.sf-glow {
  position: absolute; top: -8%; left: 50%; transform: translateX(-50%);
  width: 900px; max-width: 130vw; height: 460px;
  background: radial-gradient(50% 50% at 50% 35%, rgba(13,13,14,.10), transparent 70%);
  filter: blur(12px);
}
.sf-orb { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; }
.sf-orb-a {
  width: 360px; height: 360px; top: 6%; left: -6%;
  background: radial-gradient(circle, rgba(13,13,14,.18), transparent 70%);
  animation: sfFloat 19s var(--ease) infinite;
}
.sf-orb-b {
  width: 300px; height: 300px; bottom: 4%; right: -5%;
  background: radial-gradient(circle, rgba(13,13,14,.12), transparent 70%);
  animation: sfFloat 24s var(--ease) infinite reverse;
}
@keyframes sfFloat { 0%,100% { transform: translate(0,0); } 50% { transform: translate(22px,-26px); } }

.sf-particles span {
  position: absolute; width: 3px; height: 3px; border-radius: 50%;
  background: rgba(13,13,14,.55); box-shadow: 0 0 6px 1px rgba(13,13,14,.4);
  animation: sfRise 12s linear infinite;
}
.sf-particles span:nth-child(1) { left: 12%; top: 70%; animation-delay: 0s; }
.sf-particles span:nth-child(2) { left: 28%; top: 82%; animation-delay: 2.5s; }
.sf-particles span:nth-child(3) { left: 52%; top: 76%; animation-delay: 5s; }
.sf-particles span:nth-child(4) { left: 71%; top: 84%; animation-delay: 1.5s; }
.sf-particles span:nth-child(5) { left: 84%; top: 68%; animation-delay: 4s; }
.sf-particles span:nth-child(6) { left: 44%; top: 88%; animation-delay: 6.5s; }
@keyframes sfRise {
  0% { transform: translateY(0); opacity: 0; }
  15% { opacity: .8; }
  85% { opacity: .5; }
  100% { transform: translateY(-160px); opacity: 0; }
}

/* ============================================================
   COVER — cinematische instap (full-bleed foto, verschijnt bij openen)
   Ligt over het podium. 'Start' schuift 'm weg en toont stap 1.
   Geen voortgangsbalk / geen Terug: die chrome hoort bij het podium.
   ============================================================ */
.sf-cover {
  position: absolute; inset: 0; z-index: 3;
  display: flex; overflow: hidden;
  transition: transform .5s var(--ease), opacity .42s var(--ease);
}
.sf.sf-started .sf-cover { transform: translateX(-100%); opacity: 0; pointer-events: none; }

.sf-cover-media { position: absolute; inset: 0; z-index: 0; }
/* cover-A: linkerhelft is bijna zwart, het gl-oeiende portret-scherm zit in de rechter-derde.
   object-position houdt dat scherm rechts in beeld; de tekst leeft links over het donker. */
.sf-cover-media img, .sf-cover-media video { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; display: block; }
/* alleen links een scrim zodat de tekst altijd leesbaar is; hij dooft vóór het scherm,
   zodat de gloed rechts volledig zichtbaar blijft. Onderaan een lichte bodem voor de stappen. */
.sf-cover-scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(11,11,12,.86) 0%, rgba(11,11,12,.72) 26%, rgba(11,11,12,.40) 46%, rgba(11,11,12,.06) 60%, transparent 72%),
    linear-gradient(0deg, rgba(11,11,12,.66) 0%, rgba(11,11,12,.18) 26%, transparent 46%);
}

.sf-cover-inner {
  position: relative; z-index: 1;
  width: 100%; max-width: 1240px; margin: 0 auto;
  padding: calc(72px + clamp(20px, 4vh, 54px)) clamp(20px, 5vw, 64px) clamp(22px, 4vh, 48px);
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
  gap: clamp(24px, 4.4vh, 50px);
}
/* alle cover-inhoud staat in de linkerhelft, over de donkere zone */
.sf-cover-lead { max-width: 540px; }
.sf-cover-lead .eyebrow { color: var(--accent-2); }
.sf-cover-title {
  margin-top: 16px; font-weight: 600; letter-spacing: -0.04em; line-height: 1.02;
  font-size: clamp(34px, 6.2vh, 60px);
}
.sf-cover-title em { font-style: normal; color: var(--accent); }
.sf-cover-sub {
  margin-top: clamp(12px, 1.8vh, 20px); max-width: 30em;
  color: rgba(244,244,245,.82); font-size: clamp(15px, 2vh, 19px); line-height: 1.5;
}
.sf-cover-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: clamp(20px, 3vh, 34px); }
.sf-cover-start { height: 54px; padding: 0 26px; font-size: 15.5px; }
.sf-cover-info { height: 54px; padding: 0 24px; font-size: 15px; }

/* zo werkt het — compact 2×2-raster binnen de linker tekstkolom */
.sf-cover-steps {
  list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.5vh, 18px) clamp(18px, 2vw, 30px); max-width: 560px;
  padding-top: clamp(16px, 2.4vh, 24px); border-top: 1px solid rgba(255,255,255,.14);
}
.sf-cover-step { display: flex; align-items: baseline; gap: 11px; min-width: 0; }
.sf-cover-step-n {
  flex: none; font-size: 14px; font-weight: 600; letter-spacing: .02em;
  color: var(--accent-2); font-variant-numeric: tabular-nums;
}
.sf-cover-step-t {
  font-size: clamp(12.5px, 1.5vh, 14px); font-weight: 500; line-height: 1.3;
  color: rgba(244,244,245,.86); letter-spacing: -0.01em;
}

/* cinematische intro bij het openen (children rijzen zacht op) */
.sf-cover-lead .eyebrow { animation: sfCoverUp .7s var(--ease) both; }
.sf-cover-title { animation: sfCoverUp .7s .06s var(--ease) both; }
.sf-cover-sub   { animation: sfCoverUp .7s .12s var(--ease) both; }
.sf-cover-cta   { animation: sfCoverUp .7s .18s var(--ease) both; }
.sf-cover-steps { animation: sfCoverUp .8s .26s var(--ease) both; }
@keyframes sfCoverUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* podium schuift zacht in wanneer de cover weggaat */
.sf.sf-started .sf-stage { animation: sfStageReveal .52s var(--ease) both; }
@keyframes sfStageReveal { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: none; } }

/* ---------- stage: vaste chrome boven/onder, glijdende slides in het midden ---------- */
.sf-stage {
  position: relative; z-index: 1;
  display: flex; flex-direction: column;
  height: calc(100dvh - 72px); min-height: 520px;
  max-width: 1140px; margin: 0 auto;
  padding: clamp(14px, 2.1vh, 26px) clamp(16px, 4vw, 44px) clamp(14px, 1.9vh, 22px);
}

/* ---------- TOP: voortgangsbalk + stap-teller + keuze-chip ---------- */
.sf-top { flex: none; }
.sf-progress {
  height: 4px; border-radius: 100px; overflow: hidden;
  background: rgba(255,255,255,.09);
}
.sf-progress-fill {
  display: block; height: 100%; width: 25%; border-radius: 100px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  box-shadow: 0 0 12px -2px var(--accent-glow);
  transition: width .45s var(--ease);
}
.sf-top-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-top: clamp(8px, 1.4vh, 13px);
}
.sf-step {
  font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink-dim); font-variant-numeric: tabular-nums;
}
.sf-chip {
  display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 13px;
  border-radius: 100px; font-size: 13px; font-weight: 600; letter-spacing: -0.01em;
  color: var(--accent-2); background: rgba(13,13,14,.1); border: 1px solid rgba(13,13,14,.34);
  font-variant-numeric: tabular-nums; white-space: nowrap;
  animation: chipIn .3s var(--ease) both;
}
.sf-chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex: none; }
.sf-chip[hidden] { display: none; }
@keyframes chipIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
/* zachte puls telkens het aantal schermen verandert */
.sf-chip.sf-chip-bump { animation: sfChipBump .44s var(--ease); }
@keyframes sfChipBump {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(13,13,14,0); }
  32% { transform: scale(1.11); box-shadow: 0 0 0 5px rgba(13,13,14,.14); }
  60% { transform: scale(.985); }
}

/* ---------- VIEWPORT + TRACK: horizontaal glijden ---------- */
.sf-viewport { flex: 1 1 auto; min-height: 0; position: relative; overflow: hidden; }
.sf-track {
  display: flex; height: 100%; width: 100%;
  transition: transform .38s cubic-bezier(.32, .72, .26, 1.02); will-change: transform;
}
.sf-slide {
  flex: 0 0 100%; width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(6px, 1.1vh, 14px) 0;
  opacity: 0; transition: opacity .38s var(--ease);
}
.sf-slide.is-current { opacity: 1; }
/* subtiele 'rijst zacht op'-beweging op de actieve slide-inhoud */
.sf-slide.is-current .sf-inner { animation: sfSlideRise .44s var(--ease) both; }
@keyframes sfSlideRise { from { transform: translateY(12px); } to { transform: none; } }
/* no-JS-fallback: enkel slide 1 tot shop.js het 'hidden'-attribuut weghaalt */
.sf-slide[hidden] { display: none; }

/* inhoud-wrapper: centreert verticaal, blijft binnen de slide */
.sf-inner {
  width: 100%; max-width: 900px; max-height: 100%;
  display: flex; flex-direction: column; outline: none;
}
.sf-inner:focus-visible { outline: none; }

/* kop van elke slide */
.sf-head { flex: none; text-align: center; max-width: 640px; margin: 0 auto clamp(16px, 2.6vh, 30px); }
.sf-head .eyebrow { justify-content: center; }
.sf-head .eyebrow::before { display: none; }
.sf-head h2 {
  font-size: clamp(28px, 3.7vh, 42px); font-weight: 600; line-height: 1.04;
  letter-spacing: -0.04em; margin-top: 10px;
}
.sf-head p { color: var(--ink-dim); font-size: clamp(14px, 1.85vh, 17px); margin-top: 11px; line-height: 1.5; }
.sf-head-tight { margin-bottom: clamp(10px, 1.6vh, 16px); }

/* ============================================================
   SLIDE 1 — KIES JE SCHERMEN (6 tegels, flexibel zodat het ALTIJD past)
   ============================================================ */
.sf-inner-schermen { height: 100%; max-width: 1080px; }
.sf-prod-grid {
  flex: 1 1 auto; min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 1.3vw, 16px);
}
.sf-tile {
  position: relative; min-height: 0; overflow: hidden;
  display: flex; flex-direction: column;
  border-radius: 16px; background: var(--glass); border: 1px solid var(--line-soft);
  transition: border-color .3s var(--ease), background .3s var(--ease),
              box-shadow .3s var(--ease), transform .3s var(--ease);
}
.sf-tile:hover { border-color: var(--line); background: var(--glass-2); transform: translateY(-2px); }
.sf-tile.is-active {
  border-color: rgba(13,13,14,.6);
  box-shadow: 0 0 0 1px rgba(13,13,14,.5), 0 18px 40px -22px var(--accent-glow);
}
.sf-tile-thumb {
  position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden;
  background: #edefee;
}
.sf-tile-thumb::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 78%, rgba(13,13,14,.05));
}
/* primaire product-foto: contain + ruime marge zodat het scherm LOS van de kaartrand staat (Samir 17-08, 3e keer) */
.sf-tile-thumb img {
  position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; display: block;
  padding: 8% 9%;
  transition: transform .5s var(--ease), opacity .4s var(--ease);
}
/* sfeerfoto bij hover: VOLLEDIG tonen op witte achtergrond (geen 20%-uitsnede meer) */
.sf-tile-thumb img.sf-tile-scene { object-fit: contain; }
.sf-tile:hover .sf-tile-thumb img { transform: scale(1.04); }
/* verrijdbaar = staand toestel op een 4:3-vooraf-gekaderde foto → toestel volledig in beeld,
   past bijna exact in de tegel-thumb (≈4:3), dus geen deel van het toestel wordt afgesneden */
.sf-tile-portret .sf-tile-thumb img { object-fit: contain; object-position: center; }

/* bestellen-tegel: bij hover verschijnt de sfeerfoto (persoon aan het scherm = hoe groot het is);
   klik op de foto = groot bekijken (lightbox). */
.sf-tile-thumb { cursor: zoom-in; }
.sf-tile-thumb img.sf-tile-scene { position: absolute; inset: 0; z-index: 2; opacity: 0; padding: 3%; transition: opacity .45s var(--ease); }
.sf-tile:hover .sf-tile-thumb img.sf-tile-scene { opacity: 1; }
/* op hover: de productrender vervaagt zodat ALLEEN de sfeerfoto vol in beeld komt (op wit) */
.sf-tile:hover .sf-tile-thumb img:not(.sf-tile-scene) { opacity: 0; }
.kt-lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.92); display: none; align-items: center; justify-content: center; padding: 24px; cursor: zoom-out; }
.kt-lightbox.open { display: flex; }
.kt-lightbox img { max-width: 92vw; max-height: 90vh; border-radius: 12px; box-shadow: 0 30px 90px rgba(0,0,0,.7); }
.kt-lightbox-close { position: absolute; top: 16px; right: 20px; color: rgba(255,255,255,.75); font-size: 30px; line-height: 1; background: none; border: 0; cursor: pointer; }
.sf-tile-foot { flex: none; padding: 10px 13px 12px; display: flex; flex-direction: column; gap: 9px; }
.sf-tile-kop { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
.sf-tile-naam {
  font-size: clamp(13.5px, 1.65vh, 16px); font-weight: 600; letter-spacing: -0.02em;
  line-height: 1.2; min-width: 0;
}
.sf-tile.is-active .sf-tile-naam { color: var(--accent-2); }
.sf-tile-tag {
  flex: none; font-size: 10.5px; font-weight: 600; letter-spacing: .03em; color: var(--ink-dim);
  padding: 3px 9px; border-radius: 100px; background: var(--glass); border: 1px solid var(--line-soft);
  white-space: nowrap;
}
.sf-stepper {
  display: flex; align-items: center; justify-content: space-between; gap: 4px;
  padding: 5px; border-radius: 12px; background: rgba(0,0,0,.28); border: 1px solid var(--line-soft);
}
.sf-tile.is-active .sf-stepper { border-color: rgba(13,13,14,.32); background: rgba(13,13,14,.06); }
.sf-step-btn {
  width: 36px; height: 36px; flex: none; border-radius: 9px; display: grid; place-items: center;
  background: var(--glass); border: 1px solid var(--line); color: var(--ink); cursor: pointer;
  transition: background .2s var(--ease), border-color .2s var(--ease), transform .15s var(--ease);
}
.sf-step-btn:hover { background: var(--glass-2); }
.sf-step-btn:active { transform: scale(.92); }
.sf-step-btn:disabled { opacity: .3; cursor: not-allowed; }
.sf-step-btn svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2.4; }
.sf-step-qty { flex: 1; text-align: center; font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; }
.sf-tile.is-active .sf-step-qty { color: var(--accent-2); }

/* twee links onder de stepper: naar de scherm-detailpagina + technische fiche */
.sf-tile-links {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px; padding-top: 2px;
}
.sf-tile-detail {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .02em;
  color: var(--ink); text-decoration: none;
  transition: color .2s var(--ease);
}
.sf-tile-detail::after {
  content: "→"; font-size: 11px; transition: transform .2s var(--ease);
}
.sf-tile-detail:hover { color: var(--accent-2); }
.sf-tile-detail:hover::after { transform: translateX(3px); }

.sf-tile-fiche {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .02em;
  color: var(--ink-dim); text-decoration: none;
  transition: color .2s var(--ease);
}
.sf-tile-fiche::before {
  content: "↓"; font-size: 11px;
}
.sf-tile-fiche:hover { color: var(--ink); }

/* ============================================================
   SLIDE 2 — PLAATSING (twee foto-kaarten + inbegrepen-strip)
   ============================================================ */
/* iets strakkere kop op deze visuele slide → foto's + strip passen altijd boven de voet */
.sf-slide[data-slide="2"] .sf-head { margin-bottom: clamp(10px, 1.7vh, 20px); }

/* twee FOTO-kaarten: beeld boven, titel + 3 bullets onder. Leest in 2 seconden. */
.bs-radio-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; max-width: 840px; margin: 0 auto; width: 100%; }
.bs-radio {
  position: relative; display: flex; flex-direction: column; overflow: hidden; text-align: left;
  font: inherit; color: var(--ink); cursor: pointer; padding: 0;
  border-radius: 18px; border: 1px solid var(--line-soft);
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
  transition: border-color .22s var(--ease), background .22s var(--ease),
              transform .2s var(--ease), box-shadow .28s var(--ease), opacity .22s var(--ease);
}
.bs-radio:hover { border-color: var(--line); transform: translateY(-3px); box-shadow: 0 22px 44px -28px rgba(0,0,0,.75); }
.bs-radio.is-on {
  border-color: rgba(13,13,14,.6); background: rgba(13,13,14,.05);
  box-shadow: 0 28px 54px -30px var(--accent-glow), 0 0 0 1px rgba(13,13,14,.45);
}
.bs-radio:not(.is-on) { opacity: .72; }            /* niet-gekozen kaart iets gedimd */
.bs-radio:not(.is-on):hover { opacity: 1; }

/* foto = de held van de kaart: groter/duidelijker, hoogte via podium-hoogte begrensd
   zodat de voordelen-rij eronder altijd past */
.bs-radio-photo { position: relative; aspect-ratio: 3 / 2; max-height: 33vh; overflow: hidden; background: #0c0c0e; }
.bs-radio-photo img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: brightness(.88) saturate(.98);
  transition: transform .5s var(--ease), filter .3s var(--ease);
}
.bs-radio:hover .bs-radio-photo img { transform: scale(1.045); }
.bs-radio.is-on .bs-radio-photo img { filter: brightness(1.06) saturate(1.05); }     /* gekozen → foto licht op */
.bs-radio:not(.is-on) .bs-radio-photo img { filter: brightness(.6) saturate(.9); }   /* niet gekozen → gedimd */
.bs-radio-photo::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 60%, rgba(11,11,12,.5));
}

/* check-badge over de foto (rechtsboven) */
.bs-radio-check {
  position: absolute; top: 12px; right: 12px; z-index: 1; width: 27px; height: 27px; border-radius: 50%;
  display: grid; place-items: center; color: #fff;
  border: 1.5px solid rgba(255,255,255,.6); background: rgba(11,11,12,.4); backdrop-filter: blur(4px);
  transition: background .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.bs-radio.is-on .bs-radio-check { background: var(--accent); border-color: var(--accent); transform: scale(1.08); }
.bs-radio-check svg { width: 14px; height: 14px; opacity: 0; transform: scale(.5); transition: opacity .2s var(--ease), transform .2s var(--ease); }
.bs-radio.is-on .bs-radio-check svg { opacity: 1; transform: scale(1); }

/* tekst onder de foto — strakke titel + één korte regel (foto blijft de held) */
.bs-radio-body { padding: 13px 16px 15px; }
.bs-radio-head b { font-size: 17px; font-weight: 600; letter-spacing: -0.02em; }
.bs-radio.is-on .bs-radio-head b { color: var(--accent-2); }
.bs-radio-desc { display: block; margin-top: 5px; font-size: 13px; color: var(--ink-dim); line-height: 1.4; }

/* 'Aanrader'-badge linksboven op de foto van de aanbevolen keuze (zelf plaatsen) */
.bs-radio-badge {
  position: absolute; top: 12px; left: 12px; z-index: 1;
  display: inline-flex; align-items: center;
  padding: 5px 11px; border-radius: 100px;
  font-size: 11px; font-weight: 600; letter-spacing: .02em; color: #fff;
  background: var(--accent); box-shadow: 0 6px 16px -6px var(--accent-glow);
}

/* nuchtere toelichting onder de twee plaatsings-keuzes */
.bs-radio-note {
  max-width: 720px; margin: clamp(12px, 1.8vh, 18px) auto 0; text-align: center;
  font-size: clamp(12.5px, 1.6vh, 13.5px); line-height: 1.45; color: var(--ink-dim);
}

/* ---------- wat er sowieso bij zit: simpele groene vinkjes ---------- */
.sf-wins {
  list-style: none; display: flex; flex-direction: column; gap: clamp(9px, 1.4vh, 14px);
  margin: clamp(14px, 2vh, 22px) auto 0; width: max-content; max-width: 100%;
}
.sf-win {
  display: flex; align-items: center; gap: 12px;
}
.sf-win-check {
  flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
  background: #16a34a; color: #fff;
}
.sf-win-check svg { width: 14px; height: 14px; }
.sf-win-txt { font-size: 15px; letter-spacing: -0.01em; color: var(--ink); }
.sf-win-txt b { font-weight: 600; }
.sf-win-txt span { color: var(--ink-dim); }

/* ---------- Ticketprinter: eigen stap met foto-kaart (stap 3) ---------- */
.sf-printer-card {
  width: 100%; max-width: 540px; margin: 0 auto; overflow: hidden;
  border-radius: 18px; border: 1px solid var(--line-soft);
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
}
.sf-printer-media { position: relative; aspect-ratio: 3 / 2; max-height: 36vh; overflow: hidden; background: #0c0c0e; }
.sf-printer-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sf-printer-info { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px 17px; text-align: left; }
.sf-printer-txt { min-width: 0; }
.sf-printer-txt h3 { font-size: 17px; font-weight: 600; letter-spacing: -0.02em; margin-bottom: 4px; }
.sf-printer-txt p { margin: 0; font-size: 13px; line-height: 1.4; color: var(--ink-dim); max-width: 34ch; }
.sf-printer-stepper { flex: none; width: 124px; }

/* ---------- Eén-vraag-stap: gecentreerde keuzegroep (type / termijn) ---------- */
.sf-solo { width: 100%; max-width: 620px; margin: 0 auto; }
.sf-solo .bs-opts-wrap { justify-content: center; }

/* printer-kaart op smal: tekst boven, teller eronder */
@media (max-width: 560px) {
  .sf-printer-info { flex-direction: column; align-items: flex-start; gap: 12px; }
  .sf-printer-txt p { max-width: none; }
}

/* ============================================================
   SLIDE 3 — VERTEL IETS OVER JE ZAAK (chips + korte opmerking)
   ============================================================ */
.sf-zaak { width: 100%; max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: clamp(14px, 2.2vh, 22px); }
.sf-qblock h3 { font-size: 15px; font-weight: 600; letter-spacing: -0.015em; margin-bottom: 12px; }
.bs-opts-wrap { display: flex; flex-wrap: wrap; gap: 10px; }
.bs-opt {
  display: inline-flex; align-items: center; cursor: pointer; font: inherit; color: var(--ink);
  background: rgba(255,255,255,.03); border: 1px solid var(--line-soft);
  transition: border-color .2s var(--ease), background .2s var(--ease), color .2s var(--ease), transform .15s var(--ease);
}
.bs-opt:hover { background: var(--glass-2); border-color: var(--line); }
.bs-opt:active { transform: scale(.97); }
.bs-opt.is-on { border-color: rgba(13,13,14,.5); background: rgba(13,13,14,.08); }
.bs-opt-sm { padding: 10px 16px; border-radius: 100px; font-size: 14px; font-weight: 500; letter-spacing: -0.01em; }
.bs-opt-sm.is-on { color: var(--accent-2); font-weight: 600; }
.sf-qnote { margin-bottom: 0; }
.sf-qnote textarea { min-height: 62px; resize: none; }

/* ============================================================
   SLIDE 4 — BIJNA KLAAR: mini-offerte (links) + "waar sturen we het" (rechts)
   Psychologisch: de bezoeker gaat iets ONTVANGEN, geen formulier invullen.
   ============================================================ */
.sf-inner-klaar { max-width: 970px; }
.sf-inner-klaar > * { flex: none; }
.sf-klaar-grid {
  display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr);
  gap: clamp(16px, 2vw, 28px); align-items: start;
}

/* ---------- LINKS: jouw samenstelling — leest als een klein voorstel ---------- */
.sf-recap4 {
  display: flex; flex-direction: column; gap: clamp(10px, 1.5vh, 14px);
  padding: clamp(14px, 2vh, 20px) clamp(14px, 1.5vw, 20px); border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border: 1px solid var(--line-soft); box-shadow: 0 26px 54px -36px rgba(0,0,0,.85);
}
.sf-recap4-head { display: flex; align-items: center; gap: 9px; font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--ink-dim); }
.sf-recap4-head-ico { flex: none; width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; color: var(--accent-2); background: rgba(13,13,14,.1); border: 1px solid rgba(13,13,14,.26); }
.sf-recap4-head-ico svg { width: 15px; height: 15px; }

.sf-recap4-lines { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.sf-recap4-line { display: flex; align-items: center; gap: 11px; }
.sf-recap4-thumb { flex: none; width: 54px; height: 40px; border-radius: 9px; overflow: hidden; background: #0c0c0e; border: 1px solid var(--line-soft); }
.sf-recap4-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sf-recap4-name { flex: 1; min-width: 0; font-size: 13.5px; font-weight: 500; letter-spacing: -0.01em; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-recap4-qty { flex: none; font-size: 12.5px; font-weight: 600; color: var(--accent-2); font-variant-numeric: tabular-nums; padding: 2px 9px; border-radius: 100px; background: rgba(13,13,14,.1); border: 1px solid rgba(13,13,14,.28); }
.sf-recap4-empty { list-style: none; font-size: 13px; color: var(--ink-faint); }

.sf-recap4-place { display: flex; align-items: center; gap: 9px; padding-top: clamp(9px, 1.4vh, 13px); border-top: 1px solid var(--line-soft); font-size: 13px; }
.sf-recap4-place-ico { flex: none; width: 24px; height: 24px; display: grid; place-items: center; color: var(--accent-2); }
.sf-recap4-place-ico svg { width: 18px; height: 18px; }
.sf-recap4-place-txt { font-weight: 500; color: var(--ink); }

.sf-recap4-perks { list-style: none; display: flex; flex-direction: column; gap: 7px; padding-top: clamp(9px, 1.4vh, 13px); border-top: 1px solid var(--line-soft); }
.sf-recap4-perk { display: flex; align-items: center; gap: 9px; font-size: 12.5px; font-weight: 500; color: var(--ink-dim); }
.sf-recap4-perk-ic { flex: none; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #2ea043; }
.sf-recap4-perk-warm .sf-recap4-perk-ic { background: var(--accent); }
.sf-recap4-perk-ic svg { width: 11px; height: 11px; }

/* ---------- RECHTS: formulierpaneel ---------- */
.sf-form-panel { display: flex; flex-direction: column; gap: clamp(11px, 1.6vh, 15px); }
.sf-form-panel-head h3 { font-size: clamp(16px, 2.1vh, 19.5px); font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; }
.sf-form-panel-head p { margin-top: 5px; font-size: 13px; color: var(--ink-dim); line-height: 1.4; }
.sf-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 14px; }
.sf-form .field { margin-bottom: 0; }
.sf-form .field label { margin-bottom: 5px; font-size: 12.5px; }
.sf-form .field input { padding: 10px 13px; border-radius: 11px; font-size: 14.5px; }
.sf-field-full { grid-column: 1 / -1; }
.sf-form-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 14px; font-size: 12px; color: var(--ink-dim); }
.sf-form-trust-item { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; color: var(--ink); }
.sf-form-trust-item svg { width: 14px; height: 14px; stroke: var(--accent-2); flex: none; }
.sf-form-trust-tail { color: var(--ink-faint); }

/* ============================================================
   FOOT — Terug / hint / Verder (identieke plek op elke slide)
   ============================================================ */
.sf-foot { flex: none; display: flex; align-items: center; gap: 14px; padding-top: clamp(12px, 1.8vh, 18px); }
.sf-back {
  display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 18px; border-radius: 100px;
  background: transparent; border: 1px solid var(--line); color: var(--ink-dim);
  font: inherit; font-size: 14.5px; font-weight: 600; letter-spacing: -0.01em; cursor: pointer;
  transition: color .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease), transform .15s var(--ease);
}
.sf-back:hover { color: var(--ink); background: var(--glass); border-color: var(--line); transform: translateX(-2px); }
.sf-back svg { width: 16px; height: 16px; }
.sf-back[hidden] { display: none; }
.sf-foot-hint {
  flex: 1 1 auto; min-width: 0; text-align: center; font-size: 13px; color: var(--ink-faint);
  line-height: 1.3; transition: color .3s var(--ease);
}
.sf-foot-hint:empty { display: none; }
/* de echte aanmoediging krijgt een warmere, iets aanwezigere toon */
.sf-foot-hint.is-moedig { color: var(--ink-dim); font-weight: 500; letter-spacing: -0.005em; }
.sf-foot-hint.is-moedig::before {
  content: ""; display: inline-block; width: 5px; height: 5px; margin-right: 8px; vertical-align: middle;
  border-radius: 50%; background: var(--accent); box-shadow: 0 0 6px 1px var(--accent-glow);
}
.sf-hint-pulse { animation: sfHintPulse .5s var(--ease); }
@keyframes sfHintPulse {
  0%, 100% { transform: translateX(0); color: var(--ink-faint); }
  20% { transform: translateX(-4px); color: var(--accent-2); }
  40% { transform: translateX(4px); }
  60% { transform: translateX(-3px); color: var(--accent-2); }
  80% { transform: translateX(2px); }
}
.sf-next { height: 52px; min-width: 172px; padding: 0 28px; }
.sf-next[hidden] { display: none; }
.sf-next:disabled { opacity: .4; cursor: not-allowed; box-shadow: none; }
.sf-next:disabled:hover { transform: none; background: var(--accent); box-shadow: none; }
.sf-next svg { transition: transform .25s var(--ease); }
.sf-next:not(:disabled):hover svg { transform: translateX(3px); }

/* ============================================================
   SLIDE 5 — BEVESTIGING (hergebruikt .order-ok uit style.css)
   ============================================================ */
.sf-inner-confirm { max-width: 620px; align-items: stretch; }
/* compact maar ademend — schaalt met de hoogte zodat het ook op 768px past zonder scrollen */
.sf-inner-confirm .order-ok { padding: clamp(16px, 2.8vh, 32px) clamp(18px, 3vw, 32px); backdrop-filter: none; }
.sf-inner-confirm .ok-badge { width: 52px; height: 52px; margin-bottom: clamp(10px, 1.6vh, 18px); box-shadow: 0 0 0 6px rgba(13,13,14,.06); animation: okBadgePop .55s var(--ease) both; }
.sf-inner-confirm .ok-badge svg { width: 24px; height: 24px; }
/* het vinkje tekent zichzelf + de badge popt zacht op */
@keyframes okBadgePop {
  0% { transform: scale(.6); opacity: 0; box-shadow: 0 0 0 0 rgba(13,13,14,.32); }
  55% { transform: scale(1.09); opacity: 1; box-shadow: 0 0 0 10px rgba(13,13,14,.10); }
  100% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 6px rgba(13,13,14,.06); }
}
.sf-inner-confirm .ok-badge svg path {
  stroke-dasharray: 30; stroke-dashoffset: 30;
  animation: okCheckDraw .5s .24s var(--ease) forwards;
}
@keyframes okCheckDraw { to { stroke-dashoffset: 0; } }
.sf-inner-confirm .ok-title { font-size: clamp(22px, 2.9vh, 30px); }
.sf-inner-confirm .ok-lead { margin-top: clamp(7px, 1.2vh, 12px); font-size: clamp(14px, 1.7vh, 16px); line-height: 1.45; }
.sf-inner-confirm .ok-summary { margin-top: clamp(12px, 2vh, 22px); padding: clamp(12px, 1.8vh, 18px) clamp(14px, 2.4vw, 20px); }
.sf-inner-confirm .ok-summary-head { margin-bottom: clamp(8px, 1.3vh, 12px); }
.sf-inner-confirm .ok-lines { gap: clamp(6px, 1vh, 9px); }
.sf-inner-confirm .ok-line-name, .sf-inner-confirm .ok-line-sub { font-size: 13.5px; }
.sf-inner-confirm .ok-recap { margin-top: clamp(10px, 1.8vh, 18px); }
.sf-inner-confirm .ok-actions { margin-top: clamp(12px, 2vh, 22px); }
.sf-inner-confirm .ok-actions .btn { height: 46px; }

/* bevestiging: gestapelde schermen-regels + 'inbegrepen' in accent
   (deze aanvullingen zaten al in de vorige shop.css) */
.ok-line-sub.is-incl { color: var(--accent-2); }
.ok-line-multi { align-items: flex-start; }
.ok-line-stack { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; text-align: right; }
.ok-line-item { display: block; font-variant-numeric: tabular-nums; }

/* ============================================================
   CONSISTENTE FOCUS-STATES — één warme accent-ring op alle bedienbare elementen
   ============================================================ */
.sf-cover-start:focus-visible,
.sf-cover-info:focus-visible,
.bs-radio:focus-visible,
.bs-opt:focus-visible,
.sf-step-btn:focus-visible,
.sf-back:focus-visible,
.sf-next:focus-visible {
  outline: 2px solid var(--accent-2); outline-offset: 3px;
}
.sf-tile:focus-within { border-color: rgba(13,13,14,.5); box-shadow: 0 0 0 2px rgba(13,13,14,.28); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* cover: CTA's stapelen, stappen 2×2, iets compacter */
@media (max-width: 720px) {
  /* smal & staand: het scherm gloeit rechts in beeld, de tekst leest links over donker hout */
  .sf-cover-media img, .sf-cover-media video { object-position: 58% center; }
  .sf-cover-scrim {
    background:
      linear-gradient(0deg, rgba(11,11,12,.94) 0%, rgba(11,11,12,.72) 32%, rgba(11,11,12,.34) 56%, rgba(11,11,12,.12) 100%),
      linear-gradient(90deg, rgba(11,11,12,.72) 0%, rgba(11,11,12,.34) 48%, transparent 82%);
  }
  .sf-cover-inner { justify-content: flex-end; padding-bottom: clamp(26px, 5vh, 48px); }
  .sf-cover-lead { max-width: 100%; }
  .sf-cover-cta { flex-direction: column; align-items: stretch; }
  .sf-cover-cta .btn { width: 100%; }
  .sf-cover-steps { grid-template-columns: 1fr 1fr; gap: 12px 18px; max-width: 100%; }
}
@media (max-width: 420px) {
  .sf-cover-inner { gap: clamp(18px, 3vh, 30px); }
  .sf-cover-sub { font-size: 15px; }
  .sf-cover-step-t { font-size: 12px; }
}

/* slide 1 op mobiel: ZONDER foto — een strakke lijst (naam links, teller rechts) */
@media (max-width: 620px) {
  .sf-inner-schermen { height: auto; }
  .sf-prod-grid { grid-template-columns: 1fr; grid-template-rows: none; align-content: start; gap: 9px; }
  .sf-tile-tag { display: none; }
  .sf-tile-thumb { display: none; }
  .sf-tile-foot { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; }
  .sf-tile-kop { flex: 1; min-width: 0; }
  .sf-tile-naam { font-size: 15px; }
  .sf-step-btn { width: 34px; height: 34px; }
  .sf-step-qty { font-size: 16px; }
}

/* slide 2: foto-kaarten stapelen op smal, compact zodat foto's + voordelen boven de voet passen */
@media (max-width: 680px) {
  .sf-head { margin-bottom: 16px; }
  .sf-head h2 { font-size: 26px; }
  .sf-head p { font-size: 13.5px; margin-top: 7px; line-height: 1.4; }
  .sf-slide[data-slide="2"] .sf-head { margin-bottom: 11px; }
  .sf-slide[data-slide="2"] .sf-head h2 { font-size: 24px; }
  .bs-radio-grid { grid-template-columns: 1fr; max-width: 460px; gap: 11px; }
  .bs-radio { flex-direction: row; align-items: stretch; }
  .bs-radio-photo { aspect-ratio: auto; width: 42%; height: auto; min-height: clamp(96px, 15vh, 128px); max-height: none; flex: none; }
  .bs-radio-check { top: 9px; right: 9px; width: 24px; height: 24px; }
  .bs-radio-body { flex: 1; padding: 11px 14px; display: flex; flex-direction: column; justify-content: center; }
  .bs-radio-head b { font-size: 15.5px; }
  .bs-radio-desc { margin-top: 4px; font-size: 12.5px; }
  /* vinkjes: compacter op mobiel */
  .sf-wins { gap: 10px; margin-top: 14px; }
  .sf-win-txt { font-size: 14px; }
}

/* foot: primaire knop groter, terug compacter op smal */
/* slide 4: mini-offerte bovenop het formulier op smal, compact zodat alles past */
@media (max-width: 720px) {
  .sf-inner-klaar { max-width: 470px; }
  .sf-slide[data-slide="6"] .sf-head { margin-bottom: clamp(10px, 1.6vh, 14px); }
  .sf-slide[data-slide="6"] .sf-head h2 { font-size: 25px; }
  .sf-slide[data-slide="6"] .sf-head p { display: none; }   /* panel-titel neemt de leiding over */
  .sf-klaar-grid { grid-template-columns: 1fr; gap: 12px; }
  .sf-recap4 { gap: 8px; padding: 12px 13px; }
  .sf-recap4-lines { gap: 7px; }
  .sf-recap4-thumb { width: 48px; height: 36px; }
  .sf-recap4-perks { flex-flow: row wrap; gap: 6px 16px; }
  .sf-form-panel { gap: 10px; }
  .sf-form-grid { gap: 10px 12px; }
  .sf-form .field input { padding: 9px 12px; }
}

/* ── MOBIEL: elke stap mag verticaal scrollen i.p.v. afgeknipt te worden ──
   Op korte mobiele viewports (100dvh ≈ 640px) is een stap hoger dan het podium.
   Zonder scroll werd de onderkant weggeknipt (bv. de e-mail/adres-velden op stap 4,
   de voordelen-strip op stap 2). De vaste chrome (voortgang boven, Terug/Verder
   onder) leeft buiten de viewport en blijft staan; enkel de slide-inhoud scrollt.
   Stap 1 houdt height:100% (grid past-op-maat), dus die verandert niet. */
@media (max-width: 720px) {
  .sf-slide {
    align-items: flex-start;
    overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch;
    padding-bottom: 10px;
  }
  .sf-inner { max-height: none; }
}

@media (max-width: 560px) {
  .sf-stage { padding-left: clamp(14px, 5vw, 20px); padding-right: clamp(14px, 5vw, 20px); }
  .sf-foot { gap: 10px; }
  .sf-back { height: 48px; padding: 0 14px; }
  .sf-next { flex: 1 1 auto; min-width: 0; height: 50px; padding: 0 16px; font-size: 14px; }
  /* op smal: de aanmoedigings-hint wijkt, zodat de langere CTA-tekst volledig past
     (de slide-koppen dragen de instructie; op desktop blijft de hint gewoon staan) */
  .sf-foot-hint { display: none; }

  /* slide 4 extra compact op klein scherm — zodat óók de langere FR-teksten passen */
  .sf-recap4 { gap: 7px; padding: 11px 13px; }
  .sf-recap4-head { font-size: 11.5px; }
  .sf-recap4-head-ico { width: 24px; height: 24px; }
  .sf-recap4-lines { gap: 6px; }
  .sf-recap4-thumb { width: 44px; height: 33px; }
  .sf-recap4-name { font-size: 13px; }
  .sf-recap4-place { padding-top: 8px; font-size: 12.5px; }
  .sf-recap4-perks { padding-top: 8px; gap: 5px 14px; }
  .sf-recap4-perk { font-size: 12px; }
  .sf-form-panel { gap: 9px; }
  .sf-form-panel-head h3 { font-size: 16.5px; }
  .sf-form-panel-head p { margin-top: 3px; font-size: 12px; }
  .sf-form .field label { margin-bottom: 3px; font-size: 11.5px; }
  .sf-form .field input { padding: 8px 12px; font-size: 14px; }
  .sf-form-grid { gap: 9px 12px; }
  .sf-form-trust { font-size: 11px; gap: 4px 12px; }
  /* bevestiging iets compacter op smal → past ruim boven de vouw */
  .sf-inner-confirm .ok-summary { margin-top: clamp(10px, 1.6vh, 16px); }
  .sf-inner-confirm .ok-lines { gap: clamp(5px, .8vh, 8px); }
  .sf-inner-confirm .ok-actions { margin-top: clamp(10px, 1.6vh, 16px); }
}

/* ============================================================
   REDUCED MOTION — respecteer de systeemvoorkeur
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .sf-track { transition: none; }
  .sf-cover { transition: opacity .2s linear; }
  .sf.sf-started .sf-cover { transform: none; }
  .sf-cover-lead .eyebrow, .sf-cover-title, .sf-cover-sub, .sf-cover-cta, .sf-cover-steps,
  .sf.sf-started .sf-stage, .sf-slide.is-current .sf-inner,
  .sf-inner-confirm .ok-badge { animation: none !important; }
  .sf-inner-confirm .ok-badge svg path { stroke-dashoffset: 0; animation: none; }
  .sf-chip.sf-chip-bump, .sf-hint-pulse { animation: none; }
  .sf-tile:hover, .bs-radio:hover { transform: none; }
  .sf-tile:hover .sf-tile-thumb img, .bs-radio:hover .bs-radio-photo img { transform: none; }
}

/* ============================================================
   BORDEAUX ACCENT — 2026-08-13
   Kernaccent: bordeaux #32B393 (--accent) / #5BC2A9 (--accent-2).
   ============================================================ */

/* Achtergrond-glows: bordeaux */
.sf-glow {
  background: radial-gradient(50% 50% at 50% 35%, rgba(50,179,147,.10), transparent 70%);
}
.sf-orb-a {
  background: radial-gradient(circle, rgba(50,179,147,.16), transparent 70%);
}
.sf-orb-b {
  background: radial-gradient(circle, rgba(50,179,147,.10), transparent 70%);
}

/* Drijvende partikels: bordeaux */
.sf-particles span {
  background: rgba(50,179,147,.55);
  box-shadow: 0 0 6px 1px rgba(50,179,147,.28);
}

/* Voortgangsbalk: bordeaux verloop */
.sf-progress-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  box-shadow: 0 0 12px -2px var(--accent-glow);
}

/* Keuze-chip: bordeaux-tint */
.sf-chip {
  color: var(--accent-2);
  background: rgba(50,179,147,.07);
  border-color: rgba(50,179,147,.20);
}
.sf-chip::before { background: var(--accent); }

/* Actieve tegels: bordeaux border */
.sf-tile.is-active {
  border-color: rgba(50,179,147,.55);
  box-shadow: 0 0 0 1px rgba(50,179,147,.35), 0 18px 40px -22px var(--accent-glow);
}
.sf-tile.is-active .sf-tile-naam { color: var(--accent-2); }
.sf-tile.is-active .sf-stepper {
  border-color: rgba(50,179,147,.22);
  background: rgba(50,179,147,.06);
}
.sf-tile.is-active .sf-step-qty { color: var(--accent-2); }

/* Radio-kaarten: bordeaux active-border */
.bs-radio.is-on {
  border-color: rgba(50,179,147,.55);
  background: rgba(50,179,147,.04);
  box-shadow: 0 28px 54px -30px var(--accent-glow), 0 0 0 1px rgba(50,179,147,.35);
}
.bs-radio.is-on .bs-radio-check { background: var(--accent); border-color: var(--accent); }
.bs-radio.is-on .bs-radio-head b { color: var(--accent-2); }

/* Optie-chips (slide 3): bordeaux active */
.bs-opt.is-on {
  border-color: rgba(50,179,147,.40);
  background: rgba(50,179,147,.06);
}
.bs-opt-sm.is-on { color: var(--accent-2); }

/* Vinkje-rij: bordeaux-tint */
.sf-win-check {
  background: rgba(50,179,147,.12);
  border: 1px solid rgba(244,244,245,.22);
  color: var(--ink);
}

/* Aanmoedigings-hint puls: bordeaux */
.sf-foot-hint.is-moedig::before {
  background: var(--accent);
  box-shadow: 0 0 6px 1px var(--accent-glow);
}

/* Recap (slide 4) hoofd-icoontje */
.sf-recap4-head-ico {
  color: var(--accent-2);
  background: rgba(50,179,147,.07);
  border-color: rgba(50,179,147,.18);
}

/* Recap aantal-badges */
.sf-recap4-qty {
  color: var(--accent-2);
  background: rgba(50,179,147,.07);
  border-color: rgba(50,179,147,.18);
}

/* Recap plaatsingsicoontje + perks */
.sf-recap4-place-ico { color: var(--accent-2); }
.sf-recap4-perk-warm .sf-recap4-perk-ic { background: rgba(255,255,255,.10); color: var(--ink); }

/* Formulier vertrouwen-icoontjes */
.sf-form-trust-item svg { stroke: var(--accent-2); }

/* Bevestiging badge: bordeaux-tint */
.sf-inner-confirm .ok-badge {
  background: rgba(50,179,147,.08);
  border-color: rgba(50,179,147,.20);
  box-shadow: 0 0 0 6px rgba(50,179,147,.04);
}
.ok-line-sub.is-incl { color: var(--accent-2); }
