/*!
 * Rivet and Springshare code customizations. Some rules have been adapted from Drupal Rivet theme.
 * In many cases, rem sizing has been converted to px. Chat widget overrides are found in libchat.css.
 *
 * Usage:
 * Libguides
 * Databases A-Z
 *
 * @author IUL, Library Technologies
 */

body {
    font-size: 14px !important;
}

/* RIVET custom */
.rvt-header-wrapper {
    position: relative;
    z-index: 500;
}

.rvt-button--primary ~ .rvt-button:not(.rvt-button--danger) {
    color: #006298;
    border-color: #c6ecf6;
    background-color: transparent;
}

.rvt-button--primary ~ .rvt-button:not(.rvt-button--danger):hover {
    color: #004f80;
    border-color: #c6ecf6;
    background-color: #edfafd;
}

.rvt-button--primary ~ .rvt-button:not(.rvt-button--danger):focus {
    outline: none;
    box-shadow:
        0 0 0 2px #fff,
        0 0 0 4px #328bb8;
}

.rvt-button--primary ~ .rvt-button:not(.rvt-button--danger):active {
    color: #004f80;
    border-color: #94d2e7;
    background-color: #c6ecf6;
}

.rvt-layout__wrapper--single.rvt-p-tb-xxl + .rvt-c-region {
    margin-top: -64px;
}

.rvt-layout__wrapper--details [class*="rvt-container"] {
    max-width: initial;
    padding-right: 0;
    padding-left: 0;
}

.rvt-c-footer-resources__button,
.rvt-c-footer-resources__button:visited {
    margin-top: 8px;
    padding: 4px 16px;
    background-color: #fff;
    border: #fff;
    color: #900;
    min-width: 240px;
    text-align: center;
    justify-content: center;
    align-items: center;
}

.rvt-c-footer-resources__button:hover {
    background-color: #fa0;
    border: #fa0;
    color: #900;
}

.rvt-c-footer-resources__link-list .rvt-c-field {
    margin: 0;
}

@media screen and (min-width: 1080px) {
    .rvt-c-footer-resources__link-list .rvt-c-field__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
}

.rvt-c-footer-resources__link-list li {
    margin-top: 8px;
}

.rvt-c-footer-resources__link-list a {
    color: #ffffff;
    display: block;
    font-size: 14px;
    text-decoration: none;
    line-height: 1.5;
}

a.rvt-footer-base__link:hover:visited {
    color: #fff;
}

.rvt-layout__wrapper--details
    .rvt-layout__content
    .rvt-c-section[class*="rvt-bg"],
.rvt-layout__wrapper--details
    .rvt-layout__content
    .rvt-c-section[class*="rvt-bg"]::after,
.rvt-layout__wrapper--details
    .rvt-layout__content
    .rvt-c-section[class*="rvt-bg"]::before {
    background-color: transparent !important;
}

.rvt-header-global__logo-slot {
    margin-right: 32px;
}

@media screen and (min-width: 1080px) {
    .rvt-c-header-menu:not([hidden]) {
        display: flex;
    }
}

.rvt-c-header-menu,
.rvt-c-header-menu > nav {
    align-items: stretch;
}

.rvt-header-global__controls:has(.rvt-c-header-menu) {
    align-items: stretch;
}

.rvt-header-global__controls:has(.rvt-c-header-menu) > div {
    display: flex;
}

.rvt-header-global__controls:has(.rvt-c-header-menu) .rvt-global-toggle {
    align-self: center;
}

.rvt-c-header-menu .rvt-header-menu__list {
    align-items: stretch;
}

.rvt-c-header-menu .rvt-header-menu__item {
    align-items: center;
    margin-right: 16px;
}

.rvt-c-header-menu .rvt-header-menu__item--current::after {
    bottom: -18.4px;
}

.rvt-c-header-menu__external-link-icon {
    width: 11.2px;
    height: 11.2px;
}

@media screen and (min-width: 1080px) {
    .rvt-c-header-menu .rvt-header-menu__link {
        line-height: 1.5;
        font-size: 16px;
        color: #243142;
    }
}

