* {
    margin: 0;
    padding: 0;
    border: none;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

header, section, footer, aside, nav, article, figure, figcaption {
    display: block;
}

html, body {
    width: 100%;
    height: 100%;
}

body {
    font: 14px/1.5 arial, helvetica, sans-serif;
    color: #3a3a3a;
}

h1 {
    font-size: 40px;
    font-weight: bold;
}
h1, h2 {
    margin-bottom: 10px;
}

a {
    text-decoration: none;
    transition: color 0.2s;
    -webkit-transition: color 0.2s;
}
a:hover {
    color: #5d5d5d;
}
a:visited {
    text-decoration: none;
}

.container {
    width: 100%;
    min-height: 100%;
    height: 100%;
    height: auto !important;
    margin: 0 auto -100px;
}

.errorMessage, .warningMessage, .infoMessage {
    max-width: 360px;
    margin: 0 0 10px 0;
    padding: 6px 24px 6px 14px;
    white-space: normal;
}
.errorMessage {
    border-bottom: 4px solid #e8bac1;
    background-color: #f2dede;
    color: #b94a48;
}
.warningMessage {
    border-bottom: 4px solid #fbeed5;
    background-color: #fcf8e3;
    color: #c09853;
}
.infoMessage {
    padding: 4px 24px 4px 14px;
    border-bottom: 4px solid #def0ff;
    background-color: #e8f4ff;
    font-size: 0.9em;
    color: #428bca;
}

.clearFloat {
    clear: both;
}

.noselect {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

footer {
    padding: 1.5em 0;
    border-top: 1px solid #bbb;
    color: #aaa;
}
footer p {
    margin-bottom: 1em;
}
footer a, footer a:visited {
    border-bottom: 1px solid #aaa;
    color: #aaa;
}
footer a:hover {
    border-bottom: 1px solid rgba(0, 0, 0, 0.7);
    color: rgba(0, 0, 0, 0.7);
}