:root {
    --bjp-gray: #5b6571;
    --bjp-light-gray: #f9f7f8;
    --bjp-dark-gray: #323F4D;
    --bjp-color: #007B6C;
    --orthomedia-blue: #3ccecb;
    --orthomedia-darker-blue: #1EB0AD;
    --bjp-tower-advert-size: 120px;
    --bjp-sidebar-container-size: 250px;
}

/* Bootstrap SM */
@media (max-width: 576px) {
    html {
        scroll-padding-top: 60px;
    }
}

body {
    font-family: "Lato",sans-serif;
    font-weight: 400;
}

a:not(.btn),
.btn.btn-link {
    color: var(--bjp-journal-color);
    text-decoration: none;
    &:hover {
        text-decoration: underline !important;
    }
    &:focus-visible {
        outline: 2px solid var(--bjp-journal-color);
        &.variable-background {
            /*
             * For links on unpredictable backgrounds, e.g. play buttons on videos. We use both light and dark colours
             * for the focus indicator to increase visibility/accessibility.
             */
            outline: 2px solid var(--bjp-muted-journal-color);
            border: 2px solid black;
        }
    }
}

img.icon {
    width: 36px;
    height: 36px;
}

.search {
    max-width: 150px;
}

.search-icon {
    background-image: url("/images/icon-search.svg");
    background-repeat: no-repeat;
    background-position: right;
}

.search input {
    border-radius: 0px;
}

img.journal-cover {
    box-shadow: 0 0 10px 0 rgba(0,0,0,.2);
    width: 240px;
    margin-bottom: 10px;
}

.search-input-group {
    width: 50%;
}

.padding-left {
    padding-left: calc(var(--bs-gutter-x) * .5);
}

.search-container {
    margin-right: 0px !important;
}

.card-row {
    flex-direction: row;
}

.nav-link.highlight {
    text-decoration: underline;
    font-weight: 600;
}

.search-filter-sidebar {
    border-top: none !important;
}

.search-journal-image {
    min-width: 138px;
    min-height: 176px;
    max-width: 138px;
    max-height: 176px;
    background-size: cover;
    background-repeat: no-repeat;
    margin: 5px;
    border: solid 1px rgba(0, 0, 0, 0.125);
}

.search-side-content {
    border-left: 1px solid rgba(0,0,0,.125);
}

img.download-button-image {
    width: 24px;
    height: 24px;
}

.sidebar-heading {
    font-weight: 600;
}

.article-expand-details-card {
    border-top: none;
}

.article-container {
    padding-left: 0px;
    margin-left: 0px;
}

.filter-nav-container {
    height: fit-content;
}

.metadataAndContributorsFont {
    color: #747476;
}

.contentWrapper img {
    max-width: 100%;
    max-height: 100%;
}

.abstract {
    background-color: #fef9f5;
    padding: 1.5rem;
}

.information {
    background-color: #fbfafa;
}

.takehome {
    background-color: var(--bjp-even-lighter-journal-color);
}

/*ScrollSpy*/
.nav-link {
    color: black;
}

.bjp-green {
    color: var(--bjp-color);
    &:focus-visible{
        color: var(--bjp-color);
    }
}

.bjp-dark-green {
    color: #215f54;
}

.bjp-bg-light-green {
    background-color: #f1f7f7;
}

.bjp-light-green {
    color: #f1f7f7;
}

.bjp-bg-gray {
    background-color: #a8a8a8;
}

.bjp-gray {
    color: #5B6571;
}

.bjp-light-gray {
    color: var(--bjp-light-gray);
}

.bjp-dark-gray {
    color: var(--bjp-dark-gray) !important;
}

.bjp-bg-light-gray {
    background-color: var(--bjp-light-gray);
}

.subheading {
    font-size: 1.25rem;
    font-weight: 600 !important;
}

.nav-tabs {
    border-bottom: 0;
}

.vr {
    --bs-gutter-x: 0;
}

.header a {
    color: var(--bjp-gray);
    text-decoration: none;
    font-size: 16px;
}

.journal-logo img {
    width: 160px;
    height: auto;
}

