/* This is the Underdark layout CSS. Its structure is based on SMACSS. See
https://smacss.com for more info. */

/* Colors */
/* 0, 120, 231 */

/* Complimentary */
/* 154, 96, 0 */
/* 0, 80, 154 */

/* Triad */
/* 15, 88, 154 */
/* 235, 35, 23 */

/* 167, 180, 18 */
/* 143, 154, 8 */

html {
  font-family: Arial, sans-serif;
}
body {
  color: #444;
  line-height: 1.5;
  background-color: #fff;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.25;
}
h1 {
  font-size: 1.75em;
}
h2 {
  font-size: 1.375em;
}
h3 {
  font-size: 1.125em;
}

blockquote {
  font-style: italic;
  margin-left: 2.5rem;
  margin-right: 2.5rem;
}

/* title */
abbr[title],
span[title] {
  cursor: help;
}
span[title] {
  text-decoration: underline dotted;
}

/* list */
ol,
ul {
  padding-left: 2.5rem;
}

/* description list */
dt {
  font-weight: bold;
}
dd {
  margin-left: 2.5rem;
}

/* monospace */
pre {
  color: #000;
  padding: 1rem;
  border: 1px solid rgba(0, 0, 0, .12);
  background-color: rgba(0, 0, 0, .02);
  white-space: pre-wrap;
}
table pre {
  margin: 0;
  padding: 0;
  border: 0;
  background-color: transparent;
}
table code {
  padding: 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
}
kbd {
  text-align: center;
  text-transform: uppercase;
  padding: .125rem .375rem;
  border-bottom: .125rem solid #ccc;
  border-radius: .25rem;
  background-color: #f2f2f2;
}

/* figure */
figure {
  display: inline-block;
  padding: .5rem;
  border: 1px solid #eee;
}
figcaption {
  font-size: .875em;
  font-style: italic;
}

/* table */
table {
  width: 100%;
}
table + form,
div.scrollable + form { /* assumes scrollable contains table */
  border-top: 0;
}
td a,
th a {
  display: inline-block; /* increase click area */
}

table ol,
table ul {
  padding-left: 1rem;
}

form table {
  margin: 0 0 .5rem;
}
form + form {
  border-top: 0;
}

/* form single div */
/* form > div:only-of-type > [type="submit"],
form fieldset > div:only-of-type > [type="submit"] {
  margin: 0;
} */
@media (min-width: 30rem) {
  form input ~ input,
  form input ~ select,
  form select ~ input,
  form select ~ select {
    margin-left: 1rem;
  }

  form div > label ~ button,
  form div > label ~ [type="button"],
  form div > label ~ [type="reset"],
  form div > label ~ [type="submit"],
  form div > label ~ .button {
    margin: .0625rem 0 .0625rem 1rem;
  }
  form > div:only-of-type, /* don't put the submit outside the form control block */
  form fieldset > div:only-of-type {
    margin: 0;
  }
  form > div:only-of-type > [type="submit"],
  form fieldset > div:only-of-type > [type="submit"] {
    min-width: auto; /* set default min-width, otherwise flexbox won't let the button grow when the value text is too long */
  }
}
form > div + [type="submit"],
form fieldset > div + [type="submit"] {
  margin-top: .5rem;
}

/*form > table {
  margin-top: .25rem;
}*/
th,
thead td,
tfoot td {
  padding: .5rem 1rem;
}

/* form */
form {
  padding: 1rem;
  border: 1px solid #e5e5e5;
  background-color: #f7f7f7;
  box-sizing: border-box;
}
td > form,
th > form,
body > header form,
body > footer form {
  padding: 0;
  border: 0;
  background-color: transparent;
}
body > header form {
  font-size: .75rem;
}
body > header form.login,
body > header form.search {
  margin-top: .5rem;
}

body > header [type="submit"] {
  min-width: 4rem;
}

td > form,
th > form,
section > footer > form {
  display: inline-block;
}

/* input */
input,
select,
textarea {
  line-height: 1.25;
  -webkit-transition: border-color .3s;
  transition: border-color .3s;
}

/* textarea */
textarea {
  max-width: 100%;
  height: 10rem;
  min-height: 4rem;
}
table textarea,
form > textarea {
  vertical-align: top;
}
form fieldset > textarea {
  vertical-align: baseline;
}

