/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */

:root {
    --page-width: 1200px;
    --sidebar-width: 15rem;
    --gutter: 2rem;

    --font-body: system-ui, -apple-system, BlinkMacSystemFont,
                 "Segoe UI", sans-serif;

    --font-mono: "DejaVu Sans Mono", "Liberation Mono", monospace;

    --text: #222;
    --muted: #666;
    --border: #ccc;
    --background: #fff;
    --header-background: #222;
    --header-text: #fff;
    --nav-background: #444;
    --nav-text: #fff;
    --nav-hover: #ddd;
}

html {
    box-sizing: border-box;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

body {
    margin: 0;
    padding: 0;

    background: var(--background);
    color: var(--text);

    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.6;
}

a {
    color: inherit;
}

img {
    max-width: 100%;
    height: auto;
}


/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.site-header {
    //max-width: var(--page-width);
    width: 100%;
    margin: 0 auto;

    padding: 2rem 1.5rem 1.5rem;

    background: var(--header-background);
    color: var(--header-text);
}

.site-title {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.1;
}

.site-tagline {
    margin-top: 0.35rem;

    font-size: 1.1rem;
    color: #ccc;
}


/* --------------------------------------------------------------------------
   Navigation
   -------------------------------------------------------------------------- */

.site-nav {
    //max-width: var(--page-width);
    width: 100%;
    margin: 0 auto;

    display: flex;
    flex-wrap: wrap;

    background: var(--nav-background);
}

.site-nav a {
    display: block;

    padding: 0.65rem 1rem;

    color: var(--nav-text);
    text-decoration: none;
}

.site-nav a:hover,
.site-nav a:focus {
    background: var(--nav-hover);
    color: #222;
}


/* --------------------------------------------------------------------------
   Three-column layout
   -------------------------------------------------------------------------- */

.site-layout {
    //max-width: var(--page-width);
    width: 100%;
    margin: 0 auto;

    display: grid;
    grid-template-columns:
        var(--sidebar-width)
        minmax(0, 1fr)
        var(--sidebar-width);

    grid-template-areas:
        "left main right";

    gap: var(--gutter);

    padding: 2rem 1.5rem;
}

.site-main {
    grid-area: main;
    min-width: 0;
}

.site-sidebar-left {
    grid-area: left;
}

.site-sidebar-right {
    grid-area: right;
}

.site-sidebar {
    color: var(--muted);
    font-size: 0.95rem;
}

.site-sidebar h2 {
    margin-top: 0;

    color: var(--text);
    font-size: 1.1rem;
}


/* --------------------------------------------------------------------------
   Org-mode content
   -------------------------------------------------------------------------- */

.site-main h1,
.site-main h2,
.site-main h3,
.site-main h4 {
    line-height: 1.25;
}

.site-main pre {
    overflow-x: auto;
    padding: 1rem;

    background: #f5f5f5;

    font-family: var(--font-mono);
    font-size: 0.9rem;
}

.site-main code {
    font-family: var(--font-mono);
}


/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.site-footer {
    //max-width: var(--page-width);
    width: 100%;
    margin: 0 auto;

    padding: 1.5rem;

    border-top: 1px solid var(--border);

    color: var(--muted);
    font-size: 0.85rem;
}


/* --------------------------------------------------------------------------
   Responsive layout
   -------------------------------------------------------------------------- */

@media (max-width: 900px) {
    .site-layout {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);

        grid-template-areas:
            "main main"
            "left right";
    }
}

@media (max-width: 700px) {
    .site-layout {
        display: block;

        padding: 1.5rem 1rem;
    }

    .site-sidebar {
        margin-top: 2rem;
        padding-top: 1.5rem;

        border-top: 1px solid var(--border);
    }

    .site-header {
        padding: 1.5rem 1rem 1.25rem;
    }

    .site-title {
        font-size: 2rem;
    }

    .site-nav a {
        padding: 0.55rem 0.8rem;
    }
}
