main > .container {
    padding-top: 57px;
}
.table-of-content {
    position: fixed;
    width: 305px;
    max-height: calc(100% - 71px);
    overflow: auto;
    padding-top: 15px;
}
.main-content {
    padding-top: 15px;
}
.main-content img {
    max-width: 70%;
    clear: both;
    display: block;
}
/* Контейнер списка */
.tree-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

/* Элемент списка */
.tree-item {
    margin: 4px 0;
}

/* Обёртка для текста и кнопки — чтобы они стояли в ряд */
.item-content {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: inherit;
    text-decoration: none;
    padding: 3px 4px;
    border-radius: 3px;
    line-height: 1.3em;
    max-width: calc(100% - 12px);
}
.item-content:hover {
    background-color: var(--bs-gray-200);
}
/* Кнопка-стрелка */
.toggle-btn {
    cursor: pointer;
    user-select: none; /* Чтобы не выделялся текст при кликах */
    color: #555;
    font-size: 12px;
    transition: transform 0.3s ease;
    display: inline-block;
}

.toggle-btn.collapsed {
    transform: rotate(-90deg); /* Стрелка влево, когда свернуто */
}

.toggle-btn:not(.collapsed) {
    transform: rotate(0deg);   /* Стрелка вниз, когда раскрыто */
}

/* Скрываем вложенные списки по умолчанию */
.tree-list ul {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.3s ease;
    margin-top: 4px;
    padding-left: 20px;
}

/* Когда родительский li имеет класс .expanded — показываем вложенный список */
.tree-item.expanded > ul {
    max-height: 500px; /* Достаточно большое значение для анимации */
    opacity: 1;
}