html,
body {
    height: 100%;
    margin: 0;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* full viewport height */
}

a {
    color: #4e6272;
}

main {
    flex: 1; /* this pushes the footer down */
}

footer {
    background: black;
    color: #a9a8a9;
}

footer p {
    float: right;
    padding: 10px 17px 0;
}

footer a {
    color: #c1c1c1;
}

.nav-link {
    color: #b8b7b7;
    border-radius: 5px;
}

.nav-link.active {
    background: #2a554d;
    opacity: 1;
}

.navbar-nav {
    font-size: 14px;
}

.navbar-nav.me-auto {
    position: absolute;
    font-size: medium;
}

#sub-nav .navbar-nav {
    position: relative;
    top: -1px;
}

#main-nav {
    background: black !important;
    z-index: 100;
}

#main-nav .container-fluid {
    height: 40px;
}

#sub-nav {
    height: 45px;
}

.nav-link.active,
.nav-link:hover {
    color: white;
}

body.about .nav-link {
    color: #b1b1e9 !important;
}

body.archive .nav-link {
    color: #6e978f !important;
}

body.teaching .nav-link {
    color: #628c45;
}

body.digital .nav-link {
    color: #d18989 !important;
}

body.siteadmin .nav-link {
    color: #d0d0d0 !important;
}

body.about .nav-link.active,
body.about .nav-link:hover {
    color: white !important;
}

body.teaching .nav-link:hover {
    color: white;
}

body.archive .nav-link:hover {
    color: white !important;
}

body.digital .nav-link:hover {
    color: white !important;
}

body.siteadmin .nav-link:hover {
    color: white !important;
}

nav#sub-nav .nav-link {
    color: #efeeee;
}

#sub-nav .nav-link:hover {
    color: white;
}

.navbar-brand {
    font-variant-caps: titling-caps;
    font-size: 26px;
    font-weight: lighter;
}

a.navbar-brand {
    color: #4e6272;
}

a.navbar-brand:hover {
    color: #000 !important;
}

.navbar.navbar-expand-lg.navbar-light.bg-dark {
    background: #376f65 !important;
    background: linear-gradient(90deg, rgb(81 117 55 / 100%) 0%, rgb(48 127 113 / 100%) 30%, rgb(123 85 162 / 100%) 70%, rgb(140 57 38 / 100%) 100%) !important;
}

.linked-content-item {
    background: #cdd5dd;
    height: 80px;
    width: fit-content;
    border-radius: 10px;
    margin-bottom: 2%;
    padding: 15px;
    justify-content: center;
    display: flex;
    align-items: center;
    color: #485b6a;
}

.linked-content-item .no-decor {
    text-decoration: none;
    font-size: 150%;
    position: relative;
    top: -2px;
    margin: 0 3px;
    color: #6e7775;
}

#right-link {
    float: right;
    margin-right: 5%;
}

#left-link {
    float: left;
    margin-left: 5%;
}

/* Make the iframe responsive */
.embed-container {
    position: relative;
    width: 100%;
    padding-bottom: 60%; /* 56.25%; 16:9 aspect ratio */
    height: 0;
    overflow: hidden;
}

.embed-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    overflow: hidden;
}

body.about .nav-link.active {
    background: #53376f;
}

body.archive .nav-link.active {
    color: white !important;
}

body.archive .nav-link.active,
body.archive .navbar.navbar-expand-lg.navbar-light.bg-dark {
    background: #2a534c;
}

body.teaching .nav-link.active {
    background: #3e572c !important;
}

body.digital .nav-link.active {
    color: white !important;
    background: #863838;
}

body.siteadmin .nav-link.active {
    color: white !important;
    background: #4d4e4e;
}

#sub-nav .nav-link.active {
    background: #2a534c;
}

body.about #sub-nav .nav-link.active {
    background: #422b58;
}

body.archive #sub-nav .nav-link.active {
    background: #2a534c;
}

body.digital #sub-nav .nav-link.active {
    background: #682b2b;
}

