/* Reset some basic elements */
body, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure {
    margin: 0;
    padding: 0;
}

/* Basic styling */
body {
    font-weight: $base-font-weight;
    font-size: $base-font-size;
    line-height: $base-line-height;
    font-family: $base-font-family;
    color: $text-color;
    background-color: $background-color;
}

/* Images */
img {
    max-width: 100%;
    vertical-align: middle;
}

/* Lists */
ul, ol {
    margin-left: $spacing-unit;
}

/* Disable margin for lists */
li > ul, li > ol {
    margin-bottom: 0;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    font-weight: $base-font-weight;
}

/* Links */
a {
    color: $brand-color;
    text-decoration: none;

    &:visited {
        color: darken($brand-color, 15%);
    }

    &:hover {
        color: $text-color;
        text-decoration: underline;
    }
}

/**
 * Blockquotes
 */
blockquote {
    color: $grey-color;
    border-left: 4px solid $grey-color-light;
    font-size: 18px;
    letter-spacing: -1px;
    font-style: italic;
    margin: 1rem 0;
    padding: 1em;
    
    > :last-child {
        margin-bottom: 0;
    }
}

/* do not put padding around the table with line numbers and the code */
code table {
    margin: -8px -12px;
}

pre table.rouge-table td {
    padding: 0;
}

pre {
    padding: 8px 12px;
    overflow-x: auto;

    > code {
        border: 0;
        padding-right: 0;
        padding-left: 0;
    }
}

/* pull a nice monospace font from the internets, plus set font and
 * background */
pre, code {
    font-size: 0.95rem;
    background: rgb(66,66,66);
    font-family: "Source Code Pro", monospace;
}

/* Disable borders between line numbers and code when 
 * line numbers are shown */
code .rouge-table, code .rouge-table td {
    border: 0;
    border-radius: 0;
}

code .rouge-table {
    border-spacing: 0;
    border-collapse: collapse;
}

/**
 * Basic layout rules
 */

/* Padding for the main content in the page */
.container {
    padding: 0 4em;
}

/* Header sizes */
h1 { font-size: 3rem; margin-bottom: 1rem; }
h2 { font-size: 2.75rem; }
h3 { font-size: 2.4rem; }
h4 { font-size: 1.8rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.8rem; }

/**
 * General style for the content inside main
 */

/* separate article metadata to the article itself with some space */
article .post-header {
  margin-bottom: 3rem;
}

/* put some space at the end of each article and at the end of each section */
main article, main section {
  margin-bottom: 2rem;
}

/* justify text */
p {
  text-align: justify;
}

/* put a space between paragraphs and images */
p, figure {
  margin-top: 1.2rem;
}

/* the first paragraph has no space at the top (since that is provided
 * by either main or h? */
p:first-child {
  margin-top: 0;
}

/* make strongly emphasized elements REALLY STRONG */
strong {
  background: #aa2222;
}
