@mixin button {
    font-family: $body-font;
    font-size: $base-font-size;
    line-height: $base-line-height;
    background-color: #000;
    text-align: center;
    padding: $spacing-s;
    border-radius: 2px;
    color: $gray;
    line-height: $base-line-height;
    display: inline-block;
    font-weight: bold;
    border: 0;
    cursor: pointer;

    &:hover {
        background-color: $accent;
        color: #fff;
        border-bottom-width: 0px;
    }

    &.inactive {
        background-color: $light;
        color: #999;;
    }
}

/* @group ----- Generic HTML elements ----- */
* {
    box-sizing: border-box;
}

html {
    font-family: $body-font;
    font-size: $base-font-size;
    line-height: $base-line-height;
}

body {
    margin: 0;
    padding: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: $heading-font;
}

h1 {
    font-size: 2 * $base-font-size;
    margin: $spacing-m 0;
    line-height: 2 * $base-line-height;
}

h2 {
    font-size: 1.75 * $base-font-size;
    margin: $spacing-m 0;
    line-height: 2 * $base-line-height;
}

h3 {
    font-size: 1.5 * $base-font-size;
    margin: $spacing-m 0;
}

h4 {
    font-size: 1.25 * $base-font-size;
    margin: $spacing-m 0;
}

a {
    color: $accent;
}

a:link,
a:visited {
    text-decoration: none;
}

p a,
span a,
div a {
    text-decoration: underline;
}

table {
    border-collapse: collapse;
    width: 100%;
}

th {
    border-bottom: 3px solid #000;
    padding: $spacing-s;
}

td {
    border-bottom: 1px solid darken($gray, 15%);
    padding: $spacing-s;
}

    /* @group ----- Form elements ----- */

    textarea,
    input[type="text"],
    input[type="password"],
    input[type="email"],
    input[type="url"],
    input[type="number"],
    input[type="date"],
    input[type="datetime-local"] {
        font-family: $body-font;
        font-size: $base-font-size;
        line-height: $base-line-height;
        border: 1px solid #000;
        padding: $spacing-s - 1px;
    }

    input[type="submit"],
    button,
    .button {
        @include button;
    }

    [type="submit"] {
        margin-left: span(3 of 10);
    }

    input[type="checkbox"] {
        margin: 0;
        vertical-align: bottom;
    }

    select {
        appearance: none;
        background-color: #fff;
        border: 1px solid #000;
        border-radius: 2px;
        font-family: $body-font;
        font-size: $base-font-size;
        line-height: $base-line-height;
        padding: ($spacing-s - 1px);
        padding-right: $spacing-l;
        background: #fff url(../../../../application/asset/img/select-arrow.svg) no-repeat;
        background-position: right 6px center;
        background-size: 8px;
        height: 1.5 * $base-line-height;
    }

    .field {
        display: flex;
        flex-wrap: wrap;
        margin: $spacing-l 0;
    }

    .field .field-meta {
        width: span(3 of 10);
        text-align: right;
        padding: $spacing-s $spacing-l 0 0;
    }

    .required.field .field-meta:after {
        content: "*";
    }

    .field .field-meta .field-description {
        font-size: .875 * $base-font-size;
        line-height: .75 * $base-line-height;
        font-style: italic;
    }

    .field .inputs {
        width: span(7 of 10);
    }

    .field .inputs .value {
        margin-bottom: $spacing-m;
    }

    /* @end */

/* @end */

/* @group ----- Containers ----- */

@mixin container {
    max-width: 960px;
    margin: 0 auto;
}

.oc-content-inner {
    background-color: #fff;

    &:after {
        content: "";
        background-color: #fff;
        position: absolute;
        top: 100%;
        right: 0;
        left: 0;
        z-index: -1;
        height: 9999px;
    }
}

nav ul {
    list-style-type: none;
    display: inline-block;
}

/* @end */

/* @group ----- Pagination ----- */

.pagination .button {
    min-width: 1.5 * $base-line-height;
}

.pagination form {
    display: inline-block;
    margin-right: $spacing-l;
}

.pagination input[type="text"] {
    text-align: center;
}

