/*****************************************************************************
/*
/* Tufte Jekyll blog theme
/* Based on Tufte CSS by Dave Liepmann ( https://github.com/edwardtufte/tufte-
/*
/* The README.md will show you how to set up your site along with other goodie
/*****************************************************************************/

// Imports to create final

@import "../_sass/fonts";
@import "../_sass/settings";
@import "../_sass/syntax-highlighting";

/* Tufte CSS styles */
html { font-size: 15px; }

h1,
h2,
h3 {
  scroll-margin-top: 5.25rem;
}

body { width: 87.5%;
       margin-left: auto;
       margin-right: auto;
       padding-left: 12.5%;
       padding-top: 3.65rem;
       font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
       background-color: #fffff8;
       color: #111;
       max-width: 1600px;
       counter-reset: sidenote-counter; }

h1 { font-weight: 400;
     margin-top: 4rem;
     margin-bottom: 1.5rem;
     font-size: calc(3.2rem + 3pt);
     line-height: 1; }

h2 { font-style: italic;
     font-weight: 400;
     margin-top: 2.1rem;
     margin-bottom: 0;
     font-size: calc(2.2rem + 2pt);
     line-height: 1; }

h3 { font-style: italic;
     font-weight: 400;
     font-size: calc(1.7rem + 2pt);
     margin-top: 2rem;
     margin-bottom: 0;
     line-height: 1; }

p.subtitle { font-style: italic;
             margin-top: 1rem;
             margin-bottom: 1rem;
             font-size: 1.8rem;
             display: block;
             line-height: 1; }

.numeral { font-family: et-book-roman-old-style; }

.danger { color: red; }

article { position: relative;
          padding: 0.45rem 0rem 4rem 0rem; }

section { padding-top: 1rem;
          padding-bottom: 1rem; }

p, ol, ul { font-size: calc(1.4rem - 0.5pt); }

p { line-height: 2rem;
    margin-top: 1.4rem;
    margin-bottom: 1.4rem;
    padding-right: 0;
    vertical-align: baseline; }

/* Chapter Epigraphs */
div.epigraph { margin: 5em 0; }

div.epigraph > blockquote { margin-top: 3em;
                            margin-bottom: 3em; }

div.epigraph > blockquote, div.epigraph > blockquote > p { font-style: italic; }

div.epigraph > blockquote > footer { font-style: normal; }

div.epigraph > blockquote > footer > cite { font-style: italic; }

/* end chapter epigraphs styles */

blockquote { font-size: calc(1.4rem - 0.5pt); }

blockquote p { width: 50%; }

blockquote footer { width: 50%;
                    font-size: 1.1rem;
                    text-align: right; }

ol, ul { width: 45%;
         -webkit-padding-start: 5%;
         -webkit-padding-end: 5%; }

li { padding: 0.5rem 0; }

figure { padding: 0;
         border: 0;
         font-size: 100%;
         font: inherit;
         vertical-align: baseline;
         max-width: 55%;
         -webkit-margin-start: 0;
         -webkit-margin-end: 0;
         margin: 0 0 3em 0; }

figcaption { float: right;
             clear: right;
             margin-right: -48%;
             margin-top: 0;
             margin-bottom: 0;
             font-size: 1.1rem;
             line-height: 1.6;
             vertical-align: baseline;
             position: relative;
             max-width: 40%; }

figure.fullwidth figcaption { margin-right: 24%; }

/* Links: replicate underline that clears descenders */
a:link, a:visited { color: inherit; }

