/* =========================================================
   RESEARCH TOOL — inline keuzehulp
   Hergebruikt de visuele taal van de offerte-modal,
   maar in 1 kolom (geen overlay, geen split-panel).
   Alle stijl scoped onder .research-tool zodat het de
   rest van de site niet raakt.
   ========================================================= */

.research-tool {
    --rt-cream: #F5F2EE;
    --rt-paper: #FBFAF6;
    --rt-panel-bg: #f9f5f4;
    --rt-ink: #183153;
    --rt-ink-soft: rgba(24, 49, 83, 0.85);
    --rt-ink-mute: rgba(24, 49, 83, 0.55);
    --rt-line: rgba(24, 49, 83, 0.10);
    --rt-line-soft: rgba(24, 49, 83, 0.06);
    --rt-accent: #ED766B;
    --rt-blue: #4F90FF;
    --rt-green: #6BE5A1;

    background: var(--rt-panel-bg);
    border-radius: 20px;
    padding: 28px 30px 24px;
    max-width: 540px;
    width: 100%;
    margin: 0 auto;
    color: var(--rt-ink);
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    line-height: 1.5;
}

/* Reset margin/padding voor kinderen, net als modal */
.research-tool * {
    box-sizing: border-box;
}

/* Override site-globale input-stijlen alleen binnen de tool */
.research-tool input,
.research-tool textarea {
    border-radius: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    padding: 0;
    margin: 0;
}

/* Honeypot — onzichtbaar voor mensen, wel in DOM voor bots */
.research-tool .kh-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
    border: none !important;
    padding: 0 !important;
}

/* HEADER ------------------------------------------------ */
.research-tool .form-header {
    margin-bottom: 22px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--rt-line-soft);
}

.research-tool .form-header .step {
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 10px;
    color: var(--rt-ink-mute);
    margin-bottom: 10px;
    font-weight: 600;
}

.research-tool .form-header h2 {
    font-family: "lft-etica-compressed", Impact, 'Arial Narrow', sans-serif !important;
    font-weight: 800 !important;
    font-size: clamp(26px, 2.4vw, 34px) !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--rt-ink);
    margin: 0;
}

.research-tool .form-header h2 em {
    font-style: normal;
    font-weight: 800 !important;
    color: var(--rt-accent);
}

.research-tool .form-header p {
    color: var(--rt-ink-mute) !important;
    font-size: 13px !important;
    margin: 8px 0 0;
    max-width: 50ch;
}

/* SECTIONS ---------------------------------------------- */
.research-tool .form-section {
    margin-bottom: 18px;
}

.research-tool .form-label {
    display: flex;
    align-items: baseline;
    margin-bottom: 10px;
    gap: 10px;
}

.research-tool .form-label .num {
    font-family: "lft-etica-compressed", Impact, 'Arial Narrow', sans-serif;
    font-weight: 800;
    font-size: 22px;
    letter-spacing: 0;
}

.research-tool .form-section.q-color-1 .form-label .num { color: var(--rt-blue); }
.research-tool .form-section.q-color-2 .form-label .num { color: var(--rt-accent); }
.research-tool .form-section.q-color-3 .form-label .num { color: var(--rt-green); }

.research-tool .form-label .text {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--rt-ink);
    letter-spacing: -0.005em;
}

/* THEME CARDS (eerste vraag: 4 gekleurde blokken met icoon) */
.research-tool .kh-theme-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    gap: 8px;
    margin-bottom: 8px;
}

