body, h1, h2, h3, h4, h5, h6, .btn {
    font-family: 'Montserrat', sans-serif !important;
}
/* ------------------------------------------------------
   SANISNEL GLOBAL STYLE — Montserrat + kleuren
------------------------------------------------------ */

/* Global font */
body, h1, h2, h3, h4, h5, h6, p, button, .btn, input, label {
    font-family: 'Montserrat', sans-serif !important;
}

/* Basiskleuren */
:root {
    --sanisnel-green: #0F7D5C;
    --sanisnel-green-dark: #0B6A4F;
    --sanisnel-green-light: #2B8B6F;
    --sanisnel-orange: #F5A623;
    --sanisnel-gray: #666;
    --sanisnel-light: #FAFAFA;
}

/* ------------------------------------------------------
   PAGE BACKGROUND & TEXT
------------------------------------------------------ */
body {
    background: #FFFFFF !important;
    color: #333 !important;
}

/* ------------------------------------------------------
   BUTTON STYLING (applies everywhere)
------------------------------------------------------ */
.btn, button, input[type=button], input[type=submit] {
    background: var(--sanisnel-green) !important;
    color: #fff !important;
    border: none !important;
    padding: 12px 22px !important;
    border-radius: 10px !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    cursor: pointer !important;
    transition: 0.15s ease !important;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1) !important;
}

.btn:hover,
button:hover {
    background: var(--sanisnel-green-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(0,0,0,0.15) !important;
}

/* Accent-knop (WhatsApp / CTA) */
.btn-accent {
    background: var(--sanisnel-orange) !important;
    color: #fff !important;
}

/* ------------------------------------------------------
   WIZARD CONTAINER STYLE
------------------------------------------------------ */

.step-box {
    background: #fff !important;
    border-radius: 14px !important;
    padding: 22px !important;
    box-shadow: 0 6px 22px rgba(0,0,0,0.06) !important;
    margin-bottom: 24px !important;
    border: 1px solid #EEE !important;
}

/* Wizard headings */
.step-box h3 {
    color: var(--sanisnel-green) !important;
    font-weight: 800 !important;
    margin-bottom: 12px !important;
}

/* ------------------------------------------------------
   PROGRESS BAR
------------------------------------------------------ */

#progress-bar-container {
    background: #EEE !important;
    border-radius: 20px !important;
    height: 14px !important;
    margin-bottom: 12px !important;
}

#progress-bar {
    background: var(--sanisnel-green) !important;
    height: 100% !important;
    border-radius: 20px !important;
    transition: width .25s ease-in-out !important;
}

#progress-text {
    font-weight: 700 !important;
    color: var(--sanisnel-green) !important;
    margin-bottom: 18px !important;
    font-size: 14px !important;
}

/* ------------------------------------------------------
   WIZARD CHOICE BUTTONS
------------------------------------------------------ */

.wiz-buttons .btn {
    background: linear-gradient(90deg, var(--sanisnel-green-light), var(--sanisnel-green)) !important;
    border-radius: 12px !important;
    padding: 14px 18px !important;
    min-width: 180px !important;
    text-align: center !important;
    border: 2px solid transparent !important;
}

.wiz-buttons .btn:hover {
    background: var(--sanisnel-green-dark) !important;
}

/* Selected choice button */
.wiz-buttons .btn.selected {
    border: 3px solid var(--sanisnel-green-dark) !important;
    background: linear-gradient(90deg, var(--sanisnel-green), var(--sanisnel-green-dark)) !important;
    color: #fff !important;
}

/* Checkmark after selection */
.wiz-buttons .btn.selected::after {
    content: " ✓";
    font-weight: 900;
}

/* ------------------------------------------------------
   PRICE DISPLAY
------------------------------------------------------ */

#live-price {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--sanisnel-green) !important;
    margin-bottom: 18px !important;
}

#total {
    color: var(--sanisnel-green-dark) !important;
    font-weight: 900 !important;
}

/* ------------------------------------------------------
   ACCESSOIRES MULTISELECT STYLE
------------------------------------------------------ */

.wiz-buttons .btn.multiselect {
    position: relative !important;
}

.wiz-buttons .btn.multiselect.selected::after {
    content: " ✓";
    position: absolute !important;
    right: 14px;
    top: 12px;
    color: #fff;
    font-weight: 900;
}

