/* ============================================
   KHT INTERACTIEVE ELEMENTEN
   Polls, quizzen, raadsels en oproepen bij nieuwsberichten
   Huisstijl: donkerblauw #0a1128 / #1a2340, goud #D4AF37 / #C9A961
   ============================================ */

:root {
    --kht-i-navy-1: #0a1128;
    --kht-i-navy-2: #1a2340;
    --kht-i-gold: #D4AF37;
    --kht-i-gold-2: #C9A961;
    --kht-i-gold-soft: rgba(212, 175, 55, 0.16);
    --kht-i-goed: #4caf7d;
    --kht-i-fout: #d4756a;
}

/* --------------------------------------------
   1. SIGNAAL ONDER DE ARTIKELKOP
   -------------------------------------------- */
.kht-interactie-signaal {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex-wrap: wrap;
    margin: 0 0 2rem;
    padding: 0.85rem 1.25rem;
    border: 1px solid rgba(212, 175, 55, 0.45);
    border-left: 4px solid var(--kht-i-gold);
    border-radius: 0.6rem;
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.10) 0%, rgba(212, 175, 55, 0.03) 100%);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    color: #1a2340;
}

.kht-interactie-signaal__pulse,
.kht-interactie__pulse,
.kht-uitgelicht__pulse,
.kht-interactie-floater__pulse {
    position: relative;
    display: inline-block;
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--kht-i-gold);
}

.kht-interactie-signaal__pulse::after,
.kht-interactie__pulse::after,
.kht-interactie-floater__pulse::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid var(--kht-i-gold);
    opacity: 0;
    animation: khtIPulse 2.4s ease-out infinite;
}

@keyframes khtIPulse {
    0%   { transform: scale(0.6); opacity: 0.9; }
    70%  { transform: scale(1.6); opacity: 0; }
    100% { transform: scale(1.6); opacity: 0; }
}

