@import "flex.css";

/* variables */

:root {
    --purple-dark: #7843A9;
    --purple-light: #D9D4E9;
    --white: #E5EAEE;

    --margin-large: 4rem;
    --margin-medium: 3rem;
    --margin-small: 2rem;
    --margin-tiny: 1rem;

    --font-large: 3rem;
    --font-medium: 2.25rem;
    --font-small: 1.5rem;

    --transition: all 0.18s cubic-bezier(0.25, 0, 0.5, 1), outline 0s, outline-offset 0s, border-width 0s;
}

/* general */

*,
*:before,
*:after {
    box-sizing: border-box;
    outline: none;
}

body {
    height: auto;
    margin: 0;
    padding: 0;
    color: var(--purple-dark);
    font-family: sans-serif;
    font-weight: 500;
    background: var(--white) url(/static/osqar/graphics/background.svg) repeat-y left top;
    background-size: 100%;
}

.body {
    max-width: 90rem;
    margin: 0 auto;
}

/* error messages */

.loading,
.error {
    position: relative;
}

.loading *,
.error * {
    pointer-events: none;
    opacity: 0.5;
}

.loading:before {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    content: '';
    background: url(/static/osqar/graphics/loader.svg) no-repeat center center;
    background-size: 52px 52px;
}

.error-message {
    display: none;
}

.error .error-message {
    position: absolute;
    display: flex;
    width: 75% !important;
    height: 100%;
    left: 0;
    top: 0;
    margin: 0 12.5%;
    font-size: var(--font-small);
    font-weight: bold;
    justify-content: center;
    align-items: center;
    text-align: center;
    opacity: 1;
    z-index: 100;
}

/* global styles */

h1 {
    margin: 0 0 var(--margin-medium) 0;
    font-size: var(--font-large);
    font-weight: 900;
    line-height: 160%;
    text-align: center;
}

h2 {
    font-size: var(--font-medium);
    font-weight: 900;
    line-height: 130%;
    text-align: center;
}

h3 {
    font-size: 1.5rem;
    font-weight: 900;
    text-align: center;
}

h4 {
    margin: 0 0 .75rem 0;
    font-size: 1.25rem;
    line-height: 1.5rem;
    font-weight: 900;
    word-break: break-word;
}

h5 {
    margin: .5rem 0 .25rem 0;
    font-size: 1rem;
    font-weight: 900;
}

a {
    color: var(--purple-dark);
    text-decoration: none;
    border-bottom: 2px solid transparent;
}

p {
    line-height: 1.5;
    margin: 1.5rem 0;
    text-align: justify;
    -webkit-hyphenate-limit-before: 5;
    -webkit-hyphenate-limit-after: 5;
    hyphenate-limit-chars: 10 5 5;
    word-wrap: normal;
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
}

p+p {
    margin-top: 0;
}

b {
    font-weight: 900;
}

small {
    font-size: .875rem;
}

ul,
ol {
    margin: 0;
    padding: 0 0 0 3rem;
}

li {
    margin: 0 0 .5rem 0;
    padding: 0 0 0 1rem;
}

hr {
    border: 1px solid var(--purple-dark);
    border-radius: 1px;
}

q {
    display: block;
    margin: .5rem 0;
    font-style: italic;
    font-weight: 400;
}

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

.transition {
    transition: var(--transition);
}

.mobile-show {
    display: none;
}

.deactivated {
    opacity: .5;
    pointer-events: none;
    cursor: not-allowed;
}

