/**
 * Layout
 * Links
 * Buttons
 * Forms
 * File Input Button
 * Images
 * Type
 * Tools
 * Flex
 * Boxes
 * Alerts
 * Line Breaks
 * Top Nav
 * Browse Nav
 * Footer
 *
 * ** Page Specific Styles  **
 * Browse Page
 * Snack Page
 * Comments
 * Authors Page
 * Publish Page
 * Site Map Page
 * Search Page
 *
 * Icons
 * UI Menu
 * Header
 * Lists
 * Leafs
 * Tag List
 *
 * Breadcrumb
 * Pagination
 * Site Map
 * Columns
 */

/* Layout */

body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 15px;
    line-height: 24px;
    color: #555;
    background: #FFFFFF;
    margin: 0;
}

.content header {
    border-bottom: 1px solid #EEEEEE;
    padding: 22px 20px 20px 20px;
}

.container {
    position: relative;
    max-width: 840px;
    margin: auto;
}

.site-header {
    border-bottom: 1px solid #EEEEEE;
    padding: 8px 20px 12px 20px;
}

/* Links */

a,
.btn-link {
    color: #006dcc;
    text-decoration: none;
}

a:hover,
.btn-link:hover {
    color: #083e6c;
}

.btn-link {
    font-size: 13px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.btn-link:hover,
.btn-link:focus,
.btn-link:active {
    outline: none;
}

/* Buttons */

.button,
.button:active,
.button:focus {
    color: #FFFFFF;
    text-align: center;
    font-size: 14px;
    background-color: #3d8acb;
    border: 0px;
    border-radius: 3px;
    box-sizing: border-box;
    cursor: pointer;
    padding: 12px 28px;
    margin-bottom: 0;
    display: block;
    width: 100%;
}

.button:hover,
.button:active {
    background-color: #006dcc;
    color: #FFFFFF;
}

.button[disabled="disabled"],
.button[disabled="disabled"]:hover {
    background-color: #3d8acb;
    opacity: 0.5;
    cursor: default;
}

/* Forms */

textarea,
input:not([type=checkbox]),
select {
    display: block;
    box-sizing: border-box;
    background-color: #fff;
    border: 1px solid #ccc;
    -webkit-appearance: none;
    -webkit-border-radius: 0;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 15px;
    line-height: 22px;
    color: #555;
    padding: 10px 12px;
    margin-bottom: 1em;
    transition: border linear 0.2s, box-shadow linear 0.2s;
}

textarea,
input[type="text"],
input[type="email"],
input[type="search"] {
    width: 100%;
    max-width: 100%;
}

input {
    height: 36px;
}

textarea {
    resize: vertical;
    height: 100px;
    padding: 0.6em 0.8em;
}

select {
    width: 216px;
    border: 1px solid #ccc;
    background: transparent;
    padding: 0.4em 0.8em;
    background: transparent;
    border-radius: 0;
    -webkit-appearance: none;
}

input[type="checkbox"] {
    display: inline-block;
    height: auto;
    position: relative;
    top: -1px;
    margin-bottom: 2em;
}

label.checkbox:hover {
    cursor: pointer;
}

textarea:focus,
input:focus {
    border-color: rgba(82, 168, 236, 0.8);
    outline: 0;
    box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
}

textarea.invalid,
input.invalid {
    border-color: rgba(186, 28, 28, 0.8);
}

label.invalid {
    color: #ba1c1c;
}

textarea.invalid:focus,
input.invalid:focus {
    border-color: rgba(186, 28, 28, 0.8);
    outline: 0;
    box-shadow: 0 0 8px rgba(186, 28, 28, 0.4);
}

textarea.invalid::-webkit-input-placeholder,
input.invalid::-webkit-input-placeholder {
   color: #ba1c1c;
}

textarea.invalid:-moz-placeholder,
input.invalid:-moz-placeholder {
   color: #ba1c1c;
}

textarea.invalid::-moz-placeholder,
input.invalid::-moz-placeholder {
   color: #ba1c1c;
}

textarea.invalid:-ms-input-placeholder,
input.invalid:-ms-input-placeholder {
   color: #ba1c1c;
}

/* Form Success */

textarea.success::-webkit-input-placeholder,
input.success::-webkit-input-placeholder {
   color: #6eba1c;
}

textarea.success:-moz-placeholder,
input.success:-moz-placeholder {
   color: #6eba1c;
}

textarea.success::-moz-placeholder,
input.success::-moz-placeholder {
   color: #6eba1c;
}

textarea.success:-ms-input-placeholder,
input.success:-ms-input-placeholder {
   color: #6eba1c;
}

/*
todo move to desktop
form.group input {
    float: left;
    border-right: 0;
    border-radius: 3px 0 0 3px;
}

form.group input[type='submit'] {
    float: left;
    height: 2.7em;
    border-radius: 0 3px 3px 0;
}
*/

/* File Input Button */

.fileinput-button {
    cursor: pointer;
    overflow: hidden;
    position: relative;
    margin: 10px auto;
}

.fileinput-button span {
    cursor: pointer;
}

.fileinput-button input {
    cursor: pointer;
    display: block;
    margin: 0;
    opacity: 0;
    padding: 0;
    border: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: 200%;
    height: 30px;
    z-index: 1;
}

.fileinput-button:hover {
    background-color: #006dcc;
}

.fileinput-button.ready:hover {
    background-color: none;
    background-position: center -215px;
}

.fileinput-button.ready input {
    width: 100%;
    height: 100%;
}

.image-preview {
    text-align: center;
}


/* Images */

img {
    max-width: 100%;
}

/* Type */

p {
    margin-top: 0;
}

h1 {
    color: #999;
    font-size: 22px;
    line-height: 29px;
    font-weight: 200;
    margin: 0;
    letter-spacing: 1px;
}

h2, h3, h4 {
    color: #999;
    font-size: 20px;
    font-weight: 200;
    letter-spacing: 1px;
    line-height: 1.6em;
    margin: 0 0 8px 0;
}

/* Tools */

.relative {
    position: relative;
}

.center {
    text-align: center;
}

.hide,
input:not([type=checkbox]).hide {
    display: none;
}

.anchor,
a:hover.anchor {
    color: inherit;
    text-decoration: none;
}

/* Flex */

.flex {
    display: flex;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-between {
    justify-content: space-between;
}

.flex-align-center {
    align-items: center;
}

/* Boxes */

.box {
    border-bottom: 1px solid #EEEEEE;
    padding: 22px 20px 54px 20px;
}

.box .image a,
.box .image img {
    display: block;
}

/* Alerts */

.alert {
    margin-top: 0.4em;
    font-style: italic;
    font-size: 13px;
    color: #999;
}

.box .alert {
    margin: -6px 0 -13px 0;
}

.error {
    color: #ba1c1c;
    margin-top: 0;
}

.success {
    color: #3dcb62;
}

/* Line Breaks */

hr {
    border: 0;
    border-bottom: 1px solid #ccc;
    margin: 1.4em 0;
}

.hr-label {
    position: relative;
}

.hr-label span {
    position: absolute;
    display: block;
    right: 50%;
    margin: -10px -52px 0 0;
    color: #ccc;
    font-size: 13px;
    background-color: #fff;
    padding: 0;
    width: 104px;
    z-index: 1;
    text-align: center;
}

/* Top Nav */

.top-nav {
    text-align: right;
}

.top-nav ul {
    margin: 0;
    padding: 0;
}

.top-nav ul[data-state="closed"] {
    display: none;
}

.top-nav ul li {
    list-style: none;
}

.top-nav ul li a {
    font-size: 13px;
    padding: 12px 20px 8px 20px;
}

.top-nav ul li a:hover {
    text-decoration: none;
    color:#000333;
}

.top-nav ul li a .icon {
    margin-right: 10px;
    margin-left: -4px;
}

.top-nav ul li a:hover .icon.search_icon {
    background-position: -23px -72px;
}

.top-nav ul li a:hover .icon.browse_icon,
.browse-nav-toggle:hover .icon.browse_icon {
    background-position: -28px -94px;
}

.top-nav ul li a:hover .icon.authors_icon {
    background-position: -27px -116px;
}

.top-nav ul li a:hover .icon.add_snack_icon {
    background-position: -27px -138px;
}

.site-header button:hover .icon.menu_icon {
    background-position: -27px -161px;
}

/* Browse Nav */

.browse-nav-toggle {
    display: block;
    text-align: right;
    /* Move to mobile query */
    position: absolute;
    padding: 26px 20px;
    bottom: 0;
    right: 0;
}

.browse-nav-title {
    margin-right: 2px;
}

.browse-nav ol,
.browse-nav ul {
    padding: 14px 20px;
    margin: 0;
    border-bottom: 1px solid #EEEEEE;
    text-align: right;
}

.browse-nav ol[data-state="closed"],
.browse-nav ul[data-state="closed"] {
    display: none;
}

.browse-nav .list.tags li {
    margin-right: 0;
    margin-left: 6px;
}

/* Footer */

.footer {
    padding-top: 22px;
    text-align: center;
}

.footer .list {
    margin: 0;
}

.footer .list li {
    font-size: 13px;
}

.footer .list li a {
    border-radius: 3px;
    padding: 2px 12px 1px;
    display: block;
}

.footer .list li a:hover {
    color: #fff;
    background-color: #3d8acb;
}

.copyright {
    font-size: 13px;
    color: #999;
    padding: 20px;
    margin-top: 20px;
    border-top: 1px solid #EEEEEE;
}


/* Page Specific Styles */

/* Snack Page */

.snack-box {
    padding-bottom: 0;
}

.snack-box .snack-content pre,
.snack-box .snack-content code {
    font-family: courier, monospace;
    background: #F3F1F1;
    padding: 4px 8px;
    border-radius: 4px;
}

.snack-box .snack-content pre {
    padding: 10px 14px;
    margin: 16px 0;
}

.snack-box .snack-content blockquote {
    border-left: 3px solid #DDDDDD;
    padding-left: 16px;
}

.snack-box .snack-content ul,
.snack-box .snack-content ol {
    padding-left: 30px;
}

.snack-box footer .list.tags li {
    margin-right: 10px;
}

/* Comments */

.comments {
    margin-bottom: 2em;
}

.comments h4 {
    margin-bottom: 0;
}

.comment {
    padding: 1em 0;
    border-bottom: 1px solid #DDDDDD;
}

.comment .author {
    font-weight: 600;
    font-size: 12px;
    margin-bottom: 0.5em;
}

.comment .date {
    padding-top: 0.4em;
    color: #999;
    font-size: 10px;
}

/* Authors Page */

.authors-index .list {
    margin: 0;
}

/* Publish Page */

.publish textarea {
    height: 140px;
}

/* Search Page */

.search .search-box.box {
    padding-top: 22px;
    padding-bottom: 22px;
}

/* Icons */

.icon {
    background-image: url('/assets/sprite.png');
    width: 26px;
    height: 16px;
    display: inline-block;
    position: relative;
    top: 3px;
}

.icon.search_icon {
    background-position: 5px -72px;
}

.icon.browse_icon {
    background-position: 0 -94px;
}

.icon.authors_icon {
    background-position: 0 -116px;
}

.icon.add_snack_icon {
    background-position: 0 -138px;
}

.icon.menu_icon {
    background-position: 0 -161px;
    margin-top: 4px;
    margin-left: 10px;
}

.icon.social {
    background-position: -97px -234px;
    width: 16px;
    height: 16px;
    top: 2px;
    margin-right: 0;
    padding: 0;
    display: inline-block;
}

.icon.fb {
    background-position: -117px -234px;
    margin-left: 0.2em;
}

/* UI Menu */

.ui-menu {
    max-height: 300px;
    overflow: hidden;
    overflow-y: scroll;
}

.ui-menu .ui-menu-item {
    font-size: 15px;
    line-height: 22px;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: #999;
    padding: 0.5em 0.8em 0.4em 1em;
}

.ui-menu .ui-menu-item.ui-state-focus {
    background: #e3f0fb;
    border-color: #ccc;
}

/* Header */

.logo a {
    display: block;
    background-image: url('/assets/sprite.png');
    background-size: cover;
    width: 140px;
    height: 46px;
}

/* Lists */

.list {
    color: #999;
    font-size: 13px;
    margin: 22px 0 20px 0;
    padding: 0;
    list-style: none;
}

.list li {
    display: inline-block;
}

/* Leafs */

.list.leafs li {
    padding: 10px 0;
    border-bottom: 1px solid #EEEEEE;
    display: block;
}

/* Tag List */

.list.tags li {
    margin: 4px 6px 4px 0;
}

.list.tags li a {
    padding: 4px 8px 5px 8px;
    border-radius: 3px;
    background-color: #e3f0fb;
}

.list.tags li a:hover {
    color: #fff;
    background-color: #3d8acb;
}

/* Breadcrumb */

.list.breadcrumb {
    margin: 2px 0 0 0;
    font-size: 12px;
}

.list.breadcrumb li {
    margin: 0;
}

.list.separators {
    white-space: nowrap;
}

.list.separators li:after {
    content: '/';
    color: #CCCCCC;
    font-size: 14px;
    line-height: 12px;
    font-family: tahoma, arial, sans-serif;
    padding: 0px 8px;
}

.list.separators li:last-child:after {
    content: none;
}

.list.breadcrumb li.active span {
    padding-left: 8px;
}

/* Pagination */

.list.pagination {
    margin: 0;
    padding: 22px 20px 20px 20px;
    text-align: center;
    border-bottom: 1px solid #EEEEEE;
}

.list.pagination li {
    margin-right: 0;
}

.list.pagination li a,
.list.pagination li span {
    min-width: 10px;
    text-align: center;
    display: block;
    padding: 2px 8px;
    border-radius: 3px;
}

.list.pagination li.active span {
    cursor: default;
}

.list.pagination li a:hover,
.list.pagination li.active span {
    background-color: #3d8acb;
    color: #fff;
}

header .list.pagination {
    margin-bottom: -0.2em;
}

/* Responsive Stuff */

@media (hover: none) {

    a:hover,
    .browse-nav ol li a:hover,
    .browse-nav ul li a:hover {
        background-color: inherit;
        color: inherit;
    }

}

@media (max-width: 599px) {

    /* Tools */

    .hide-phone {
        display: none;
    }

    .footer .list li {
        display: block;
    }

    /* Boxes */

    .box .image {
        margin: 0 -20px;
        border-bottom: 1px solid #EEEEEE;
        background: #111111;
    }

    .snack-list .box {
        padding-top: 0;
    }

    .box .image img {
        margin: auto;
    }

    /* Top Nav */

    .top-nav ul li a {
        border-bottom: 1px solid #EEEEEE;
    }

    /* Browse Nav */

    .browse-nav-toggle[data-state="closed"] .browse-nav-title {
        display: none;
    }

    /* ** Page Specific Styles  ** */

    /* Snack Page */

    .snack-content h2 {
        margin-top: 24px;
    }

    .snack-box .image {
        border-top: 1px solid #EEEEEE;
    }

    /* Publish */

    .publish .optional-fields {
        margin-bottom: 20px;
    }

}

@media (min-width: 600px) {

    /* Buttons */

    .button {
        max-width: 240px;
    }

    .image-preview {
        padding: 20px 0 20px 0;
        margin-left: 20px;
    }

    /* Tools */

    .hide-desktop {
        display: none;
    }

    /* File Input Button */

    .fileinput-button.ready {
        top: 0;
        width: 100%;
        height: 215px;
        margin: 0;
        background: url('/assets/add-photo.png');
        background-repeat: no-repeat;
        background-position: center top;
        max-width: none;
    }

    /* Flex */

    .flex-desktop {
        display: flex;
    }

    /* Top Nav */

    .top-nav ul {
        position: absolute;
        top: 12px;
        right: 60px;
    }

    /* ** Page Specific Styles  ** */

    /* Browse Page */

    .snack-list .image {
        flex-shrink: 0;
        flex-basis: 160px;
    }

    .image + .snack-content {
        margin-left: 20px;
    }

    /* Snack Page */

    .snack .image {
        text-align: left;
    }

    /* Publish Page */

    .publish .optional-fields > div {
        width: 50%;
    }

    /* Site Map Page */

    .map .box > div {
        width: 50%;
    }

    .map .box > div + div {
        margin-left: 20px;
    }

}