.kht-interactie-signaal__tekst { flex: 1 1 240px; }
.kht-interactie-signaal__tekst strong { color: #0a1128; }

.kht-interactie-signaal__knop {
    flex: 0 0 auto;
    display: inline-block;
    padding: 0.55rem 1.4rem;
    border-radius: 50px;
    background: linear-gradient(135deg, #D4AF37 0%, #F4E4C1 50%, #D4AF37 100%);
    color: #0a1128;
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.kht-interactie-signaal__knop:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(212, 175, 55, 0.4);
}

/* --------------------------------------------
   2. HET INTERACTIEBLOK
   -------------------------------------------- */
.kht-interactie {
    position: relative;
    margin: 2.75rem 0;
    border-radius: 0.9rem;
    background: linear-gradient(150deg, var(--kht-i-navy-1) 0%, var(--kht-i-navy-2) 100%);
    border: 1px solid rgba(212, 175, 55, 0.45);
    box-shadow: 0 18px 45px rgba(10, 17, 40, 0.28);
    overflow: hidden;
    font-family: 'Montserrat', sans-serif;
    color: #e8e8e8;
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.kht-interactie.is-visible { opacity: 1; transform: none; }

/* Gouden randgloed die aandacht trekt zolang er nog niet is meegedaan */
.kht-interactie::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 0.9rem;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(212, 175, 55, 0.25);
    animation: khtIGlow 3.2s ease-in-out infinite;
}

.kht-interactie.is-done::before,
.kht-interactie.is-closed::before { animation: none; }

@keyframes khtIGlow {
    0%, 100% { box-shadow: inset 0 0 0 1px rgba(212, 175, 55, 0.2), 0 0 0 0 rgba(212, 175, 55, 0); }
    50%      { box-shadow: inset 0 0 0 1px rgba(212, 175, 55, 0.55), 0 0 22px 0 rgba(212, 175, 55, 0.18); }
}

.kht-interactie__ribbon {
    position: absolute;
    top: 1.15rem;
    right: -2.9rem;
    z-index: 2;
    width: 12rem;
    padding: 0.32rem 0;
    transform: rotate(38deg);
    background: linear-gradient(135deg, #D4AF37 0%, #F4E4C1 50%, #C9A961 100%);
    color: #0a1128;
    text-align: center;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.kht-interactie__inner { padding: 2.25rem 2rem 1.9rem; }

.kht-interactie__eyebrow {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--kht-i-gold);
    margin-bottom: 0.7rem;
}

.kht-interactie__title {
    font-family: 'Cinzel', serif;
    font-size: 1.55rem;
    font-weight: 600;
    line-height: 1.25;
    color: #fff;
    margin: 0 0 0.6rem;
}

.kht-interactie__intro,
.kht-interactie__prompt {
    font-size: 0.98rem;
    line-height: 1.6;
    color: #cfd3dd;
    margin: 0 0 1.4rem;
}

.kht-interactie__prompt {
    padding-left: 1rem;
    border-left: 3px solid rgba(212, 175, 55, 0.5);
    font-style: italic;
}

.kht-interactie__gesloten {
    font-size: 0.88rem;
    color: var(--kht-i-gold-2);
    margin: 0 0 1.2rem;
}

.kht-interactie__q { border: 0; margin: 0 0 1.6rem; padding: 0; }
.kht-interactie__q:last-of-type { margin-bottom: 0.9rem; }

.kht-interactie__q-nr {
    padding: 0;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.75);
}

.kht-interactie__q-tekst {
    font-size: 1.05rem;
    font-weight: 600;
    color: #fff;
    margin: 0.35rem 0 0.9rem;
}

.kht-interactie__opties { display: flex; flex-direction: column; gap: 0.55rem; }

/* --------------------------------------------
   3. ANTWOORDOPTIES MET UITSLAGBALK
   -------------------------------------------- */
.kht-optie {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1.1rem;
    border: 1px solid rgba(212, 175, 55, 0.28);
    border-radius: 0.55rem;
    background: rgba(255, 255, 255, 0.04);
    cursor: pointer;
    overflow: hidden;
    transition: border-color 0.25s ease, background 0.25s ease, transform 0.2s ease;
}

.kht-optie:hover { border-color: rgba(212, 175, 55, 0.7); background: rgba(212, 175, 55, 0.09); }
.kht-optie:has(input:disabled) { cursor: default; }
.kht-optie:has(input:disabled):hover { transform: none; background: rgba(255, 255, 255, 0.04); }
.kht-optie input { position: absolute; opacity: 0; width: 0; height: 0; }

.kht-optie__marker {
    width: 18px;
    height: 18px;
    border: 2px solid rgba(212, 175, 55, 0.65);
    border-radius: 50%;
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    transition: border-color 0.2s ease;
}

.kht-optie input:checked + .kht-optie__marker { border-color: var(--kht-i-gold); }
.kht-optie input:checked + .kht-optie__marker::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: var(--kht-i-gold);
}
.kht-optie input:focus-visible + .kht-optie__marker {
    outline: 2px solid var(--kht-i-gold);
    outline-offset: 3px;
}

.kht-optie__text { position: relative; z-index: 2; font-size: 0.97rem; line-height: 1.45; color: #e8e8e8; }

.kht-optie__bar {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.kht-optie__fill {
    display: block;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, rgba(212, 175, 55, 0.30) 0%, rgba(212, 175, 55, 0.12) 100%);
    transition: width 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.kht-optie__pct {
    position: relative;
    z-index: 2;
    min-width: 3.1rem;
    text-align: right;
    font-family: 'Cinzel', serif;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--kht-i-gold);
}

.kht-optie.is-chosen { border-color: var(--kht-i-gold); background: rgba(212, 175, 55, 0.12); }
.kht-optie.is-correct { border-color: var(--kht-i-goed); }
.kht-optie.is-correct .kht-optie__fill { background: linear-gradient(90deg, rgba(76, 175, 125, 0.30) 0%, rgba(76, 175, 125, 0.10) 100%); }
.kht-optie.is-correct .kht-optie__pct { color: var(--kht-i-goed); }
.kht-optie.is-wrong { border-color: var(--kht-i-fout); }
.kht-optie.is-wrong .kht-optie__fill { background: linear-gradient(90deg, rgba(212, 117, 106, 0.28) 0%, rgba(212, 117, 106, 0.08) 100%); }
.kht-optie.is-wrong .kht-optie__pct { color: var(--kht-i-fout); }

.kht-optie.is-correct .kht-optie__text::after {
    content: ' \2713';
    color: var(--kht-i-goed);
    font-weight: 700;
}

.kht-interactie__uitleg {
    margin-top: 0.85rem;
    padding: 0.9rem 1.1rem;
    border-left: 3px solid var(--kht-i-gold);
    border-radius: 0 0.45rem 0.45rem 0;
    background: rgba(212, 175, 55, 0.09);
    font-size: 0.92rem;
    line-height: 1.6;
    color: #dfe2ea;
}

/* --------------------------------------------
   4. KNOP EN MELDINGEN
   -------------------------------------------- */
.kht-interactie__acties {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.4rem;
}

.kht-interactie__submit {
    display: inline-block;
    padding: 0.85rem 2.1rem;
    border: 0;
    border-radius: 50px;
    background: linear-gradient(135deg, #D4AF37 0%, #F4E4C1 50%, #D4AF37 100%);
    color: #0a1128;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.2s ease;
}

.kht-interactie__submit:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(212, 175, 55, 0.38); }
.kht-interactie__submit[disabled] { opacity: 0.55; cursor: wait; transform: none; }

.kht-interactie__hint { font-size: 0.78rem; color: rgba(232, 232, 232, 0.55); }

.kht-interactie__melding {
    margin-top: 0.9rem;
    font-size: 0.88rem;
    color: var(--kht-i-fout);
    min-height: 1px;
}

.kht-interactie__melding.is-ok { color: var(--kht-i-goed); }

.kht-interactie__uitslag {
    margin-top: 1.5rem;
    padding-top: 1.1rem;
    border-top: 1px solid rgba(212, 175, 55, 0.25);
}

.kht-interactie__teller {
    font-family: 'Cinzel', serif;
    font-size: 1.7rem;
    font-weight: 700;
    color: var(--kht-i-gold);
}

.kht-interactie__teller-label {
    font-size: 0.78rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(232, 232, 232, 0.6);
}

.kht-interactie__result-note {
    margin: 0.7rem 0 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #cfd3dd;
}

.kht-interactie__score {
    margin-top: 1rem;
    padding: 0.9rem 1.1rem;
    border-radius: 0.55rem;
    background: rgba(212, 175, 55, 0.12);
    font-family: 'Cinzel', serif;
    font-size: 1.05rem;
    color: #fff;
}

/* --------------------------------------------
   5. ZWEVENDE KNOP
   -------------------------------------------- */
.kht-interactie-floater {
    position: fixed;
    right: 1.35rem;
    bottom: 1.35rem;
    z-index: 900;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.8rem 1.4rem;
    border-radius: 50px;
    background: linear-gradient(135deg, #0a1128 0%, #1a2340 100%);
    border: 1px solid var(--kht-i-gold);
    color: var(--kht-i-gold);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(10, 17, 40, 0.35);
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px);
    transition: opacity 0.35s ease, transform 0.35s ease, visibility 0.35s;
}

.kht-interactie-floater.is-zichtbaar { opacity: 1; visibility: visible; transform: none; }
.kht-interactie-floater.is-done { display: none; }
.kht-interactie-floater:hover { box-shadow: 0 14px 34px rgba(212, 175, 55, 0.3); }

/* --------------------------------------------
   6. UITGELICHTE REACTIES
   -------------------------------------------- */
.kht-uitgelicht {
    margin: 2.5rem 0;
    padding: 1.6rem 1.8rem;
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 0.8rem;
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.08) 0%, rgba(212, 175, 55, 0.02) 100%);
    font-family: 'Montserrat', sans-serif;
}