/* ------------------------------------------------------
   FORM INPUTS (customer step)
------------------------------------------------------ */

input[type="text"], input[type="tel"] {
    border: 1px solid #DDD !important;
    border-radius: 10px !important;
    padding: 12px 14px !important;
    font-size: 15px !important;
    background: #FFF !important;
}

label {
    font-weight: 700 !important;
    margin-bottom: 4px !important;
    color: var(--sanisnel-green) !important;
}

/* ------------------------------------------------------
   OVERZICHT / SUMMARY
------------------------------------------------------ */

#step_overzicht ul li {
    padding: 4px 0 !important;
    font-size: 14px !important;
}

/* ------------------------------------------------------
   MOBILE RESPONSIVE FIXES
------------------------------------------------------ */

@media (max-width: 768px) {
    .wiz-buttons .btn {
        width: 100% !important;
        min-width: unset !important;
    }
    .step-box {
        padding: 18px !important;
    }
}
/* Icon-knoppen in de wizard */
.btn.icon-btn {
    padding: 0;
    border-radius: 14px;
    overflow: hidden;
    background: #FFFFFF;
}

.icon-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 10px 14px;
}

.icon-wrap img {
    width: 130px;
    height: auto;
    margin-bottom: 6px;
    border-radius: 10px;
    display: block;
}

.icon-label {
    font-size: 15px;
    color: #333;
    font-weight: 600;
    text-align: center;
}

/* Op mobiel volledige breedte */
@media (max-width: 768px) {
    .wiz-buttons .btn.icon-btn {
        width: 100%;
    }
}
/* =========================================
   UNIFORME ICON-BUTTONS (gelijke grootte)
========================================= */

.wiz-buttons {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 22px; /* ruimte tussen knoppen */
    margin-top: 16px;
}

.btn.icon-btn {
    width: 100%;
    height: 240px; /* vaste hoogte voor uniform uiterlijk */
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 14px;
}