/* button */
button,
[type="button"],
[type="reset"],
[type="submit"],
.button {
  color: #000;
  min-width: 8rem;
  max-width: 100%;
}
a.button:hover {
  text-decoration: none;
}

/* button in table */
table button,
table [type="button"],
table [type="reset"],
table [type="submit"],
table .button {
  font-size: .875em;
  min-width: 4rem;
  line-height: 1rem;
  padding: .25rem .5rem;
  vertical-align: top;
}

/* form > button:not(:only-child),
form > [type="button"]:not(:only-child),
form > [type="reset"]:not(:only-child),
form > [type="submit"]:not(:only-child) {
  margin-top: .5rem;
}
form > button:only-child,
form > [type="button"]:only-child,
form > [type="reset"]:only-child,
form > [type="submit"]:only-child {
  margin-top: 0;
} */

form > div,
form fieldset > div {
  margin: 0 0 .5rem;
}

form div > input[type="number"] + span,
form div > input[type="range"] + span {
  min-width: 24%;
}

/* containers */
body > header > div,
body > footer > div > nav,
body > footer > div.copyright p,
body > :not(nav) + main section,
body > :not(nav) + main :not(section) > .magazine,
body > :not(nav) + main :not(section) > .newspaper {
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 5%;
}

/* body nav */
body > nav {
  padding: 0 5%;
}
body > nav > ul {
  list-style: none;
}

/* main */
main > section,
main :not(aside):not(nav) > section {
  padding: 2.5rem 5%;
  word-wrap: break-word;
}
/* main section header */
main section > header {
  margin-bottom: 2.5rem;
}
main section > header > h1 {
  margin-bottom: 0;
}
main section > header > h1 + p {
  font-size: 1.125em;
  margin-top: 0;
}
/* main section footer */
main section > footer {
  margin-top: 2.5rem;
}
main section > footer a {
  display: inline-block; /* for images */
  max-width: 100%; /* for images */
}
main section > footer > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* main sidebar */
main > aside,
main > nav {
  padding: 1rem 5%;
}
main > aside > ul,
main > nav > ul {
  padding: 0;
  list-style: none;
}
main aside > form,
main aside > nav,
main aside > section {
  margin-bottom: 1em;
  border: 1px solid #e2e2e2;
  background-color: #f4f4f4;
}
main aside > section,
main aside > nav {
  padding: 0 1em;
}
main aside > section > a,
main aside > nav > a {
  display: inline-block;
  margin-bottom: 1em;
}
main aside > section > form {
  margin: 1em 0;
  padding: 0;
  border: 0;
  background-color: transparent;
}

main aside form,
main nav form {
  padding-left: 1rem;
  padding-right: 1rem;
}
main aside form > div,
main aside form fieldset > div,
main nav form > div,
main nav form fieldset > div {
  display: block; /* cancel flexbox */
}
main aside [type="submit"],
main nav [type="submit"] {
  margin-left: 0;
}

main aside legend {
  color: inherit;
}

body > nav + main {
  padding: 0 5%;
}

/* magazine and newspaper */
main > .magazine,
main > .newspaper {
  padding-left: 5%;
  padding-right: 5%;
}
.magazine,
.newspaper {
  column-gap: 3rem;
  -moz-column-gap: 3rem;
  -webkit-column-gap: 3rem;
}
.magazine {
  columns: 20rem 2;
  -moz-columns: 20rem 2;
  -webkit-columns: 20rem 2;
}
.newspaper {
  columns: 12rem 3;
  -moz-columns: 12rem 3;
  -webkit-columns: 12rem 3;
}
.magazine > *,
.newspaper > * {
  display: inline-block;
  width: 100%;
}
.magazine > section,
.newspaper > section {
  padding: 0;
}
main section > header + .magazine > * > :first-child,
main section > header + .newspaper > * > :first-child {
  /*margin-top: 0;*/
}
main aside ~ div > .magazine,
main aside ~ div > .newspaper,
main > nav ~ div > .magazine,
main > nav ~ div > .newspaper {
  padding: 0 5%;
}

/* .pure-img */
main > section > img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* form */
form ol,
form ul {
  /*margin: 0 0 -.5rem 0;*/
  margin: .4375rem 0 .5rem;
  padding: 0;
  list-style: none;
}
form > div > p,
form fieldset > div > p {
  margin-top: .5625rem;
}

