.kz-editorial {
    --kze-ink: #172b2a;
    --kze-muted: #526361;
    --kze-paper: #fffef8;
    --kze-soft: #f0f7f3;
    --kze-line: #cddbd4;
    --kze-accent: #08765f;
    --kze-warm: #f3b83f;
    box-sizing: border-box;
    color: var(--kze-ink);
    font: inherit;
}

.kz-editorial *,
.kz-editorial *::before,
.kz-editorial *::after {
    box-sizing: border-box;
}

.kz-answer {
    background:
        linear-gradient(90deg, var(--kze-accent) 0.32rem, transparent 0.32rem),
        var(--kze-soft);
    border: 1px solid var(--kze-line);
    border-radius: 0.85rem;
    margin: 1.75rem 0;
    padding: clamp(1.15rem, 3vw, 1.6rem);
}

.kz-answer h2,
.kz-sources h2,
.kz-faq h2 {
    color: var(--kze-ink);
    font-size: clamp(1.25rem, 3vw, 1.55rem);
    line-height: 1.25;
    margin: 0 0 0.7rem;
}

.kz-answer__body > :first-child,
.kz-faq__answer > :first-child {
    margin-top: 0;
}

.kz-answer__body > :last-child,
.kz-faq__answer > :last-child {
    margin-bottom: 0;
}

.kz-reviewed {
    align-items: center;
    color: var(--kze-muted);
    display: flex;
    font-size: 0.88rem;
    font-weight: 650;
    gap: 0.4rem;
    margin: 1rem 0;
}

.kz-reviewed > span {
    align-items: center;
    background: var(--kze-soft);
    border: 1px solid var(--kze-line);
    border-radius: 50%;
    color: var(--kze-accent);
    display: inline-flex;
    height: 1.35rem;
    justify-content: center;
    width: 1.35rem;
}

.kz-sources {
    border-top: 1px solid var(--kze-line);
    margin: 2.5rem 0;
    padding-top: 1.35rem;
}

.kz-sources ol {
    margin: 0;
    padding-left: 1.35rem;
}

.kz-sources li {
    line-height: 1.5;
    margin: 0 0 0.85rem;
    padding-left: 0.2rem;
}

.kz-sources__title,
.kz-sources__details {
    display: block;
}

.kz-sources__title {
    font-weight: 700;
}

.kz-sources__details {
    color: var(--kze-muted);
    font-size: 0.82rem;
    margin-top: 0.15rem;
}

.kz-sources a {
    color: var(--kze-accent);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;
}

.kz-sources a:focus-visible,
.kz-faq summary:focus-visible {
    outline: 3px solid var(--kze-warm);
    outline-offset: 3px;
}

.kz-faq {
    margin: 2.5rem 0;
}

.kz-faq__items {
    border-top: 1px solid var(--kze-line);
}

.kz-faq__item {
    border-bottom: 1px solid var(--kze-line);
}

.kz-faq__item summary {
    color: var(--kze-ink);
    cursor: pointer;
    font-weight: 750;
    list-style-position: outside;
    padding: 1rem 0.25rem;
}

.kz-faq__item summary::marker {
    color: var(--kze-accent);
}

.kz-faq__answer {
    color: var(--kze-muted);
    line-height: 1.65;
    padding: 0 0.25rem 1.2rem;
}

.kz-affiliate-disclosure {
    background: #fff8e6;
    border: 1px solid #e6cb83;
    border-radius: 0.65rem;
    color: #51431f;
    font-size: 0.84rem;
    line-height: 1.55;
    margin: 1.25rem 0;
    padding: 0.75rem 0.9rem;
}

.kz-commercial-module {
    border: 1px solid var(--kze-line);
    border-radius: 0.85rem;
    margin: 1.75rem 0;
    overflow: hidden;
}

.kz-commercial-module > .kz-affiliate-disclosure {
    border: 0;
    border-bottom: 1px solid #e6cb83;
    border-radius: 0;
    margin: 0;
}

.kz-commercial-module__body {
    background: var(--kze-paper);
    padding: clamp(1rem, 3vw, 1.5rem);
}

@media (forced-colors: active) {
    .kz-answer,
    .kz-affiliate-disclosure,
    .kz-commercial-module {
        border: 1px solid CanvasText;
    }
}
