/* Index */
.main-index {
    overflow: auto;
    width: 100%;
    display: flex;
    flex-direction: column;

    & .hero {
        display: grid;
        grid-template-columns: 1.2fr 1fr;
        gap: 3rem;
        padding: 3rem 2rem;
        border-bottom: 1px solid var(--border);

        & h1 {
            font-size: 3rem;
            line-height: 1.3;
            color: var(--accent-gold);
        }

        & h2 {
            margin-bottom: 5rem;
        }

        & p {
            color: var(--text-secondary);
            max-width: 60ch;
            margin: 0;
            padding: 0;
        }

        & blockquote {
            & p {
                color: var(--accent-gold);
            }
        }

        & a {
            color: var(--accent-gold-soft);
            
            margin: 0;
            padding: 0;
        }

        & .left {
            display: flex;
            flex-direction: column;
        }

        & .right {
            display: flex;
            flex-direction: column;
            justify-content: center;
        }
    }

    hr {
        width: 100%;
        border: 1px solid var(--border);
    }

    & .intro {
        width: 100%;
        margin: 5rem 0;

        & h3 {
            color: var(--accent-gold-soft);
            font-size: 2rem;
        }

        & a {
            color: var(--accent-gold);
        }
    }

    & .learning-paths {
        width: 100%;
        margin: 5rem 0;
        display: flex;
        flex-direction: column;

        & h3 {
            font-size: 2rem;
            color: var(--accent-gold-soft);
            padding: 0;
            margin: 0;
            margin-bottom: 1rem;
        }

        & p {
            padding: 0;
            margin: 0;
        }

        & blockquote {
            color: var(--accent-gold);
        }

        & h4 {
            font-size: 1.5rem;
            color: var(--accent-gold);
        }

        & .compare {
            width: 100%;
            display: flex;
            justify-content: space-evenly;
            margin-top: 2rem;

            & .pr, .lp {
                width: 48%;
                display: flex;
                flex-direction: column;

                & h5 {
                    color: var(--accent-gold-soft);
                    font-size: 1.2rem;

                    & a {
                        color: var(--accent-gold-soft);
                    }
                }
            }
        }

        & .upcoming {
            margin: 3rem 0;
        }
    }

    & .code-example {
        display: flex;
        justify-content: space-between;
        margin: 5rem 0;

        & .code-container, .text {
            width: 49%;

            & .title {
                color: var(--text-muted);
                font-size: .8rem;
            }
        }
    }
}


/* Category */
.category-overview {
    width: 100%;
    display: flex;
    flex-direction: column;

    & header {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 5rem 0;
        margin-bottom: 3rem;
    }

    & .main-category-overview {
        display: flex;
        flex-direction: column;
        width: 100%;

        & hr {
            width: 100%;
            border: 1px solid var(--border);
        }

        & .cat-wrapper {
            padding: 2rem 0;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1rem;
            width: 100%;
        }

        & .article-wrapper {
            padding: 0;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1rem;
            width: 100%;

            & .category-card {
                border: 1px solid var(--border);
                background-color: var(--bg-elevated);
                padding: 0;
                height: 400px;
                overflow: auto;
                position: relative;
                padding-bottom: 1rem;

                & h3 {
                    width: 100%;
                    position: sticky;
                    top: 0;
                    padding: 0 2rem;
                    margin: 0;
                    padding-bottom: 1rem;
                    border-bottom: 1px solid var(--border);
                    background: var(--bg-surface);
                    margin-bottom: 2rem;

                    & a{
                        font-size: 1.2rem;
                        color: var(--accent-gold);
                        width: 100%;
                    }
                }              
                

                & h4 {
                    font-size: 1rem;
                    margin: 0;
                    padding: 0;
                    margin-left: 3rem;

                    & a {
                        color: var(--accent-gold-soft);
                    }
                }
            }
        }
    }
}

.category-overview .main-category-overview .article-wrapper .category-card::-webkit-scrollbar {
    width: 3px;
}

.category-overview .main-category-overview .article-wrapper .category-card::-webkit-scrollbar-track {
    background: transparent;
}

.category-overview .main-category-overview .article-wrapper .category-card::-webkit-scrollbar-thumb {
    background: var(--text-muted);
    border-radius: 3px;
}


.main-category {
    display: flex;
    flex-direction: column;

    & .cat-header {
        display: flex;
        align-items: center;
        flex-direction: column;
        justify-content: center;
        padding: 3rem 3rem;
        border-bottom: 1px solid var(--border);
        text-align: center;

        & h2 {
            color: var(--accent-gold);
            font-size: 2.5rem;
        }
    }

    & .cat {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
        margin: 2rem 0;

        & .sub-cat-wrapper {
            display: flex;
            flex-direction: column;
            border: 1px solid var(--border);
            padding: 1rem;

            & .sub-cat-header {
                color: var(--accent-gold-soft);
                font-size: 1.5rem;
                padding: 0;
                margin: 0;
                padding-bottom: 2rem;
            }

            & .article-wrapper {
                display: flex;
                flex-direction: column;
                border-bottom: 1px solid var(--border);

                & p {
                    color: var(--text-muted);
                }

                & a {
                    color: var(--accent-gold-soft);
                }
            }
        }
    }
}