a:link { text-decoration: none;
         background: -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#333, #333);
         background: linear-gradient(#fffff8, #fffff8), linear-gradient(#fffff8, #fffff8), linear-gradient(#333, #333);
         -webkit-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
         -moz-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
         background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
         background-repeat: no-repeat, no-repeat, repeat-x;
         text-shadow: 0.03em 0 #fffff8, -0.03em 0 #fffff8, 0 0.03em #fffff8, 0 -0.03em #fffff8, 0.06em 0 #fffff8, -0.06em 0 #fffff8, 0.09em 0 #fffff8, -0.09em 0 #fffff8, 0.12em 0 #fffff8, -0.12em 0 #fffff8, 0.15em 0 #fffff8, -0.15em 0 #fffff8;
         background-position: 0% 93%, 100% 93%, 0% 93%; }

@media screen and (-webkit-min-device-pixel-ratio: 0) { a:link { background-position-y: 87%, 87%, 87%; } }

a:link::selection { text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe, -0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe, -0.15em 0 #b4d5fe;
                    background: #b4d5fe; }

a:link::-moz-selection { text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe, -0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe, -0.15em 0 #b4d5fe;
                         background: #b4d5fe; }

/* Sidenotes, margin notes, figures, captions */
img { max-width: 100%; }

.sidenote, .marginnote { float: right;
                         clear: right;
                         margin-right: -60%;
                         width: 50%;
                         margin-top: 0;
                         margin-bottom: 0;
                         font-size: 1.1rem;
                         line-height: 1.3;
                         vertical-align: baseline;
                         position: relative; }

.table-caption { float:right;
                 clear:right;
                 margin-right: -60%;
                 width: 50%;
                 margin-top: 0;
                 margin-bottom: 0;
                 font-size: 1.0rem;
                 line-height: 1.6; }

.sidenote-number { counter-increment: sidenote-counter; }

.sidenote-number:after, .sidenote:before { content: counter(sidenote-counter) " ";
                                           font-family: et-book-roman-old-style;
                                           position: relative;
                                           vertical-align: baseline; }

.sidenote-number:after { content: counter(sidenote-counter);
                         font-size: 1rem;
                         top: -0.5rem;
                         left: 0.1rem; }

.sidenote:before { content: counter(sidenote-counter) " ";
                   top: -0.5rem; }

p, footer, table, div.table-wrapper-small, div.supertable-wrapper > p, div.booktabs-wrapper { width: 55%; }

div.fullwidth, table.fullwidth { width: 100%; }

div.table-wrapper { overflow-x: auto;
                    font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif; }

@media screen and (max-width: 760px) { p, footer { width: 90%; }
                                       pre.code { width: 87.5%; }
                                       ul { width: 85%; }
                                       figure { max-width: 90%; }
                                       figcaption, figure.fullwidth figcaption { margin-right: 0%;
                                                                                 max-width: none; }
                                       blockquote p, blockquote footer { width: 90%; }}

.sans { font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
        letter-spacing: .03em; }

.code { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
        font-size: 1.125rem;
        line-height: 1.6; }

h1 .code, h2 .code, h3 .code { font-size: 0.80em; }

.marginnote .code, .sidenote .code { font-size: 1rem; }

pre.code { width: 52.5%;
           padding-left: 2.5%;
           overflow-x: auto; }

.fullwidth { max-width: 90%;
             clear:both; }

span.newthought { font-variant: small-caps;
                  font-size: 1.2em; }

input.margin-toggle { display: none; }

label.sidenote-number { display: inline; }

label.margin-toggle:not(.sidenote-number) { display: none; }

@media (max-width: 760px) { label.margin-toggle:not(.sidenote-number) { display: inline; }
                            .sidenote, .marginnote { display: none; }
                            .margin-toggle:checked + .sidenote,
                            .margin-toggle:checked + .marginnote { display: block;
                                                                   float: left;
                                                                   left: 1rem;
                                                                   clear: both;
                                                                   width: 95%;
                                                                   margin: 1rem 2.5%;
                                                                   vertical-align: baseline;
                                                                   position: relative; }
                            label { cursor: pointer; }
                            pre.code { width: 90%;
                                       padding: 0; }
                            .table-caption { display: block;
                                             float: right;
                                             clear: both;
                                             width: 98%;
                                             margin-top: 1rem;
                                             margin-bottom: 0.5rem;
                                             margin-left: 1%;
                                             margin-right: 1%;
                                             vertical-align: baseline;
                                             position: relative; }
                            div.table-wrapper, table, table.booktabs { width: 85%; }
                            div.table-wrapper { border-right: 1px solid #efefef; }
                            img { width: 100%; } }

/* Course site shell */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: rgba(255, 255, 248, 0.97);
  border-bottom: 1px solid rgba(17, 17, 17, 0.16);
  box-shadow: 0 1px 0 rgba(17, 17, 17, 0.04);
}

.site-header-inner {
  width: 87.5%;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 12.5%;
}

.site-nav {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 1.55rem;
  padding: 0.9rem 0 0.8rem 0;
}

.site-nav a {
  display: inline-block;
  font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
  font-size: 1.08rem;
  line-height: 1.2;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  color: #111;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.25rem 0;
}

.site-nav a:hover,
.site-nav a:focus {
  color: #a00000;
}

.course-shell {
  position: relative;
}

.course-shell article > h1:first-child {
  margin-top: 0.35rem;
}

.course-notice {
  width: calc(100% - 40pt);
  box-sizing: border-box;
  margin: 0 0 1.4rem 0;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(107, 17, 17, 0.35);
  background: rgba(107, 17, 17, 0.06);
  color: #111;
  font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
  font-size: calc(0.96rem + 1pt);
  line-height: 1.35;
}

.course-notice a {
  color: #6b1111;
  font-weight: 600;
}

.course-rail {
  font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
  color: #111;
  font-size: calc(0.96rem + 1pt);
}

.course-rail h2 {
  font-style: normal;
  font-weight: 600;
  font-size: calc(1rem + 2pt);
  line-height: 1.2;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  margin: 0 0 0.35rem 0;
}

.rail-subheading {
  font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(1rem + 2pt);
  line-height: 1.2;
  color: #6b1111;
  letter-spacing: 0;
  text-transform: none;
  margin: 0.25rem 0 0.08rem 0;
}

.rail-section + .rail-section {
  margin-top: 0.5rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(17, 17, 17, 0.16);
}

.course-rail .rail-list {
  width: auto;
  list-style: none;
  margin: 0;
  -webkit-padding-start: 0;
  -webkit-padding-end: 0;
}

.course-rail .rail-list li {
  padding: 0.16rem 0 0.28rem 0;
  border-bottom: 1px solid rgba(17, 17, 17, 0.08);
}

.course-rail .rail-list li:last-child {
  border-bottom: 0;
}

.rail-label,
.rail-detail {
  display: block;
}

.rail-label {
  font-size: calc(0.88rem + 3pt);
  line-height: 1.25;
  font-weight: 600;
  color: #6b1111;
}

.rail-detail {
  font-size: calc(0.96rem + 1pt);
  line-height: 1.35;
  margin-top: 0.15rem;
}

.staff-list li {
  display: block;
  padding-top: 0.35rem;
  padding-bottom: 0.58rem;
  border-bottom: 0;
}

.staff-role {
  color: #6b1111;
  font-weight: 600;
  font-size: calc(0.96rem + 1pt);
  line-height: 1.35;
}

.staff-name {
  display: inline-block;
  color: #a00000;
  font-weight: 600;
  text-decoration: none;
  background: none;
  text-shadow: none;
  font-size: calc(0.96rem + 1pt);
  line-height: 1.35;
}

.staff-name:link,
.staff-name:visited {
  color: #a00000;
  background: none;
  text-shadow: none;
}

.staff-name:hover,
.staff-name:focus {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.12em;
}

.staff-list .rail-detail {
  display: block;
  margin-top: 0.1rem;
}

@media screen and (min-width: 1120px) {
  .course-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) calc(22.25rem + 30pt);
    column-gap: 1.75rem;
    align-items: start;
  }

  .course-shell article {
    min-width: 0;
  }

  .course-shell article > h1:first-child {
    white-space: nowrap;
    font-size: clamp(2.55rem, 3vw, calc(3.2rem + 3pt));
  }

  .course-shell article p,
  .course-shell article ol,
  .course-shell article ul,
  .course-shell article table,
  .course-shell article div.table-wrapper-small,
  .course-shell article div.supertable-wrapper > p,
  .course-shell article div.booktabs-wrapper,
  .course-shell article blockquote p,
  .course-shell article blockquote footer {
    width: calc(100% - 40pt);
  }

  .course-shell article th,
  .course-shell article td {
    font-size: calc(1rem - 0.5pt);
  }

  .course-shell article th {
    text-align: left;
  }

  .course-shell article ul,
  .course-shell article ol {
    box-sizing: border-box;
  }

  .course-shell article pre.code {
    width: 97.5%;
  }

  .course-rail {
    position: sticky;
    top: 5.05rem;
    max-height: calc(100vh - 5.75rem);
    overflow: hidden;
    padding: 0.9rem 10pt 0.9rem 1rem;
    margin-top: 1.25rem;
    border-left: 1px solid rgba(17, 17, 17, 0.18);
    background: #fffff8;
  }
}

@media screen and (max-width: 1119px) {
  body {
    padding-top: 5.45rem;
  }

  .site-header-inner {
    width: 87.5%;
    padding-left: 12.5%;
  }

  .course-shell {
    display: flex;
    flex-direction: column;
  }

  .site-nav {
    gap: 0.45rem 1.1rem;
    padding-right: 0.5rem;
  }

  .course-rail {
    order: -1;
    margin: 0.4rem 0 1.6rem 0;
    padding: 0.85rem 0;
    border-top: 1px solid rgba(17, 17, 17, 0.16);
    border-bottom: 1px solid rgba(17, 17, 17, 0.16);
  }

  .course-rail .rail-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 0.45rem 1rem;
  }
}

@media screen and (max-width: 760px) {
  body {
    padding-top: 6.25rem;
  }

  .site-header-inner {
    width: 90%;
    padding-left: 5%;
  }

  .site-nav {
    gap: 0.35rem 0.85rem;
    padding-top: 0.7rem;
    padding-bottom: 0.65rem;
  }

  .site-nav a {
    font-size: 0.92rem;
  }

  article {
    padding-top: 0.75rem;
  }
}