/* Binnenkant van de knop */
.icon-wrap {
    width: 100%;
    height: 100%;
    padding: 16px 12px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Afbeelding altijd uniform gecentreerd */
.icon-wrap img {
    width: 135px;
    height: 135px; /* uniforme rastermaat */
    object-fit: contain;
    margin: 0 auto;
    display: block;
}

/* Tekst onder elk icoon */
.icon-label {
    margin-top: 6px;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
}

/* Mobile optimalisatie */
@media (max-width: 768px) {
    .wiz-buttons {
        grid-template-columns: 1fr 1fr;
        gap: 18px;
    }

    .btn.icon-btn {
        height: 220px;
    }

    .icon-wrap img {
        width: 115px;
        height: 115px;
    }
}
/* ICON GRID TERUG NAAR MOOIE RASTERLAY-OUT */
.choice-grid {
    display: grid;
    gap: 20px;
    justify-content: center;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    max-width: 700px;
    margin: 0 auto;
}

/* ICON-KAART */
.option-card {
    background: #ffffff;
    border: 2px solid #e5e5e5;
    border-radius: 16px;
    padding: 16px;
    cursor: pointer;
    text-align: center;
    transition: 0.2s ease;
    height: 240px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
}

/* ICON AFBEELDING */
.option-card img {
    width: 110px;
    height: 110px;
    object-fit: contain;
    margin-bottom: 8px;
}

/* SELECTIE-STIJL */
.option-card.selected {
    border-color: #0F7D5C;
    box-shadow: 0 0 0 3px rgba(15, 125, 92, 0.25);
}

/* HOVER */
.option-card:hover {
    border-color: #0F7D5C;
}

/* TEKST */
.option-card p {
    font-size: 16px;
    margin: 0;
}
/* ======= PERFECTE UITLIJNING VAN ALLE ICON KAARTEN ======= */

.choice-grid {
    display: grid;
    gap: 24px;
    justify-content: center;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    max-width: 800px;
    margin: 0 auto;
}

/* ICON KAART */
.option-card {
    background: #ffffff;
    border: 2px solid #E3E3E3;
    border-radius: 18px;
    padding: 18px;
    cursor: pointer;
    text-align: center;
    transition: 0.25s ease;
    height: 240px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;

    position: relative; /* nodig voor vinkje */
}

/* ICON */
.option-card img {
    width: 110px;
    height: 110px;
    object-fit: contain;
}

/* TEKST */
.option-card p {
    font-size: 16px;
    font-weight: 500;
    margin: 0;
}

/* HOVER EFFECT */
.option-card:hover {
    border-color: #0F7D5C;
    box-shadow: 0 0 8px rgba(15,125,92,0.25);
}

/* SELECTIE (voor alle iconen) */
.option-card.selected {
    border-color: #0F7D5C;
    box-shadow: 0 0 0 3px rgba(15,125,92,0.3);
}

/* ======= GROEN VINKJE (ALLEEN BIJ ACCESSOIRE SELECTIE) ======= */

.option-card .checkmark {
    position: absolute;
    top: 10px;
    right: 10px;

    width: 26px;
    height: 26px;

    border-radius: 50%;
    background: #0F7D5C;
    color: #fff;

    display: none; /* onzichtbaar tot selectie */

    font-size: 18px;
    font-weight: bold;
    line-height: 26px;
}

/* Toon vinkje als accessoire geselecteerd is */
.option-card.selected.accessory .checkmark {
    display: block;
}
/* ============================================================
   WIZARD – LAYOUT & ICON GRID
============================================================ */

.choice-grid {
    display: grid;
    gap: 24px;
    justify-content: center;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    max-width: 800px;
    margin: 0 auto;
}

/* ============================================================
   KAARTEN (ICON CARDS)
============================================================ */

.option-card {
    background: #ffffff;
    border: 2px solid #E3E3E3;
    border-radius: 18px;
    padding: 18px;
    cursor: pointer;
    text-align: center;
    height: 240px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;

    position: relative;

    /* Animaties */
    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        transform 0.18s ease,
        background-color 0.25s ease;
}

/* ICONS */
.option-card img {
    width: 110px;
    height: 110px;
    object-fit: contain;
}

/* TEXT */
.option-card p {
    font-size: 16px;
    font-weight: 500;
    margin: 0;
}

/* ============================================================
   SELECTIE EFFECTEN
============================================================ */

.option-card.selected {
    border-color: #0F7D5C;
    box-shadow: 0 0 0 3px rgba(15,125,92,0.3);
    transform: scale(1.04); /* zoom */
    background-color: #F4FBF8; /* subtiel mintgroen */
}

/* KLIK BOUNCE EFFECT */
.option-card.clicked {
    transform: scale(0.97);
}

/* ============================================================
   HOVER ANIMATIE (A)
============================================================ */

.option-card:hover {
    border-color: #0F7D5C;
    transform: translateY(-4px); /* lichte lift */
    box-shadow: 0 4px 12px rgba(15,125,92,0.2);
}

/* ============================================================
   ACCESSOIRES – VINKJE
============================================================ */

.option-card .checkmark {
    position: absolute;
    top: 10px;
    right: 10px;

    width: 26px;
    height: 26px;

    border-radius: 50%;
    background: #0F7D5C;
    color: #fff;

    display: none;
    font-size: 18px;
    font-weight: bold;
    line-height: 26px;
    text-align: center;
}

.option-card.selected.accessory .checkmark {
    display: block;
}

/* ============================================================
   ALGEMENE STYLING (PRICE ETC.)
============================================================ */

#live-price {
    font-size: 18px;
    font-weight: 600;
    color: #0F7D5C;
}

