:root {
    --color-background: #08131a; /* rich black */
    --brand-color-first: #112632; /* gun metal */
    --brand-color-second: #e83835; /* vermilion */
    --brand-color-third: #ffeeee; /* lavender blush */
    --brand-color-accent-first: #ffffff; /*white*/
    --brand-color-accent-second: #000000; /*black*/
}

@font-face {
    font-family: "Park Lane NF";
    src: url(../fonts/park_lane_nf.woff2) format("woff2"), url(../fonts/park_lane_nf.woff) format("woff");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}


body {
    background-color: var(--color-background);
    color: var(--brand-color-third);
    font-family: Georgia, serif;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: calc(100vh - 20px);
}

html {
    font-size: 23px;
}

.component-container {
    min-width: 90%;
    max-width: 90%;
    margin-top: 15px;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
    background-color: var(--brand-color-first);
    color: var(--brand-color-third);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.component-title {
    font-family: "Park Lane NF";
    font-size: 40px;
    padding: 0;
    background: var(--brand-color-first);
    margin-top: 0;
    margin-bottom: 5px;
}

h2 {
    font-family: "Park Lane NF";
    font-size: 30px;
    padding: 0;
    margin-top: 0;
    margin-bottom: 5px;
}
/* --------------- */


/* --------------- */
input {
    font-size: 16px;
    padding: 10px 10px;
    font-family: 'Roboto', sans-serif;
    margin: 5px 0;
    border-radius: 0;
    background-color: var(--color-background);
    color: var(--brand-color-third);
    outline: none;
    transition: all 0.3s ease;
}

    input:focus {
        border-color: var(--brand-color-first);
    }

    input::placeholder {
        color: var(--brand-color-third);
        opacity: 1;
    }

    input:focus::placeholder {
        color: transparent;
    }

    input:hover {
        border-color: var(--brand-color-third);
    }

    input:active {
        border-color: var(--brand-color-third);
    }

select {
    font-family: 'Roboto', sans-serif;
    font-size: 16px;
    padding: 10px 10px;
    margin: 5px 0;
    border: 1px solid var(--brand-color-third);
    border-radius: 0;
    background-color: var(--color-background);
    color: var(--brand-color-third);
    outline: none;
}

    select:focus {
        border-color: var(--brand-color-first);
    }

    select::placeholder {
        color: var(--brand-color-third);
        opacity: 1;
    }

    select:focus::placeholder {
        color: transparent;
    }

    select:hover {
        border-color: var(--brand-color-third);
    }

    select:active {
        border-color: var(--brand-color-third);
    }

/* --------------- */
textarea {
    font-family: 'Roboto', sans-serif;
    font-size: 16px;
    padding: 10px 10px;
    margin: 5px 0;
    border: 1px solid var(--brand-color-third);
    border-radius: 0;
    background-color: var(--color-background);
    color: var(--brand-color-third);
    outline: none;
}

    textarea:focus {
        border-color: var(--brand-color-first);
    }

    textarea::placeholder {
        color: var(--brand-color-third);
        opacity: 1;
    }

    textarea:focus::placeholder {
        color: transparent;
    }

    textarea:hover {
        border-color: var(--brand-color-third);
    }

    textarea:active {
        border-color: var(--brand-color-third);
    }

button {
    font-size: 16px;
    font-weight: 500;
    padding: 5px 10px;
    margin: 8px 0;
    border-radius: 0px;
    border: 1px solid var(--brand-color-third);
    background-color: var(--brand-color-first);
    color: var(--brand-color-third);
    cursor: pointer;
    text-transform: uppercase;
    outline: none;
    box-shadow: none;
    transition: all 0.3s ease;
}

    button:hover {
        background-color: var(--brand-color-third);
        color: var(--brand-color-first);
    }

    button:active {
        background-color: var(--brand-color-third);
        transform: scale(0.88);
    }

    button:focus {
        outline: none;
        transform: scale(0.9);
    }

    /* TODO: Disabled state */
    button:disabled {
        background-color: #e0e0e0;
        color: #9e9e9e;
        cursor: not-allowed;
        box-shadow: none;
    }

a:link {
    color: var(--brand-color-third);
}

a:visited {
    color: var(--brand-color-third);
}

a:hover {
    color: var(--brand-color-second);
}

a:active {
    color: var(--brand-color-second);
}