/* Sub Category */
.main-sub-category {
    display: flex;
    flex-direction: column;

    & .sub-cat-header {
        display: flex;
        align-items: center;
        flex-direction: column;
        justify-content: center;
        padding: 3rem 3rem;
        border-bottom: 1px solid var(--border);
        text-align: center;

        & a, h2 {
            color: var(--accent-gold);
            font-size: 2.5rem;
            margin: 0;
            padding: 0;
            margin: 1rem 0;
        }

        & p {
            color: var(--accent-gold);
            font-size: 2rem;
            padding: 0;
            margin: 0;
        }

        & h3 {
            color: var(--accent-gold);
            font-size: 2rem;
            margin: 0;
            padding: 0;
            margin: 1rem 0;
        }

        & h4 {
            max-width: 75%;
            text-align: center;
        }

    }

    & .sub-cat {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
        margin: 2rem 0;
        
        & .article-wrapper {
            display: flex;
            flex-direction: column;   
            padding: 2rem;
            border: 1px solid var(--border);

            & a, h4 {
                color: var(--accent-gold);
                font-size: 1.5rem;
                margin: 0;
                padding: 0;
                margin-bottom: 1rem;
            }

            & .sub-headline {
                margin: 0;
                padding: 0;
                margin-bottom: 1rem;
            }

            & .snippet {
                color: var(--text-muted);
                font-style: italic;

                & > * {
                    margin: 0;
                    padding: 0;
                    color: var(--text-muted);
                }
            }
        }       
    }
}


/* Posts */
.main-post {
    width: 100%;
    display: flex;
    flex-direction: column;

    & pre {
        white-space: pre-wrap;
    }

    & .post-header {
        padding: 10rem 5rem;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        & h2, p {
            margin: 0;
            padding: 0;
            display: flex;
        }

        & h2 {
            font-size: 2.5rem;
        }

        & p {
            margin-top: 3rem;
            color: var(--accent-gold);
        }
    }

    & main {
        & h3, h4 {
            color: var(--accent-gold);
            margin-top: 4rem;
        }

        & blockquote {
            color: var(--accent-gold-soft);
        }
    }
}


@media screen and (max-width: 1200px) {
    .main-index {
        & .hero {
            display: flex;
            flex-direction: column;

            & .left, .right {
                width: 100%;
            }
        }

        & .learning-paths {
            & .compare {
                justify-content: space-between;
            }
        }

        & .code-example {
            flex-direction: column-reverse;
        }
    }

    .category-overview {
        & header {
            margin-bottom: 1rem;
        }

        & .main-category-overview {
            & .cat-wrapper {
                grid-template-columns: repeat(2, 1fr);
            }

            & .article-wrapper {
                grid-template-columns: repeat(2, 1fr);
            }
        }
    }

    .main-category {
        & .cat {
            grid-template-columns: repeat(1, 1fr);
            padding: 0;

            & .sub-cat-wrapper {
                & .article-wrapper {
                    margin-bottom: 1rem;
                }
            }
        }
    }

    .main-sub-category {
        & .sub-cat-header {
            padding: 3rem 1rem;
        }

        & .sub-cat {
            grid-template-columns: repeat(1, 1fr);   
            padding: 0;
            margin: 0;

            & .article-wrapper {
                max-width: 100%;
                overflow: hidden;
            }
        }
    }
}



@media screen and (max-width: 900px) {
    .main-index {
        & .learning-paths {
            & .compare {
                justify-content: space-between;
                flex-direction: column;

                & .pr, .lp {
                    width: 100%;
                    margin: 1rem 0;
                }
            }
        }

        & .code-example {
            display: flex;
            justify-content: space-between;
            flex-direction: column-reverse;
            margin: 5rem 0;

            & .code-container, .text {
                width: 100%;
            }
        }
    }

    .category-overview {
        & .main-category-overview {
            & .cat-wrapper {
                grid-template-columns: repeat(1, 1fr);
                overscroll-behavior: auto;
            }

            & .article-wrapper {
                grid-template-columns: repeat(1, 1fr);
                overscroll-behavior: auto;
            }
        }
    }

    .main-post {
        overflow-wrap: anywhere;
        word-break: break-word;

        & .post-header {
            padding: 5rem 1rem;
        }
    }
}