.index-cards-gallery {
    column-count: 4;
    column-gap: 10px;
    padding: 20px;
}

.index-cards-gallery img {
    width: 100%;
    height: auto;
    margin-bottom: 10px;
    border-radius: 6px;
}

.tags a {
    padding: 5px 10px;
    border: 1px solid #aaa;
    border-radius: 4px;
    margin: 4px;
    text-decoration: none;
    display: inline-block;
    font-size: 14px;
}

.tag a {
    color: white !important;
    text-decoration: none;
}

.pagination a {
    margin: 0 10px;
}

.back-link {
    width: 100vw;
    display: inline-block;
    padding: 30px 0 20px 10px;
    color: #4f7e76;
}

body.about a {
    color: #242480;
}

body.archive a {
    color: #367b6f;
}

body.digital a {
    color: #863838;
}

body.siteadmin a {
    color: #4d4e4e;
}

body.teaching a {
    color: #4e6f37;
}

body.archive footer a {
    color: #498e83;
}

body.about footer a {
    color: #b1b1e9;
}

body.teaching footer a {
    color: #628c45;
}

body.digital footer a {
    color: #d18989;
}

body.siteadmin footer a {
    color: #797878;
}

.tags a:hover {
    background: #2b6258;
    color: #fff;
}

.header {
    padding: 10px 0 20px;
}

.ck-content {
    height: 300px;
}

/* styles for wysiwyg elements */
figure.image {
    text-align: center;
}

figure.image.image-style-side {
    float: right;
}

figcaption {
    text-align: center;
    color: #717171;
    font-size: small;
}

blockquote {
    border-left: #358d7d 2px solid;
    padding: 2px 10px;
}

.category-item-audio {
    padding: 10px 10px 20px;
}

.video-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 ratio */
    height: 0;
}

.video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Ensure focus is highly visible for accessibility */
.video-container iframe:focus {
    outline: 4px solid #0056b3;
    outline-offset: 4px;
}

#siteadmin-nav {
    display: block !important;
}

#siteadmin-nav ul {
    float: right;
}

.curr-user span {
    float: left;
    color: white;
    padding: 1px 5px 2px 8px;
    font-size: smaller;
}

button.logout {
    background: #464d4c;
    border: 1px solid white;
    padding: 1px 0 0;
    border-radius: 3px;
    color: white;
    font-size: small;
}

.tag {
    font-size: x-small;
    background: teal;
    padding: 2px 4px;
    border-radius: 3px;
    color: white;
}

.group-card {
    float: left;
    margin-right: 1em;
    display: block;
}

.pagination {
    width: 80vw;
    padding-top: 1em;
}

.image-card {
    float: left;
    text-align: center;
    font-size: x-small;
}

.image-card img {
    margin-bottom: 10px;
}

i.fa {
    margin-right: 5px;
    color: #308a79;
}

i.fa.fa-sign-out-alt {
    color: white;
}

#left-link a,
#right-link a {
    color: #41515e;
}

ul.errorlist {
    margin: 0;
    padding: 0;
    list-style: none;
    color: #da3535;
}

ul.errorlist li {
    margin: 4px 0;
}

ul.messages {
    color: green;
    border: 1px solid green;
    width: max-content;
    padding: 8px;
    list-style-type: none;
    margin-top: 10px;
}

.form-control {
    left: -10px;
    position: relative;
    border: 1px solid gray;
}

body.about nav#sub-nav .nav-link {
    color: #f9f9f9 !important;
}

body.archive nav#sub-nav .nav-link {
    color: #f3f3f3 !important;
}

body.digital nav#sub-nav .nav-link {
    color: #f3f3f3 !important;
}

body.archive nav#sub-nav .nav-link:hover {
    color: white !important;
}

body.about nav#sub-nav .nav-link:hover {
    color: white !important;
}

body.about .navbar.navbar-expand-lg.navbar-light.bg-dark {
    background: #53376f !important;
}

body.about #left-link a,
body.about #right-link a {
    color: #53376f;
}

