:root{ --calc-accent:#2563eb; --calc-border:rgba(0,0,0,.10); }
body{
  /* Vertrouwen/"premium" gevoel: subtiele gradient achtergrond */
  background:
    radial-gradient(1200px 500px at 15% 0%, rgba(37,99,235,.10) 0%, rgba(37,99,235,0) 60%),
    radial-gradient(900px 420px at 85% 10%, rgba(16,185,129,.10) 0%, rgba(16,185,129,0) 55%),
    #f5f7fb;
  color:#0f172a;
}
.calc-stepper-wrap{ margin: 0 0 18px 0; }
.calc-stepper-wrap{
  position: sticky;
  top: 0;
  z-index: 30;
  padding-top: 12px;
  margin-top: -12px;
  background: rgba(245,247,251,.78);
  backdrop-filter: blur(10px);
}
.calc-stepper-current{ display:none; font-weight:900; color:#0f172a; margin:0 0 10px 0; letter-spacing:-.01em; }
.calc-wrap{ max-width:980px; }
.calc-title{ font-weight:800; letter-spacing:-.02em; }
.calc-sub{ color:#64748b; }
.card-choice{
  border:1px solid var(--calc-border);
  border-radius:18px;
  background:#fff;
  padding:18px;
  cursor:pointer;
  transition:transform .05s ease, border-color .15s ease, box-shadow .15s ease;
  position:relative;
  min-height:140px;
}
.calc-wrap .card{
  animation: calcFade .22s ease both;
}

@keyframes calcFade{
  from{ opacity:0; transform: translateY(6px); }
  to{ opacity:1; transform: translateY(0); }
}
.card-choice:hover{ box-shadow:0 8px 26px rgba(0,0,0,.07); transform:translateY(-1px); }
.card-choice.active{ border-color:rgba(37,99,235,.55); box-shadow:0 12px 32px rgba(37,99,235,.14); }
.card-choice.active::after{
  content:"\f00c"; /* fa-check */
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  position:absolute;
  left: 14px;
  top: 14px;
  width: 28px;
  height: 28px;
  border-radius:999px;
  background: rgba(37,99,235,.12);
  color: #1d4ed8;
  display:flex;
  align-items:center;
  justify-content:center;
  border: 1px solid rgba(37,99,235,.25);
  pointer-events:none;
}
.choice-icon{ width:48px;height:48px;border-radius:14px;border:1px solid rgba(0,0,0,.08);background:rgba(37,99,235,.06);display:flex;align-items:center;justify-content:center;font-size:24px; }
.card-choice.active .choice-icon{ border-color:rgba(37,99,235,.45); background:rgba(37,99,235,.10); }
.choice-title{ font-weight:800; }
.choice-sub{ color:#64748b; font-size:.95rem; }
.info-dot{
  position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:999px;
  border:1px solid rgba(0,0,0,.10);background:#fff;display:flex;align-items:center;justify-content:center;color:#334155;
}
.info-dot:hover{ border-color:rgba(37,99,235,.55); }
.tooltip-box{
  position:absolute;top:52px;right:12px;width:min(280px, calc(100% - 24px));
  background:#0b1220;color:#fff;border-radius:14px;padding:10px 12px;font-size:.92rem;
  box-shadow:0 18px 40px rgba(0,0,0,.25);display:none;z-index:10;
}
.tooltip-box.show{ display:block; }
.tooltip-box:before{
  content:'';position:absolute;top:-8px;right:16px;border-width:0 8px 8px 8px;border-style:solid;
  border-color:transparent transparent #0b1220 transparent;
}
.btn-primary{ background:var(--calc-accent); border-color:var(--calc-accent); border-radius:12px; font-weight:700; }
.btn-primary:hover{ filter:brightness(.95); }
.btn-primary:focus{ box-shadow:0 0 0 .25rem rgba(37,99,235,.25) !important; }

.step-pill{ display:none !important; }

/* Font Awesome icons inside our icon bubbles */
.choice-icon .fa-icon,
.tile .fa-icon{
  display:inline-block;
  line-height:1;
  color:#0f172a;
}
.tile{
  border:1px solid var(--calc-border);
  border-radius:18px;
  background:#fff;
  padding:14px;
  cursor:pointer;
  transition:transform .05s ease, border-color .15s ease, box-shadow .15s ease;
  user-select:none;
  height:100%;
  position:relative;
}
.tile:hover{ box-shadow:0 8px 26px rgba(0,0,0,.07); transform:translateY(-1px); }
.tile.active{ border-color:rgba(37,99,235,.55); box-shadow:0 12px 32px rgba(37,99,235,.14); }
.tile.active::after{
  content:"\f00c";
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  position:absolute;
  right: 12px;
  top: 12px;
  width: 26px;
  height: 26px;
  border-radius:999px;
  background: rgba(37,99,235,.12);
  color: #1d4ed8;
  display:flex;
  align-items:center;
  justify-content:center;
  border: 1px solid rgba(37,99,235,.22);
  pointer-events:none;
}
.tile .i{ width:52px; height:52px; border-radius:16px; border:1px solid rgba(0,0,0,.08); background:rgba(37,99,235,.06); display:flex; align-items:center; justify-content:center; font-size:24px; color:#0f172a; }
.tile.active .i{ border-color:rgba(37,99,235,.45); background:rgba(37,99,235,.10); }
.tile .t{ font-weight:800; }
.tile .s{ color:#64748b; font-size:.95rem; }
.hr-soft{ border-color:rgba(0,0,0,.08); }
.smallhint{ color:#64748b; font-size:.95rem; }
.form-control, .form-select{ border-radius:14px; }

.tile .i svg{display:block}

/* v5-bust */

/* ───────────────────────────────────────────────────────────────
   Subtiele polish (vertrouwen/pro look) – geen functionele wijzigingen
   ─────────────────────────────────────────────────────────────── */

.card.shadow-sm{
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 14px 34px rgba(15,23,42,.08) !important;
  border-radius: 18px;
}

.card-choice{
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.choice-icon{
  background: linear-gradient(180deg, rgba(37,99,235,.10) 0%, rgba(37,99,235,.05) 100%);
  border: 1px solid rgba(37,99,235,.18);
}

.card-choice:hover{
  box-shadow: 0 18px 48px rgba(15,23,42,.10);
}

.card-choice.active{
  box-shadow: 0 18px 50px rgba(37,99,235,.18);
}

.btn-primary{
  box-shadow: 0 10px 22px rgba(37,99,235,.16);
}

.btn-primary:hover{
  box-shadow: 0 14px 30px rgba(37,99,235,.20);
}

.step-pill{
  border: 1px solid rgba(37,99,235,.15);
}

/* Stepper (1-7) */
.calc-stepper{
  display:flex;
  align-items:stretch;
  flex-wrap:nowrap;
  gap:0;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.10);
  border-radius:14px;
  overflow:hidden;
  margin: 0;
}
.calc-stepper .step{
  flex:1;
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:center;
  padding: 10px 10px;
  position:relative;
  min-width: 0;
}
.calc-stepper .step:not(:last-child){
  border-right:1px solid rgba(15,23,42,.08);
}
.calc-stepper .step:not(:last-child)::after{ display:none; }
.calc-stepper .dot{
  width: 30px;
  height: 30px;
  border-radius: 999px;
  border: 2px solid rgba(15,23,42,.18);
  background: #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  font-size: .88rem;
  color:#64748b;
}
.calc-stepper .lbl{
  font-weight: 900;
  letter-spacing: -.01em;
  font-size: .86rem;
  color:#64748b;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.calc-stepper .step.done .dot{
  border-color: rgba(16,185,129,.55);
  background: rgba(16,185,129,.10);
  color:#047857;
}
.calc-stepper .step.done .lbl{ color:#475569; }
.calc-stepper .step.active .dot{
  border-color: rgba(37,99,235,.70);
  background: rgba(37,99,235,.10);
  color:#1d4ed8;
}
.calc-stepper .step.active .lbl{ color:#0f172a; }

/* "Meest gekozen" badge */
.choice-badge{
  position:absolute;
  /* iets buiten de kaart zoals het voorbeeld */
  top: -10px;
  right: -10px;
  padding: 4px 10px;
  border-radius: 4px;
  font-weight: 900;
  font-size: .78rem;
  background: #0d6efd;
  color: #ffffff;
  border: 0;
  text-transform: lowercase;
  box-shadow: 0 10px 20px rgba(13,110,253,.18);
  z-index: 5;
}
.choice-badge--mini{
  top: 8px;
  right: 12px;
  font-size: .74rem;
  padding: 3px 9px;
}

@media(max-width: 720px){
  .calc-stepper-current{ display:block; }
  /* Op mobiel: compact, scrollbaar, alleen label bij actieve stap */
  .calc-stepper{
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width: none;
  }
  .calc-stepper::-webkit-scrollbar{ display:none; }
  .calc-stepper .step{
    flex: 0 0 auto;
    justify-content:center;
    padding: 10px 12px;
    gap:8px;
    border-right:1px solid rgba(15,23,42,.08);
    border-bottom:0;
    min-width: 54px;
  }
  .calc-stepper .step:last-child{ border-right:0; }
  .calc-stepper .lbl{ display:none !important; }
}

@media(max-width: 420px){
  .calc-stepper .step{ padding: 9px 10px; min-width: 50px; }
  .calc-stepper .dot{ width:28px; height:28px; }
}


/* Subtext under choice title (quick clarification) */
.choice-sub{
  color:#64748b;
  font-size:.82rem;
  margin-top:2px;
  line-height:1.2;
}

/* Ondergrond icons: net iets dikker/duidelijker */
.icon-bubble svg{
  stroke-width: 2.2;
}
/* v11_5A */

/* ───────────────────────────────────────────────────────────────
   v11_13A – extra premium polish + mobile UX
   ─────────────────────────────────────────────────────────────── */

/* Grotere, consistentere icon-bubbles (o.a. Ondergrond/Ruimtes) */
.tile .i{
  width:56px;
  height:56px;
  border-radius:18px;
  background: linear-gradient(180deg, rgba(37,99,235,.10) 0%, rgba(37,99,235,.05) 100%);
  border: 1px solid rgba(37,99,235,.18);
}
.tile .i svg{ stroke-width: 2.25; }
.tile.active .i{
  border-color: rgba(37,99,235,.50);
  background: linear-gradient(180deg, rgba(37,99,235,.14) 0%, rgba(37,99,235,.07) 100%);
}
.tile.active .i svg{ stroke-width: 2.35; }

/* Micro-animatie voor selected state */
.card-choice.active .choice-icon,
.tile.active .i{
  transform: translateY(-1px);
  transition: transform .12s ease, background .15s ease, border-color .15s ease;
}

/* Sticky acties op mobiel: Terug/VerdER blijft zichtbaar */
@media(max-width: 720px){
  .calc-actions{
    position: sticky;
    bottom: 0;
    z-index: 25;
    background: rgba(245,247,251,.86);
    backdrop-filter: blur(10px);
    padding: 12px 0 10px 0;
    margin-top: 18px !important;
    border-top: 1px solid rgba(15,23,42,.08);
  }
  .calc-actions .btn{ border-radius: 14px; }
  .calc-actions .btn-primary{ padding: 12px 18px; }
  .calc-actions .btn-outline-secondary{ padding: 12px 16px; }
}

/* Result / View CTA’s iets duidelijker */
.calc-cta-row .btn{
  border-radius: 14px;
  font-weight: 800;
}
.calc-cta-row .btn i.fa-icon{ margin-right: 8px; }

/* v11_13A */