.rvt-c-header-menu .rvt-header-menu__link br {
    display: none;
}

@media screen and (min-width: 1080px) {
    .rvt-c-header-menu .rvt-header-menu__link br {
        display: block;
    }
}

.rvt-c-header-menu
    .rvt-header-menu__submenu-item
    .rvt-dropdown__menu-heading:first-child {
    padding-top: 16px;
}

.rvt-c-header-menu
    .rvt-header-menu__submenu-item
    .rvt-dropdown__menu-heading:first-child
    + .rvt-dropdown__toggle {
    margin-top: 8px;
}

.rvt-c-header-menu
    .rvt-header-menu__submenu-item
    .rvt-header-menu__submenu-link.rvt-dropdown__menu-heading:first-child {
    margin-top: 10px;
    padding-top: 6px;
}

.rvt-c-header-menu .rvt-header-menu__link.rvt-button {
    display: flex;
    padding-right: 10.4px;
    padding-left: 10.4px;
    color: #fff;
    line-height: 14px;
}

.rvt-c-header-menu .rvt-header-menu__link.rvt-cta--button {
    display: inline-flex;
    padding: 22.4px 16px;
    color: #fff;
    font-weight: 700;
}

.rvt-c-header-menu .rvt-dropdown__menu .rvt-dropdown__toggle {
    display: flex;
    align-items: center;
    width: 24px;
    margin: 0;
    padding: 0;
    color: #243142;
    background: #e2e7e9;
}

@media screen and (min-width: 1080px) {
    .rvt-c-header-menu .rvt-dropdown__menu .rvt-dropdown__toggle {
        margin: 0 8px;
    }
}

.rvt-c-header-menu .rvt-c-dropdown__submenu {
    position: relative;
    left: 0;
    margin-top: 0;
    margin-left: 8.8px;
    padding-top: 0;
    background-color: transparent;
    box-shadow: none;
}

@media screen and (min-width: 1080px) {
    .rvt-c-header-menu .rvt-c-dropdown__submenu {
        position: absolute;
        top: 0;
        left: 100%;
        margin-top: -8px;
        margin-left: 0;
        padding-top: 8px;
        padding-bottom: 8px;
        background-color: #fff;
        box-shadow: 0 4px 8px rgba(36, 49, 66, 0.16);
    }
}

.rvt-c-header-menu .rvt-header-menu__submenu-list::before,
.rvt-c-header-menu .rvt-c-header-menu__submenu-item--current::before {
    width: 4px;
}

/* Springshare custom */
.rvt-lockup__title {
    font-size: 20px;
}

@media screen and (min-width: 740px) {
    .rvt-lockup__title {
        font-size: 20px;
    }

    .rvt-lockup__subtitle {
        font-size: 14px;
    }
}

.rvt-lockup__subtitle {
    font-size: 14px;
}

.rvt-lockup__tab {
    width: 64px;
    height: 64px;
}

.rvt-lockup__trident {
    width: 48px;
    height: 40px;
}

.rvt-footer-resources__heading {
    font-size: 24px;
    font-weight: 700;
    margin-top: 24px;
    color: #fff;
}

.rvt-button--small {
    font-size: 19.2px;
    height: 24px;
    padding: 0 6px;
    font-weight: 600;
}

.rvt-c-container-xl {
    margin-left: auto;
    margin-right: auto;
    max-width: 1380px;
    padding-left: 24px;
    padding-right: 24px;
}

/* Handle bootstrap generic "hidden" rule */
@media screen and (min-width: 67.5em) {
    nav.rvt-header-menu[hidden] {
        display: block !important;
    }

    nav.rvt-header-menu {
        visibility: visible;
    }
}

/* SPRINGSHARE custom */
.s-lib-footer {
    background-color: #ffffff;
    font-size: 12px;
}

/* hanging indent */
.hangingindent,
#hangingindent,
#cite,
.cite,
#citation,
.citation {
    padding-left: 36px;
    text-indent: -36px;
}

