/* ==========================================================================
   Styling and layout for all media
   ========================================================================== */
/* corrects block display not defined in IE8-9 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
  display: block;
}

/* corrects `<summary>` not showing as clickable */
summary {
  cursor: pointer;
}

/* addresses styling for `hidden` attribute not present in IE8-9 */
[hidden] {
  display: none;
}

/* Clearfix
   ========================================================================== */
/* http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before, .clearfix:after,
header:before,
header:after,
nav ul:before,
nav ul:after,
.container:before,
.container:after,
footer:before,
footer:after,
#paginator:before,
#paginator:after {
  content: "";
  display: table;
}
.clearfix:after,
header:after,
nav ul:after,
.container:after,
footer:after,
#paginator:after {
  clear: both;
}

/* ==========================================================================
   Styling and layout for screen media (mobile first)
   ========================================================================== */
@media screen {
  /* Layout
     ========================================================================== */
  html {
    /* always force scrollbar padding so we don't get 'jumping' */
    overflow-y: scroll;
    /* prevents iOS text size adjust after orientation change, without disabling user zoom */
    -webkit-text-size-adjust: 100%;
    /* as above, for Windows Phone */
    -ms-text-size-adjust: 100%;
  }

  body {
    margin: 0;
    background: #f7f7f7;
  }

  .wrapper {
    border-bottom: solid 1px #cccccc;
    padding-top: 2em;
    background: white;
  }

  header,
  .container,
  footer {
    margin: 0 auto;
    /* 960px / 1024px */
    width: 93.75%;
    max-width: 86em;
  }

  header {
    padding: 1em 0;
  }
  header h1 {
    margin: 0;
    font-size: 4em;
  }
  header h3 {
    /* ?px margin top */
    margin: .2em 0 0;
  }

  nav {
    border-top: solid 1px #983360;
    border-bottom: solid 1px #983360;
    background-color: #7f0039;
    /* Safari5.1+, Chrome10+ */
    background-image: -webkit-linear-gradient(#7f0039, black);
    /* Firefox3.6 */
    background-image: -moz-linear-gradient(#7f0039, black);
    /* Opera11.10+ */
    background-image: -o-linear-gradient(#7f0039, black);
    /* CSS3 Compliant */
    background-image: linear-gradient(#7f0039, #000000);
  }
  nav h1 {
    display: none;
  }
  nav ul {
    margin: 0 auto;
    padding: 0;
    max-width: 86em;
    list-style: none;
    list-style-image: none;
  }
  nav li {
    margin: 0;
    border-bottom: solid 1px #983360;
  }
  nav li:last-child {
    border-bottom: 0;
  }
  nav li:hover, nav li.active {
    background-color: #b20050;
    /* Safari5.1+, Chrome10+ */
    background-image: -webkit-linear-gradient(#b20050, #1a1a1a);
    /* Firefox3.6 */
    background-image: -moz-linear-gradient(#b20050, #1a1a1a);
    /* Opera11.10+ */
    background-image: -o-linear-gradient(#b20050, #1a1a1a);
    /* CSS3 Compliant */
    background-image: linear-gradient(#b20050, #1a1a1a);
  }
  nav li:active {
    background-color: black;
    /* Safari5.1+, Chrome10+ */
    background-image: -webkit-linear-gradient(black, #7f0039);
    /* Firefox3.6 */
    background-image: -moz-linear-gradient(black, #7f0039);
    /* Opera11.10+ */
    background-image: -o-linear-gradient(black, #7f0039);
    /* CSS3 Compliant */
    background-image: linear-gradient(#000000, #7f0039);
  }
  nav a {
    text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.25);
    display: block;
    padding: .5em 3.125%;
    color: #e5ccd7;
  }

  [role="article"] {
    margin-bottom: 2em;
  }

  [role="complementary"] {
    margin-bottom: 2em;
    padding-top: 2em;
    border-top: dashed 2px #cccccc;
  }

  [role="search"] p {
    margin-top: 0;
  }

  footer {
    padding: .5em 0;
  }

  /* Links
     ========================================================================== */
  a {
    position: relative;
    text-decoration: none;
    color: #983360;
    -webkit-tap-highlight-color: rgba(50, 0, 22, 0.5);
  }
  a:hover, a:active {
    /* improves readability when focused and also mouse hovered in all browsers */
    outline: 0;
  }
  a:active {
    top: 1px;
  }
  a:focus {
    outline: thin dotted #320016;
  }
  header a {
    color: #540025;
    -moz-border-radius: 0.11905em;
    border-radius: 0.11905em;
  }
  header a:hover, header a:active {
    color: #a10047;
  }

  [role="main"] a:hover, [role="main"] a:active,
  [role="complementary"] a:hover,
  [role="complementary"] a:active,
  footer a:hover,
  footer a:active {
    text-decoration: underline;
    color: #320016;
  }

  [role="main"] h1 a {
    color: #540025;
    -moz-border-radius: 0.11905em;
    border-radius: 0.11905em;
  }
  [role="main"] h1 a:hover, [role="main"] h1 a:active {
    text-decoration: none;
    color: #a10047;
  }

  /* Typography
     ========================================================================== */
  body {
    font-family: Georgia, serif;
    /* 14px / 16px */
    font-size: 0.875em;
    line-height: 1.5;
    color: #333333;
  }

  nav {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
  }

  h1, h2 {
    font-family: Pacifico, serif;
    font-weight: normal;
  }

  h1 {
    /* 28px */
    font-size: 2em;
    /* 34px / 28px */
    line-height: 1.21428571428571;
    letter-spacing: -1px;
    /* 28px margin top/bottom */
    margin: .66666666666667em 0;
  }
  h1:first-child {
    margin-top: 0;
  }

  h2 {
    /* 21px */
    font-size: 1.5em;
    /* 28px / 21px */
    line-height: 1.33333333333333;
    /* 21px margin top/bottom */
    margin: .75em 0;
  }

  h3 {
    /* 18px */
    font-size: 1.28571428571429em;
    /* 26px / 18px */
    line-height: 1.44444444444444;
    font-style: italic;
    /* 16px margin top/bottom */
    margin: .76190476190476em 0;
  }

  h4 {
    /* 16px */
    font-size: 1.14285714285714em;
    margin: 0;
  }

  /* addresses style set to `bolder` in Firefox4+, Safari5, and Chrome */
  b,
  strong {
    font-weight: bold;
  }

  address {
    margin: 1em 0;
  }

  blockquote {
    /* 16px */
    font-size: 1.14285714285714em;
    font-style: italic;
    margin: .875em 0 .875em 0;
    border-left: 3px solid #cccccc;
    padding: 0 0 0 .875em;
  }

  /* sets consistent quote types */
  q {
    quotes: "\201C" "\201D" "\2018" "\2019";
  }

  /* addresses styling not present in Safari5 and Chrome */
  dfn {
    font-style: italic;
  }

  /* addresses styling not present in IE8-9, Safari5, Chrome */
  abbr[title],
  dfn[title] {
    border-bottom: dotted 1px;
    cursor: help;
  }

  mark,
  var {
    padding: 0 .21428571428571em;
    -moz-border-radius: 0.21429em;
    border-radius: 0.21429em;
    color: #333333;
    background: #fff6d3;
  }

  pre,
  code,
  kbd,
  samp {
    font-family: Consolas, "Lucida Console", Monaco, monospace;
  }

  code,
  kbd,
  samp {
    /* 13px */
    font-size: .92857142857143em;
    border: 1px solid #e3e3e3;
    padding: 0 .23076923076923em;
    -moz-border-radius: 0.23077em;
    border-radius: 0.23077em;
    background: #f7f7f7;
  }

  pre {
    /* 13px */
    font-size: .92857142857143em;
    overflow-x: auto;
    border: 1px solid #e3e3e3;
    padding: 1em;
    -moz-border-radius: 0.35714em;
    border-radius: 0.35714em;
    background: #f7f7f7;
    tab-size: 4;
  }
  pre code {
    /* 13px */
    font-size: 1em;
    border: 0;
    background: none;
  }

  /* prevents `<sub>` and `<sup>` affecting line height in all browsers */
  sub,
  sup {
    /* 12px */
    font-size: .85714285714286em;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }

  sup {
    top: -0.5em;
  }

  sub {
    bottom: -0.25em;
  }

  small,
  figcaption,
  tfoot,
  .footnote {
    /* 12px */
    font-size: .85714285714286em;
  }

  figcaption,
  tfoot,
  .footnote {
    color: #888888;
  }

  figcaption {
    margin-top: .33333333333333em;
    font-style: italic;
  }

  /* Support for non-latin languages (can be removed if not required)
     ========================================================================== */
  html[lang="ja-jp"] {
    font-family: "Hiragino Kaku Gothic Pro", Meiryo, sans-serif;
  }

  html[lang="ko-kr"] {
    font-family: GulimChe, Gulim, sans-serif;
  }

  html[lang="zh-cn"] {
    font-family: SimHei, sans-serif;
  }

  html[lang="zh-tw"] {
    font-family: PMingLiU, sans-serif;
  }

  /* Embedded content
     ========================================================================== */
  /* corrects `inline-block` display not defined in IE8-9, Firefox3 */
  audio,
  canvas,
  video {
    display: inline-block;
  }

  /* make embedded elements responsive */
  img,
  embed,
  object,
  video {
    max-width: 100%;
    height: auto;
  }

  img {
    /* removes border when inside `<a>` element in IE8-9 */
    border: 0;
  }
  img.align-left {
    float: left;
    margin: 1em 1em 1em 0;
  }
  img.align-right {
    float: right;
    margin: 1em 0 1em 1em;
  }
  img.align-center {
    display: block;
    margin: 1em auto;
  }

  /* addresses margin not present in IE8-9 and Safari5 */
  figure {
    margin: 0;
  }

  /* prevents modern browsers from displaying `<audio>` without controls, remove excess height in iOS5 devices */
  audio:not([controls]) {
    display: none;
    height: 0;
  }

  /* corrects overflow displayed oddly in IE9 */
  svg:not(:root) {
    overflow: hidden;
  }

  /* Tables
     ========================================================================== */
  /* consistent tables */
  table {
    margin-bottom: 1em;
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
  }

  caption {
    font-style: italic;
    text-align: left;
    margin-bottom: .5em;
  }

  /* make table cells align top and left by default */
  th,
  td {
    vertical-align: top;
    text-align: left;
    border-bottom: solid 1px #cccccc;
    padding: .28571428571429em .5em .28571428571429em 0;
  }
  th:last-child,
  td:last-child {
    padding-right: 0;
  }

  thead th,
  thead td {
    border-bottom: solid 2px #cccccc;
  }

  tfoot th,
  tfoot td {
    border-bottom: 0;
    padding: .33333333333333em .58333333333333em .33333333333333em 0;
  }
  tfoot:last-child {
    padding-right: 0;
  }

  /* Lists
     ========================================================================== */
  /* addresses paddings set differently */
  menu,
  ol,
  ul {
    padding: 0 0 0 2em;
  }

  /* remove margins from nested lists */
  dl dl,
  ul ul,
  ol ol {
    margin: 0;
  }

  dd {
    margin: 0 0 0 2em;
  }

  dt {
    font-style: italic;
  }

  [role="main"] #article-list {
    list-style: none;
    margin: 0 0 2em 0;
    padding: 0;
    border-top: solid 1px #cccccc;
  }

  #article-list li {
    border-bottom: solid 1px #cccccc;
    padding-top: 1em;
    margin-bottom: 0;
  }

  /* Forms
     ========================================================================== */
  /* define consistent fieldset margin, border and padding */
  fieldset {
    margin: 1em 0;
    border: 1px solid #cccccc;
    padding: 1px 1em;
  }

  /* remove padding so people aren't caught out if they zero out fieldsets */
  legend {
    border: 0;
    padding: 0;
  }

  /* improves appearance and consistency in all browsers */
  button,
  input,
  select,
  textarea {
    font-size: 100%;
    margin: 0;
    vertical-align: baseline;
  }

  /* colour placeholder text (WebKit and Mozilla only, so far) */
  input::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder {
    color: #888888;
  }

  input:-moz-placeholder,
  textarea:-moz-placeholder {
    color: #888888;
  }

  /* removes inner padding and border in Firefox 4+ */
  button::-moz-focus-inner,
  input::-moz-focus-inner {
    border: 0;
    padding: 0;
  }

  /* removes inner padding and search cancel button in Safari5+ and Chrome on OS X */
  input[type="search"]::-webkit-search-cancel-button,
  input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  /* suppress red glow that Firefox adds to form fields by default, even when user is still typing,
     add focus glow on form elements and kill phantom spacing and dotted border that appears in Firefox */
  button:invalid,
  a.button:invalid,
  input:invalid,
  input[type="button"]:invalid,
  input[type="reset"]:invalid,
  input[type="submit"]:invalid,
  textarea:invalid {
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
  }
  button:focus,
  a.button:focus,
  input:focus,
  input[type="button"]:focus,
  input[type="reset"]:focus,
  input[type="submit"]:focus,
  textarea:focus {
    -webkit-box-shadow: 0 0 7px #320016;
    -moz-box-shadow: 0 0 7px #320016;
    box-shadow: 0 0 7px #320016;
    /* Opera */
    z-index: 1;
  }

  input[type="file"]:focus, input[type="file"]:active,
  input[type="radio"]:focus,
  input[type="radio"]:active,
  input[type="checkbox"]:focus,
  input[type="checkbox"]:active {
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
  }

  input[type="color"],
  input[type="date"],
  input[type="datetime"],
  input[type="datetime-local"],
  input[type="email"],
  input[type="month"],
  input[type="number"],
  input[type="password"],
  input[type="search"],
  input[type="tel"],
  input[type="text"],
  input[type="time"],
  input[type="url"],
  input[type="week"],
  select,
  textarea {
    /* remove iOS Safari default styling */
    -webkit-appearance: none;
    font-family: Arial, Helvetica, sans-serif;
    /* 12px */
    font-size: .85714285714286em;
    text-align: left;
    border: solid 1px #cccccc;
    padding: .5em;
    background: #fff;
    outline: 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -moz-border-radius: 0;
    border-radius: 0;
  }

  input[type="color"] {
    padding: 0;
    height: 2.33333333333333em;
  }

  [role="complementary"] input[type="search"] {
    margin-right: 2px;
    width: 66.666666666667%;
    display: inline-block;
  }

  textarea {
    min-height: 3em;
    /* removes default vertical scrollbar in IE8-9 */
    overflow: auto;
    /* improves readability and alignment in all browsers */
    vertical-align: top;
    resize: vertical;
    width: 100%;
  }

  textarea,
  select[size],
  select[multiple] {
    height: auto;
  }

  select[size="0"],
  select[size="1"] {
    height: 2.33333333333333em;
  }

  /* addresses `<select>` alignment in Safari/Chrome */
  optgroup {
    font-family: Arial, Helvetica, sans-serif;
    font-style: normal;
    font-weight: normal;
    color: #333333;
  }
  optgroup::-moz-focus-inner {
    border: 0;
    padding: 0;
  }

  /* addresses box sizing set to `content-box` and excess padding in IE8-9 */
  input[type="checkbox"],
  input[type="radio"] {
    padding: 0;
    box-sizing: border-box;
  }

  /* make sure disable elements really are disabled */
  button[disabled],
  html input[disabled],
  input[type="button"][disabled],
  input[type="reset"][disabled],
  input[type="submit"][disabled],
  select[disabled],
  select[disabled] option,
  select[disabled] optgroup,
  textarea[disabled],
  span.disabled {
    opacity: 1;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: -moz-none;
    user-select: none;
    border: solid 1px #d2d2d2 !important;
    text-shadow: none !important;
    color: #888888 !important;
    background: #eee !important;
    cursor: default !important;
    top: 0 !important;
  }

  .large input {
    width: 50%;
    min-width: 302px;
  }
  .large textarea {
    height: 156px;
  }

  .small input {
    width: 25%;
    min-width: 151px;
  }
  .small textarea {
    height: 5.5em;
  }

  /* Buttons
     ========================================================================== */
  button,
  a.button,
  span.disabled,
  input[type="button"],
  input[type="reset"],
  input[type="submit"] {
    /* remove iOS Safari default styling */
    -webkit-appearance: none;
    -webkit-background-clip: padding;
    -khtml-background-clip: padding-box;
    -moz-background-clip: padding;
    background-clip: padding-box;
    width: auto;
    overflow: visible;
    font-family: Arial, Helvetica, sans-serif;
    /* 12px */
    font-size: .85714285714286em;
    font-weight: normal;
    line-height: normal;
    text-align: center;
    text-decoration: none;
    text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.25);
    cursor: pointer;
    border: solid 1px #983360;
    -moz-border-radius: 0.35714em;
    border-radius: 0.35714em;
    padding: .5em 1em;
    display: inline-block;
    color: #e5ccd7;
    outline: 0;
    background-color: #7f0039;
    /* Safari5.1+, Chrome10+ */
    background-image: -webkit-linear-gradient(#7f0039, black);
    /* Firefox3.6 */
    background-image: -moz-linear-gradient(#7f0039, black);
    /* Opera11.10+ */
    background-image: -o-linear-gradient(#7f0039, black);
    /* CSS3 Compliant */
    background-image: linear-gradient(#7f0039, #000000);
  }
  button:hover,
  a.button:hover,
  span.disabled:hover,
  input[type="button"]:hover,
  input[type="reset"]:hover,
  input[type="submit"]:hover {
    background-color: #b20050;
    /* Safari5.1+, Chrome10+ */
    background-image: -webkit-linear-gradient(#b20050, #1a1a1a);
    /* Firefox3.6 */
    background-image: -moz-linear-gradient(#b20050, #1a1a1a);
    /* Opera11.10+ */
    background-image: -o-linear-gradient(#b20050, #1a1a1a);
    /* CSS3 Compliant */
    background-image: linear-gradient(#b20050, #1a1a1a);
  }
  button:active,
  a.button:active,
  span.disabled:active,
  input[type="button"]:active,
  input[type="reset"]:active,
  input[type="submit"]:active {
    position: relative;
    top: 1px;
    color: #d4aabd;
    background-color: black;
    /* Safari5.1+, Chrome10+ */
    background-image: -webkit-linear-gradient(black, #7f0039);
    /* Firefox3.6 */
    background-image: -moz-linear-gradient(black, #7f0039);
    /* Opera11.10+ */
    background-image: -o-linear-gradient(black, #7f0039);
    /* CSS3 Compliant */
    background-image: linear-gradient(#000000, #7f0039);
  }

  #paginator {
    margin-bottom: 2em;
  }
  #paginator .button {
    padding: .25em 1em;
  }
  #paginator a.button {
    text-decoration: none;
    color: #e5ccd7;
  }

  #paginator-l {
    float: left;
  }

  #paginator-r {
    float: right;
  }

  /* Comments
     ========================================================================== */
  .comments {
    margin-bottom: 1em;
    -moz-border-radius: 0.35714em;
    border-radius: 0.35714em;
    padding: 1em 1em 1px;
    background: #f7f7f7;
    word-wrap: break-word;
  }
  .comments h4 .is-author {
    font-weight: normal;
  }
  .comments h4 .comment-anchor {
    float: right;
    font-weight: normal;
  }

  .comments-author {
    background: #efefef;
  }

  #cpreview {
    margin-bottom: 2px;
    -moz-border-radius: 0.35714em;
    border-radius: 0.35714em;
    padding: 1em;
    background: #fff3d6;
  }

  .comments_error {
    background: #fff4f4 !important;
  }

  .required,
  .error_message li {
    color: #c00;
  }

  .required {
    cursor: help;
  }

  /* Popup comments (can be removed if you don't use popups)
     ========================================================================== */
  #popup-page .wrapper {
    padding-top: 0;
  }
  #popup-page .container {
    max-width: 52em;
  }

  .blurb p {
    margin-top: 0;
  }
  .blurb img {
    float: left;
    margin: 5px 12px 10px 0;
  }
  .blurb:before, .blurb:after {
    content: "";
    display: table;
  }
  .blurb:after {
    clear: both;
  }
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  select[size],
  select[multiple],
  select[multiple][size] {
    background-image: none;
    padding-right: .5em;
  }

  select,
  select[size="0"],
  select[size="1"] {
    background: white url("data:image/svg+xml,<svg version='1.1' baseProfile='full' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='12px' height='4px' viewBox='0 0 12 4' enable-background='new 0 0 12 4' xml:space='preserve'><polygon fill='#333333' points='3.5,4 0,0 7,0'/></svg>") no-repeat right center;
    padding-right: 2em;
    -webkit-background-size: 1em .33333333333333em;
    background-size: 1em .33333333333333em;
  }
}
/* ==========================================================================
   Additional layout for screen media 490px and up
   ========================================================================== */
@media only screen and (min-width: 35em) {
  nav ul {
    width: 93.75%;
  }
  nav li {
    float: left;
    border-right: solid 1px #983360;
    border-bottom: 0;
  }
  nav li:first-child {
    border-left: solid 1px #983360;
  }
  nav a {
    padding: .5em 1em;
  }
}
/* ==========================================================================
   Additional layout for screen media 672px and up
   ========================================================================== */
@media only screen and (min-width: 48em) {
  [role="main"] {
    float: left;
    /* 592px / 960px */
    width: 61.666666666667%;
  }

  [role="complementary"] {
    float: right;
    border: solid 1px #e3e3e3;
    -moz-border-radius: 0.35714em;
    border-radius: 0.35714em;
    padding: 1em 1em 0;
    /* 290px / 960px */
    width: 30.208333333333%;
    background: #f7f7f7;
  }

  h1 {
    /* 42px */
    font-size: 3em;
  }

  h2 {
    /* 28px */
    font-size: 2em;
  }

  h3 {
    /* 21px */
    font-size: 1.5em;
  }
}
/* ==========================================================================
   Additional layout for screen media 1280px and up
   ========================================================================== */
@media only screen and (min-width: 80em) {
  body {
    /* 16px */
    font-size: 100%;
  }

  header,
  .container,
  nav ul,
  footer {
    /* 1152px / 1280px */
    width: 90%;
  }
}
/* ==========================================================================
   Additional layout for screen media 1800px and up
   ========================================================================== */
@media only screen and (min-width: 112.5em) {
  body {
    /* 18px */
    font-size: 112.5%;
  }
}
/* ==========================================================================
   Fix for reponsive embedded content in IE8
   ========================================================================== */
@media \0screen {
  img,
  video {
    width: auto;
  }
}
/* ==========================================================================
   Styling and layout for print media
   ========================================================================== */
@media print {
  * {
    /* black prints faster - http://sanbeiji.com/archives/953 */
    color: black !important;
    text-shadow: none !important;
    background: transparent !important;
    -webkit-box-shadow: none !important;
    -moz-box-shadow: none !important;
    box-shadow: none !important;
  }

  body {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 8pt;
    line-height: 1.5;
    margin: .5cm;
    padding: 2em 5em;
  }

  header {
    border-bottom: solid 1pt black;
  }

  footer {
    margin-top: 12pt;
    border-top: solid 1pt black;
  }

  /* hide unnecessary content from print */
  nav,
  audio,
  video,
  form,
  [role="complementary"],
  #paginator,
  #comments-form,
  .comments h4 a:last-child {
    display: none;
  }

  a {
    text-decoration: none;
  }

  /* show URLs for certain links in print */
  a[href]:after {
    content: " (" attr(href) ")";
  }

  h1 a[href]:after,
  h2 a[href]:after,
  h3 a[href]:after,
  sup a[href]:after,
  a[itemprop="discussionUrl"]:after,
  a[rel="tag"]:after {
    content: "";
  }

  /* show long-form for abbreviations in print */
  abbr[title]:after {
    content: " (" attr(title) ")";
  }

  h1 {
    font-size: 32pt;
    line-height: 36pt;
    font-weight: normal;
    margin: .5em 0;
  }

  h2 {
    font-size: 18pt;
    line-height: 23pt;
    page-break-after: avoid;
    orphans: 3;
    widows: 3;
    margin: .66666666666667em 0;
  }

  h3 {
    font-size: 12pt;
    line-height: 17pt;
    page-break-after: avoid;
    orphans: 3;
    widows: 3;
    margin: .66666666666667em 0;
  }

  p {
    orphans: 3;
    widows: 3;
  }

  footer,
  figcaption,
  tfoot,
  small,
  .footnote {
    font-size: 6pt;
  }

  blockquote {
    font-size: 16pt;
    border-left: 3pt solid black;
    padding: 0 0 0 8pt;
    page-break-inside: avoid;
  }

  pre {
    margin-bottom: 8pt;
    border: solid 1pt black;
    padding: 8pt;
  }

  .comments {
    page-break-inside: avoid;
  }

  pre,
  code,
  kbd,
  samp,
  var {
    font-family: "Courier New", Courier, monospace;
  }

  dfn,
  q,
  dt {
    font-style: italic;
  }

  img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  /* image alignemnts */
  img.align-left {
    float: left;
    margin: 1em 1em 1em 0;
  }
  img.align-right {
    float: right;
    margin: 1em 0 1em 1em;
  }
  img.align-center {
    display: block;
    margin: 1em auto;
  }

  figure {
    margin-bottom: 8pt;
  }

  figcaption {
    margin-top: 4pt;
  }

  ul {
    list-style: square;
    margin: 0 0 8pt 1.8em;
  }

  ol {
    list-style: decimal;
    margin: 0 0 8pt 1.8em;
  }

  dl {
    margin: 0 0 8pt 1.8em;
  }

  table {
    margin-bottom: 8pt;
    width: 100%;
  }

  caption {
    font-weight: bold;
    text-align: left;
    margin-bottom: 4pt;
  }

  /* display table head across multi-page tables */
  thead {
    display: table-header-group;
  }
  thead th {
    border-top: solid 1pt black;
  }

  tr {
    page-break-inside: avoid;
  }

  th,
  td {
    border-bottom: solid 1pt black;
    padding: 4pt 8pt;
  }
}
