/* Variables */
:root {
    --overlay-bg: #8882;
    --overlay-border: #8884;
}

/* Default font and layout */
html {
    box-sizing: border-box;
    font-size: clamp(100%, 2vw, 150%);
    margin: auto;
    max-width: 72ch;
}

body { margin: 0 1rem }

.franklin-content .row { display: block }

/* Text geometry */
p, details {
    hyphens: auto;
    line-height: 1.4rem;
    text-align: justify;
}

/* Titles */
.franklin-content h1 a,
.franklin-content h2 a,
.franklin-content h3 a,
.franklin-content h4 a,
.franklin-content h5 a,
.franklin-content h6 a {
    color: CanvasText;
}

.franklin-content h1 a:hover,
.franklin-content h2 a:hover,
.franklin-content h3 a:hover,
.franklin-content h4 a:hover,
.franklin-content h5 a:hover,
.franklin-content h6 a:hover {
    text-decoration: none;
}

.franklin-toc ol ol {
    list-style-type: lower-alpha;
}

/* General formatting */
.franklin-content li p { margin: 0 }

.franklin-content a { text-decoration: none }

.franklin-content a:hover {
    text-decoration: underline;
 }

/* Hyperrefs and footnotes */
.franklin-content .fndef {
    border: none;
    margin: 1ex 0;
}
.franklin-content .fndef tr { text-align: left }
.franklin-content .fndef td { padding: 0 }
.franklin-content .fndef td, .franklin-content sup { font-size: 0.8rem }
.franklin-content .fndef td.fndef-backref { padding-left: 0 }
.franklin-content .fndef td.fndef-content { padding-left: 1ch }

/* Images */
.franklin-content figure {
    margin: 0;
    text-align: center;
}
.franklin-content img {
    display: block;
    margin: auto;
    max-width: 100%;
}

/* Boxes */
.franklin-content blockquote, .note {
    margin: 0 -1rem;
    padding-bottom: 1ex;
    padding-left: 0.75rem;
    padding-right: 1rem;
    padding-top: 1ex;
}
.franklin-content blockquote p, .note p { margin: 1ex 0 }
.note p:first-child { font-weight: bold }
.franklin-content blockquote {
    background: var(--overlay-bg);
    border-left: 0.25rem solid var(--overlay-border);
}
.note {
    background-color: #2482;
    border-left: 0.25rem solid #2484;
}

/* Header */
header {
    margin: 1.5rem -0.5rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

header a {
    border-bottom: solid;
    font-weight: bold;
    margin: 0 0.5rem;
    text-decoration: none;
}

nav, nav li { display: inline-block }
nav ul { margin: 0 }

footer, .tags, .right {
    color: GrayText;
    font-size: 0.8rem;
}

footer {
    margin-top: 1.5rem;
    margin-bottom: 2rem;
}

footer a, a.tag {
    color: GrayText;
    text-decoration: underline!important;
}

.nowrap { display: inline-block }
.tags { float: left }
.right {
    float: right;
    margin-left: auto;
}

/* Table */
table {
    border-bottom: 0.15em solid;
    border-collapse: collapse;
    border-top: 0.15em solid;
    line-height: 1em;
    margin-bottom: 1.5em;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

tr:first-of-type > th { border-bottom: 0.08em solid }
tr, th, td { padding: 0.5em }

/* highlight.js */
code, .hljs {
    background-color: ButtonFace;
    color: ButtonText;
    font-size: inherit;
    padding: 0.1em 0.2em;
}

.hljs, .comment pre > code {
    display: block;
    line-height: 1.45em;
    overflow-x: auto;
}

.hljs-built_in .hljs-name, .hljs-title, .hljs-type { color: DarkCyan }
.hljs-code, .hljs-selector-class { color: LinkText }
.hljs-comment, .hljs-deletion, .hljs-meta { color: GrayText }
.hljs-comment, .hljs-emphasis { font-style: italic; }
.hljs-string { color: ForestGreen }
.hljs-strong { font-weight: bold; }

.hljs-bullet, .hljs-quote, .hljs-link, .hljs-number,
.hljs-regexp, .hljs-literal { color: VisitedText }

.hljs-keyword, .hljs-selector-tag, .hljs-section,
.hljs-attribute, .hljs-variable { color: ActiveText }

.hljs-subst, .hljs-symbol, .hljs-selector-id, .hljs-selector-attr,
.hljs-selector-pseudo, .hljs-template-tag, .hljs-template-variable,
.hljs-addition { color: Chocolate }

.comment {
    background-color: var(--overlay-bg);
    clear: both;
    margin: 1ex 0;
    overflow: hidden;
    padding: 0 1rem;
}

.fead {
    display: flex;
    flex-wrap: wrap;
    margin: -0.5rem;
    margin-bottom: 0;
}
.fead h3 { margin: 0 0 1ex }
.fead article {
    background: ButtonFace;
    color: ButtonText;
    display: flex;
    flex-direction: column;
    flex: 1 1 24ch;
    margin: 1ex;
    padding: 1ex;
}