.s-lg-label-moreinfo button.btn-link {
    padding: 8px 12px;
}

#s-lib-public-header-title {
    font-size: 24px;
    font-weight: 600;
}

.s-lib-box .s-lib-box-title {
    font-size: 22px;
}

h2 {
    font-size: 22px;
}

h3 {
    font-size: 18px;
}

#s-lib-bc .breadcrumb,
#s-lib-admin-bc .breadcrumb {
    font-size: 12px;
}

#s-lg-az-index button {
    padding: 6px;
}

.az-description-view-more-link {
    padding: 4px 6px;
}

#s-lib-public-header-title {
    font-size: 24px;
    font-weight: 600;
}

/* reconcile repeated btn-link in upstream style */
.btn-link {
    color: #006298;
}

/* word "search" is duplicative in main nav pills horizontal */
.me-2 {
    display: none;
}

/* Post Bootstrap 5 update */

/* word "search" is duplicative in main nav pills horizontal */
.me-2 {
    display: none;
}

/* Make the top section (col-md-12) full width */
#s-lg-index-cols > .col-md-12 {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
}

/* Ensure col-md-8 and col-md-4 render adjacent */
#s-lg-index-cols #col1.col-md-8 {
    flex: 0 0 63%;
    max-width: 63%;
    width: 63%;
    float: left;
    display: inline-block;
    vertical-align: top;
    margin-right: 40px;
}

#s-lg-index-cols #col2.col-md-4 {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
    width: 33.333333%;
    float: left;
    display: inline-block;
    vertical-align: top;
}

/* Clear the clearfix wrapper so it doesn't constrain columns */
#s-lg-index-cols .col-md-12 .clearfix {
    width: 100%;
}

/* Ensure the row uses flexbox properly */
#s-lg-index-cols.row {
    display: flex;
    flex-wrap: wrap;
}

/* Responsive: stack on smaller screens */
@media (max-width: 768px) {
    #s-lg-index-cols #col1.col-md-8,
    #s-lg-index-cols #col2.col-md-4 {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100%;
        float: none;
    }
}

/* Make the nav pills container flex and align items */
#s-lg-hp-nav ul.nav-pills {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
}

/* Push the search box to the end (right side) */
#search-guides {
    margin-left: auto;
}

/* Ensure the search form doesn't have extra margins */
#search-guides form {
    margin: 0;
}

/* Keep input-group as flex row (not wrapping) */
#search-guides .input-group {
    flex-wrap: nowrap;
    width: auto;
}

/* Responsive: stack on smaller screens */
@media (max-width: 768px) {
    #search-guides {
        margin-left: 0;
        margin-top: 10px;
        width: 100%;
    }
}

/* remove crimson fill in third-level nav items sidebar */
.dropdown-item.active {
    background-color: unset !important;
}

/* Color Contrast remediations */
.s-lg-box-updated {
    color: #000;
}

.s-lib-box-content table caption {
    color: #4c5a69;
}

.s-lib-profile-email .label-info {
    background-color: #286090;
    color: #ffffff;
}

/* default blue too light */
#s-lg-profile-name-btn .nav-link:not(.active),
#s-lg-profile-subject-btn .nav-link:not(.active) {
    color: #006298;
}

/* Visible Cues for Links remediation */
/* override Bootstrap block of outline-offset */
a,
.rvt-link,
.s-lib-box-content a,
#s-lib-footer-login-link a,
#s-lib-footer-support-link a {
    color: rgb(0, 98, 152);
    text-decoration: underline !important;
}

a:hover,
.rvt-link:hover,
.s-lib-box-content a:hover #s-lib-footer-login-link a:hover,
#s-lib-footer-support-link a:hover {
    color: rgb(0, 56, 95);
    text-decoration: underline;
}

/* remove btn:focus to avoid persistent blue on crimson after click */
a:focus,
.rvt-link:focus,
.btn.active.focus,
.btn.active:focus,
.btn:active.focus,
.btn:active:focus,
input[type="checkbox"]:focus,
input[type="file"]:focus,
input[type="radio"]:focus,
a:focus-visible,
.rvt-link:focus-visible,
#s-lib-footer-login-link a:focus,
#s-lib-footer-support-link a:focus {
    color: rgb(35, 82, 124);
    text-decoration: underline;
    outline: 2px solid rgb(0, 98, 152);
    outline-offset: 2px !important;
}

