@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,400;0,700;1,400;1,700&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,700;1,8..60,400;1,8..60,700&display=swap');

.content-icon-container {
    display: none;
}

.theme-toggle-container {
    display: none;
}

:root {
    --purple: #410d85;
}

body {
    font-family: 'Source Serif 4', serif;
}

aside,
table {
    font-family: 'Source Sans 3', sans-serif;
}


/* --------- headings --------- */

h1 {
    font-size: 2rem;
}

h2 {
    font-weight: 700;
    font-size: 1.75rem;
}

h3 {
    font-weight: 400;
    font-size: 1.75rem;
}

/* --------- left and right TOCs --------- */

.sidebar-logo {
    max-width: 100px;
}

.sidebar-drawer {
    width: calc(50% - 28em);
    min-width: 13em;
    justify-content: space-around;
}

.sidebar-container,
.toc-drawer {
    width: 12em;
}

div.sidebar-tree .toctree-l1.current-page>.reference {
    color: var(--purple);
    font-weight: normal;
}

div.sidebar-tree .toctree-l1>.reference {
    color: #666;
    padding: .3rem .5rem
}

div.sidebar-tree .toctree-l1>.reference:hover {
    color: var(--purple);
}

div.sidebar-tree .toctree-l1:first-child>.reference {
    font-weight: bold;
}

div.sidebar-tree ul {
    border-bottom: 1px solid var(--purple);
    padding: 1em 0;
}

input.sidebar-search {
    border: none;
}

/* --------- in-page TOCs --------- */

.toc-with-header ul li:first-child {
    font-weight: bold;
}


/* --------- asides --------- */

article .sidebar {
    width: 100%;
    position: relative;
    float: none;
    margin: 2em 0;
    background: none;
    border: none;
}

article aside.sidebar {
    border: 1px solid #999;
    border-left: 2px solid #999;
    border-radius: 0;
}

article .sidebar>* {
    font-size: 90%;
    border: none
}

article .sidebar p.sidebar-title {
    font-weight: 700;
}

/* --------- widths at different breakpoints --------- */
/*  break out content asides and images at 52em */

@media only screen and (min-width: 52em) {
    .content {
        position: relative;
        padding: 0 1em 0 15em;
        width: 36em;
    }

    article .sidebar,
    h2 {
        position: absolute;
        left: 0;
        width: 12rem;
        margin: -2rem 2rem 0 1rem;
        padding-top: 2rem;
        padding-right: 0;
        padding-left: 0;
        text-align: right;
        background: none;
    }

    article aside.sidebar {
        border: none;
    }

    article .sidebar>*,
    article .sidebar .sidebar-title {
        padding-left: 0;
        padding-right: 0;
    }

    img.wider,
    table.wider,
    figure.wider {
        width: 50em;
        max-width: 50em;
        margin: 2em 0;
        left: -14em;
        position: relative;
    }

    article .sidebar>ol,
    article .sidebar>ul {
        text-align: left;
        padding-left: 1.2rem;
    }

    img.floated {
        width: 50%;
        float: right;
        margin-bottom: 1rem;
        margin-left: 1rem;
    }

    h2>.headerlink,
    .sidebar p .headerlink {
        position: absolute;
        top: 0;
        right: 0;
    }

    h2+* {
        margin-top: 2rem;
    }
}

/* --------- even more space at 67em --------- */

@media only screen and (min-width: 67em) {
    .content {
        padding: 0 1em 0 17em;
    }

    article .sidebar,
    h2 {
        width: 14rem;
    }

    img.wider,
    table.wider,
    figure.wider {
        width: 52em;
        max-width: 52em;
        margin: 2em 0;
        left: -16em;
        position: relative;
    }
}

@media only screen and (min-width: 82em) {
    .content {
        padding: 0 3em 0 17em;
    }
}


/* --------- misc --------- */

p.rubric {
    text-transform: none;
    font-style: italic;
    font-weight: 400;
    font-size: 110%;
}

hr.docutils {
    background-color: var(--purple);
}

blockquote {
    font-size: 90%
}

blockquote.epigraph {
    border-left: none;
    padding: 1em 3em 1em 3em;
}

blockquote p.attribution {
    padding-left: 3em;
    font-style: normal;
}

figcaption {
    text-align: right;
    font-style: italic;
}

div.lined div.sd-col:nth-child(2n) {
    border-bottom: 1px solid var(--purple);
}

@media only screen and (min-width: 36em) {
    div.lined div.sd-col {
        border-bottom: 1px solid var(--purple);
    }
}



/* --------- embed --------- */

.embed-responsive {
    position: relative;
    width: 100%;
}

.embed-responsive:before {
    display: block;
    content: "";
}

.embed-responsive-item,
.embed-responsive iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.embed-responsive-16by9::before {
    padding-top: 56.25%;
}

.embed-responsive-4by3::before {
    padding-top: 75%;
}

/* --------- furniture --------- */

.nav-overlay-icon .icon svg,
.toc-overlay-icon .icon svg,
.theme-toggle svg {
    color: var(--purple);
}

.toc-tree li.scroll-current>.reference {
    color: var(--purple);
}

/* --------- tables --------- */

.table-wrapper {
    overflow-x: visible;
}

table.docutils {
    box-shadow: none;
}

table.docutils th.head {
    padding: .5rem 0;
}

table.docutils td,
table.docutils th {
    border-right: 1px solid var(--purple);
}

table.docutils th.stub {
    text-align: right;
}

table.docutils tr:last-child td,
table.docutils tr:last-child th {
    border-bottom: none;
}

table.docutils thead {
    border-bottom: 1px solid var(--purple);
}

table.align-default {
    margin-left: 0;
    margin-right: 0
}

/* --------- lists --------- */

dl dt {
    font-style: italic
}

/* --------- links --------- */

a:link,
a:visited {
    color: var(--purple);
}

a.headerlink {
    text-decoration: none;
}

.related-pages a:hover .page-info .title {
    color: var(--purple);
}
