main > *, #page-core {
    min-width: 0; /** not auto */
}


@media (min-width: 768px) {

    #page-core {
        display: grid;
        gap: 1.5rem;
        grid-template-areas: "page-side page-main";
        grid-template-columns: minmax(min-content,1fr) 3fr;
        align-content: flex-start
    }

    #page-side {
        grid-area: page-side;
    }

    #page-main {
        grid-area: page-main;
    }

}


@media (min-width: 992px) {

    #page-core {
        grid-template-columns: minmax(min-content,1fr) 5fr;
    }

    main {

        grid-area: page-main;
        display: grid;
        grid-template-columns: [main] 7fr [side] minmax(auto,2fr);
        grid-auto-flow: row;
        gap: 1rem;
        grid-template-areas: unset;
        margin-left: 1rem;
        margin-right: 1rem;
        align-content: flex-start

    }

    #main-toc {
        grid-column: side;
        grid-row: 1 / span 5;
        position: sticky;
        top: 5rem;
        z-index: 2;
        height: calc(100vh - 5rem);
        overflow-y: auto;
    }

    #main-header {
        grid-column: main;
    }

    #main-content {
        grid-column: main;
    }

    #main-footer {
        grid-column: main;
    }

    #main-side {
        grid-area: unset;
    }

}