.no-select {
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* colors */

.dark {
    background-color: var(--purple-dark);
    border: 2px solid var(--purple-dark);
    color: #fff;
}

.light {
    background-color: var(--purple-light);
    border: 2px solid var(--purple-light);
    color: var(--purple-dark);
}

.bordered {
    background-color: transparent;
    color: var(--purple-dark);
    border: 2px solid var(--purple-dark);
}

.white {
    background-color: var(--white);
    border: 2px solid var(--white);
    color: var(--purple-dark);
}

.no-border {
    border: none;
}

/* paragraphs */

p.small {
    font-size: .875rem;
}

p.left {
    text-align: left;
}

p.no-margin {
    margin: 0;
}

/* links */

p a,
li a {
    border-color: var(--purple-dark);
}

a[name] {
    display: block;
    height: 4rem;
    margin-top: -4rem;
    visibility: hidden;
}

.underline:hover {
    border-color: var(--purple-dark);
}

/* buttons */

.button {
    font-weight: bold;
    padding: .75rem 1.5rem;
    border-radius: 1.75rem;
    cursor: pointer;
    text-align: center;
    transition: var(--transition);
}

.button.small {
    padding: .75em 1rem;
    border-radius: 1.5rem;
}

.button.click {
    transform: scale(0.9, 0.9);
}

/* nav */

.nav-desktop {
    padding: 4rem;
}

.nav-desktop .nav-logo {
    display: block;
    width: 12rem;
    height: 3rem;
    background: url(/static/osqar/logo/logo_purple.svg) no-repeat left center;
    background-size: contain;
}

.nav-desktop .nav-links-wrapper {
    max-height: 2.5652rem;
    overflow: visible;
}

.nav-desktop .nav-links-wrapper .nav-links {
    position: relative;
    padding: 0.5rem 1rem;
    border-radius: 1rem;
    background-color: var(--white);
    z-index: 99;
}

.nav-desktop .nav-links-wrapper .nav-links:hover {
    background-color: var(--purple-light);
}

.nav-desktop .nav-link>a {
    display: inline-block;
    font-size: 1.125rem;
    padding: 0.5rem 1.75rem;
}

.nav-desktop .nav-links .nav-link>a.ancestor,
.nav-desktop .nav-links .nav-link>a.active {
    border-bottom: 2px solid var(--purple-dark) !important;
}

.nav-desktop .nav-links:hover .nav-link>a {
    border-bottom: 2px solid rgba(120, 67, 169, 0.4);
}

.nav-desktop .nav-links:hover .nav-link:hover>a {
    border-bottom: 2px solid var(--purple-dark);
}

.nav-desktop .nav-links .has-sub-menu>a {
    display: inline-block;
}

.nav-desktop .nav-links .has-sub-menu .nav-sub-menu {
    display: none;
    margin-top: 0.5rem;
    padding: 0.75rem 0;
}

.nav-desktop .nav-links:hover .has-sub-menu .nav-sub-menu {
    display: flex;
}

.nav-desktop .nav-links .has-sub-menu .nav-sub-menu .nav-sub-menu-link {
    margin: 0.125rem 0;
    white-space: nowrap;
    text-align: center;
    opacity: 0.4;
}

.nav-desktop .nav-links:hover .nav-link.has-sub-menu:hover .nav-sub-menu-link {
    opacity: 0.7;
}

.nav-desktop .nav-links:hover .nav-link.has-sub-menu:hover .nav-sub-menu-link:hover,
.nav-desktop .nav-links .nav-link.has-sub-menu .nav-sub-menu-link.active {
    opacity: 1 !important;
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .nav-desktop .nav-link>a {
        padding: 0.5rem 1rem;
    }
}

.nav-mobile {
    margin-bottom: 2rem;
    padding: 1rem 2rem;
    background-color: var(--white);
}

.nav-mobile .nav-logo {
    display: block;
    width: 80%;
    height: 2rem;
    background: url(/static/osqar/logo/logo_purple.svg) no-repeat left center;
    background-size: contain;
}

.nav-mobile .nav-links {
    display: none;
}

.nav-mobile.open .nav-links {
    display: flex;
    margin: 1rem 0;
    padding: 1rem 0;
    flex-direction: column;
    max-height: calc(100vh - 4rem);
    overflow: auto;
}

.nav-mobile .nav-sub-menu-link {
    width: 100%;
    padding: 0.5rem 0 0.5rem 1rem;
    background: url(/static/osqar/graphics/arrow_right_dark.svg) no-repeat right 0.25rem center;
    background-size: 1.5rem 0.75rem;
}

.nav-mobile .mav-links .nav-sub-menu {
    margin-bottom: 1rem;
}

.nav-mobile.open .nav-link {
    width: 100%;
    padding: 1rem 2rem 1rem 0;
    background-image: url(/static/osqar/graphics/arrow_right_dark.svg);
    background-size: 2rem 1rem;
    background-position: right center;
    background-repeat: no-repeat;
}

.nav-mobile .burger {
    width: 2rem;
    height: 2rem;
    padding: .5rem .375rem;
    transform: rotate(180deg);
}

.nav-mobile .burger .burger-top,
.nav-mobile .burger .burger-bottom {
    position: relative;
    width: 100%;
    height: .25rem;
    background-color: var(--purple-dark);
    border-radius: 2px;
}

.nav-mobile.open .burger .burger-top {
    width: 1.6rem;
    left: .125rem;
    transform-origin: 3.5px top;
    transform: rotate(45deg);
}

.nav-mobile.open .burger .burger-bottom {
    width: 1.6rem;
    left: .125rem;
    transform-origin: 3.5px bottom;
    transform: rotate(-45deg);
}

/* inputs */

input {
    padding: .5rem 0;
    font-size: 1rem;
    color: var(--purple-dark);
    border: none;
    outline: none;
    background-color: transparent;
    transition: var(--transition);
}

input::placeholder {
    color: rgba(120, 67, 169, 0.5);
}

input:focus {
    padding-left: .5rem;
}

input[type=checkbox] {
    -webkit-appearance: none;
    height: 1.25rem;
    min-width: 1.25rem;
    width: 1.25rem;
    border: .1rem solid var(--purple-dark);
    border-radius: 50%;
    margin: 0 1rem 0 0;
    padding: 0;
    display: inline-block;
    cursor: pointer;
}

input[type=checkbox]:checked {
    background-color: var(--purple-dark);
}

label {
    line-height: 1.5rem;
    cursor: pointer;
}

.input-wrapper {
    padding: 0.5rem 1rem;
}

.input-wrapper>input {
    width: 100%;
}

/* sections */

section {
    padding: var(--margin-medium) var(--margin-large);
}

section.intro {
    padding-top: 0;
}

section.hero {
    padding-bottom: var(--margin-medium);
}

section h1:only-child {
    margin: 0;
}

/* hero */

.hero-slide {
    width: 100%;
    min-height: 20rem;
}

/* footer */

.footer {
    margin-top: 3rem;
    padding: 4rem;
    background-color: var(--purple-dark);
}

.footer * {
    color: #FFF;
    text-align: left;
}

.footer .footer-logo {
    width: 16rem;
}

.footer .footer-column {
    display: flex;
    flex-direction: column;
}

.footer .footer-column.space {
    justify-content: space-between;
}

.footer .footer-row {
    display: flex;
    flex-direction: row;
}

.footer .copyright {
    margin-top: 2rem;
}

.footer .footer-link {
    font-weight: 700;
    margin-bottom: .5rem;
    white-space: nowrap;
}

/* images */

.image-container {
    position: relative;
    width: 100%;
}

.image-container.full {
    height: 100%;
}

.rounded {
    border-radius: 1.625rem;
    overflow: hidden;
}

.circle {
    border-radius: 50%;
    overflow: hidden;
}

img {
    object-fit: contain;
    object-position: center center;
}

img.full {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

img.half-width {
    width: 50%;
    height: 100%;
}

img.contain {
    width: 66%;
    height: 66%;
}

img.small {
    width: 6.25vw;
    height: 6.25vw;
}

img.cover {
    object-fit: cover;
}

img.margin {
    margin: 6.25vw auto;
}

img.circle {
    border-radius: 50%;
}

.image-caption {
    position: absolute;
    width: 100%;
    height: 4rem;
    bottom: 0;
}

.image-caption.low {
    bottom: -3rem;
}

.image-description {
    position: absolute;
    width: 100%;
    height: 5rem;
    top: calc(100% - 5rem);
    overflow: hidden;
}

.image-container:hover .image-description.expand {
    top: 0;
    height: 100%;
    overflow: auto;
}

.image-description.expand .image-description-header {
    background-image: url(/static/osqar/graphics/add.svg);
    background-size: 1rem 1rem;
    background-position: right 1.625rem center;
    background-repeat: no-repeat;
}

.image-description .image-description-header {
    width: 100%;
    height: 5rem;
    flex-shrink: 0;
    font-size: 1.25rem;
    font-weight: 900;
}

.image-description .image-description-content {
    padding: 0 1.625rem 1.625rem 1.625rem;
}

.image-description .image-description-content p {
    margin: 0;
}

.image-align-right {
    flex-direction: row;
}

.image-align-left {
    flex-direction: row-reverse;
}

.image-align-right .flex-margin {
    margin-left: 4rem;
    margin-right: 0;
}

.image-align-left .flex-margin {
    margin-left: 0;
    margin-right: 4rem;
}

/* lazy loading images */

.lazy-load-image {
    opacity: 1;
    width: 100%;
    height: 100%;
    border: none;
    transition: opacity 0.18s ease-in-out;
}

.lazy-load-image[data-src] {
    opacity: 0;
}

/* lists */

.ol {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin: 2rem 0;
}

.ol>* {
    margin-bottom: 2rem;
}

.large-number {
    font-size: var(--font-large);
    font-weight: 900;
}

.ol .ol-header {
    font-weight: 700;
    margin-bottom: 1rem;
}

.ol .ol-content p {
    margin: 0;
}

.ol+.button-row {
    margin-top: -1rem;
}

/* pages */

.abstract {
    max-width: 50rem;
    width: 60%;
    margin: 0 auto;
}

.stick {
    position: sticky;
    top: 4rem;
}

/* search bar */

.search-bar {
    width: 100%;
    height: 3.25rem;
    padding: 0 1.625rem 0 3rem;
    border-radius: 1.625rem;
    margin: 0 0 2.5rem 0;
    background-image: url(/static/osqar/graphics/search.svg);
    background-size: auto 1.25rem;
    background-position: left 1.25rem center;
    background-repeat: no-repeat;
}

.filter-bar {
    width: 100%;
    min-height: 3.25rem;
    padding: 0.625rem 1.625rem;
    margin: 0 0 2.5rem 0;
}

.filter-bar .filter-spaceholder {
    margin: 0 2rem;
    width: 2px;
    border-radius: 1px;
    height: 1.5rem;
    background-color: var(--purple-dark);
    opacity: 0.5;
}

/* pagination */

.paginate {
    min-height: 2.25rem;
    font-size: 0.875rem;
    background-color: var(--purple-light);
    border-radius: 1.375rem;
    text-align: center;
    padding: .75rem .5rem;
}

.paginate .paginate-back,
.paginate .paginate-next {
    width: 1rem;
    height: 1rem;
    margin: 0 .375rem;
    background: url(/static/osqar/graphics/arrow_right_dark.svg) no-repeat center center;
    background-size: contain;
    cursor: pointer;
}

.paginate .paginate-back {
    transform: rotate(180deg);
}

.paginate .paginate-page {
    margin: 0 .375rem;
    color: var(--purple-dark);
    cursor: pointer;
}

.paginate .paginate-page.active {
    border-bottom: 2px solid var(--purple-dark);
    border-top: 2px solid transparent;
    cursor: auto;
}

/* resources */

.resources-filter {
    width: 20rem;
    padding: 1.625rem;
}

.resources-filter:not(.open) h4 {
    margin-bottom: 0;
}

.resources-filter-group .resources-filter-header {
    padding: .5rem 0;
    cursor: pointer;
}

.resources-filter-group .resources-filter-header .arrow,
.resources-filter h4 .arrow {
    width: .75rem;
    height: .75rem;
    background: url(/static/osqar/graphics/arrow_down_dark.svg) no-repeat center center;
    background-size: contain;
    transition: var(--transition);
    cursor: pointer;
}

.resources-filter-group.open .resources-filter-header .arrow,
.resources-filter.open h4 .arrow {
    transform: rotate(180deg);
}

.resources-filter .resources-filter-group,
.resources-filter-group .resources-filter-content {
    display: none;
}

.resources-filter-group .resources-filter-content {
    padding-left: 1.625rem;
}

.resources-filter.open .resources-filter-group,
.resources-filter-group.open .resources-filter-content {
    display: block;
}

.resource {
    margin-bottom: 2.5rem;
    padding: 1.625rem;
    transition: var(--transition);
    cursor: pointer;
}

.resource:hover,
.articles .article-link:hover,
.last-blog-article:hover,
.recommendation:hover {
    box-shadow: 0 0 1rem 0 rgba(120, 67, 169, 0.25);
}

.resource .resource-description div {
    text-align: justify;
    -webkit-hyphenate-limit-before: 5;
    -webkit-hyphenate-limit-after: 5;
    hyphenate-limit-chars: 10 5 5;
    word-wrap: normal;
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
}

.resource-tags {
    width: 7.5rem;
    margin-left: 1.625rem;
}

.resource-tags .resource-tag {
    width: 100%;
    min-height: 2.25rem;
    font-size: 0.875rem;
    line-height: 1rem;
    background-color: var(--purple-light);
    border-radius: 0.8125rem;
    text-align: center;
    padding: .75rem .5rem;
}

.resource-tags .resource-tag+.resource-tag {
    margin-top: .5rem;
}

/* calendar / legal */

.month,
.state {
    padding: 1.625rem;
    margin-bottom: 1.625rem;
    transition: var(--transition);
}

.month .month-header,
.state .state-header {
    width: 100%;
    padding-right: 2rem;
    font-weight: 900;
    background-image: url(/static/osqar/graphics/add.svg);
    background-position: right center;
    background-repeat: no-repeat;
    background-size: 1rem 1rem;
    cursor: pointer;
}

.month .month-content,
.state .state-content {
    width: 100%;
    margin-top: 1.625rem;
    display: none;
}

.month .month-content p {
    margin: 0;
}

.state .state-content p {
    text-align: left;
    margin: 0 0 0.5rem 0;
}

.state .state-content ul {
    margin: 1rem 0;
}

.month .month-content b {
    display: block;
    margin: 1rem 0;
}

.month .month-resources .month-resource {
    display: block;
    padding-right: 2rem;
    background-image: url(/static/osqar/graphics/arrow_right_dark_full.svg);
    background-position: right .25rem center;
    background-repeat: no-repeat;
    background-size: .75rem auto;
}

.month .month-resources .month-resource:hover {
    background-position: right center;
}

.month.open .month-header,
.state.open .state-header {
    background-image: url(/static/osqar/graphics/remove.svg);
}

.month.open .month-content,
.state.open .state-content {
    display: block;
}

/* slider */

/* .slider {
    position: relative;
}

.slider::before {
    content: "";
    position: absolute;
    top: 2rem;
    left: 2rem;
    width: 2rem;
    height: 2rem;
    z-index: 99;
    background: url(/static/osqar/graphics/arrow_right_dark.svg) no-repeat center center;
}

.slider:hover::before {
    background: url(/static/osqar/graphics/arrow_right_dark.svg) no-repeat center center;
} */

.slider .slider-previous,
.slider .slider-next {
    width: 2.5rem;
    height: 2.5rem;
    flex: 1 0 auto;
    background: url(/static/osqar/graphics/arrow_right_dark.svg) no-repeat left center;
    background-size: contain;
    cursor: pointer;
}

.slider .slider-previous {
    transform: rotate(180deg);
    margin-right: var(--margin-medium);
}

.slider .slider-next {
    margin-left: var(--margin-medium);
}

.slider .slider-slides {
    display: flex;
    max-width: 100%;
    flex-direction: row;
    overflow: hidden;
}

.slider .slider-slide {
    width: 100%;
    flex: 1 0 auto;
    padding: var(--margin-large);
}

.slider .slider-controls {
    position: absolute;
    width: 100%;
    left: 0;
    height: 1rem;
    margin-top: -2rem;
    /* bottom: calc(2.5rem - var(--margin-large)); */
}

.slider .slider-controls .slider-dot {
    width: .25rem;
    height: .25rem;
    margin: 0 .25rem;
    background-color: var(--purple-light);
    border-radius: 50%;
    transition: var(--transition);
}

.slider .slider-controls .slider-dot.active {
    width: .5rem;
    height: .5rem;
    background-color: var(--purple-dark);
}

@media screen and (max-width: 768px) {
    .slider .slider-controls {
        margin-top: 0;
    }

    .slider .relative {
        max-width: 100%;
    }
}

@media screen and (min-width: 769px) {
    .slider .relative {
        max-width: calc(100% - 5rem - 2 * var(--margin-medium))
    }
}

/* quote */

.quote {
    position: relative;
    z-index: 1;
}

.quote:before {
    position: absolute;
    content: '';
    width: 2.5rem;
    height: 2rem;
    left: -2.5rem;
    top: -2rem;
    background: url(/static/osqar/graphics/quote.svg) no-repeat center center;
    background-size: contain;
    z-index: -1;
}

.quote p {
    margin: 0;
}

@media screen and (max-width: 768px) {
    .quote:before {
        left: -1rem;
    }
}

/* BLOG */

.articles .article-link {
    max-width: calc(50% - var(--margin-small));
    margin-bottom: var(--margin-small);
}

.articles .article-link img,
.last-blog-article img {
    flex: 0 0 auto;
    width: 40%;
    height: auto !important;
    max-width: 12rem;
    max-height: 16rem;
    align-self: stretch;
    object-fit: cover;
    object-position: center center;
}

.articles .article-link h4,
.last-blog-article h4 {
    margin-bottom: 1rem;
}

.articles .article-link,
.last-blog-article {
    padding: 1.625rem;
    transition: var(--transition);
}

@media screen and (max-width: 768px) {
    .articles .article-link {
        max-width: 100%;
        width: 100%;
    }

    .articles .article-link img,
    .last-blog-article img {
        width: 100% !important;
        max-height: 12rem;
    }
}

.article {
    /* boxed to 640px */
    max-width: 40rem;
    margin: 0 auto;
    padding: var(--margin-small);
}

.article h1+h3 {
    /* author and date */
    margin: -2rem 0 3rem 0;
    font-size: 1rem;
    font-weight: normal;
}

.article img.richtext-image {
    object-fit: contain;
    object-position: center;
}

.article img.richtext-image.full-width {
    width: 100%;
    height: auto;
    max-height: 32rem;
}

.article img.richtext-image.left,
.article img.richtext-image.right {
    width: 50%;
    max-height: 16rem;
}

.article img.richtext-image.left {
    margin: 1rem 2rem 1rem 0;
    float: left;
}

.article img.richtext-image.right {
    margin: 1rem 0 1rem 2rem;
    float: right;
}

@media all and (max-width: 768px) {

    .article img.richtext-image.left,
    .article img.richtext-image.right {
        width: 100%;
        height: auto;
        margin: 0;
        float: none;
        max-height: 32rem;
    }
}

/* RECOMMENDATIONS */

.recommendations .recommendation {
    flex: 1 0 auto;
    max-width: calc(50% - var(--margin-small));
    width: calc(50% - var(--margin-small));
    padding: 1.625rem 3.625rem 1.625rem 1.625rem;
    margin-bottom: var(--margin-small);
    font-weight: 400;
    transition: var(--transition);
    cursor: pointer;
}

.recommendations .recommendation.last-recommendation {
    max-width: 100%;
    width: auto;
}

.recommendations .recommendation:not(.open) .show-on-open,
.recommendations .recommendation.open .hide-on-open {
    display: none;
}

.recommendations .recommendation .recommendation-header {
    flex: 1 0 auto;
    margin-right: -2rem;
    padding-right: 2rem;
    background-image: url(/static/osqar/graphics/add.svg);
    background-position: right center;
    background-repeat: no-repeat;
    background-size: 1rem 1rem;
}

.recommendations .recommendation.open .recommendation-header {
    background-image: url(/static/osqar/graphics/remove.svg);
}

.recommendations .recommendation .image-container {
    display: flex;
    flex: 0 0 auto;
    width: 5.5rem;
    min-height: 8rem;
    height: 100%;
    max-height: 10rem;
    align-self: center;
    border-radius: 1rem;
    overflow: hidden;
}

.recommendations .recommendation .image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.recommendations .recommendation .recommendation-content {
    flex: 1 1 auto;
}

.recommendations .recommendation .recommendation-content:not(:first-child) {
    margin-left: 1.625rem;
}

.recommendations .recommendation h4 {
    margin: 0;
}

.recommendations .recommendation b {
    font-weight: 700;
}

.recommendations .recommendation .author,
.recommendations .recommendation .label {
    font-size: 0.875rem;
}

.recommendations .recommendation .metadata {
    margin: .5rem 0;
}

.recommendations .recommendation .author-image {
    flex: 0 0 auto;
    width: 4rem;
    height: 4rem;
}

.recommendations .recommendation .acronym .letter {
    font-size: 1.25rem;
    font-weight: bold;
    letter-spacing: -0.125rem;
}

/* filters */

.recommendations-overview .filter-bar h4 {
    margin: 0;
}

.recommendations-filters .acronym .letter {
    font-size: 1.5rem;
    font-weight: bold;
    cursor: pointer;
}

.recommendations-filters .acronym .letter:not(.active) {
    filter: grayscale(100%);
    opacity: 0.5;
}

.recommendations-filters .languages .language {
    font-weight: normal;
    font-size: 1.5rem;
    cursor: pointer;
}

.recommendations-filters .languages .language:not(.active) {
    opacity: 0.5;
}

.recommendations-filters .languages .language+.language::before {
    content: "/";
    margin: 0 .5rem 0 0.375rem;
    opacity: 0.5;
}

.recommendations-filters .languages .language+.language:not(.active)::before {
    opacity: 1;
}

/* posters */

.posters .poster {
    padding: 1rem;
    margin-bottom: var(--margin-small);
}

.posters .poster .poster-description {
    padding: 1rem;
}

.posters .poster .poster-preview-container {
    max-width: 100%;
    flex: 1;
    align-items: stretch;
    overflow: auto;
}

.posters .poster .poster-preview-container .poster-preview-navigate {
    flex: 0 0 2rem;
    background: url(/static/osqar/graphics/arrow_right_dark.svg) no-repeat center center;
    background-size: 1rem;
    transition: var(--transition);
    cursor: pointer;
}

.posters .poster .poster-preview-container .poster-preview-navigate.prev {
    transform: rotate(180deg);
}

.posters .poster .poster-preview-container .poster-preview-navigate.hidden {
    opacity: 0;
    pointer-events: none;
}

.posters .poster .poster-preview-wrapper {
    position: relative;
    flex: 1;
    overflow: auto;
}

.posters .poster .poster-preview-wrapper::before,
.posters .poster .poster-preview-wrapper::after {
    position: absolute;
    content: "";
    width: 1rem;
    height: 100%;
    top: 0;
    background: linear-gradient(to right, var(--white) 0%, rgba(255, 255, 255, 0) 100%);
}

.posters .poster .poster-preview-wrapper::before {
    left: 0;
}

.posters .poster .poster-preview-wrapper::after {
    right: 0;
    transform: rotate(180deg);
}

.posters .poster .poster-preview {
    max-width: 100%;
    scroll-snap-type: x proximity;
    overflow: auto;
}

.posters .poster .poster-preview img {
    width: auto;
    height: 16rem;
    padding: 0 1rem;
    scroll-snap-align: start;
}


@media screen and (max-width: 768px) {
    .recommendations-filters {
        margin: 0 auto;
    }

    .recommendations-filters .acronym .letter,
    .recommendations-filters .languages .language {
        font-size: 1.25rem;
    }

    .filter-bar .filter-spaceholder {
        margin: 0 1.5rem;
    }
}

@media screen and (max-width: 400px) {

    .recommendations-filters .acronym .letter,
    .recommendations-filters .languages .language {
        font-size: 1rem;
    }
}

/* colors of the acronym */

.acronym .letter:nth-of-type(1) {
    color: #7843A9;
}

.acronym .letter:nth-of-type(2) {
    color: #0A5F93;
}

.acronym .letter:nth-of-type(3) {
    color: #629765;
}

.acronym .letter:nth-of-type(4) {
    color: #F3BB48;
}

.acronym .letter:nth-of-type(5) {
    color: #F36717;
}

.acronym .letter:nth-of-type(6) {
    color: #E53534;
}

.recommendations .recommendation .acronym .letter {
    position: relative;
    filter: grayscale(100%);
    opacity: 0.5;
}

.recommendations .recommendation .acronym .letter.active {
    filter: grayscale(0%);
    opacity: 1;
}

@media screen and (max-width: 860px) {
    /* 
        has to be more than 768px because otherwise the 
        acronym and the languages might clash 
    */

    .recommendations .recommendation {
        max-width: 100%;
        width: 100%;
    }
}

@media screen and (max-width: 400px) {
    .recommendations .recommendation .acronym .letter {
        font-size: 1rem;
        letter-spacing: -0.175rem;
    }

    .recommendations .recommendation .languages {
        font-size: 0.75rem;
    }
}

@media screen and (max-width: 500px) {

    .recommendations .recommendation .acronym,
    .recommendations .recommendation .languages {
        flex-direction: column !important;
    }
}

/* definitions */

.has-definition {
    border-bottom: 1px dashed var(--purple-dark);
    cursor: help;
}

.definition {
    position: absolute;
    width: auto;
    max-width: 16rem;
    font-size: .875rem;
    padding: 0.25rem;
    background-color: var(--purple-light);
    border-radius: 0.25rem;
    box-shadow: 0 0 1rem 0 rgba(120, 67, 169, 0.25);
    z-index: 1000;
}

@media screen and (max-width: 768px) {
    .definition {
        max-width: 12rem;
    }
}

/* interactive map */

.interactive_map {
    max-height: 100vh;
}

.interactive_map svg {
    max-height: calc(100vh - var(--margin-large));
    margin: 0 auto;
}

.interactive_map svg path {
    fill: var(--purple-light);
    fill-rule: nonzero;
    stroke: var(--purple-dark);
    stroke-width: 0.5px;
    cursor: pointer;
    transition: var(--transition);
}

.interactive_map svg path:hover {
    fill: #A98CC9;
}

.interactive_map svg path.selected {
    fill: var(--purple-dark);
}

/* information multi tab */

.multi-tab {
    border-radius: 1rem;
    background-color: var(--white);
    overflow: hidden;
}

.multi-tab .multi-tab-header .multi-tab-header-item {
    padding: 1rem;
    border-bottom: 2px solid rgba(120, 67, 169, 0.4);
    transition: var(--transition);
    cursor: pointer;
}

.multi-tab .multi-tab-header .multi-tab-header-item.active,
.multi-tab .multi-tab-header .multi-tab-header-item:hover {
    border-bottom: 2px solid var(--purple-dark) !important;
}

.multi-tab .multi-tab-header .multi-tab-header-item .multi-tab-header-item-title {
    text-align: center;
}

.multi-tab .multi-tab-content .multi-tab-content-item {
    margin: var(--margin-small);
    column-count: 2;
    column-gap: var(--margin-small);
    display: none;
}

.multi-tab .multi-tab-content .multi-tab-content-item p {
    margin-top: 0;
}

@media screen and (max-width: 768px) {
    .multi-tab .multi-tab-header {
        overflow-x: auto;
        max-width: 100%;
    }

    .multi-tab .multi-tab-header .multi-tab-header-item {
        flex: 1 0 auto;
    }

    .multi-tab .multi-tab-content .multi-tab-content-item {
        column-count: 1;
    }
}


/* TABLET ADJUSTMENTS */

@media screen and (max-width: 1024px) {

    :root {
        --margin-large: 3rem;
        --margin-medium: 2.25rem;
        --margin-small: 1.5rem;

        --font-large: 2.25rem;
    }

    .resources-filter {
        width: 16rem;
    }
}

/* MOBILE ADJUSTMENTS */

@media screen and (max-width: 768px) {

    :root {
        --margin-large: 2rem;
        --margin-medium: 1.5rem;
        --margin-small: 1rem;
        --margin-tiny: 0.5rem;

        --font-large: 2rem;
        --font-medium: 1.75rem;
    }

    body {
        background: var(--white) url(/static/osqar/graphics/background.svg) repeat-y 50% top;
        background-size: 200%;
    }

    /* mobile specific */

    .mobile-hide {
        display: none;
    }

    .mobile-show {
        display: block;
    }

    .mobile-no-margin {
        margin: 0 !important;
    }

    /* general */

    h1 {
        margin: 0 0 2rem 0;
        line-height: 3rem;
    }

    section {
        padding: 1.5rem;
    }

    /* nav */

    .nav {
        position: sticky;
        top: 0;
        z-index: 100;
    }

    /* pages */

    .abstract {
        max-width: auto;
        width: auto;
        margin: 0 1rem;
    }

    /* flex boxes */

    .flex.row:not(.mobile-row) {
        flex-direction: column;
    }

    .flex.column:not(.mobile-column) {
        flex-direction: row;
    }

    .flex.row:not(.mobile-row)>.flex-item.flex-margin {
        margin-top: 2rem;
        margin-left: 0;
    }

    .flex.row:not(.mobile-row)>.flex-item.grow {
        flex: none;
    }

    /* footer */

    .footer {
        padding: 3rem 2rem;
    }

    .footer .footer-row {
        width: 100%;
        margin: 0;
        justify-content: space-between;
    }

    .footer .footer-logo {
        width: 100%;
        max-width: 16rem;
    }

    /* resources */

    .resources-filter {
        width: auto;
        margin-right: 0;
    }

    .resource-tags {
        margin-top: 1.625rem;
        margin-left: 0;
        width: 100%;
    }

    .resource-tags .resource-tag+.resource-tag {
        margin-top: 0;
        margin-left: .5rem;
    }
}

/* PRINT ADJUSTMENTS FOR BLOG */

@media print {

    :root {
        --purple-dark: #000000;

        --font-large: 2rem;
        --font-medium: 1.75rem;
    }

    .nav,
    .footer {
        display: none;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        text-align: left;
    }

    .article {
        max-width: 100%;
    }

    .article img.richtext-image.full-width {
        max-height: 16rem;
    }
}