body, textarea {
  background-color: #fff;
  color: #00466d;
  font-family: 'Open Sans Light', sans-serif;
  display: flex;
  margin: 0;
}
h1, h2, h3, h4, h5 {
  font-family: 'Oswald', sans-serif;
}
h1 {
  text-transform: uppercase;
  font-size: 2.5rem;
  margin: 0;
  color: #00a4eb;
}
h2 {
  color: #00466d;
}
p, ol li {
  margin: 0;
  padding: 0;
  font-size: 1.2rem;
  text-align: justify;
}
a {
  color: #00466d;
}
a:hover {
  color: #00a4eb;
}
code {
  font-family: 'Space Mono', monospace;
}

aside {
  flex: 1;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background-color: #00a4eb;
}
aside nav {
  font-family: 'Oswald';
  text-align: right;
  margin-top: 2rem;
}
aside h1 {
  color: #fff;
  text-align: right;
}
aside ul {
  text-transform: uppercase;
  list-style: none;
  font-size: 1.2rem;
  color: #fff;
  padding: 0 0.5rem;
}
aside ul a {
  text-decoration: none;
  line-height: 1.5rem;
  letter-spacing: 1.2px;
  color: #fff;
  font-size: 1.2rem;
}
aside li a{
}
aside li a:hover{
  color: #00466d;
}
aside ul ul {
  display: none;
}
.toc-section-number::after,
.header-section-number::after {
  content: '.';
}

.newsletter-box {
  background-color: #00466d;
  color: #fff;
  padding: 0.5rem;
  box-shadow: 0px 1px 0px 1px rgba(0,0,0,0.1);
  border: 0.2rem solid #fff;
  margin: 1rem 0 !important;
}
.text-container .newsletter-box {
  border: none;
  max-width: 768px;
  margin: 5rem auto !important;
}
.newsletter-box-form.submitted {
  display: none;
}
.newsletter-box h3 {
  margin: 0;
}
.newsletter-language-container {
  margin: 0.5rem 0;
}
.newsletter-language-container label {
  margin: 0 0.2rem;
}
.newsletter-email-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin: 0.2rem 0;
}
.newsletter-email {
  flex: 1;
  font-size: 2rem;
  font-family: 'Oswald';
  background-color: #fff;
  border: none;
  padding: 0.2rem 0.4rem;
  max-width: calc(100% - 0.8rem);
}
.newsletter-submit {
  font-family: 'Oswald';
  font-size: 1rem;
  background-color: #00a4eb;
  color: #fff;
  border: none;
  cursor: pointer;
}
.newsletter-submit:hover {
  text-decoration: underline;
}
.newsletter-box p {
  font-size: 0.8rem;
}
.newsletter-box p a {
  color: #fff;
}
.newsletter-box p a:hover {
  color: #eee;
}

.newsletter-box-confirmation {
  display: none;
}
.newsletter-box-form.submitted + .newsletter-box-confirmation {
  display: block;
  animation: slide-in .1s ease-in;
}

.aside-bottom {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
}
.filter-headline {
  margin-bottom: 0;
}
.filter-container {
  display: flex;
  justify-content: flex-start;
  margin: 0 0 0.4rem;
}
.filter-container .tag {
  cursor: pointer;
  transition: color 0.1s, background-color 0.1s;
  margin: 0.1rem;
}
.filter-container .tag:hover {
  box-shadow: 0px 1px 0px 1px rgba(255, 255, 255, 0.1);
  opacity: 0.95;
}
.filter-container .tag::before {
  content: '✔';
  line-height: 0.8rem;
  font-size: 1.2rem;
  margin-right: 0.2rem;
  transition: content 0.1s;
}
.filter-container .tag.hidden::before {
  content: '✗';
}
.filter-container .tag:first-of-type {
  margin-left: 0;
}
.filter-container .tag.hidden {
  background-color: #ccc;
  color: #000 !important;
  box-shadow: none;
}
footer.about {
  display: flex;
  max-width: 768px;
  margin: 1rem auto;
}
footer.about div.logo {
  flex: 1;
  margin-right: 0.5rem;
}
footer.about div.logo img {
  width: 100%;
}
footer.about div.text {
  flex: 3;
}
footer.about p {
  font-size: 0.8rem;
  text-align: left;
  display: inline;
}
footer.about a:hover{
  color: #00466d;
}



.text-container {
  flex: 3;
  height: calc(100vh - 2rem);
  overflow-y: scroll;
  margin: 0;
  padding: 1rem;
}
.text-container > * {
  margin: 0 2rem;
}
.text-container > p {
  margin: 2rem;
}
section h1 {
  margin-bottom: 0.5rem;
}
section.level2 {
  margin-bottom: 1rem;
  padding: 1rem 1.5rem;
  border-radius: 0.2rem;
  transition: background-color 0.1s;
}
section.level2.selected {
  background-color: rgba(0, 164, 235, 0.15) !important;
}
section.level2 a{
  color: #000;
}
section.level2 a:hover{
  color: #00466d;
}
section.level2:hover {
  background-color: rgba(0, 164, 235, 0.1);
}
section.level2 h2 a {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  margin-top: 0;
  text-decoration: none;
  color: #00466d;
}
section.level2 h2 a .header-section-number {
  margin-right: 0.5rem;
}
section.level2 h2 a .tag {
  margin-right: 0.5rem;
}

