/* General */

*, *:before, *:after {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
 }

body {
  background: #fff;
  color: #111;
  font-size: 16px;
  line-height: 20px;
  font-family: 'Noto Sans', "Helvetica Neue", Helvetica, sans-serif;
  text-align: center;
}

h1, h2, h3, h4 {
  font-weight: normal;
  font-size: 16px;
  line-height: 24px;
  margin: 40px 0 5px;
  text-rendering: optimizeLegibility;
  color: #CC342D;
}

h1 {
  font-size: 24px;
  line-height: 28px;
  font-weight: bold;
}

h2 {
  font-size: 20px;
  line-height: 24px;
}

h4 { font-style: italic; }

a {
  color: #445488;
  text-decoration: underline;
}

a:hover { color: #0086b3; }

p {
  margin: 20px 0;
  text-rendering: optimizeLegibility;
}

p.warning {
  color: #CC342D;
}

:target { background: #ffc; }

h1 + p,
h2 + p,
h3 + p,
h4 + p,
h1 + ol,
h2 + ol,
h3 + ol,
h4 + ol,
h1 + ul,
h2 + ul,
h3 + ul,
h4 + ul,
h1 + dl,
h2 + dl,
h3 + dl,
h4 + dl {
  margin-top: 5px;
}

#content p.summary {
  margin-top: 8px;
  font-size: 20px;
  line-height: 26px;
}

blockquote {
  font-style: italic;
  color: #555;
  margin: 0;
  padding: 0 20px;
}

ul {
  margin: 20px 0;
  list-style: square outside;
}

ol {
  margin: 20px 0;
  list-style: decimal outside;
}

ul ul,
ol ol,
ul ol,
ol ul {
  margin: 6px 0 0;
}

li {
  margin-bottom: 6px;
  text-rendering: optimizeLegibility;
}

ul li:last-child,
ol li:last-child {
  margin-bottom: 0;
}

dl dd {
  margin: 6px 0 20px;
  text-rendering: optimizeLegibility;
}

dl dt {
  margin: 20px 0 6px;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, p, li, dt, dd, a, code, pre {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

code {
  margin: 0 2px;
  padding: 0px 5px;
  border: 1px solid #ddd;
  background-color: #f8f8f8;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  text-shadow: 0 1px 0 #fff;
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
}

pre {
  box-shadow: 0 0 4px rgba(0,0,0,0.4) inset;
  background: #f8f8f8;
  text-shadow: 0 1px 0 #fff;
  display: block;
  padding: 12px 16px;
  font-size: 14px;
  line-height: 16px;
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
}

pre code {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

iframe {
  border: none;
}

/* Layout  */

.container {
  max-width: 980px;
  margin: 0 auto;
  text-align: left;
}

#main-wrapper { padding: 0; }

#main {
  display: table;
  table-layout: fixed;
  border-collapse: collapse;
  width: 100%;
}

#main img {
  max-width: 100%;
}

#content-wrapper {
  width: 70%;
  display: table-cell;
  vertical-align: top;
  padding: 0 48px;
}

#content { margin: 0 0 48px 0; }

div.post p { margin: 0; }
div.post p.post-link { margin: 6px 0; }

div.post h3 a {
  color: #CC342D;
  text-decoration: none;
}

div.post h3 a:hover { text-decoration: underline; }

.post-info {
  color: grey;
  font-size: 13px;
  line-height: 16px;
  margin: 0;
}

/* Sidebar */

#sidebar-wrapper {
  display: table-cell;
  vertical-align: top;
  width: 30%;
}

#sidebar {
  border-bottom: 1px solid #ccc;
  background: #f6f6f3;
  text-shadow: 0 1px 0 #fff;
  padding: 20px 24px;
  -webkit-box-shadow: 0 0 3px rgba(0,0,0,0.4);
     -moz-box-shadow: 0 0 3px rgba(0,0,0,0.4);
          box-shadow: 0 0 3px rgba(0,0,0,0.4);
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
  margin: 24px 48px 24px 0;
}

#sidebar ul {
  padding: 0;
  list-style: none;
  margin: 6px 0 30px;
}

#sidebar li {
  margin: 6px 0;
  font-size: 15px;
  line-height: 20px;
}

#sidebar h3 {
  margin: 30px 0 0;
  padding: 0 0 6px;
  border-bottom: 1px solid #ccc;
  color: #111;
  font-size: 16px;
  line-height: 20px;
}

#sidebar h3:first-of-type { margin-top: 0; }

/* Home page */

#home-page-layout #intro-container {
  background: #EBEBE4 url(/images/ruby_pattern.png) 50% 50%;
  border-bottom: 1px solid #ccc;
}

#home-page-layout #intro-wrapper {
  display: table;
  margin: 0 0 20px 0;
}

#home-page-layout #intro {
  display: table-cell;
  padding: 24px 48px 24px 48px;
  text-shadow: 0 1px 0 #fff;
  vertical-align: middle;
}

#home-page-layout #intro h1 {
  font-size: 30px;
  margin: 12px 0;
}

#home-page-layout #intro p {
  margin-top: 12px;
  font-size: 19px;
  line-height: 25px;
}

#home-page-layout #intro a { color: #CC342D; }

#home-page-layout #code {
  width: 375px;
  display: table-cell;
  vertical-align: middle;
}

#home-page-layout #code pre {
  background: rgba(255, 255, 255, 0.9);
  box-shadow: none;
  border: 1px solid #999;
  box-shadow: 0 2px 5px rgba(0,0,0,0.5);
  margin: 12px 48px 12px 0;
}