.research-tool .kh-theme-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 22px 14px;
    min-height: 110px;
    border: 2px solid transparent;
    border-radius: 10px;
    text-align: center;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    line-height: 1.3;
}

    .research-tool .kh-theme-card:hover {
        transform: translateY(-1px);
    }

    .research-tool .kh-theme-card.active {
        border-color: var(--rt-ink);
    }

    .research-tool .kh-theme-icon {
        font-size: 26px;
        line-height: 1;
    }

    .research-tool .kh-theme-label {
        font-weight: 600;
    }

    .research-tool .kh-theme-card[data-color="blue"]   { background: var(--rt-blue);   color: #fff; }
    .research-tool .kh-theme-card[data-color="coral"]  { background: var(--rt-accent); color: #fff; }
    .research-tool .kh-theme-card[data-color="yellow"] { background: #fecc66;          color: var(--rt-ink); }
    .research-tool .kh-theme-card[data-color="green"]  { background: var(--rt-green);  color: var(--rt-ink); }

/* WIDE OPTION BUTTONS (vervangen chips voor antwoord-opties) */
.research-tool .kh-options {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.research-tool .kh-option-btn {
    width: 100%;
    padding: 11px 16px;
    border: 1px solid var(--rt-line);
    border-radius: 8px;
    background: #fff;
    color: var(--rt-ink);
    text-align: left;
    font-size: 13.5px;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

    .research-tool .kh-option-btn:hover {
        border-color: var(--rt-ink);
        background: var(--rt-paper);
    }

    .research-tool .kh-option-btn.active {
        border-color: var(--rt-ink);
        border-width: 2px;
        padding: 10px 15px;
        background: var(--rt-paper);
    }

    .research-tool .kh-option-btn .kh-option-icon {
        margin-right: 12px;
        color: var(--rt-ink-mute);
        font-size: 13px;
        width: 16px;
        text-align: center;
    }

    .research-tool .kh-option-btn:hover .kh-option-icon,
    .research-tool .kh-option-btn.active .kh-option-icon {
        color: var(--rt-ink);
    }


/* SKIP-LINK ("Weet ik nog niet" onder antwoord-knoppen) */
.research-tool .kh-skip-link {
    background: none;
    border: none;
    color: var(--rt-ink-mute);
    font-size: 12.5px;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    padding: 10px 0 0;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-align: left;
}

    .research-tool .kh-skip-link:hover {
        color: var(--rt-ink);
    }

/* "Op basis van"-overzicht in resultaat ---------------- */
.research-tool .kh-summary {
    margin: 0 0 16px;
    padding: 12px 14px;
    background: var(--rt-paper);
    border: 1px solid var(--rt-line-soft);
    border-radius: 8px;
    font-size: 12.5px;
    color: var(--rt-ink-soft);
}

    .research-tool .kh-summary .kh-summary-label {
        text-transform: uppercase;
        letter-spacing: 0.14em;
        font-size: 10px;
        font-weight: 600;
        color: var(--rt-ink-mute);
        margin-bottom: 8px;
    }

    .research-tool .kh-summary ul {
        margin: 0;
        padding-left: 18px;
        line-height: 1.7;
    }

    .research-tool .kh-summary strong {
        color: var(--rt-ink);
        font-weight: 600;
    }

/* TEXT INPUTS ------------------------------------------- */
.research-tool .text-input,
.research-tool .text-area {
    width: 100%;
    border: 1px solid var(--rt-line);
    border-radius: 8px;
    padding: 12px 14px;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    background: #fff;
    color: var(--rt-ink);
    transition: border-color 0.2s, box-shadow 0.2s;
}

    .research-tool .text-input:hover,
    .research-tool .text-area:hover {
        border-color: rgba(24, 49, 83, 0.18);
    }

    .research-tool .text-input:focus,
    .research-tool .text-area:focus {
        outline: none;
        border-color: var(--rt-ink);
        box-shadow: 0 0 0 4px rgba(24, 49, 83, 0.05);
    }

    .research-tool .text-input::placeholder,
    .research-tool .text-area::placeholder {
        color: var(--rt-ink-mute);
        font-style: italic;
    }

    .research-tool .text-input.has-error,
    .research-tool .text-area.has-error {
        border-color: var(--rt-accent);
        box-shadow: 0 0 0 3px rgba(237, 118, 107, 0.15);
    }

.research-tool .text-area {
    resize: vertical;
    min-height: 80px;
    line-height: 1.5;
}

.research-tool .input-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.research-tool .input-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.research-tool .input-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--rt-ink-mute);
}

/* BUTTONS ----------------------------------------------- */
.research-tool .form-submit {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--rt-line-soft);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.research-tool .submit-note {
    font-size: 12px;
    color: var(--rt-ink-mute);
    line-height: 1.5;
    max-width: 32ch;
    margin: 0;
}

.research-tool .submit-btn {
    background: var(--rt-accent);
    color: #fff;
    border: none;
    padding: 14px 26px;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.25s ease;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(237, 118, 107, 0.32);
}

    .research-tool .submit-btn:hover:not(.is-invalid):not(:disabled) {
        background: #d96459;
        transform: translateY(-1px);
        box-shadow: 0 8px 22px rgba(237, 118, 107, 0.42);
    }

    /* is-invalid blijft visueel rood (= CTA blijft uitnodigend); op click
       highlighten we de missing velden ipv de knop te disablen. Expliciet
       overrulen omdat offerteModal.css de knop anders grijs maakt. */
    .research-tool .submit-btn.is-invalid,
    .research-tool .submit-btn.is-invalid:hover {
        background: var(--rt-accent);
        color: #fff;
        cursor: pointer;
        box-shadow: 0 6px 18px rgba(237, 118, 107, 0.32);
    }

    /* Overrule offerteModal's gray-out van het pijltje bij is-invalid;
       de transition zit al op de generieke .submit-btn .arrow daar. */
    .research-tool .submit-btn.is-invalid .arrow {
        color: inherit;
    }

    .research-tool .submit-btn:hover:not(.is-invalid):not(:disabled) .arrow {
        transform: translateX(3px);
    }

.research-tool .back-btn {
    background: transparent;
    color: var(--rt-ink-mute);
    border: none;
    padding: 8px 12px;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color 0.18s ease;
}

    .research-tool .back-btn:hover {
        color: var(--rt-ink);
        background: transparent;
    }

    .research-tool .back-btn .arrow-left {
        color: inherit;
    }

/* RESULTAAT — bullets, badge, alt-tekst ----------------- */
.research-tool .kh-bullets {
    margin: 0;
    padding-left: 22px;
    font-size: 14px;
    line-height: 1.8;
    color: var(--rt-ink-soft);
}

.research-tool .rt-result-badge {
    display: inline-flex;
    background: var(--rt-accent);
    color: white;
    font-size: 12px;
    padding: 4px 12px;
    border-radius: 999px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    vertical-align: middle;
    margin-left: 6px;
    font-family: 'Inter', sans-serif;
}

.research-tool .rt-result-alt {
    font-size: 12px;
    color: var(--rt-ink-mute);
    font-style: italic;
    margin: 14px 0 0;
}

@media (max-width: 720px) {
    .research-tool {
        padding: 24px 20px 22px;
        border-radius: 16px;
    }

    .research-tool .input-grid {
        grid-template-columns: 1fr;
    }

    .research-tool .kh-theme-card {
        padding: 14px;
        font-size: 12.5px;
    }

    .research-tool .form-submit {
        flex-direction: column;
        align-items: stretch;
    }

    .research-tool .submit-btn,
    .research-tool .back-btn {
        justify-content: center;
    }
}
