:root {
    --background-color: #ffffff;
    --background-secondary-color: #f5f5f5;
    --color: #2F3436;
    --primary-color: #2F3436;
    --border-color: #cfcfcf;
}

@media (prefers-color-scheme: dark) {
    :root {
        --background-color: #121212;
        --background-secondary-color: #1a1a1a;
        --color: #d3d3d3;
        --primary-color: #d3d3d3;
        --border-color: #333333;
    }
}

@font-face {
    font-family: 'Razor Keen';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/fonts/razor-keen.ttf') format('truetype');
}

html, body {
    padding: 0;
    margin: 0;
    background-color: var(--background-color);
    color: var(--color);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    line-height: 1.5;
}

a {
    color: var(--color);
    text-decoration: underline;
    transition: filter 200ms;

    &:hover {
        filter: blur(1px);
    }
}

/* Fix for Bootstrap's container-fluid class */
.container-fluid {
    box-sizing: border-box;
}

.header {
    height: 65px;
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 40px;

    .main-nav {
        min-width: 225px;

        .main-nav-link {
            white-space: nowrap;
            padding: 4px 12px;
            font-size: .9em;
            font-weight: 600;
            text-decoration: none;

            &.selected {
                text-decoration: underline;
            }
        }
    }

    @media (max-width: 992px) {
        margin-bottom: 66px;

        .main-nav {
            position: absolute;
            top: 66px;
            left: 0;
            border-bottom: 1px solid var(--border-color);
            width: 100%;
            min-width: 100%;
            box-sizing: border-box;
            overflow-x: auto;
            padding: 10px;
        }
    }
}

.footer {
    position: relative;
    z-index: 1;
    padding: 15px 0;

    &.top-footer {
        margin-top: 40px;
        border-top: 1px solid var(--border-color);
        border-bottom: 1px solid var(--border-color);
        background-color: var(--background-secondary-color);
        font-size: .9em;
    }

    &.bottom-footer {
        font-size: .8em;
    }

    .footer-link {
        color: var(--color);
        text-decoration: underline;

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

.logo-wrapper {
    gap: 15px;
    font-size: 28px;
    font-weight: 600;
    font-family: "Razor Keen";

    a {
        text-decoration: none !important;
        color: var(--color);
    }

    .logo-image-wrapper {
        height: 45px;
        width: 45px;
        display: block;

        @media (max-width: 992px) {
            height: 35px;
            width: 35px;
        }

        .logo-image {
            height: 100%;
            width: 100%;
        }
    }
}

.blog-post-list {
    padding: 0;
    margin: 0;

    li {
        list-style-type: none;
    }

    .blog-post-meta {
        font-size: .8em;
    }
}

.blog-post-tile {
    &:not(:last-child) {
        margin-bottom: 35px;
    }

    .post-image {
        height: 175px;
        width: 100%;
        object-fit: cover;
        border-radius: 5px;
    }

    .no-featured-image {
        background: var(--background-secondary-color);
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 5px;
        width: 100%;
        height: 175px;
        max-width: 100%;

        .no-featured-image-icon {
            height: 75px;
            object-fit: cover;

            @media (prefers-color-scheme: dark) {
                opacity: 0.25;
            }
        }
    }

    p {
        margin: 8px 0;
    }

    .blog-post-header-link {
        font-size: 20px;
    }

    .blog-post-excerpt {
        font-size: .95em;
    }

    .blog-post-meta {
        font-size: .8em;
        text-transform: uppercase;
        opacity: .75;

        &:hover {
            opacity: 1;
        }
    }
}

.social-media {
    a {
        text-decoration: none;
        opacity: .65;
        transition: opacity 250ms;

        &:hover {
            opacity: 1;
        }
    }

    .social-icon {
        height: 20px;
        width: 20px;
    }
}

.low-opacity-text {
    opacity: .65;
    transition: opacity 250ms;

    &:hover {
        opacity: 1;
    }
}

.welcome-text {
    font-size: 65px;
    font-family: "Razor Keen";
    word-wrap: break-word;
    hyphens: auto;
    margin: 0;
    line-height: 1.4em;
    margin-bottom: 40px;
    text-align: center;

    @media (max-width: 992px) {
      font-size: 45px;
    }
}

.app-block {
    max-width: 450px;
}

.generic-sidebar {
    font-size: .9em;
}
