/* Плавная анимация для всех изменяемых свойств */
.faq__item {
transition: background-color 0.3s ease;
}
/* Скрываем стандартный треугольник у тега summary */
.faq__question {
list-style: none;
cursor: pointer;
position: relative;
transition: color 0.3s ease, background-color 0.3s ease;
/* Добавляем внутренний отступ, чтобы полоса слева не прилипала к тексту */
padding-left: calc(var(--faq-active-stripe-width) + 10px);
}
.faq__question::-webkit-details-marker {
display: none;
}
/* Стилизация иконки */
.faq__icon {
display: inline-block;
width: 20px;
height: 20px;
position: relative;
}
.faq__icon::before,
.faq__icon::after {
content: '';
position: absolute;
background-color: currentColor;
transition: transform 0.3s ease, background-color 0.3s ease;
}
/* Горизонтальная линия */
.faq__icon::before {
top: 50%;
left: 0;
width: 100%;
height: 2px;
transform: translateY(-50%);
}
/* Вертикальная линия */
.faq__icon::after {
left: 50%;
top: 0;
width: 2px;
height: 100%;
transform: translateX(-50%);
}
/* Плавное раскрытие ответа */
.faq__answer-clip {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.3s ease;
}
.faq__answer-inner {
overflow: hidden;
}
/* --- СТИЛИ ДЛЯ ОТКРЫТОГО СОСТОЯНИЯ --- */
/* Меняем цвет и фон заголовка */
.faq__item[open] .faq__question {
color: var(--faq-active-color);
background-color: var(--faq-active-background);
/* Полоса слева */
box-shadow: inset var(--faq-active-stripe-width) 0 0 0 var(--faq-active-stripe-color);
}
/* Превращаем "+" в "x" (поворачиваем вертикальную линию на 45 градусов) */
/* Обратите внимание: мы поворачиваем только ::after, чтобы линии пересеклись */
.faq__item[open] .faq__icon::after {
transform: translateX(-50%) rotate(45deg);
}
/* Раскрываем контент */
.faq__item[open] .faq__answer-clip {
grid-template-rows: 1fr;
}