/* form li:not(:last-child) {
  margin-bottom: .25rem;
} */
/*form :not(fieldset) > ol > li,
form :not(fieldset) > ul > li {
  display: inline-block;
  margin-right: .5rem;
}*/
form li > input[type="checkbox"] + label,
form li > input[type="radio"] + label {
  display: inline;
}

form :not(label):not(li) > input:not([type]),
form :not(label):not(li) > input[type="text"],
form :not(label):not(li) > input[type="password"],
form :not(label):not(li) > input[type="email"],
form :not(label):not(li) > input[type="url"],
form :not(label):not(li) > input[type="date"],
form :not(label):not(li) > input[type="month"],
form :not(label):not(li) > input[type="time"],
form :not(label):not(li) > input[type="datetime"],
form :not(label):not(li) > input[type="datetime-local"],
form :not(label):not(li) > input[type="week"],
form :not(label):not(li) > input[type="number"],
form :not(label):not(li) > input[type="search"],
form :not(label):not(li) > input[type="tel"],
form :not(label):not(li) > input[type="color"],
form :not(label):not(li) > input[type="file"],
form :not(label):not(li) > select,
form :not(label):not(li) > textarea {
  width: 100%;
  min-width: 0;
}

form :not(label):not(li) > input[type="range"] {
  height: 1.5rem;
  margin-top: .4375rem;
}

/* body header and footer */
body > header,
body > footer {
  font-size: .9375rem;
}
body > header nav ul,
body > footer nav ul {
  padding: 0;
  list-style: none;
}
body > header nav ul:not(.external) > li > a,
body > header div.logo > a {
  text-decoration: none;
}

/* body header */
body > header {
  color: #fff;
  left: 0;
  top: 0;
  width: 100%;
  height: 4.25rem;
  border-bottom: .375rem solid #888;
  background-color: #333;
  overflow: hidden;
  z-index: 1;
  -webkit-tap-highlight-color: transparent;
}
body > header nav ul {
  margin: 0;
}

/* logo */
body > header > div.logo {
  /* the logo sometimes is a direct descendant of body header */
  padding: 0;
}
body > header div.logo > a {
  font-size: 2rem;
  font-weight: bold;
  display: inline-block; /* decrease click area width */
  line-height: 2rem;
  vertical-align: top;
}
body > header div.logo > a:only-child {
  margin: .75rem 0;
}
body > header div.logo > p {
  line-height: 1.5rem; /* round line-height */
  margin: 0;
}
@media screen and (max-width: 39.9375rem) {
  body > header div.logo + nav {
    padding-top: .375rem;
  }
}

/* menu toggle */
body > header button.toggle {
  text-indent: -9999rem;
  position: absolute;
  right: 5%;
  top: 1rem;
  width: 3rem;
  min-width: 0;
  height: 2.25rem;
  border-radius: .125rem;
  background: url('data:image/svg+xml,<svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="%23888" d="M1664 1344v128q0 26-19 45t-45 19h-1408q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1408q26 0 45 19t19 45zm0-512v128q0 26-19 45t-45 19h-1408q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1408q26 0 45 19t19 45zm0-512v128q0 26-19 45t-45 19h-1408q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1408q26 0 45 19t19 45z"/></svg>') center / 1rem no-repeat transparent;
}

/* body header form */
body > header > div > form > div {
  margin-bottom: 0;
}
@media screen and (min-width: 40rem) {
  body > header > div > form > div {
    display: inline-block;
    vertical-align: bottom;
  }
}

/* body header search */
@media screen and (max-width: 39.9375rem) {
  body > header > div > form + nav {
    margin-top: .75rem;
  }
}

body > header > div > form + nav > ul.external {
  margin: .875rem 0;
}

@media screen and (max-width: 39.9375rem) {
  body > header nav::after {
    /* clearfix */
    content: '';
    display: table;
    clear: right;
  }
}

/* external nav links */
body > header nav > ul.external {
  font-size: .875rem;
  float: right;
  margin: .375rem 0;
}
body > header nav > ul.external > li {
  display: inline-block;
}
body > header nav > ul.external > li:not(:last-child) {
  margin-right: 1em;
}
body > header nav > ul.external > li > a {
  color: #888;
}