.kht-uitgelicht__kop {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #8a6d1f;
    margin-bottom: 1.1rem;
}

.kht-uitgelicht__item { padding: 0.9rem 0; border-bottom: 1px dashed rgba(212, 175, 55, 0.3); }
.kht-uitgelicht__item:last-of-type { border-bottom: 0; }

.kht-uitgelicht__label {
    display: inline-block;
    padding: 0.2rem 0.7rem;
    border-radius: 50px;
    background: var(--kht-i-gold);
    color: #0a1128;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.kht-uitgelicht__quote {
    margin: 0.7rem 0 0.4rem;
    padding-left: 1rem;
    border-left: 3px solid rgba(212, 175, 55, 0.6);
    font-size: 1rem;
    line-height: 1.6;
    color: #1a2340;
    font-style: italic;
}

.kht-uitgelicht__naam { font-size: 0.85rem; color: #6b6459; font-style: normal; }

.kht-uitgelicht__antwoord {
    margin-top: 0.7rem;
    padding: 0.8rem 1rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.7);
    font-size: 0.93rem;
    line-height: 1.6;
    color: #1a2340;
}

.kht-uitgelicht__link {
    display: inline-block;
    margin-top: 1rem;
    color: #8a6d1f;
    font-size: 0.85rem;
    font-weight: 700;
    text-decoration: underline;
}

/* Reactieveld dat kortstondig oplicht na een sprong vanaf een oproep */
.comment-form.is-gemarkeerd {
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.55);
    border-radius: 0.6rem;
    transition: box-shadow 0.5s ease;
}

/* --------------------------------------------
   7. RESPONSIVE, TOEGANKELIJKHEID, PRINT
   -------------------------------------------- */
@media (max-width: 640px) {
    .kht-interactie__inner { padding: 1.9rem 1.2rem 1.5rem; }
    .kht-interactie__title { font-size: 1.3rem; }
    .kht-optie { grid-template-columns: auto 1fr; row-gap: 0.35rem; }
    .kht-optie__pct { grid-column: 2; text-align: left; }
    .kht-interactie-floater { right: 0.8rem; bottom: 0.8rem; padding: 0.7rem 1.1rem; font-size: 0.75rem; }
    .kht-interactie-signaal { font-size: 0.88rem; }
}

@media (prefers-reduced-motion: reduce) {
    .kht-interactie,
    .kht-interactie__submit,
    .kht-optie__fill,
    .kht-interactie-floater { transition: none; }
    .kht-interactie { opacity: 1; transform: none; }
    .kht-interactie::before,
    .kht-interactie-signaal__pulse::after,
    .kht-interactie__pulse::after,
    .kht-interactie-floater__pulse::after { animation: none; }
}

@media print {
    .kht-interactie-floater, .kht-interactie-signaal__knop { display: none; }
    .kht-interactie { background: #fff; color: #000; border: 1px solid #999; box-shadow: none; opacity: 1; transform: none; }
    .kht-interactie__title, .kht-interactie__q-tekst, .kht-optie__text { color: #000; }
}