@media(max-width: 576px) {
    .journal-logo-large {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.journal-logo-large img {
    width: 198px;
    height: auto;
}

.collapse-button[aria-expanded="true"] .icon-arrow-down {
    display: none;
}

.collapse-button[aria-expanded="false"] .icon-arrow-up {
    display: none;
}

.navbar-logo {
    position: absolute;
    transform: translate(-50%, -40%);
    left: 50%;
    margin-top: 10px;
}

.icon-information {
    background-image: url(/images/icon-info.svg);
}

.icon-information.active {
    background-image: url(/images/icon-info-active-transparent.svg);
}

.icon-share {
    background-image: url(/images/icon-share.svg);
}

.icon-share.active {
    background-image: url(/images/icon-share-active-transparent.svg);
}

.icon-figures {
    background-image: url(/images/icon-figures.svg);
}

.icon-figures.active {
    background-image: url(/images/icon-figures-active-transparent.svg);
}

.icon-metrics {
    background-image: url(/images/icon-metrics.svg);
}

.icon-metrics.active {
    background-image: url(/images/icon-metrics-active-transparent.svg);
}

.icon-references {
    background-image: url(/images/icon-references.svg);
}

.icon-references.active {
    background-image: url(/images/icon-references-active-transparent.svg);
}

.icon-scrollspy {
    background-image: url(/images/icon-scrollspy.svg);
}
.icon-info-heavy {
    background-image: url(/images/icon-info-heavy.svg);
}
.icon-figures-heavy {
    background-image: url(/images/icon-figures-heavy.svg);
}
.icon-share-heavy {
    background-image: url(/images/icon-share-heavy.svg);
}
.icon-metrics-heavy {
    background-image: url(/images/icon-metrics-heavy.svg);
}
.icon-references-heavy {
    background-image: url(/images/icon-references-heavy.svg);
}

.manage-box {
    height: 100%;
}

.manage-box-half {
    padding: 30px;
    height: 50px;
}

img.access-icon {
    width: 17px;
    height: 22px;
}

/*
    Typography used in journal subpages and non-journal specific info pages
*/
#bjpContent strong {
    font-weight: 600;
}

.introHeading {
    margin-bottom: 6rem;
}

.noSpacing p {
    margin-bottom: 0 !important;
}

#bjpContent h3 {
    font-weight: 600;
    margin-bottom: 2rem;
}

#bjpContent h3:not(:first-child) {
    margin-top: 3rem;
}

#bjpContent h4 {
    font-weight: 600;
    font-size: 1.1rem;
    margin-bottom: 1.25rem;
}

#bjpContent p {
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
    font-weight: 400;
}

#bjpContent ul > li {
    list-style: none;
    font-size: 1.1rem;
    font-weight: 400;
}

#bjpContent ul > li:not(:first-child):not(.nav-item) {
    margin-top: .25rem;
}

#bjpContent .bjp-list {
    list-style: none;
    margin-bottom: 1.5rem;
}

#bjpContent .bjp-list > li::before {
    content: "\2022";
    color: #78b8a6;
    display: inline-block;
    width: 1rem;
    margin-left: -1rem;
}

#bjpContent .bjp-list > li > ul > li::before {
    content: "\2014";
    color: #78b8a6;
    display: inline-block;
    width: 1rem;
    margin-left: -1rem;
    margin-right: .5rem;
}

.cmsContent li:not(:first-child):not(.nav-item) {
    margin-top: .25rem;
}

.cmsContent ul {
    list-style: none;
    margin-bottom: 1.5rem;
}

.cmsContent ul > li::before {
    content: "\2022";
    color: #78b8a6;
    display: inline-block;
    width: 1rem;
    margin-left: -1rem;
}

.cmsContent ul > li > ul {
    margin-bottom: 0;
}

.cmsContent ul > li > ul > li::before {
    content: "\2014";
    color: #78b8a6;
    display: inline-block;
    width: 1rem;
    margin-left: -1rem;
    margin-right: .5rem;
}

/*
    In the BJO publication ethics page, the tdm crawler section is rendered out of strapi
    with the list items being in <p> tags whereas this doesn't happy with other lists.

    This overrides margins from #bjpContent > p to provide the expected list styling.
*/
.cmsContent ul > li > p {
    display: inline-block;
    margin-bottom: 0rem !important;
}

.cmsContent ul > li > p:not(:first-child) {
    margin-top: 0.25rem !important;
}

/* Ordered lists, currently only used for privacy and T&C pages, where we use the same style.
 * If we ever need to use a different style of ordered list, we should create more classes as necessary.
 */

#bjpContent ol {
    counter-reset: item;
    padding-left: 0;
}

#bjpContent ol > li {
    display: table;
    font-size: 1.1rem;
    font-weight: 400;
}