/* Page header */

#header {
  border-bottom: 1px solid #ccc;
  background: #fff;
}

#header_content {
  padding: 30px 24px 24px 24px;
  position: relative;
}

#header h1 {
  font-size: 36px;
  margin: 0;
  color: black;
}

#header h2 {
  margin: 5px 0 0;
  color: black;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #585450;
}

#header_content > a {
  text-decoration: none;
  color: black;
  background: url(/images/header-ruby-logo.png) no-repeat left 8px;
  display: inline-block;
  padding: 15px 0 0 74px;
  margin: 0 0 15px -4px;
}

#header div.site-links {
  overflow: hidden;
  border-top: 5px solid #CC342D;
  background: #585450;
  padding: 0 0 0 8px;
  -webkit-border-bottom-left-radius:  6px;
     -moz-border-radius-bottomleft:   6px;
          border-bottom-left-radius:  6px;
  -webkit-border-bottom-right-radius: 6px;
     -moz-border-radius-bottomright:  6px;
          border-bottom-right-radius: 6px;
}

#header div.site-links a {
  color: #F6F6F3;
  text-shadow: 0 1px 0 #000;
  background-color: #585450;
  display: inline-block;
  padding: 9px 12px;
  font-weight: normal;
  text-decoration: none;
  float: left;
  font-size: 15px;
}

#header div.site-links a.home,
#footer div.site-links a.home,
#header div.site-links a.menu { display: none; }

#header div.site-links a.selected {
  color: white;
  font-weight: bold;
}

div.multi-page { margin: 20px 0 0; }
div.multi-page span.separator { display: none; }

div.multi-page a,
div.multi-page strong {
  padding: 5px 12px;
  display: inline-block;
  border-radius: 3px;
  text-align: center;
  border: 1px solid #ebebe4;
}

div.multi-page strong {
  background: #ebebe4;
  color: #555;
  border-color: #ddd;
}

div.multi-page + h1 { margin-top: 20px; }

#footer {
  background: #F6F6F3;
  margin: 0 24px 48px;
  padding: 0 24px 4px;
  text-align: left;
  text-shadow: 0 1px 0 #fff;
  font-size: 14px;
  line-height: 17px;
  border: 1px solid #ddd;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-bottom-left-radius:  3px;
     -moz-border-radius-bottomright:  3px;
     -moz-border-radius-bottomleft:   3px;
          border-bottom-right-radius: 3px;
          border-bottom-left-radius:  3px;
}

#footer a { color: #555; }
#footer a:hover { color: #445488; }

#footer div.site-links {
  clear: both;
  background: #ebebe4;
  overflow: hidden;
  margin: 0 -24px;
  padding: 0 0 0 15px;
  border-bottom: 1px solid #ddd;
}

#footer div.site-links a {
  display: inline-block;
  padding: 8px 10px;
  font-weight: normal;
  text-decoration: underline;
  float: left;
}

hr.hidden-modern { display: none; }

#search-box {
  text-align: left;
  position: absolute;
  top: 54px;
  right: 24px;
}

#search-box .fieldset { float: right; }

#search-form .field {
  -webkit-appearance: none;
  font-size: 13px;
  line-height: 13px;
  padding: 6px 6px;
  border: 1px solid #b0b0a4;
  width: 180px;
  background-position: 6px center !important;
  -webkit-box-shadow: 0 1px 2px #ddd inset;
     -moz-box-shadow: 0 1px 2px #ddd inset;
          box-shadow: 0 1px 2px #ddd inset;
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
}

#search-form .button {
  -webkit-appearance: none;
  display: inline-block;
  background: #ebebe4;
  color: #585450;
  padding: 7px 12px;
  font-size: 13px;
  line-height: 13px;
  text-decoration: none;
  margin: 0 0 0 6px;
  text-shadow: 0 1px 0 #fff;
  border: 1px solid #c2c2b8;
  font-weight: normal;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
  -webkit-box-shadow: 0 2px 0 #c2c2b8;
     -moz-box-shadow: 0 2px 0 #c2c2b8;
          box-shadow: 0 2px 0 #c2c2b8;
}

.release-list th,
.release-list td {
  padding: 2px 1em 2px 0px;
}

.buttons .button {
  -webkit-appearance: none;
  display: inline-block;
  background: #bc3f33;
  color: #fff;
  padding: 7px 12px;
  font-size: 13px;
  line-height: 13px;
  text-decoration: none;
  margin: 15px 0 0 0;
  border: 1px solid #973329;
  font-weight: normal;
  outline: none;
  cursor: pointer;
  text-align: center;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
  -webkit-box-shadow: 0 2px 0 #973329;
     -moz-box-shadow: 0 2px 0 #973329;
          box-shadow: 0 2px 0 #973329;
}

.button:hover { opacity: .7; }

@media (min--moz-device-pixel-ratio: 1.3),
       (-o-min-device-pixel-ratio: 2.6/2),
       (-webkit-min-device-pixel-ratio: 1.3),
       (min-device-pixel-ratio: 1.3),
       (min-resolution: 1.3dppx) {
  #home-page-layout #intro-container {
    background-image: url(/images/ruby_pattern@2x.png);
    background-size: 412px 412px;
  }

  #header_content > a {
    background-image: url(/images/header-ruby-logo@2x.png);
    background-size: 62px 62px;
  }
}
