/* Table of Contents Component */
.table-of-contents .toc-title {
    color: var(--color-light);
    margin-bottom: 1.5rem;
    font-size: 1.5rem; /* 24px */
}

.table-of-contents .toc-description-block p {
    font-size: 1.25rem; /* 20px */
    line-height: 1.6;
}

/* Responsive font size */
@media (min-width: 768px) {
    .table-of-contents .toc-description-block p {
        font-size: 1.5rem; /* 24px */
    }
}

/* Bootstrap Accordion Customization */
.table-of-contents .accordion {
    --bs-accordion-bg: transparent;
    --bs-accordion-border-color: var(--color-dashed-border);
    --bs-accordion-border-width: 1px;
    --bs-accordion-border-radius: 0.5rem;
    --bs-accordion-inner-border-radius: 0.5rem;
    --bs-accordion-btn-padding-x: 1rem;
    --bs-accordion-btn-padding-y: 1rem;
    --bs-accordion-btn-color: var(--color-light);
    --bs-accordion-btn-bg: transparent;
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --bs-accordion-btn-icon-width: 1.25rem;
    --bs-accordion-btn-icon-transform: rotate(-180deg);
    --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
    --bs-accordion-btn-active-icon-transform: rotate(0deg);
    --bs-accordion-btn-focus-border-color: var(--color-light);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.1);
    --bs-accordion-body-padding-x: 1rem;
    --bs-accordion-body-padding-y: 1rem;
}

.table-of-contents .accordion-item {
    background-color: transparent;
    border: 1px dashed var(--color-dashed-border) !important;
    border-image: repeating-linear-gradient(45deg, var(--color-dashed-border) 0, var(--color-dashed-border) 6px, transparent 6px, transparent 10px) 1 !important;
    border-image-slice: 1 !important;
    border-radius: 0.5rem;
    margin-bottom: 1rem;
}

.table-of-contents .accordion-button {
    background-color: transparent;
    border: none;
    color: var(--color-light);
    font-size: 1.125rem; /* 18px */
    font-weight: 300;
    text-align: left;
    padding: 1rem;
}

.table-of-contents .accordion-button:not(.collapsed) {
    background-color: rgba(255, 255, 255, 0.05);
    color: var(--color-light);
    box-shadow: none;
}

.table-of-contents .accordion-button:hover {
    color: var(--color-light) !important;
}

.table-of-contents .accordion-button:focus {
    border-color: var(--color-light);
    box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.1);
}

.table-of-contents .accordion-button {
    color: var(--color-light);
    font-size: 1.125rem; /* 18px */
    font-weight: 300;
    text-align: left;
    padding: 1rem;
}

.table-of-contents .accordion-button {
    color: var(--color-light);
    font-size: 1.125rem; /* 18px */
    font-weight: 300;
    text-align: left;
    padding: 1rem;
}

.table-of-contents .accordion-button strong {
    color: var(--color-accent-light);
    font-weight: 500;
}

.table-of-contents .accordion-body {
    background-color: transparent;
    color: var(--color-light);
    padding: 1rem;
}

.table-of-contents .accordion-body p {
    font-size: 1rem; /* 16px */
    line-height: 1.6;
}

.table-of-contents .accordion-body ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.table-of-contents .accordion-body li {
    margin-bottom: 0.75rem;
}

.table-of-contents .accordion-body li:last-child {
    margin-bottom: 0;
}

.table-of-contents .accordion-body a {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--color-light);
    opacity: 0.75;
    text-decoration: none;
    transition: all 0.3s ease;
    padding: 0.5rem;
    border-radius: 0.25rem;
}

.table-of-contents .accordion-body a:hover {
    opacity: 1;
    background: rgba(255, 255, 255, 0.05);
    color: var(--color-light);
}

.table-of-contents .accordion-body a span:first-child {
    font-weight: 500;
    color: var(--color-accent-light);
    flex-shrink: 0;
}

.table-of-contents .accordion-body a span:last-child {
    flex: 1;
}