#bjpContent ol > li {
    margin-top: 1.5rem;
}

#bjpContent :not(li) > ol > li:first-of-type {
    margin-top: 0;
}

#bjpContent ol > li:before {
    content: counters(item, ".") ". ";
    counter-increment: item;
    padding-right: 0.6rem;
}

#bjpContent ol > li.emptyListItem:before {
    visibility: hidden;
}

#bjpContent ol > li > ol > li:before {
    display: table-cell;
}

#bjpContent ol > li.emptyListItem {
    margin-top: 0;
}

/* At level 4+ of a nested ordered list, switch from numbers (e.g. 2.1.3) to letters (e.g. (a)) */
#bjpContent ol > li > ol > li > ol > li > ol > li:not(.emptyListItem):before {
    content: "(" counter(item, lower-alpha) ") ";
    counter-increment: item
}

#bjpContent ol p {
    margin-top: 1.5rem;
    margin-bottom: 0;
}

/*
    Social media button styling. Overrides default button styling.
*/
.btnSocialMedia {
    border: none;
    width: 150px;
}

a.btn.btnSocialMedia{
    text-decoration: none;
    text-align: left;
    
    &.btnFacebook {
        background-color: #3b5998 !important;
        &:hover {
            filter: brightness(85%);
        }
        &:focus, &:focus-visible {
            outline-color: #B6C6E7 !important;
        }
    }

    &.btnTwitter {
        background-color: black !important;
        &:hover {
            filter: brightness(85%);
        }
        &:focus, &:focus-visible {
            outline-color: #C7C7C7 !important;
        }
    }

    &.btnLinkedIn  {
        background-color: #0077b5 !important;
        &:hover {
            filter: brightness(85%);
        }
        &:focus, &:focus-visible {
            outline-color: #8AD6FF !important;
        }
    }

    &.btnInstagram   {
        background-color: #833AB4 !important;
        &:hover {
            filter: brightness(85%);
        }
        &:focus, &:focus-visible {
            outline-color: #D5BDEA !important;
        }
    }

    &.btnYoutube   {
        background-color: #FF0000 !important;
        &:hover {
            filter: brightness(85%);
        }
        &:focus, &:focus-visible {
            outline-color: #FFD6D6 !important;
        }
    }

    &.btnTikTok   {
        background-color: #ff0050 !important;
        &:hover {
            filter: brightness(85%);
        }
        &:focus, &:focus-visible {
            outline-color: #FFDBE7 !important;
        }
    }
    
    &.btnEmail {
        background-color: #707070 !important;
        &:hover {
            filter: brightness(85%);
        }
        &:focus, &:focus-visible {
            outline-color: var(--bjp-even-lighter-journal-color) !important;
        }
    }
}

a.white-outline {
    border-color: white !important;
}

a.dark-outline {
    border-color: var(--bjp-color) !important;
}
/*
    From Bootstrap 5.2, navbar links default to zero padding unless this var is set
*/
#navbarNav {
    --bs-navbar-nav-link-padding-x: .5rem;
}

/* 
    Journal specific colours, default is same as BJJ (green)
*/
.bjp-journal-colour {
    color: var(--bjp-journal-color) !important;
}

.bjp-bg-journal-colour {
    background-color: var(--bjp-journal-color) !important;
}

.bjp-darker-journal-colour {
    color: var(--bjp-darker-journal-color) !important;
    border-color: var(--bjp-darker-journal-color) !important;
}

.bjp-darker-bg-journal-colour {
    background-color: var(--bjp-darker-journal-color) !important;
}

.btn-primary, .btn-primary.disabled {
    color: var(--bjp-even-lighter-journal-color);
    background-color: var(--bjp-journal-color);
    border-color: var(--bjp-journal-color);
}

.btn-check:checked+.btn, .btn.active, .btn.show, .btn:first-child:active, :not(.btn-check)+.btn:active {
    background-color: var(--bjp-darker-journal-color);
    border-color: var(--bjp-darker-journal-color);
    color: var(--bjp-even-lighter-journal-color);
}

.btn-outline-primary {
    border-color: var(--bjp-journal-color);
    color: var(--bjp-journal-color);
}

.btn-primary, .btn-outline-primary, .btn-secondary, .nav-button, .page-btn {
    &:hover {
        background-color: var(--bjp-darker-journal-color) !important;
        border-color: var(--bjp-darker-journal-color) !important;
        color: var(--bjp-even-lighter-journal-color) !important;
    }
}