.step-box {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.step-box h3 {
    margin-bottom: 16px;
    color: #0F7D5C;
    font-weight: 700;
}

.btn {
    background: #0F7D5C;
    color: white;
    padding: 12px 20px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    transition: 0.25s ease;
    font-size: 16px;
}

.btn:hover {
    background: #0d6c50;
}
.option-price {
    font-size: 14px;
    color: #666;
    margin-top: 6px;
}
.btn[disabled] {
    background: #cccccc !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}
.shop-email-hint{
  max-width:520px;
  margin:10px auto 0;
  text-align:left;
  font-size:14px;
  color:#0F7D5C;
  font-weight:600;
}
.shop-email-hint span{
  color:#111;
  font-weight:700;
}
/* Container */
#wizard-container{
  max-width: 820px;
  margin: 0 auto;
  padding: 22px 18px;
  font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

.wiz-header{
  text-align:center;
  margin-bottom: 18px;
}
.wiz-brand{
  color:#0F7D5C;
  font-weight:800;
  margin:0 0 6px 0;
  line-height:1.1;
}
.wiz-sub{
  color:#666;
  margin:0;
}

/* Progress */
.wiz-progress-text{
  text-align:center;
  margin: 12px 0 10px;
  color:#1F2937;
  font-weight:600;
}
.wiz-progress{
  width:100%;
  height: 12px;
  border-radius: 999px;
  background: #e8e8e8;
  overflow:hidden;
}
.wiz-progress-bar{
  height: 100%;
  width: 0%;
  background: #0F7D5C;
  border-radius: 999px;
  transition: width .25s ease;
}

/* Step box */
.step-box{
  background:#fff;
  border:1px solid #eee;
  border-radius:18px;
  padding: 18px;
  margin-top: 16px;
  box-shadow: 0 10px 30px rgba(0,0,0,.04);
}
.step-box h3{
  margin: 0 0 8px 0;
  font-size: 20px;
  line-height: 1.2;
  font-weight: 800;
  color:#111827;
}
.step-box .small{
  color:#6B7280;
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 14px 0;
}

/* Option grid */
.wiz-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 12px;
}
@media (max-width: 620px){
  .wiz-grid{ grid-template-columns: 1fr; }
}

/* Option cards */
.wiz-card{
  border: 2px solid #E5E7EB;
  border-radius: 18px;
  background: #fff;
  padding: 12px;
  cursor: pointer;
  transition: transform .08s ease, border-color .15s ease, box-shadow .15s ease;
  position: relative;
  text-align: center;
}
.wiz-card:hover{
  transform: translateY(-1px);
  border-color: #cfd6df;
  box-shadow: 0 10px 20px rgba(0,0,0,.06);
}
.wiz-card.selected{
  border-color: #0F7D5C;
  box-shadow: 0 12px 24px rgba(15,125,92,.14);
}
.wiz-card img{
  width: 100%;
  height: 150px;
  object-fit: contain;
  display:block;
  margin: 0 auto 8px;
}
.wiz-card .label{
  font-weight: 800;
  color:#111827;
  margin-top: 4px;
}
.wiz-card .price{
  margin-top: 4px;
  font-weight: 700;
  color:#0F7D5C;
  font-size: 14px;
}

/* Multiselect checkmark (accessoires) */
.wiz-card.multiselect.selected::after{
  content:"✓";
  position:absolute;
  top: 10px;
  right: 10px;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: #0F7D5C;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  box-shadow: 0 8px 16px rgba(15,125,92,.25);
}

/* Form fields */
.step-box label{
  display:block;
  font-weight: 700;
  color:#111827;
  margin: 10px 0 6px;
}
.step-box input{
  width: 100%;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid #E5E7EB;
  outline: none;
  font-size: 15px;
}
.step-box input:focus{
  border-color:#0F7D5C;
  box-shadow: 0 0 0 3px rgba(15,125,92,.12);
}

/* Nav buttons */
.wiz-actions{
  display:flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.btn{
  appearance:none;
  border: 0;
  border-radius: 16px;
  padding: 14px 18px;
  cursor:pointer;
  font-weight: 800;
  background: #F3F4F6;
  color:#111827;
  transition: transform .08s ease, opacity .15s ease;
}
.btn:hover{ transform: translateY(-1px); }
.btn:disabled{ opacity:.45; cursor:not-allowed; transform:none; }

.btn-accent{
  background:#0F7D5C;
  color:#fff;
}

/* Live price */
.wiz-liveprice{
  margin-top: 16px;
  text-align:center;
}
#wiz-liveprice, #live-price{
  margin: 0;
  font-weight: 800;
  color:#111827;
}
.wiz-header{ text-align:center; margin-bottom:20px; }
.wiz-brand{ margin:0 0 10px 0; line-height:1.1; color:#0F7D5C; font-weight:800; }
.wiz-sub{ margin:0; color:#666; line-height:1.3; }
#wizard-container .wiz-card img{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  width: 100% !important;
  max-width: 160px !important;
  margin: 0 auto 8px !important;
}

