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

html {
    font-family: Georgia, Times New Roman, Times, serif;
    line-height: 1.58;
}

body {
    background: #fff;
    max-width: 62rem;
    margin: 0 auto;
}

header {
    background: #004;
    color: #eee;
    min-height: 4rem;
    font-family: sans;
}

header > h1 {
    float: left;
    height: 4rem;
    margin: 0;
    padding: 0.5rem;
    padding-left: 0;
    font-size: 1.4rem;
    line-height: 3rem;
    white-space: nowrap;
}

header > h1 img {
    width: 3rem;
    vertical-align: top;
    line-height: 0rem;
    margin: 0 0.5rem;
}

h1, h2, h3, h4, h5, h6 {
    font-family: sans;
    font-weight: normal;
}

nav.mainmenu {
    text-align: right;
}

nav.mainmenu ul {
    margin: 0;
    /* display: inline-block; */
    margin-right: 2rem;
    padding-top: 1.15rem;
    padding-bottom: 1.1rem;
}

nav.mainmenu li {
    display: inline;
    vertical-align: text-top;
    margin-left: 0.5rem;
}

header a, header a:visited,
h1 a, h1 a:visited {
    color: inherit;
    text-decoration: none;
}

div.main-content-container {
    max-width: 60rem;
    margin: 0 2rem;
}

main {
    margin-top: 2rem;
}

main > *:not(section), section > *:not(section) {
    max-width: 34.75rem;
    margin-left: auto;
    margin-right: 0;
    width: 100%;
}

footer {
    clear: both;
    margin: 0 2rem;
    margin-top: 2rem;
    opacity: 0.5;
    border-top: solid black 1px;
    text-align: right;
}

.image_figure .extrahtml {
    text-align: left;
}

.image_align_margin img {
    width: 21.25rem;
}

.image_align_right, .image_align_antimargin {
    float: right;
    clear: right;
    margin-left: 1rem;
    width: inherit;
}

.image_align_left, .image_align_margin {
    float: left;
    clear: left;
    margin-right: 2rem;
    margin-left: 0;
    width: inherit;
}

.center, .image_align_center {
    text-align: center;
    width: inherit;
}

main .margin_block {
    float: left;
    clear: left;
    margin: 0 2rem 2rem 0;
    width: 21.25rem; /* 340px */
}

main .page_heading {
    margin-top: 0;
    background: #004;
    color: #eee;
    padding: 1rem;
}

h1 a {
    text-decoration: none;
}

div.footnotes:before {
    content: '———';
    opacity: 0.5;
}

div.footnotes {
    font-size: 0.9rem;
}

main > section > blockquote {
    border-left: solid #004 0.33rem;
    padding-left: 1.67rem;
}

/*---------------------------------------------------------------------------*/

.lshift_archive_explanation {
    font-style: italic;
}

.lshift_archive_comment_heading:before {
    font-family: Georgia, Times New Roman, Times, serif;
    content: '———';
    opacity: 0.5;
    display: block;
    margin: 1rem 0;
    font-size: 1rem;
}
.lshift_archive_comment_heading { font-size: 1.1rem; }
.blog_comment_header { font-size: 1rem; }
.blog_comment { font-size: 0.95rem; margin-left: 1rem; }

/*---------------------------------------------------------------------------*/

@media screen and (max-width: 42rem) {
    /* body { */
    /*     background: red; */
    /* } */

    main .margin_block {
        float: none;
        margin-bottom: 0.5rem;
        margin-left: auto;
        margin-right: 0;
        width: inherit;
        /* max-width: 100%; */
        /* margin: 0.5rem 0; */
    }

    .image_align_left, .image_align_right, .image_align_margin, .image_align_antimargin {
        float: none;
        margin-left: auto;
        margin-right: 0;
        text-align: center;
    }

    div.main-content-container {
        margin: 0 0.5rem;
    }

    footer {
        margin: 0 0.5rem;
    }

    nav.mainmenu ul {
        margin-right: 0.5rem;
    }

    main {
        margin-top: 0.5rem;
    }
}