.dropdown-item.active, .dropdown-item:active {
    text-decoration: none;
    background-color: var(--bjp-darker-journal-color);
    color: var(--bjp-even-lighter-journal-color);
}


.btn-primary,
.btn-outline-primary {
    &:active {
        background-color: var(--bjp-darker-journal-color);
        border-color: var(--bjp-darker-journal-color);
        color: var(--bjp-even-lighter-journal-color);
    }
}

.btn-primary,
.btn-outline-primary,
.nav-button,
.page-btn {
    &:focus, &:focus-visible {
        background-color: var(--bjp-journal-color);
        /* We keep the border for both filled and outline buttons so they are the same size */
        border-color: var(--bjp-journal-color);
        outline: 3px solid var(--bjp-muted-journal-color) !important;
        outline-offset: -5px;
        color: var(--bjp-even-lighter-journal-color) !important;
        box-shadow: none;
    }
}

.btn-primary.icon-btn {
    /* For icon buttons, we remove the border as it would affect the icon size */
    border: none;
    &:focus, &:focus-visible {
        outline-offset: -6px;
    }
}

.btn-secondary, .btn-outline-secondary {
    background: unset;
    border: none;
    &:focus, &:focus-visible {
        background: unset;
    }
}

.btn-close {
    background-image: url("/images/icon-cross.svg");

    opacity: 0.75;
    &:hover {
        opacity: 1;
    }
}

/* TODO Ideally we shouldn't be using btn without a btn-* class */
.btn:not(.btn-primary):not(.btn-outline-primary):not(.nav-button):not(.page-btn) {
    &:focus, &:focus-visible {
        outline: 2px solid var(--bjp-journal-color);
        box-shadow: none;
    }
}

.bjp-border-journal-colour {
    border: var(--bjp-journal-color);
}

.nav-button {
    border: 1px solid gray;
    background-color: white;
    &.active {
        border-color: var(--bjp-journal-color);
        border-width: 1px;
        border-style: solid;
    }
}

.page-btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background-color: #e9ecef;
    line-height: 28px;
    display: inline-block;
}

.page-btn.page-arrow {
    color: var(--bjp-journal-color);
    &.disabled {
        color: var(--bjp-gray);
        background-color: #f8f9fa;
    }
}

.page-btn.page-number {
    &.disabled {
        opacity: 1;
    }
}

.nav-button, .page-btn {
    &.active {
        color: white;
        background-color: var(--bjp-journal-color);
    }
}

.nav-link.nav-sub-section:not(.section-highlight) {
    color: black;
}

#article-body a.link {
    padding: .125rem;
    background-color: var(--bjp-even-lighter-journal-color)
}

.form-control:focus{
    outline: 2px solid var(--bjp-journal-color);
    box-shadow: none;
}

.underline{
    border-bottom: 1px solid var(--bjp-gray);
}

/* End journal specific colours */
/* 
    Chrome styles search inputs with an 'X' on the right side when input is present
    Remove this style as it overlaps the search icon
*/
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    display: none;
}

/*
    Utility classes
*/
.cursor-pointer {
    cursor: pointer;
}

.article-result {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.button-inverse {
    border-color: var(--bjp-muted-journal-color) !important;
    background:  none !important;
    fill: none !important;
    &:hover {
        border-color: var(--bjp-journal-color) !important;
        background: var(--bjp-journal-color) !important;
        fill: var(--bjp-journal-color) !important;
    }
    &:focus {
        background:  none !important;
    }
}

.button-inverse-dark {
    border-color: var(--bjp-muted-journal-color) !important;
    background:  none !important;
    fill: none !important;
    .button-inverse-dark:hover {
        border-color: var(--bjp-darker-journal-color) !important;
        background: var(--bjp-darker-journal-color) !important;
        fill: var(--bjp-darker-journal-color) !important;
    }
}

.mw-1600-px {
    max-width: 1600px;
}

.tower-advert {
    width: var(--bjp-tower-advert-size);
    min-width: var(--bjp-tower-advert-size);
    height: 600px;
    z-index: 0;
    position: sticky;
    top: 0;
}

.board-portrait {
    height: 139px;
    width: auto;
    max-width: 119px;
}

h5.specialty-title {
    font-size: 1rem;
}

footer span::before {
    content: '- ';
}

.accessibility-max-width {
    max-width: 90ch;
}

.figure-caption {
    color: #6B727B !important;
}