/* site nav links */
body > header nav > ul:not(.external) {
  clear: right;
  line-height: 1.25rem; /* round line-height */
}
/* links and buttons */
body > header nav > ul:not(.external) a,
body > header nav > ul:not(.external) > li > button {
  width: 100%;
  padding: .375rem 1em;
  -webkit-transition: background-color .15s;
  transition: background-color .15s;
}
body > header nav > ul:not(.external) a {
  color: #fff;
  display: block;
  box-sizing: border-box;
}
body > header nav > ul:not(.external) a:focus,
body > header nav > ul:not(.external) > li > button:focus {
  outline: 0;
}
body > header nav > ul:not(.external) a > i.fa {
  /* equivalent of Font Awesome's fa-fw class */
  width: 1.28571429em;
  text-align: center;
}
body > header nav > ul:not(.external) [type="submit"] {
  margin-top: 0;
  width: 100%;
}
@media screen and (min-width: 30rem) {
  body > header nav > ul:not(.external) [type="submit"] {
    margin-left: 0; /* reset */
  }
}
@media screen and (min-width: 40rem) {
  body > header nav > ul:not(.external) [type="submit"] {
    position: static; /* reset body > header [type="submit"] */
    line-height: inherit;
    padding-top: .4375rem;
    vertical-align: baseline;
  }
}
/* top level links and buttons */
body > header nav > ul:not(.external) > li > a,
body > header nav > ul:not(.external) > li > button {
  border-radius: .125rem;
  background-color: #444;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .2) inset;
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0, 0.05)), to(rgba(0,0,0, 0.10)));
  background-image: -webkit-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
  background-image: -moz-linear-gradient(top, rgba(0,0,0, 0.05) 0%, rgba(0,0,0, 0.10));
  background-image: -o-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
  background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
}
body > header nav > ul:not(.external) > li > a:hover,
body > header nav > ul:not(.external) > li > a:focus,
body > header nav > ul:not(.external) > li > button:hover,
body > header nav > ul:not(.external) > li > button:focus {
  background-color: #555;
}
body > header nav > ul:not(.external) > li > button {
  color: inherit;
  min-width: 0;
  line-height: inherit;
  vertical-align: baseline;
}
body > header nav > ul:not(.external) > li > button::after {
  content: url('data:image/svg+xml,<svg fill="%23fff" width="8" height="20" viewBox="-2 -2 4 3" xmlns="http://www.w3.org/2000/svg"><polygon points="0 1, -2 -1, 2 -1"/></svg>');
  display: inline-block;
  width: .5rem;
  height: 1.25rem;
  margin-left: .25rem;
  vertical-align: top;
  opacity: .6;
}
body > header nav > ul:not(.external) > li.is-open > button {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background-color: #555;
}

/* sub links */
body > header nav > ul:not(.external) > li > ul {
  height: 0;
  overflow: hidden;
  -webkit-transition: height ease-in-out .2s;
  transition: height ease-in-out .2s;
}
body > header nav > ul:not(.external) > li > ul > li > a {
  background-color: #555;
}
body > header nav > ul:not(.external) > li > ul > li > a:hover,
body > header nav > ul:not(.external) > li > ul > li > a:focus {
  background-color: #666;
}

/* main */

/* inputs may have container divs */
body > header > div > form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
body > header > div > form select,
body > header > div > form textarea,
main aside form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
main aside form select,
main aside form textarea {
  padding-top: .375rem;
  padding-bottom: .375rem;
}
body > header > div > form > [type="submit"],
main aside form > [type="submit"] {
  line-height: normal;
  padding-top: .375rem;
  padding-bottom: .375rem;
}

main > .magazine form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
main > .magazine form select,
main > .magazine form label,
main > .magazine form textarea,
main > .newspaper form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
main > .newspaper form select,
main > .newspaper form label,
main > .newspaper form textarea,
main aside form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
main aside form select,
main aside form label,
main aside form textarea,
main > nav form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
main > nav form select,
main > nav form label,
main > nav form textarea,
body > header form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
body > header form select,
body > header form label,
body > header form textarea {
  display: block;
  width: 100%;
  margin: .25rem 0;
}

/* body group */
body > div.group {
  display: flex;
}
body > div.group > nav {
  color: #fff;
  background-color: #444;
}
body > div.group > nav a {
  color: #fff;
  text-decoration: none;
  display: block;
  padding: 1rem;
  -webkit-transition: background-color 0.2s;
  transition: background-color 0.2s;
}
body > div.group > nav a:hover {
  background-color: rgba(255, 255, 255, .1);
}
body > div.group > nav > h2 {
  text-align: center;
  margin: 0;
}
body > div.group > nav > ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
body > div.group > nav > ul > li > a {
  border-bottom: 1px solid rgba(0, 0, 0, .5);
}
body > div.group > main {
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: 0 2rem;
}

