.kmip-guide,
.kmip-faq {
    position: relative;
    overflow: hidden;
    margin: 0 0 1.5rem;
    padding: 1.35rem 1.5rem;
    color: var(--text-dim, rgba(255, 255, 255, .72));
    background: linear-gradient(var(--surface-card-bg, rgba(20, 20, 20, .94)), var(--surface-card-bg, rgba(20, 20, 20, .94))) padding-box,
        var(--accent-border-gradient, linear-gradient(135deg, #9333ea, #6366f1)) border-box;
    border: 1px solid transparent;
    border-radius: var(--radius-card, 14px);
    box-shadow: var(--shadow-card, 0 16px 28px rgba(0, 0, 0, .6)), 0 0 0 1px rgba(147, 51, 234, .06);
}

.kmip-guide__topline {
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    background: var(--primary-gradient, linear-gradient(135deg, #9333ea, #6366f1));
}

.kmip-guide__header,
.kmip-faq__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .85rem;
}

.kmip-guide__kicker {
    display: block;
    margin-bottom: .25rem;
    color: var(--accent-purple-light, #a855f7);
    font-size: .68rem;
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.kmip-guide h2,
.kmip-faq h2 {
    margin: 0;
    color: var(--text-primary, #fff);
    font-size: clamp(1.15rem, 2vw, 1.35rem);
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: -.025em;
}

.kmip-guide__intro {
    max-width: 920px;
    color: rgba(255, 255, 255, .76);
    font-size: 1rem;
    line-height: 1.75;
}

.kmip-guide__intro p {
    margin: 0;
}

.kmip-guide__intro p + p { margin-top: .85rem; }
.kmip-guide, .kmip-faq { scroll-margin-top: 90px; }
.kmip-guide *, .kmip-faq * { box-sizing: border-box; }
.kmip-guide h2, .kmip-faq h2 { overflow-wrap: anywhere; }
.kmip-download-link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    min-height: 46px;
    margin-top: 1rem;
    padding: .65rem 1rem;
    border: 1px solid rgba(168, 85, 247, .5);
    border-radius: 9px;
    background: rgba(147, 51, 234, .14);
    color: #e9d5ff;
    font-size: .95rem;
    font-weight: 650;
    text-decoration: none;
}
.kmip-download-link:hover { color: #fff; background: rgba(147, 51, 234, .25); }
.kmip-download-link:focus-visible, .kmip-faq__item summary:focus-visible {
    outline: 2px solid #c084fc;
    outline-offset: 3px;
}

.kmip-guide__intro strong {
    color: #fff;
}

.kmip-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
    margin: 1.15rem 0 1.4rem;
}

.kmip-fact {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .22rem;
    padding: .75rem .8rem;
    background: rgba(255, 255, 255, .027);
    border: 1px solid rgba(255, 255, 255, .065);
    border-radius: 9px;
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}

.kmip-fact:hover {
    transform: translateY(-1px);
    background: rgba(147, 51, 234, .055);
    border-color: rgba(147, 51, 234, .2);
}

.kmip-fact__label {
    overflow: hidden;
    color: var(--text-soft, rgba(255, 255, 255, .5));
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .075em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.kmip-fact strong {
    overflow-wrap: anywhere;
    color: #fff;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.35;
}

.kmip-fact__hint {
    color: rgba(255, 255, 255, .43);
    font-size: .69rem;
    line-height: 1.35;
}

.kmip-section + .kmip-section {
    margin-top: 1.4rem;
}

.kmip-section h3 {
    margin: 0 0 .35rem;
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -.01em;
}

.kmip-section__lead {
    max-width: 900px;
    margin: 0 0 .75rem;
    color: rgba(255, 255, 255, .6);
    font-size: .82rem;
    line-height: 1.6;
}

.kmip-table-wrap {
    overflow-x: auto;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 10px;
}

.kmip-table {
    width: 100%;
    min-width: 0;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    background: rgba(0, 0, 0, .12);
    font-size: .9rem;
}

.kmip-table th,
.kmip-table td {
    padding: .7rem .75rem;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .055);
    color: rgba(255, 255, 255, .68);
    text-align: left;
    vertical-align: middle;
}

.kmip-table thead th {
    color: rgba(255, 255, 255, .47);
    background: rgba(255, 255, 255, .025);
    font-size: .63rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.kmip-table tbody th {
    color: #fff;
    font-weight: 650;
    white-space: nowrap;
}

.kmip-table tbody tr:last-child th,
.kmip-table tbody tr:last-child td {
    border-bottom: 0;
}

.kmip-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: .45rem;
    background: #a855f7;
    border-radius: 50%;
    box-shadow: 0 0 10px currentColor;
}

.kmip-dot--blue { background: #60a5fa; }
.kmip-dot--green { background: #34d399; }
.kmip-dot--red { background: #f87171; }

.kmip-mini-badge {
    display: inline-block;
    margin: .2rem 0 0 .3rem;
    padding: .12rem .32rem;
    color: #c4b5fd;
    background: rgba(139, 92, 246, .1);
    border: 1px solid rgba(139, 92, 246, .18);
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.2;
}

.kmip-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.kmip-choice {
    padding: .75rem .85rem;
    background: linear-gradient(135deg, rgba(147, 51, 234, .06), rgba(255, 255, 255, .018));
    border: 1px solid rgba(147, 51, 234, .14);
    border-radius: 9px;
}

.kmip-choice strong {
    color: rgba(255, 255, 255, .9);
    font-size: .95rem;
}

.kmip-choice p {
    margin: .3rem 0 0;
    color: rgba(255, 255, 255, .75);
    font-size: .95rem;
    line-height: 1.55;
}

.kmip-note {
    margin-top: 1.2rem;
    padding: .75rem .85rem;
    color: rgba(255, 255, 255, .65);
    background: rgba(147, 51, 234, .05);
    border: 1px solid rgba(147, 51, 234, .14);
    border-left: 3px solid var(--accent-purple, #9333ea);
    border-radius: 8px;
    font-size: .9rem;
    line-height: 1.55;
}

.kmip-note strong { color: rgba(255, 255, 255, .9); }

.kmip-faq__header { display: block; margin-bottom: 1rem; }

.kmip-faq__list {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.kmip-faq__item {
    overflow: hidden;
    background: rgba(0, 0, 0, .15);
    border: 1px solid rgba(255, 255, 255, .075);
    border-radius: 9px;
    transition: border-color .2s ease, background .2s ease;
}

.kmip-faq__item[open] {
    background: linear-gradient(90deg, rgba(147, 51, 234, .055), rgba(0, 0, 0, .12));
    border-color: rgba(147, 51, 234, .28);
}

.kmip-faq__item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem .95rem;
    color: #fff;
    cursor: pointer;
    font-size: 1rem;
    min-height: 48px;
    font-weight: 650;
    list-style: none;
}

.kmip-faq__item summary::-webkit-details-marker { display: none; }

.kmip-faq__item summary span::before {
    content: '+';
    color: var(--accent-purple-light, #a855f7);
    font-size: 1.25rem;
    font-weight: 400;
}

.kmip-faq__item[open] summary span::before { content: '−'; }

.kmip-faq__item > div {
    padding: 0 .95rem .85rem;
}

.kmip-faq__item p {
    margin: 0;
    color: rgba(255, 255, 255, .64);
    font-size: .95rem;
    line-height: 1.65;
}

@media (max-width: 820px) {
    .kmip-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .kmip-guide,
    .kmip-faq { padding: 1.15rem 1rem; }
    .kmip-guide__header { display: block; }
    .kmip-download-link { width: 100%; }
    .kmip-guide__intro { font-size: 16px; line-height: 1.75; }
    .kmip-fact strong { font-size: 15px; }
    .kmip-fact__label { font-size: 11px; }
    .kmip-fact__hint:empty { display: none; }
    .kmip-section__lead { font-size: 14px; }
    .kmip-choice-grid { grid-template-columns: 1fr; }
    .kmip-table-wrap { overflow: visible; border: 0; }
    .kmip-table, .kmip-table tbody { display: block; width: 100%; background: none; }
    .kmip-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
    }
    .kmip-table tr {
        display: block;
        margin-bottom: .75rem;
        border: 1px solid rgba(168, 85, 247, .2);
        border-radius: 10px;
        background: rgba(255, 255, 255, .025);
        overflow: hidden;
    }
    .kmip-table th,
    .kmip-table td { padding: .65rem .8rem; font-size: 14px; overflow-wrap: anywhere; }
    .kmip-table tbody th {
        display: block;
        white-space: normal;
        background: rgba(147, 51, 234, .08);
        font-size: 15px;
    }
    .kmip-table td {
        display: grid;
        grid-template-columns: 72px minmax(0, 1fr);
        gap: .65rem;
        line-height: 1.5;
    }
    .kmip-table td::before {
        content: attr(data-label);
        color: rgba(255, 255, 255, .55);
        font-size: 12px;
    }
    .kmip-table tr td:last-child { border-bottom: 0; }
    .kmip-mini-badge { margin-left: 0; margin-right: .3rem; }
    .kmip-faq__item p, .kmip-choice p { font-size: 15px; }
    .kmip-note { font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .kmip-fact { transition: none; }
    .kmip-fact:hover { transform: none; }
}
