:root {
    --primary-color: #0d6efd;
    --secondary-color: #6c757d;
    --level-bg-color: #d00d04;
    --level-text-color: #ffeab7;
    --bg-color: #0a58ca;
    --text-color: #ffffff;
}

#upgrades {
    overflow: hidden;
    max-width: 25%;
    transition: max-width 0.5s ease-in-out;
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
}

#upgrades-header-title,
#upgrades-header-buy {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1.25rem;
}

#upgrades-header-buy-list {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.upgrades-header-buy-list-item {
    margin: 0 0.125rem;
}

h2>img {
    vertical-align: middle;
}

#upgrades-body {
    padding: 0;
}

#upgrades-content {
    padding: 0 0.5rem;
}

.hero {
    display: flex;
    flex-direction: column;
    margin-bottom: 0.5rem;
    padding: 0.375rem 0.75rem;
    border-radius: 0.375rem;
    background-color: var(--primary-color);
    color: var(--text-color);
    position: relative;
}

.hero:hover {
    cursor: pointer;
    background-color: var(--bg-color);
}

.hero-body {
    display: flex;
    justify-content: space-between;
    font-size: calc(1.325rem);
}
.hero-level {
    margin-left: 1rem;
    padding: 1rem;
    background-color: var(--secondary-color);
    border-radius: 0.375rem;
}
.hero-level-option {
    padding: 0.25rem;
    background-color: var(--level-bg-color);
    border-radius: 50%;
    font-size: calc(0.825rem);
    position: absolute;
    right: 0;
    top: 70%;
}
.hero-cost {
    display: flex;
    align-items: center;
    justify-content: start;
    white-space: nowrap;
    font-size: calc(1.275rem + .3vw);
}

.hero-cost-value {
    display: inline-block;
    padding: 0.35em 0.65em;
    border-radius: 0.375rem;
    font-size: 0.75em;
    font-weight: bold;
    line-height: 1;
    background-color: var(--secondary-color);
    color: var(--text-color);
}

.hero-achievement-level {
    display: inline-block;
    margin-right: 0.25rem;
    padding: 0.5em 0.5em;
    border-radius: 50%;
    font-size: 0.75em;
    font-weight: bold;
    line-height: 1;
    background-color: var(--level-text-color);
    color: var(--level-bg-color);
}

@media (max-width: 1050px) {

    #upgrades.upgrades-md {
        max-width: 0;
        display: none;
    }

    #upgrades.show {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 10;
        width: 100%;
        max-width: 100%;
        height: 100vh;
        display: flex;
    }

    #upgrades-content {
        width: 75%;
        background-color: white;
        padding: 0.25rem;
    }
}