/* body footer */
body > footer {
  background-color: #222;
}
body > footer > div {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
body > footer nav {
  padding-left: 5%;
  padding-right: 5%;
}
body > footer nav:not(.magazine):not(.newspaper) > ul {
  text-align: center;
}
body > footer nav:not(.magazine):not(.newspaper) > ul > li {
  display: inline-block;
  margin: .25rem 1rem;
}
body > footer nav > ul.external > li > a:not(:hover) {
  color: #777;
}
/* copyright */
body > footer > div.copyright {
  color: #666;
  padding: .5rem 0;
  background-color: #333;
}

@media screen and (min-width: 30rem) {
  form fieldset > div > textarea {
    min-width: 62%;
    max-width: 62%;
  }
  form > div > output,
  form > div > span,
  form fieldset > div > output,
  form fieldset > div > span {
    margin-top: .4375rem;
    white-space: nowrap;
  }
  form > div > label + span:last-child,
  form fieldset > div > label + span:last-child {
    margin-top: 0;
  }

  form div > label + span > input[type="text"],
  form div > label + span > input[type="password"],
  form div > label + span > input[type="email"],
  form div > label + span > input[type="url"],
  form div > label + span > input[type="date"],
  form div > label + span > input[type="month"],
  form div > label + span > input[type="time"],
  form div > label + span > input[type="datetime"],
  form div > label + span > input[type="datetime-local"],
  form div > label + span > input[type="week"],
  form div > label + span > input[type="number"],
  form div > label + span > input[type="search"],
  form div > label + span > input[type="tel"],
  form div > label + span > input[type="color"],
  form div > label + span > input:not([type]),
  form div > label + span > select,
  form div > label + span > textarea {
    vertical-align: inherit;
  }

  form > div > input + span,
  form > div > select + span,
  form > div > textarea + span,
  form > div > output + span,
  form fieldset > div > input + span,
  form fieldset > div > select + span,
  form fieldset > div > textarea + span,
  form fieldset > div > output + span {
    margin-left: .5rem;
  }
  /* first span after label */
  form > div > label + span:not(:last-child),
  form fieldset > div > label + span:not(:last-child) {
    margin-right: .5rem;
  }

  form > div > span > label,
  form > div > label + span > output,
  form fieldset > div > span > label,
  form fieldset > div > label + span > output {
    display: inline-block;
    margin-top: .4375rem;
  }
  form > div > span > input,
  form > div > span > select,
  form > div > span > textarea,
  form > div > label + span > input,
  form > div > label + span > select,
  form > div > label + span > textarea {
    width: auto;
  }

  form > div,
  form fieldset > div {
    display: flex;
    display: -webkit-flex;
    align-items: flex-start;
    -webkit-align-items: flex-start;
  }
  form > div > label:first-child,
  form fieldset > div > label:first-child {
    margin: .4375rem 0 0;
    flex: 0 0 38%;
    -webkit-flex: 0 0 38%;
  }
  form > div > input[type="file"],
  form fieldset > div > input[type="file"] {
    margin-top: .375em;
  }
  form ol,
  form ul,
  form input:not([type]),
  form input[type="text"],
  form input[type="password"],
  form input[type="email"],
  form input[type="url"],
  form input[type="date"],
  form input[type="month"],
  form input[type="time"],
  form input[type="datetime"],
  form input[type="datetime-local"],
  form input[type="week"],
  form input[type="number"],
  form input[type="search"],
  form input[type="tel"],
  form input[type="color"],
  form input[type="file"],
  form select,
  form textarea,
  form > div > label + div,
  form fieldset > div > label + div {
    flex: 0 1 62%;
    -webkit-flex: 0 1 62%;
  }
  form > div + button,
  form > [type="submit"],
  form fieldset + button,
  form > p,
  form fieldset > p,
  form > div > label:only-child,
  form > div > span:only-child,
  form fieldset > div > label:only-child,
  form fieldset > div > span:only-child {
    margin-left: 38%;
  }
  table [type="submit"],
  form > [type="submit"]:only-child,
  form > :not(div):not(fieldset) + [type="submit"] {
    margin-left: 0; /* reset */
  }
}

@media screen and (max-width: 39.9375rem) {
  body > header {
    position: absolute;
    -webkit-transition: height ease-in-out .3s;
    transition: height ease-in-out .3s;
  }
  body > header > div {
    padding-top: .375rem;
    padding-bottom: .375rem;
  }
  body > header nav > ul:not(.external) > li:not(:last-child) {
    margin-bottom: .1875rem;
  }

  main {
    padding-top: 4.625rem;
  }
}
@media screen and (min-width: 40rem) {
  h1 {
    font-size: 2.375em;
  }

  body > nav {
    float: left;
    padding-right: 0;
  }
  body > nav + main {
    margin-left: 20%;
  }

  main > aside,
  main > nav,
  section > aside {
    float: left;
    width: 24%;
    padding-left: 3%;
  }
/*   body > :not(header) :not(main) > aside,
  body > :not(header) :not(main) > nav {
    padding-right: 3%;
  } */
  main > aside,
  main > nav {
    padding-right: 0;
  }
  main section > aside {
    padding-left: 3%;
    padding-right: 0;
    padding-bottom: 0;
  }

  main > nav form input,
  main > nav form button:not([type]),
  main > nav form [type="submit"] {
    min-width: 0;
    max-width: 100%;
  }
  main aside ~ div,
  main > nav ~ div,
  main > nav ~ section {
    margin-left: 27%
  }
/*     main aside ~ div > section,
  main > nav ~ div > section {
    padding-left: 0;
  } */

/*     main aside ~ div > .magazine,
  main aside ~ div > .newspaper,
  main > nav ~ div > .magazine,
  main > nav ~ div > .newspaper {
    padding-left: 0;
  } */

  form > div > textarea {
    /* only give textarea min width, since they can be resized */
    min-width: 62%;
  }

  form fieldset > div > .input-1-2 {
      width: 38%;
      margin-right: 1%;
  }
  form fieldset > div > .input-1-2:last-child {
      margin-right: 0;
  }

  form fieldset > div > [type="submit"] {
    margin-left: 38%;
  }

  body > header {
    min-height: 8rem; /* in case JS sets height to 0 */
    max-height: 8rem;
  }
  body > header div.logo {
    float: left;
    margin-top: 2.25rem;
  }

  body > header > div > form {
    float: right;
    margin-bottom: 1.625rem;
  }
  body > header [type="submit"] {
    /* position: relative; */
    /* top: 1.625rem; */
    margin-left: 0 !important; /* TODO: fix weight of :not(aside):not(nav):not(.magazine):not(.newspaper) > :not(td):not(th) > form > div + [type="submit"] */
    margin-bottom: .3125rem;
  }

  body > header nav {
    clear: right; /* in case float right previous form */
  }
  body > header nav > ul.external {
    margin: 2.25rem 0;
    line-height: 1.5rem; /* round line-height */
  }
  body > header > div > :not(form) + nav > ul:not(.external):only-child {
    clear: left; /* clear logo */
    padding-top: .25rem;
  }
  body > header > div > :not(form) + nav > ul.external:only-child {
    margin: 3rem 0;
  }

  body > header nav > ul:not(.external) {
    text-align: right;
  }
  body > header nav > ul:not(.external) > li {
    text-align: left;
    display: inline-block;
  }

  body > header > div > form + nav > ul:not(.external):only-child {
    margin-top: 2rem;
  }
  body > header nav > ul:not(.external) > li > ul {
    position: absolute;
  }
  body > header nav > ul:not(.external) > li > a,
  body > header nav > ul:not(.external) > li > button {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }
  body > header nav > ul ul {
    border-bottom: .375rem solid #888;
  }

  body > header button.toggle {
    display: none;
  }

  body > footer {
    clear: both;
  }
}

@media screen and (min-width: 60rem) {
  form {
    padding-left: 2rem;
    padding-right: 2rem;
  }

/*   main > section,
  main :not(aside):not(nav) > section,
  main aside ~ div > .magazine, main aside ~ div > .newspaper, main > nav ~ div > .magazine, main > nav ~ div > .newspaper {
    padding-left: 6%;
    padding-right: 6%;
  } */
  main > aside {
    padding-right: 0;
  }
  .magazine,
  .newspaper {
    column-gap: 4rem;
    -moz-column-gap: 4rem;
    -webkit-column-gap: 4rem;
  }
}

/* trimmable - useful for e.g. long key codes that do not get trimmed somewhere else */
td.trimmable {
  max-width: 4rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

td.data {
  word-break: break-all;
}
