* {
  box-sizing: border-box;
  font-family: Optima, Candara, "Noto Sans", source-sans-pro, sans-serif;
}

:root {
  --desktop-font-size: 1rem;
  --mobile-font-size: 1.5rem;
  --text-color: #2d2d2d;
  --link-color: #9f0f44;
  --link-color-alt: #9f0f44;
  --primary-color: #9f0f44;
  --secondary-color: #006699;
}

body {
  color: var(--text-color);
  margin: 0 auto;
  max-width: 75ch;
  padding-top: 5vmin;
  font-size: var(--desktop-font-size);
}

p,
blockquote,
dl,
img,
figure {
  margin: 2rem 0;
}
h1 {
  font-size: 200%;
  font-weight: bold;
  line-height: 1.2;
  margin: 2rem 0;
}
h2 {
  font-size: 150%;
  font-weight: bold;
  line-height: 1.2;
  margin: 2rem 0;
}
h3 {
  font-size: 120%;
  font-weight: bold;
  line-height: 1.2;
  margin: 2rem 0;
}
h4 {
  font-size: 100%;
  font-weight: bold;
  line-height: 1.2;
  margin: 2rem 0;
}

header {
  margin: 0 auto 3rem;
  padding-bottom: 2rem;
  border-bottom: 6px var(--secondary-color) solid;
}
header a,
header a:visited,
header a:hover,
header a:focus {
  color: var(--text-color);
  display: flexbox;
  flex-direction: row;
  text-decoration: none;
}
header h1 {
  margin: 0;
  padding-left: 1rem;
  line-height: 1;
  display: inline;
  vertical-align: bottom;
}
header img {
  margin: 0;
  display: inline;
  height: 14vmin;
  width: 14vmin;
  vertical-align: middle;
}
footer {
  margin: 3rem auto 3rem;
  padding: 1rem 0.5rem;
  border-top: 4px var(--secondary-color) solid;
  text-align: right;
}
footer a,
footer a:visited,
footer a:hover,
footer a:focus {
  color: var(--text-color);
}

a,
a:visited {
  color: var(--link-color);
}
a:hover,
a:focus {
  color: var(--link-color-alt);
}
small {
  font-size: 80%;
}

blockquote,
q {
  border-left: 10px solid var(--primary-color);
  display: block;
  font-family: ui-rounded, "Hiragino Maru Gothic ProN", Quicksand, Comfortaa,
    Manjari, "Arial Rounded MT", "Arial Rounded MT Bold", Calibri,
    source-sans-pro, sans-serif;
  padding: 1rem;
}
blockquote p:first-child {
  margin-top: 0;
}
blockquote p:last-child {
  margin-bottom: 0;
}
cite {
  font-family: ui-rounded, "Hiragino Maru Gothic ProN", Quicksand, Comfortaa,
    Manjari, "Arial Rounded MT", "Arial Rounded MT Bold", Calibri,
    source-sans-pro, sans-serif;
  font-family: Superclarendon, "Bookman Old Style", "URW Bookman",
    "URW Bookman L", "Georgia Pro", Georgia, serif;
  font-style: italic;
  font-weight: bold;
  margin-top: 1rem;
}

kbd,
code,
samp,
pre,
var {
  overflow: auto;
}

hr {
  background: var(--text-color);
  border: 0;
  height: 1px;
  margin: 4rem 0;
}

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

figure {
  display: inline-block;
  padding: 1rem;
  width: 100%;
}
figure img {
  margin: 0 auto;
}
figure figcaption {
  font-size: 80%;
  margin-top: 0.5rem;
  text-align: center;
}

ul,
ol {
  margin: 2rem 0;
  padding: 0 0 0 2rem;
}
ul li,
ol li {
  margin-bottom: 1rem;
}
li > ul,
li > ol {
  margin: 0.25rem 0 0.5rem;
  padding: 0 0 0 2rem;
}
li > ul li,
li > ol li {
  margin-bottom: 0.5rem;
}

dl dd {
  padding-left: 2rem;
}

sup {
  font-size: 80%;
  vertical-align: top;
}

/* Mobile Styling */
@media (max-width: 992px) {
  body {
    font-size: var(--mobile-font-size);
    padding-top: 4vmin;
    max-width: 92vmin;
  }
  table {
    table-layout: auto;
  }
}