a:focus:not(:focus-visible),
.rvt-link:focus:not(:focus-visible) {
    outline: none;
}
#s-lg-guide-main a:focus,
#s-lib-public-body a:focus,
.s-lib-box-content a:focus,
#s-lib-bc a:focus,
#s-lg-page-section a:focus {
    outline-offset: 2px !important;
}

/* Interactive Elements Size remediation */
/* Links */
#s-lib-public-body a {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}
.s-srch-result-url a {
    font-size: 12px;
    line-height: 2;
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}

/* Buttons */
#s-lib-public-body button,
#s-lib-public-body .btn,
#s-lib-public-body [role="button"],
#s-lib-public-body input[type="submit"],
#s-lib-public-body input[type="reset"],
#s-lib-public-body input[type="button"],
#s-lg-az-index button,
.s-lg-az-header.btn {
    min-height: 24px;
    min-width: 24px;
}
.slick-prev,
.slick-next,
.slick-arrow,
button.slick-prev,
button.slick-next {
    width: 24px !important;
    height: 24px !important;
}
/* Increase actual visible icon size */
.slick-prev:before,
.slick-next:before {
    font-size: 24px !important;
    line-height: 1 !important;
    color: black !important;
    opacity: 1 !important;
}
/* Form Inputs */
#s-lib-public-body input[type="text"],
#s-lib-public-body input[type="email"],
#s-lib-public-body input[type="search"],
#s-lib-public-body input[type="password"],
#s-lib-public-body input[type="url"],
#s-lib-public-body input[type="tel"],
#s-lib-public-body input[type="number"],
#s-lib-public-body input[type="date"],
#s-lib-public-body textarea,
#s-lib-public-body select {
    min-height: 24px;
    min-width: 24px;
}

/* Checkboxes & Radios */
#s-lib-public-body input[type="checkbox"],
#s-lib-public-body input[type="radio"] {
    min-height: 24px;
    min-width: 24px;
    height: 24px;
    width: 24px;
}

/* Tabs & Toggles */
#s-lib-public-body [role="tab"],
#s-lib-public-body [data-toggle="collapse"],
#s-lib-public-body [data-toggle="dropdown"],
#s-lib-public-body [data-toggle="modal"],
#s-lib-public-body [data-toggle="tooltip"],
#s-lib-public-body [data-toggle="popover"],
#s-lib-public-body .dropdown-toggle {
    min-height: 24px;
    min-width: 24px;
}

/* Clickable list items and tabindex elements */
#s-lib-public-body [tabindex="0"],
#s-lib-public-body [onclick] {
    min-height: 24px;
    min-width: 24px;
}

/* Navigation links */
#s-lib-public-body .navbar a,
#s-lib-public-body .nav a,
#s-lib-public-body .nav-tabs a,
#s-lib-public-body .s-lg-subtab-ul a,
#s-lib-public-body #s-lg-side-nav a,
#s-lib-public-body #s-lib-bc a {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}

/* A-Z Database filter links */
#s-lib-public-body .s-lg-az-index a {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}

/* Select2 js library in in DB-az is not WCAG compliant */
#s-lg-az-filters .select2-selection__choice,
.az-public-mobile-filters .select2-selection__choice,
#col-search input,
.s-lg-az-search::placeholder,
.select2-container--bootstrap5
    .select2-search.select2-search--inline
    .select2-search__field::placeholder {
    font-size: 16px !important;
}

ul.select2-results__option,
ul.select2-results__options {
    font-size: 14px !important;
}

.select2-container--bootstrap5 .select2-dropdown .select2-results__option {
    padding: 4px 6px;
}

.select2-container--bootstrap5 {
    min-width: 24px;
}

.select2-selection {
    min-width: 24px;
    min-height: 24px;
}

