html,
body {
    margin: 0px;
    padding: 0px;
    font-size: 13px;
    color: rgba(0, 0, 0, 0.87);
    font-family: "Spartan-Regular", "Helvetica Neue", sans-serif;
    background-color: white;
}

@media (min-width: 1281px) {
    html, body {
        font-size: 14px;
    }
}

.text-left {
    text-align: left;
}

.mb-4 {
    margin-bottom: 1rem;
}

.flex {
    display: flex;
}

.flex-initial {
    flex: 0 1 auto;
}

.ml-4 {
    margin-left: 1rem;
}

.hidden {
    display: none;
}

/* Wrapping element */
/* Set some basic padding to keep content from hitting the edges */
.body-content {
    padding-left: 15px;
    padding-right: 15px;
}

/* Set widths on the form inputs since otherwise they're 100% wide */
input,
select,
textarea {
    max-width: 280px;
}

/* Carousel */
.carousel-caption {
    z-index: 10 !important;
}

    .carousel-caption p {
        font-size: 20px;
        line-height: 1.4;
    }

@media (min-width: 768px) {
    .carousel-caption {
        z-index: 10 !important;
    }
}

/**** FONTS ****/

@font-face {
    font-family: "Spartan-Regular";
    font-weight: 400;
    font-style: normal;
    src: url("/fonts/Spartan-Regular.ttf") format("truetype");
}

@font-face {
    font-family: "Spartan-Medium";
    font-weight: 500;
    font-style: normal;
    src: url("/fonts/Spartan-Medium.ttf") format("truetype");
}

@font-face {
    font-family: "Spartan-Semibold";
    font-weight: 600;
    font-style: normal;
    src: url("/fonts/Spartan-SemiBold.ttf") format("truetype");
}

@font-face {
    font-family: "Spartan-Bold";
    font-weight: 700;
    font-style: normal;
    src: url("/fonts/Spartan-Bold.ttf") format("truetype");
}

/**** TYPOGRAPHY ****/

h4 {
    font-family: 'Spartan-Bold';
}

.hypecast-sub-title {
    margin-bottom: 50px;
    max-width: 300px;
    text-align: center;
}

@media (min-width: 768px) {
    .hypecast-sub-title {
        max-width: 500px;
    }
}

/**** LINK ****/

a.hypecast-link {
    color: #0029FF;
    font-size: 1.125rem;
    font-family: 'Spartan-Bold';
    text-decoration: none;
}

.hypecast-header__link {
    font-size: 1.125rem;
    border: none;
    background: none;
    font-family: 'Spartan-Regular';
    color: white;
}

/**** IMAGES ****/

.hypecast-logo {
    height: 50px;
    width: auto;
    margin-bottom: 4rem;
}

@media (min-width: 768px) {
    .hypecast-logo {
        height: 100px;
    }
}

/**** FORM FIELD ****/

.hypecast-form-field {
    display: flex;
    flex-direction: column;
    margin-bottom: 50px;
}
.hypecast-form-field input {
    height: auto;
    font-size: 1.125rem;
    box-shadow: none;
    border: none;
    border-bottom: 1px solid #090909;
    border-radius: 0;
    color: #090909;
    background-color: #f6feff;
    padding: 15px 25px;
}
.hypecast-form-field input:focus {
    box-shadow: none;
    border-color: #0029FF;
}
.hypecast-form-field label {
    margin-bottom: 10px;
    font-size: 1.125rem;
    font-family: 'Spartan-Bold';
}
.hypecast-error {
    position: absolute;
    margin-top: 4px;
    font-size: 0.875rem;
    width: 500px;
}

.hypecast-form-error {
    margin-bottom: 5px;
    font-size: 0.875rem;
}

@media (min-width: 768px) {
    .hypecast-form-field input {
        width: 500px;
        max-width: 500px;
    }
}

/**** BUTTON ****/

.hypecast-button {
    white-space: nowrap;
    height: 3.125rem;
    padding: 0.938rem 1.875rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.125rem;
    border: none;
    font-family: 'Spartan-Bold';
    cursor: pointer;
    border-radius: 0.375rem;
    background-image: linear-gradient( 45deg, rgba(0, 41, 255, 1) 0%, rgba(0, 209, 255, 1) 100% );
    position: relative;
    z-index: 1;
}

.hypecast-button::before {
    cursor: pointer;
    border-radius: 0.375rem;
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: linear-gradient( 45deg, rgba(0, 209, 255, 1) 0%, rgba(0, 41, 255, 1) 100% );
    z-index: -1;
    transition: opacity 0.3s linear;
    opacity: 0;
}

.hypecast-button:hover::before {
    opacity: 1;
}

.hypecast-secondary-button {
    font-family: 'Spartan-Bold';
    color: #090909;
    font-size: 1.125rem;
    line-height: 100%;
    white-space: nowrap;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 0.938rem 1.875rem;
    cursor: pointer;
    border: 2px solid #090909;
    box-sizing: border-box;
    border-radius: 4px;
    position: relative;
    transition: opacity 0.3s linear;
    height: 3.125rem;
    background: white;
}

.hypecast-secondary-button:hover {
    border-color: #0029FF;
}


/**** CONTAINER ****/

.content-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;

    margin-top: 30px;
}

.authorize-container {
    margin-top: 50px;
}

@media (min-width: 768px) {
    .content-container {
        margin: 30px 0 0 0;
    }
    .authorize-container {
        margin-top: 0;
    }
}


.hypecast-form {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.forgot-password-confirmation-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.hypecast-header {
    height: 50px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    background: #090909;
    position: absolute;
    top: 0;
    padding: 0 1rem;
}

.hypecast-footer {
    margin-top: 50px;
    height: 200px;
    flex: 0 1 auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    background-color: #090909;
    padding: 2rem 1rem;
}

@media (min-width: 768px) {
    .hypecast-footer {
        margin-top: 100px;
        height: 80px;
        padding: 0 1rem;
        flex-direction: row;
    }
}