:root {
    --main-bg-color: #153065;
    --main-card-color: #1D428A;
    --secondary-card-color: #2450A8;
    --main-accent-color: #2859bb;
    --secondary-accent-color: #6385c9;
    --link-color: #a9c4fa;

    --border-color: rgba(255, 255, 255, 0.12);
    --text-muted: rgba(255, 255, 255, 0.75);
}

* {
    font-family: Verdana, sans-serif;
}

body {
    background-color: var(--main-bg-color);
    color: white;
}

/* Typography */

p,
li,
td,
th,
span,
label {
    color: white;
}

a {
    color: var(--link-color);
    text-decoration: none;
}

a:hover {
    color: white;
    text-decoration: underline;
}

.blockquote-footer {
    color: var(--text-muted);
}

/* Navbar */

.navbar {
    background-color: var(--main-accent-color) !important;
    border: 1px solid var(--secondary-accent-color);
}

.navbar .navbar-brand,
.navbar .nav-link {
    color: white !important;
}

.navbar .nav-link:hover {
    opacity: 0.8;
}

/* Cards */

.card {
    background-color: var(--main-card-color);
    border: 1px solid var(--border-color);
    color: white;
}

.card-title,
.card h2,
.card h3,
.card h4 {
    color: white;
}

/* Tables */

.table {
    color: white;
    margin-bottom: 0;
}

.table-striped>tbody>tr:nth-of-type(odd)>* {
    background-color: var(--secondary-card-color);
    color: white;
}

.table-striped>tbody>tr:nth-of-type(even)>* {
    background-color: var(--main-card-color);
    color: white;
}

.table>:not(caption)>*>* {
    border-bottom-color: var(--border-color);
}

.table thead th {
    background-color: var(--secondary-card-color) !important;
    color: white !important;
    border-bottom: 2px solid var(--secondary-accent-color) !important;
}

/* Buttons */

.btn-primary {
    background-color: var(--main-accent-color);
    border-color: var(--secondary-accent-color);
}

.btn-primary:hover {
    background-color: var(--secondary-card-color);
    border-color: var(--secondary-accent-color);
}

/* Announcement banner */

#announcementBanner {
    animation: append-animate 0.2s ease-in-out;
    z-index: 1030;
}

#announcementBanner .alert {
    background-color: var(--secondary-card-color);
    border: 1px solid var(--secondary-accent-color);
    color: white;
}

/* Fullscreen page */

#contactTable,
#contactTableFullScreen,
#currentMembers {
    text-align: center;
}

#contactTable a,
#contactTableFullScreen a,
#currentMembers a {
    color: white;
}

/* Images */

.img-fluid {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Utility */

.text-muted-custom {
    color: var(--text-muted);
}

/* Animation */

@keyframes append-animate {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}