code {
  font-size: 0.8rem;
  color: white;
  border-radius: 0.2rem;
  padding: 0.1rem 0.2rem;
  margin: 0.5rem 0;
  text-transform: lowercase;
  white-space: nowrap !important;
  user-select: none;
  box-shadow: 0px 1px 0px 1px rgba(0,0,0,0.1);
}
.tag.must {
  background-color: #060;
}
.tag.must-not {
  background-color: #a00;
}
.tag.recommended {
  background-color: #2c2;
}
.tag.not-recommended {
  background-color: #d46;
}
.tag.discuss {
  background-color: #ea5;
}

.section-controls {
  font-size: 0.8rem;
  font-family: 'Space Mono', monospace;
  margin: 0.5rem 0;
}
.toggle-button {
  font-family: 'Space Mono', monospace;
  color: #000;
  background-color: transparent;
  border: none;
  text-transform: lowercase;
  text-decoration: underline;
  white-space: nowrap !important;
  user-select: none;
  cursor: pointer;
}

section.level2:not(.open) blockquote {
  display: none;
}
section.level2 blockquote {
  margin: 0;
  margin-left: 1rem;
  padding-left: 0.5rem;
  border-left: 0.5rem solid #ccc;
  animation: slide-in .1s ease-in;
}
section.level2 blockquote:first-of-type {
  margin-top: 0.5rem;
}
section.level2 blockquote:first-of-type::before {
  content: 'Descriptions';
  font-weight: bold;
}
section.level2 blockquote:last-of-type {
  margin-bottom: 0.5rem;
}
code.close {
  font-size: 0.8rem;
  border-radius: 0.2rem;
  padding: 0.1rem 0.2rem;
  margin: 0;
  text-transform: lowercase;
  white-space: nowrap;
  background-color: #ccc;
  color: #000;
  cursor: pointer;
}
section.level2 blockquote p {
  font-size: 1rem;
  margin: 0.5rem 0;
}


@media screen and (max-width: 1024px) {
  body {
    display: block;
  }
  aside nav,
  aside h1 {
    text-align: inherit;
  }
  .text-container {
    height: auto;
    overflow: auto;
    padding: 1rem;
  }
  .filter-container {
    flex-wrap: wrap;
  }
}

@media print {
  body {
    display: block;
  }
  h1, h2, h3, h4, h5, p, ol li, ul li, ul li a {
    color: #000;
    text-decoration: none;
  }
  p, ol li, ul li, ul li a {
    font-family: 'Crimson Text', serif;
  }
  aside  {
    background-color: #fff;
  }
  aside ul a{
    line-height: 1.5rem;
    width: 100%;
  }
  aside ul a::after {
    content: ' page ' target-counter(attr(href), page);
    font-size: 80%;
    font-style: italic;
  }
  .newsletter-box {
    display: none;
  }
  code {
    color: #000;
    border: 1px solid #000;
  }
  .tag {
    border: none;
  }
  ul .tag {
    margin: 0;
  }
  .tag.must {
    box-shadow: 0px 1px 0px 1px #060;
    color: #060;
  }
  .tag.must-not {
    box-shadow: 0px 1px 0px 1px #a00;
    color: #a00;
  }
  .tag.recommended {
    box-shadow: 0px 1px 0px 1px #2c2;
    color: #2c2;
  }
  .tag.not-recommended {
    box-shadow: 0px 1px 0px 1px #d46;
    color: #d46;
  }
  .tag.discuss {
    box-shadow: 0px 1px 0px 1px #ea5;
    color: #ea5;
  }
  blockquote,
  blockquote * {
    font-size: 90%;
    color: #555;
    line-height: 0.9rem;
  }
  aside nav,
  aside h1 {
    text-align: inherit;
  }
  aside h1 {
    color: #000;
  }
  aside ul {
    list-style: none;
    font-size: 90%;
    text-transform: none;
  }
  aside ul ul {
    display: block;
  }
  aside {
    page-break-after: always;
  }
  .aside-bottom {
    display: none;
  }
  .text-container {
    height: auto;
    overflow-y: auto;
    padding: 1rem;
  }
  .text-container > h1,
  .text-container > p,
  section {
    margin: inherit 0 !important;
    padding: inherit 0 !important;
  }
  strong {
    line-height: 1;
  }
  blockquote {
    display: block !important;
    animation: none !important;
  }
  .section-controls {
    display: none;
  }
  .text-container p a[href]::after {
    content: " " attr(href);
    font-size: 95%;
    font-style: italic;
    color: #0B0080;
  }
  .download-pdf {
    display: none !important;
  }
}

@page {
  @bottom-center{
    content: counter(page);
    font-family: 'Crimson Text', serif;
    font-size: 80%;
  }
}

@keyframes slide-in {
      0% { opacity: 0; transform: translateY(-10%); }
    100% { opacity: 1; transform: translateY(0); }
}
