@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');

/*
COLOR PALETTE

BLACK: #000000

WHITE: #FFFFFF
LIGHT: #FDF7F4

ORANGE: #FFD18C
DARK ORANGE: #FFA724
*/

*, 
*::before, 
*::after {
    box-sizing: border-box;
}

/* ---------------- LAYOUT ----------------- */
html, body {
    margin: 0;
    padding: 0;
}

html {
    background-color: #FDF7F4;
}

body {
    font-family: 'Inter', sans-serif;
}

.container {
    width: 90%;
    max-width: 800px;
    margin: 0 auto;
}

main {
    background-color: #FDF7F4;
    padding-top: 1.35em;
}

/* ----------------- HEADER ----------------- */
header {
    background-color: #FFF;
    border-bottom: 1.125rem solid #FFD18C;
}

header > .container {
    display: flex;
    align-items: center;
    padding: .75em 0;
}

.logo {
    width: 11.5em;
}

.logo,
.open-burger,
.close-burger {
    cursor: pointer;
}

/* ---------------- NAVIGATION ---------------- */
nav {
    display: initial;
    position: fixed;
    overflow-y: scroll;
    right: 0;
    top: 0;
    background: #FFD18C;
    width: 65vw;
    height: 100%;
    visibility: hidden;
    z-index: 1;
}

nav .container {
    width: 100%;
}

nav ul {
    list-style-type: none;
    padding: 0;
    margin-top: 3em;
}

nav a {
    display: block;
    text-decoration: none;
    color: black;
    font-size: 1.35rem;
    padding: .5em 1em;
}

nav li:not(.active) a:hover,
nav li:not(.active) a:focus {
    background-color: #ffc164;
}

.active a {
    font-weight: bold;
    color: black;
}

.open-burger,
.close-burger {
    width: 2.65em;
}

.open-burger {
    margin-left: auto;
}

.close-burger {
    display: block;
    margin: 5% 5% 0 auto;
}

.open-nav {
    visibility: unset;
}

/* ----------------- BUTTONS ---------------- */
.btn {
    width: 100%;
    background-color: #FFFFFF;
    border: 5px solid #FFA724;
    font-weight: bold;
    display: block;
    cursor: pointer;
}

.transaction-btn {
    margin-bottom: 1em;
    height: 4rem;
    border-radius: 3.125rem;
    font-size: 1.35rem;
}

.transaction-btn:hover,
.transaction-btn:focus {
    background-color: #FFA724;
}

.info-btn {
    display: flex;
    justify-content: space-between;
    font-size: 1.15rem;
    padding: 1.5em;
    margin-bottom: .69em;
    border-radius: .65rem;
}

.info-btn:hover,
.info-btn:focus {
    background-color: #FFD18C;
}

/* ---------------- SPENDINGS --------------- */
.spendingBar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .5em;
    background-color: #FFD18C;
    border-radius: .9375rem;
    height: 3.0625rem;
    padding: 0 1.25em;
    margin-bottom: 1em;
    font-weight: bold;
}

/* ----------------- MODAL -------------------- */
main .container + .container {
    position: relative;
}

.modal {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 85%;
    background: #555454e8;
    padding: .5em 1em;
}

.modal h2 {
    margin-top: 0;
    color: white;
    text-shadow: 0 0 1px #555454;
}

.close-modal-wrapper {
    text-align: right;
}

.close-modal-btn {
    font-size: 1.125rem;
    font-weight: bold;
    background: none;
    border: 2px solid #aa1717;
    color: #aa1717;
    width: 1.5em;
    cursor: pointer;
}

/* --------------- MEDIA QUERIES -------------- */
@media (min-width: 480px) {

    header {
        border-bottom: 1.3rem solid #FFD18C;
    }

    header > .container {
        padding: 1.25em 0;
    }

    .logo {
        width: 13.3125em;
    }

    .open-burger,
    .close-burger {
        width: 3.25em;
    }

    nav a {
        padding-left: 1.5em;
        font-size: 1.4rem;
    }

    .btn-container {
        display: flex;
        justify-content: center;
        gap: .98em;
    }

    h2 {
        font-size: 1.65rem;
    }

    .transaction-btn {
        max-width: 275px;
        font-size: 1.35rem;
    }

    .info-btn {
        font-size: 1.175rem;
    }

}

@media (min-width: 660px) {

    header {
        border-bottom: 1.65rem solid #FFD18C;
    }
    
    header > .container {
        padding: 1.5em 0;
    }
    
    .logo {
        width: 16.3125em;
    }

    .open-burger,
    .close-burger {
        width: 3.75em;
    }

    nav a {
        padding-left: 2em;
        font-size: 1.5rem;
    }

    .btn-container {
        display: flex;
        gap: .98em;
    }

    h2 {
        font-size: 1.85rem;
    }

    .transaction-btn {
        font-size: 1.55rem;
    }

    .info-btn {
        font-size: 1.35rem;
    }

}

@media (min-width: 906px) {

    header {
        display: flex;
        flex-direction: column;
        padding: 0;
        border: none;
    }

    .logo-link {
        display: inline-block;
        margin: .5em auto;
    }

    .logo {
        width: 23.3125em;
    }

    .open-burger,
    .close-burger {
        display: none
    }

    nav {
        height: auto;
        width: auto;
        position: initial;
        visibility: unset;
        padding: 1.12em 0;
    }

    nav .container {
        width: 90%;
    }

    nav ul {
        display: flex;
        margin: 0;
    }

    nav li:not(:last-child) {
        margin-right: auto;
    }

    nav a {
        font-size: 1.5625rem;
        padding: 0;
    }

    nav li:not(.active) a:hover,
    nav li:not(.active) a:focus,
    nav li:not(.active) a:active {
        text-decoration: underline;
        background-color: initial;
    }

    main {
        padding: 2.06em 0 5.56em;
    }

    h2 {
        font-size: 2.5rem;
    }

    .transaction-btn {
        font-size: 1.875rem;
    }

    main .container + .container {
        max-width: 1200px;
    }

    .history {
        display: flex;
        gap: 2.38rem;
    }

    .history > * {
        flex: 1;
    }

    .info-btn {
        font-size: 1.5625rem;
    }

    .modal {
        display: inline !important;
        position: initial;
        margin: initial;
        width: unset;
        background: none;
        padding: unset;
    }

    .modal h2 {
        margin-top: revert;
        color: initial;
        text-shadow: none;
    }
    
    .close-modal-btn {
        display: none;
    }
    
}
