:root {
    --theme-color-50: #f5f7fa;
    --theme-color-100: #eaeef4;
    --theme-color-200: #cfdbe8;
    --theme-color-300: #a6bed3;
    --theme-color-400: #759abb;
    --theme-color-500: #547fa3;
    --theme-color-600: #416588;
    --theme-color-700: #35516f;
    --theme-color-800: #2f465d;
    --theme-color-900: #2b3c4f;
    --theme-color-950: #0b0f14;

    --header-height: 50px;
    --body-background-color: var(--theme-color-950);
    --body-text-color: var(--theme-color-50);
    --link-color: var(--theme-color-100);
    --link-hover-color: var(--theme-color-700);
    --header-color: var(--theme-color-100);
    --header-background-color: var(--theme-color-900);
    --section-background-color: var(--theme-color-950);
    --section-border-color: var(--theme-color-400);
    --section-header-color: var(--theme-color-950);
    --section-header-background-color: var(--theme-color-400);
    --section-links-background-color: var(--theme-color-950);
    --section-links-hover-background-color: var(--theme-color-700);
    --section-link-background-color: var(--theme-color-800);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Fira Sans', sans-serif;
    font-size: 16px;
    background-color: var(--body-background-color);
    color: var(--body-text-color);
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 500;
}

a {
    text-decoration: none;
    color: var(--link-color);

    &:hover {
        text-decoration: underline;
    }
}

header {
    position: fixed;
    height: var(--header-height);
    width: 100%;
    background-color: var(--header-background-color);

    & h1 {
        color: var(--header-color);
        font-size: 1.5rem;
        text-align: center;
        width: 100%;
        line-height: var(--header-height);
    }
}

main {
    padding-top: calc(var(--header-height) + 20px);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;

    & section {
        width: 400px;
        border: 2px solid var(--section-border-color);
        background-color: var(--section-background-color);
        border-radius: 5px;
        margin: 10px;

        & h2 {
            padding: 10px;
            font-size: 1.2rem;
            background-color: var(--section-header-background-color);
            color: var(--section-header-color);
        }

        & .links {
            padding: 10px;
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 10px;
            border-bottom-left-radius: 5px;
            border-bottom-right-radius: 5px;
            background-color: var(--section-links-background-color);

            & a {
                display: grid;
                grid-template-rows: auto;
                align-items: center;
                gap: 10px;
                text-decoration: none;
                color: inherit;
                background-color: var(--section-link-background-color);
                border-radius: 5px;
                padding: 10px 0;

                &:hover {
                    background-color: var(--section-links-hover-background-color);
                }

                & .icon, & .title {
                    text-align: center;
                }

                & .icon {
                    font-size: 2rem;
                }
            }
        }
    }
}