/* @end */

/* @group ----- Header ----- */

header {
    max-width: 960px;
    margin: 0 auto;
    color: #e7e7e7;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: $spacing-m $spacing-l;
    flex-wrap: wrap;

    &:before {
        content: "";
        position: absolute;
        top: 0;
        left: -9999px;
        right: -9999px;
        bottom: 0;
        background-color: #000;
        z-index: -1;
    }
}

header a:link,
header a:visited {
    color: #fff;
}

header .site-title {
    display: inline-block;
    vertical-align: middle;
    margin-right: auto;
}

header .site-title img {
    vertical-align: top;
}

header h1 {
    margin: $spacing-s $spacing-l $spacing-s 0;
    font-size: 1.25 * $base-font-size;
    line-height: $base-line-height;
}

header nav {
    padding: $spacing-l;
    font-size: .875 * $base-font-size;
    line-height: .75 * $base-line-height;
}

header nav ul {
    padding-left: 0;
}

header nav > ul > li {
    // Top-level items
    border-bottom: 1px solid #cacaca;
    padding-bottom: $spacing-m - 1px;
    margin-bottom: $spacing-m;

    &:last-child {
        border-bottom: 0;
    }
}

header nav > ul > li > ul li {
    // 2nd-level items and beyond
    padding-left: $spacing-m;
    text-indent: -$spacing-m;
    margin: $spacing-s 0;

    &:before {
        content: "\2014";
        color: #000;
        width: $spacing-m;
        display: block;
        float: left;
    }
}

header nav ul ul ul {
    display: block;
}

header nav a:link,
header nav a:visited {
    color: #000;
}

#search-form {
    border: 1px solid #fff;
    border-radius: 2px;
    margin: 0 $spacing-m 0 0;
    height: 1.5 * $spacing-l;
    overflow: hidden;
    display: flex;
}

#search-form > * {
    vertical-align: top;
}

#search-form input[type="text"] {
    background-color: #000;
    color: #fff;
    border: 0;
}

#search-form button[type="submit"] {
    margin-left: 0;
    text-indent: -9999px;
    position: relative;

    &:before {
        content: "\f002";
        font-family: "FontAwesome";
        text-indent: 0;
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        bottom: 0;
        line-height: 1.5 * $base-line-height;
    }
}

#search-form button,
#menu-button {
    border: 1px solid #fff;
    border-radius: 2px;
    width: 1.5 * $spacing-l;
    height: 1.5 * $spacing-l;
    text-align: center;
    font-size: 18px;
}

#search-form button {
    border-width: 0px 0px 0px 1px;
    border-radius: 0;
}

/* @end */

/* @group ----- Footer ----- */

footer {
    max-width: 960px;
    margin: 0 auto;
    padding: $spacing-l;
    overflow: hidden;
}

/* @end */

/* @group ----- Off-Canvas Navigation ----- */

.oc-container,
.oc-pusher,
.oc-content {
  height: 100%;
}

.oc-content {
  //overflow-y: scroll;
}

.oc-content,
.oc-content-inner {
  position: relative;
}

.oc-container {
  position: relative;
  overflow: hidden;
  //overflow-y: scroll;
}

.oc-pusher {
  height: auto;
  min-height: 100vh;
  position: relative;
  left: 0;
  -webkit-transition: -webkit-transform 400ms;
  transition: transform 400ms;
  z-index: 99;
}
.oc-pusher::after {
  content: '';
  height: 0;
  position: absolute;
  top: 0;
  right: 0;
  opacity: 0;
  width: 0;
  -webkit-transition: opacity 400ms, width 0.1s 400ms, height 0.1s 400ms;
  transition: opacity 400ms, width 0.1s 400ms, height 0.1s 400ms;
  background: transparent;
}
.oc-menu-open .oc-pusher::after {
  height: 100%;
  opacity: 1;
  -webkit-transition: opacity 400ms;
  transition: opacity 400ms;
  width: 100%;
}