body.about .linked-content-item {
    background: #adace4;
    color: #242480;
}

body.archive .navbar-brand {
    color: #2a534c;
}

body.archive .navbar.navbar-expand-lg.navbar-light.bg-dark {
    background: #376f65 !important;
}

body.archive .linked-content-item {
    background: #b1e1d8;
    color: #2a5951;
}

body.archive #left-link a,
body.archive #right-link a {
    color: #2a5951;
}

body.digital a.navbar-brand {
    color: #863838;
}

body.teaching a.navbar-brand {
    color: #4e6f37;
}

body.teaching .navbar.navbar-expand-lg.navbar-light.bg-dark {
    background: #4e6f37 !important;
}

body.teaching .linked-content-item {
    background: #c2eda3;
}

body.teaching #left-link a,
body.teaching #right-link a {
    color: #435f2f;
}

body.teaching .linked-content-item .no-decor {
    color: #4e6f37;
}

body.digital #left-link a,
body.digital #right-link a {
    color: #863838;
}

body.digital .linked-content-item {
    background: #f8d4cc;
}

body.digital .linked-content-item .no-decor {
    color: #863838;
}

body.digital .navbar.navbar-expand-lg.navbar-light.bg-dark {
    background: #863838 !important;
}

body.siteadmin .navbar.navbar-expand-lg.navbar-light.bg-dark {
    background: #4d4e4e !important;
}

body.siteadmin #left-link a,
body.siteadmin #right-link a {
    color: #854f43;
}

body.siteadmin .linked-content-item {
    background: #adace4;
}

/* stylelint-disable */
/* Target the CKEditor 5 editable area container */
.ck-editor__editable_inline {
    border: 1px solid #ced4da !important; /* Bootstrap border color */
    border-radius: 0.375rem !important;    /* Bootstrap border-radius */
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

/* Simulate Bootstrap :focus state */
.ck-editor__editable_inline.ck-focused {
    border-color: #86b7fe !important;
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgb(13 110 253 / 25%) !important;
}
/* stylelint-enable */

.ck.ck-reset.ck-editor.ck-rounded-corners,
input,
textarea,
select {
    border: #212529 2px solid !important;
    border-radius: 10px;
    margin: 0;
    left: -7px;
}

/* stylelint-disable */
.ck.ck-toolbar.ck-toolbar_grouping {
    border-radius: 10px 10px 0 0 !important;
}

.ck.ck-content.ck-editor__editable.ck-rounded-corners.ck-editor__editable_inline.ck-blurred {
    border-radius: 0 0 10px 10px !important;
}
/* stylelint-enable */

.btn.btn-primary.btn-sm {
    position: relative;
    top: -3px;
}

audio {
    background: #00ffd0;
}

.lost-password {
    padding: 10px 0;
}

.form-control,
.form-select,
form input[type="text"],
form input[type="password"],
form input[type="email"] {
    color: #212529 !important;
    background-color: #fff !important;
    border: 2px solid #495057 !important;
}

input::placeholder {
    color: #595959;
    opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
    outline: 3px solid #005fcc;
    outline-offset: 2px;
    border-color: #005fcc;
}

.continue-btn {
    margin: 10px 0;
}

@media screen and (width <= 990px) {
    #sub-nav {
        display: none;
    }

    #navbar-nav {
        position: absolute;
        left: -10px;
        top: 100px;
    }

    #navbar-nav,
    #navbar-nav ul,
    #navbar-nav ul li,
    #navbar-nav ul li a {
        width: 100%;
    }

    #navbar-nav ul li {
        padding: 2px 0;
    }

    #main.navshow {
        padding-top: 200px;
        position: relative;
    }

    #navbar-nav,
    #navbar-nav ul,
    #navbar-nav ul li {
        width: 100%;
    }

    #navbar-nav ul {
        background: black;
        top: -44px;
        left: 10px;
        padding: 5px;
    }

    .nav-link {
        color: #b8b7b7;
        padding: 5px;
    }

    #main-nav,
    #sub-nav {
        position: relative;
    }
}
