:root {
    --v5-red: #e30613;
    --v5-text: #1a1a1a;
    --v5-border: #f0f0f0;
    --v5-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.v5-faq-item {
    background: #fff;
    border-radius: 20px;
    border: 1px solid var(--v5-border);
    margin-bottom: 15px;
    overflow: hidden;
    transition: var(--v5-transition);
}

.v5-faq-input { display: none; }

.v5-faq-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 22px 30px;
    cursor: pointer;
}

.v5-faq-title { font-weight: 700; font-size: 18px; color: var(--v5-text); }

/* Плюс/Минус */
.v5-faq-icon { position: relative; width: 20px; height: 20px; }
.v5-faq-icon::before { content: ''; position: absolute; background: var(--v5-red); width: 100%; height: 2px; top: 9px; left: 0; }
.v5-faq-icon::after { content: ''; position: absolute; background: var(--v5-red); width: 2px; height: 100%; top: 0; left: 9px; transition: var(--v5-transition); }

.v5-faq-body {
    max-height: 0;
    opacity: 0;
    transition: var(--v5-transition);
}

.v5-faq-content { padding: 0 30px 30px; line-height: 1.6; color: #666; }

/* Состояние при клике (checked) */
.v5-faq-input:checked + .v5-faq-header + .v5-faq-body {
    max-height: 1000px;
    opacity: 1;
}

/* Превращаем плюс в минус */
.v5-faq-input:checked + .v5-faq-header .v5-faq-icon::after {
    transform: rotate(90deg);
    opacity: 0;
}

.v5-faq-item:hover {
    border-color: var(--v5-red);
}