.oc-menu {
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transition: all 400ms;
  transition: all 400ms;
  visibility: hidden;
  width: 225px;
  z-index: 100;
  background: desaturate(lighten($accent, 50%), 60%);
}
.oc-menu-open .oc-menu::after {
  height: 0;
  opacity: 0;
  -webkit-transition: opacity 400ms, width 0.1s 400ms, height 0.1s 400ms;
  transition: opacity 400ms, width 0.1s 400ms, height 0.1s 400ms;
  width: 0;
}

.oc-push.oc-menu {
  -webkit-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
}
.oc-push.oc-menu::after {
  display: none;
}
.oc-push.oc-menu-open .oc-pusher {
  -webkit-transform: translate3d(225px, 0, 0);
  transform: translate3d(225px, 0, 0);
}

.oc-push.oc-menu-open .oc-push.oc-menu {
  overflow: hidden;
  overflow-y: scroll;
  -webkit-transition: -webkit-transform 400ms;
  transition: transform 400ms;
  visibility: visible;
}

.no-js .oc-menu {
  height: auto;
  position: static;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  width: 100%;
  visibility: visible;
}
.no-js #oc-trigger {
  display: none;
}
.no-js .oc-pusher {
  padding-left: 0;
}

.no-csstransforms3d .oc-pusher {
  padding-left: 225px;
}

/* @end */

/* @group ----- Page and Blocks ----- */

#content {
    max-width: 960px;
    margin: 0 auto;
    padding: $spacing-l;
    overflow: hidden;
}

#content > *:first-child {
    margin-top: 0;
}

nav.breadcrumbs {
    padding: 6px;
    border-radius: 2px;
    margin: 12px 0;
    background-color: #e7e7e7;
}

.sub-menu ul {
    padding-left: 0;
    margin: 0;
}

.sub-menu li {
    display: inline-block;
}

.sub-menu a {
    @include button;
    margin-bottom: $spacing-s;
}