.select2-selection select2-selection--multiple,
.select2-selection__rendered {
    min-width: 24px;
    min-height: 24px;
}

.select2-search.select2-search--inline {
    display: inline;
    padding: 6px;
}

/* fix when no topics selected */
.select2-container--bootstrap5 .select2-selection--multiple {
    min-height: 38px; /* matches Bootstrap form-control */
}

.select2-container--bootstrap5 .select2-search--inline .select2-search__field {
    min-height: 24px;
    height: auto;
}

.select2-container--bootstrap5
    .select2-selection--multiple:not(.form-select-sm):not(.form-select-lg) {
    min-height: max(24px, calc(1.5em + 1.55rem + 2px));
    min-width: 24px;
}
.select2-container--bootstrap5
    .select2-search.select2-search--inline
    .select2-search__field {
    padding: 10px;
    line-height: 9px;
    min-width: 24px;
    min-height: 24px;
}

/* Over-ride conflicting height rule */
.select2-container--bootstrap5
    .select2-selection--multiple:not(.form-select-sm):not(.form-select-lg)
    .select2-search__field {
    min-width: 24px;
    min-height: 24px;
    height: auto;
}

/* reposition checkmark in dropdown */
.select2-container--bootstrap5
    .select2-dropdown
    .select2-results__option.select2-results__option--selected {
    padding-right: 35px;
}

/* Close/dismiss buttons */
#s-lib-public-body .close,
#s-lib-public-body .modal .close,
#s-lib-public-body .s-lc-widget-header button {
    min-height: 24px;
    min-width: 24px;
    padding: 4px;
}

/* Carousel/gallery controls */
#s-lib-public-body .carousel-control {
    min-height: 24px;
    min-width: 24px;
}

/* Override: let paragraph links flow normally */
#s-lib-public-body .s-lg-box .s-lg-box-wrapper-plain p a,
#s-lib-public-body .s-lg-box .s-lg-box-wrapper-plain li a,
#s-lib-public-body .s-lg-box .s-lib-box-content p a,
#s-lib-public-body .s-lg-box .s-lib-box-content li a {
    display: inline;
    min-height: unset;
    min-width: unset;
}

/* Use padding to reach 24px target without min-width/height */
#s-lib-public-body a,
#s-lib-public-body button,
#s-lib-public-body .btn,
#s-lib-public-body [role="tab"],
#s-lib-public-body [role="button"] {
    padding: 4px 8px;
    line-height: 1.5;
}

/* sp footer */
#s-lib-footer-login-link,
#s-lib-footer-support-link {
    min-height: 24px;
    min-width: 24px;
}

#s-lib-footer-login-link a,
#s-lib-footer-support-link a {
    display: inline-block;
    min-height: 24px;
    padding: 4px 8px;
    line-height: 1.5;
}

#s-lib-public-body input[type="checkbox"],
#s-lib-public-body input[type="radio"] {
    height: 24px;
    width: 24px;
}

/* Add class to user-created list of links */
.sources-list {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}

/* Education Library Literary Calendar Widget */
#inner_wrapper_cal > p > a {
    min-height: 24px;
    min-width: 24px;
    line-height: 1.8em;
    width: 100%;
    display: inline-block;
}

div.s-lib-box-content li a {
    min-width: 24px;
    min-height: 24px;
    display: inline-block;
}

.s-lg-widget-content-inner li a {
    min-width: 24px;
    min-height: 24px;
    display: inline-block;
}

span li {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}

span li a {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}

/* user advised not to use table structure but this will fix for now */
td > span > a  {
    font-size: 12px;
    min-height: 24px;
    display: inline-block;
}

div#s-lg-az-cols a {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}

/* profile box email */
.s-lib-profile-div a {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}

#s-lg-guide-print-url a {
    display: inline-block;
    min-height: 24px;
    min-width: 24px;
    padding: 4px 8px;
    line-height: 1.5;
}

/* links in branding footer */
.rvt-footer-resources__list-item a {
    min-height: 24px;
    min-width: 24px;
    display: inline-block;
}
