.gc-treatment-toc {
    display: none;
}

.gc-treatment-toc-target {
    scroll-margin-top: 2.5rem;
}

@media (max-width: 960px) {
    .gc-treatment-toc {
        position: sticky;
        z-index: 90;
        top: var(--gc-header-height);
        display: block;
        border-bottom: 1px solid rgb(43 39 36 / 10%);
        background: rgb(255 255 255 / 50%);
        box-shadow: 0 0.5rem 1.5rem rgb(43 39 36 / 7%);
        backdrop-filter: blur(16px);
    }

    .gc-treatment-toc__inner {
        position: relative;
        width: min(calc(100% - 1.25rem), var(--gc-container));
        margin-inline: auto;
    }

    .gc-treatment-toc__details {
        position: relative;
    }

    .gc-treatment-toc__details summary {
        position: relative;
        display: grid;
        min-height: 3.6rem;
        grid-template-columns: auto minmax(0, 1fr) 1rem;
        align-items: center;
        gap: 0.65rem;
        padding: 0.55rem 0;
        color: var(--gc-color-ink);
        cursor: pointer;
        list-style: none;
    }

    .gc-treatment-toc__details summary::-webkit-details-marker {
        display: none;
    }

    .gc-treatment-toc__details summary::after {
        width: 0.55rem;
        height: 0.55rem;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        content: '';
        transform: translateY(-0.15rem) rotate(45deg);
        transition: transform 160ms ease;
    }

    .gc-treatment-toc__details[open] summary::after {
        transform: translateY(0.15rem) rotate(225deg);
    }

    .gc-treatment-toc__eyebrow {
        color: var(--gc-color-brand);
        font-size: 0.67rem;
        font-weight: 850;
        letter-spacing: 0.08em;
        white-space: nowrap;
    }

    .gc-treatment-toc__details summary strong {
        overflow: hidden;
        font-size: 0.92rem;
        line-height: 1.35;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .gc-treatment-toc__list {
        position: absolute;
        z-index: 2;
        top: calc(100% + 0.45rem);
        right: 0;
        left: 0;
        max-height: min(68vh, 31rem);
        margin: 0;
        padding: 0.45rem;
        overflow-y: auto;
        border: 1px solid var(--gc-color-border);
        border-radius: 1rem;
        background: #fff;
        box-shadow: 0 1.25rem 3rem rgb(43 39 36 / 18%);
        list-style: none;
        overscroll-behavior: contain;
    }

    .gc-treatment-toc__list li {
        margin: 0;
    }

    .gc-treatment-toc__list a {
        display: grid;
        min-height: 2.9rem;
        grid-template-columns: 2rem minmax(0, 1fr);
        align-items: center;
        gap: 0.35rem;
        padding: 0.55rem 0.7rem;
        border-radius: 0.7rem;
        color: var(--gc-color-ink);
        font-size: 0.9rem;
        font-weight: 720;
        line-height: 1.4;
        text-decoration: none;
    }

    .gc-treatment-toc__list a > span:first-child {
        color: #9a8d84;
        font-size: 0.7rem;
        font-weight: 850;
        letter-spacing: 0.06em;
    }

    .gc-treatment-toc__list a:hover,
    .gc-treatment-toc__list a:focus-visible,
    .gc-treatment-toc__list a.is-active {
        background: var(--gc-color-sand);
        color: var(--gc-color-brand-dark);
    }

    .gc-treatment-toc__list a.is-active > span:first-child {
        color: var(--gc-color-brand);
    }

    .gc-treatment-toc__progress {
        position: absolute;
        right: 0;
        bottom: -1px;
        left: 0;
        height: 2px;
        overflow: hidden;
        background: rgb(128 110 96 / 12%);
    }

    .gc-treatment-toc__progress i {
        display: block;
        width: 100%;
        height: 100%;
        background: var(--gc-color-brand);
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform 100ms linear;
    }

    body.growclinic-menu-open .gc-treatment-toc {
        visibility: hidden;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gc-treatment-toc__details summary::after,
    .gc-treatment-toc__progress i {
        transition: none;
    }
}