.item-showcase {
    margin: $spacing-l 0 ($spacing-l - 1px);
    border-top: 1px solid $light;
    border-bottom: 1px solid $light;
    padding: ($spacing-l - 1px) 0 0;
    overflow: hidden;
    text-align: center;
    clear: both;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.item.resource .caption {
    font-size: .75 * $base-font-size;
    line-height: $base-line-height;

    * {
        margin: 0 0 $spacing-l 0;
    }

    & > *:last-child {
        margin-bottom: 0;
    }
}

.item-showcase .resource.item {
    display: inline-block;
    vertical-align: top;
    margin-bottom: $spacing-l;

    img {
        margin-right: $spacing-m;
    }

    &:only-child img {
        margin: 0 auto;
    }

    &:not(:only-child) {
        width: 33.33%;
        clear: none;
        padding: 0 $spacing-s;
    }

    &:not(:only-child) h3 {
        clear: left;
        font-size: .75 * $base-font-size;
        line-height: $base-line-height;
        margin: $spacing-m 0 0;
    }

    &:not(:only-child) img {
        max-width: 100%;
        height: auto;
        float: none;
        margin-right: 0;
        vertical-align: top;
    }
}

.right,
.left {
    overflow: hidden;
}

.left .item.resource,
.right .item.resource {
    margin: 0 0 $spacing-l 0;
    width: -webkit-min-content;
    width: -moz-min-content;
    width: min-content;
    max-width: 40vw;

    .media-render a {
        vertical-align: top;
    }

    .media-render > *, img {
        max-width: 40vw;
    }

    img {
        vertical-align: top;
        margin-bottom: $spacing-m;
    }
}

.left:not(.file) .item.resource,
.right:not(.file) .item.resource {
    max-width: 50%;
}

/* IE 10 - Edge min-content equivalent */
.file {
    display: -ms-grid;
    -ms-grid-columns: min-content;
}

.left.file {
    float: left;
    clear: left;
    margin-right: $spacing-l;
}

.right.file {
    float: right;
    clear: right;
    margin-left: $spacing-l;
}

.left .item.resource > a:first-child,
.right .item.resource > a:first-child {
    vertical-align: top;
}

.medium .item.resource > h3,
.square .item.resource > h3 {
    font-size: $base-font-size;
    line-height: $base-line-height;
}

.left .item.resource + p,
.right .item.resource + p {
    margin-top: 0;
}

.break {
    width: 100%;
    clear: both;
    border-bottom: 1px solid $gray;
    padding-bottom: -1px;
    margin: $spacing-l 0;

    &.transparent {
        border-color: transparent;
    }

    &.opaque {
        border-color: $light;
    }
}

.preview-block {
    margin: $spacing-l 0;
    overflow: hidden;
    clear: both;
}

.resource-list.preview + a {
    background-color: #000;
    text-align: center;
    padding: $spacing-s;
    border-radius: 2px;
    color: $gray;
    line-height: $base-line-height;
    display: inline-block;
    font-weight: bold;

    &:hover {
        background-color: $accent;
        color: #fff;
        border-bottom-width: 0px;
    }
}

.resource-list .resource > *:only-child {
    margin-bottom: 0;
}

.toc-block > ul {
    margin: $spacing-l 0;
    list-style-type: none;
    border-left: 5px solid $gray;
}

.toc-block > ul > li {
    margin-bottom: $spacing-m;
}

.toc-block > ul > li > a {
    font-weight: bold;
}

.toc-block ul ul {
    list-style-type: none;
    padding-left: 0;
}

.toc-block ul ul ul {
    padding-left: 1.25em;
}

.toc-block ul ul li:before {
    content: "\2014";
    color: $light;
}

.site-page-pagination {
    clear: both;
    margin-top: $spacing-l;
    color: #fff;
}

.site-page-pagination a {
    @include button;
}

/* @end */

/* @group ----- Resource List ----- */

ul.resource-list {
    list-style-type: none;
    padding-left: 0;
}

ul.resource-list .resource {
    border-bottom: 1px solid $light;
    padding-bottom: $spacing-l - 1px;
    margin: $spacing-l 0;
    overflow: hidden;
    position: relative;

    & > *:last-child {
        margin-bottom: 0;
    }

    &:first-child {
        border-top: 1px solid $light;
        padding-top: $spacing-l - 1px;
    }
}

ul.resource-list .resource img {
    height: auto;
    width: 4 * $spacing-l;
    float: right;
    margin-left: $spacing-m;
}

ul.resource-list .resource h4 {
    margin-top: 0;
}

ul.resource-list .resource .description {
    max-height: 4 * $spacing-l;
    overflow: hidden;
    position: relative;

    &:after {
        content: "";
        position: absolute;
        top: 2.75 * $spacing-l;
        left: 0;
        right: 0;
        height: 1.25 * $spacing-l;
        background: linear-gradient(to top, rgba(255,255,255,1), rgba(255,255,255,0));
    }
}

ul.resource-list .resource img ~ * {
    width: calc(100% - #{4.5 * $spacing-l});
}

/* @end */

/* @group ----- Resource/Show ----- */

.resource.show #content > h2:first-of-type {
    margin-bottom: 0;
    display: block;
    width: 80%;
    float: right;
    word-break: break-word;
    margin: 0 $spacing-s $spacing-l 0;
}

.resource.show #content > h2 + h3 {
    font-family: $body-font;
    font-size: $base-font-size;
    background-color: #000;
    color: #e7e7e7;
    padding: $spacing-s $spacing-m;
    display: block;
    margin: $spacing-s 0;
    line-height: $base-line-height;
    vertical-align: middle;
    width: calc(20% - #{.75 * $spacing-l});;
    float: left;
    text-align: right;
}

.resource.show .property {
    margin-bottom: $spacing-l;
    text-align: right;
    width: 80%;
    float: left;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    padding-right: $spacing-l;
    clear: left;
}

.resource.show .property h4,
#linked-resources > h4 {
    width: 25%;
    display: inline-block;
    margin: 0;
    vertical-align: top;
    padding-right: $spacing-m;
    font-size: $base-font-size;
    line-height: $base-line-height;
}

.resource.show .property .field-term {
    font-size: .75 * $base-font-size;
    display: inline-block;
}

.resource.show .property .values,
.resource.show .property h4 + .value {
    width: 75%;
    display: inline-block;
    vertical-align: top;
    text-align: left;

    &:not(:first-of-type) {
        border-top: 1px solid $gray;
        padding-top: $spacing-s - 1px;
        margin-top: $spacing-s;
    }
}

.resource.show .property .language {
    background-color: $light;
    padding: 0 $spacing-s;
}

.resource-link img {
    height: 1.5 * $spacing-l;
    width: auto;
    vertical-align: middle;
    margin: 0 $spacing-s 0 0;
}

.resource.show .property table {
    margin-top: -$spacing-s;
}

.resource.show .media-list {
    width: 20%;
    margin: $spacing-l 0 0;
    display: inline-block;
    text-align: center;
}

.resource.show .media-list .resource-link {
    margin-bottom: $spacing-l;
    display: block;
}

.resource.show .media-list img {
    max-width: 100%;
    height: auto;
}

.resource.show .media-list .resource-name {
    word-wrap: break-word;
    margin-top: $spacing-s;
    display: block;
}

.resource.show .media-list ~ * {
    clear: both;
}

.media-render {
    clear: both;
}

.media-render > * {
    max-width: 100%;
}

.media.resource.show .property {
    width: 100%;
    display: flex;
}

.media.resource.show .property h4 {
    width: 20%;
}

.media.resource.show .property .value {
    width: 80%;
}

.media.resource.show .media-render {
    margin: $spacing-l 0;
    text-align: center;
}

#item-linked {
    clear: left;
}

#item-linked h3 {
    margin: $spacing-m 0 (1.5 * $spacing-l);
}

#linked-resources {
    display: flex;
    justify-content: flex-end;
    width: 80%;
    flex-wrap: wrap;
    align-items: flex-start;
}

#linked-resources caption {
    text-align: left;
    font-weight: bold;
    padding: $spacing-s $spacing-s ($spacing-s - 3px);
    border-bottom: 3px solid #000;
}

#linked-resources th {
    text-align: left;
    border-bottom: 1px solid #000;
}

.linked-header,
.linked-footer {
    width: 100%;
    margin-bottom: $spacing-l;
    display: flex;
    justify-content: flex-end;
}

#linked-filter {
    display: flex;
    align-items: center;
    width: 50%;
    justify-content: flex-start;
    margin-right: auto;
}

#linked-filter h4 {
    font-size: $base-font-size;
    width: auto;
    padding: 0;
    margin-right: $spacing-s;
    text-align: left;
}

#linked-resources > h4 {
    padding: $spacing-s;
    margin: 0;
    text-align: right;
}

#item-linked .pagination {
    width: 50%;
    text-align: right;
}

#item-linked .resource-link img {
    height: 1.5 * $spacing-l;
    width: auto;
    display: block;
    margin-right: $spacing-s;
}

#linked-resources .linked-resource {
    border-bottom: 1px solid $gray;
    margin-bottom: $spacing-m;
    width: 75%;
    padding: 0 $spacing-s #{$spacing-m - 1px};
}

#linked-resources .resource-link {
    display: flex;
    align-items: center;
}

/* @end */

/* @group ----- Resource/Browse ----- */

.filter {
    border-radius: 2px;
    margin-bottom: 12px;
    border: 1px solid #000;
    display: inline-block;
}

.filter-label {
    display: inline-block;
    padding: 5px;
}

.filter-value {
    padding: 5px 12px;
    display: inline-block;
    background-color: #000;
    color: #fff;
}

a.advanced-search {
    @include button;
    float: right;
}

/* @end */

/* @group ----- Advanced Search ----- */

#advanced-search .inputs .value {
    margin-bottom: $spacing-m;
}

.remove-value.button {
    width: 1.5 * $spacing-l;
    height: 1.5 * $spacing-l;
    position: relative;
    margin-left: $spacing-s;
    text-indent: -9999px;

    &:before {
        text-indent: 0;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        padding: $spacing-s;
        line-height: $base-line-height;
    }
}

.query-property {
    width: 30%;
}

/* @end */

/* @group ----- Common Modules ----- */

.value a.metadata-browse-link {
    font-size: .875 * $base-font-size;
} // Metadata Browse

/* @end */