* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --light-color: #ffffff;
    --light-gray-color: #dadada;
    --gray-color: #8b8b8b;
    --dark-gray-color: #555555;
    --dark-color: #333333;
    --primary-color: #609ECF;
    --important-color: #D93025;
    --light-shadows: #00000038;
    --transition: 350ms;
}

.body {
    background-color: rgb(from var(--primary-color) r g b / 7%);
    padding: 1rem 1.5rem;
    font-family: sans-serif;
    font-family: 'Montserrat';
}

h1 {
    font-weight: 300;
    margin: 1rem 0;
}

p {
    margin: 1.5rem 0;
}

ul {
    padding-left: 1rem;
}

li {
    margin-bottom: 0.5rem;
}

/* Efectos */
.d-none {
    display: none;
}

.underline {
    text-decoration: underline;
}

.text-light {
    color: var(--light-color);
}

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

.thinner-font {
    font-weight: 100;
}

.thin-font {
    font-weight: 200;
}

.regular-font {
    font-weight: 400;
}

.bold-font {
    font-weight: 600;
}

.bolder-font {
    font-weight: 800;
}

.d-block {
    display: block;
}

.d-inline {
    display: inline;
}

.mt-1 {
    margin-top: 1rem;
}

.mt-2 {
    margin-top: 2rem;
}

.mt-3 {
    margin-top: 3rem;
}

/* Cuerpo de la página */
.header {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 2rem;
    transition: var(--transition);
}

.header__img {
    max-width: 642px;
    width: 100%;
    max-height: 162.59px;
    height: 100%;
    border-radius: 15px;
    box-shadow: 2px 2px 10px var(--light-shadows);
    transition: var(--transition);
    &:hover {
        transform: scale(1.05);
        box-shadow: 15px 15px 10px var(--light-shadows);
    }
}

.main {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

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

.main__bubble {
    max-width: 642px;
    width: 100%;
    background-color: var(--light-color);
    border-radius: 15px;
    border: 1px solid var(--light-gray-color);
    padding: 22px 24px;
    margin: 0.5rem 0;
    transition: var(--transition);
}

.descriptive__bubble {
    margin-top: 0;
    border-top: 10px solid var(--primary-color) !important;
    padding-top: 5px;
    padding-bottom: 5px;
}

.offline__bubble {
    background-color: #e26a62;
    border: 1px solid var(--important-color);
}

.warning-text {
    color: var(--important-color);
}

.form__submit-container {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.form__submit {
    width: 100%;
    display: flex;
    max-width: 642px;
    justify-content: flex-start;
}

.form__submit--input {
    padding: 0.7rem 2.5rem;
    cursor: pointer;
    background-color: var(--primary-color);
    border: none;
    color: var(--dark-color);
    border-radius: 5px;
    transition: var(--transition);
}

.form__submit--input[type="submit"] {
    color: var(--light-color);
}

.form__submit--input:hover {
    transform: scale(1.1);
    box-shadow: 25px 25px 10px var(--light-shadows);
}

.form input,
.form label {
    display: block;
}

.form label {
    margin-bottom: 30px;
}

.main__bubble input {
    padding: 10px 7px;
    max-width: 20rem;
    border-radius: 3px;
    width: 100%;
    outline: 4px solid #00000000;
    border: none;
    border-bottom: 1px dotted var(--gray-color);
    transition: var(--transition);
}

.main__bubble input:focus {
    outline-color: var(--primary-color);
}

.ivalid-field-tag {
    transition: var(--transition);
}

.invalid-field-bubble {
    outline: #d93125ad solid 4px;
}

.show {
    display: block !important;
}

.show-opacity {
    opacity: 1 !important;
    pointer-events: all !important;
}

#invalid-form {
    margin-left: 1rem;
    display: none;
}

#loading-screen {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    backdrop-filter: blur(15px);
    transition: var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
}

.loading-screen__content {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
    height: 100%;
}

.loading-screen__h2 {
    color: var(--dark-gray-color);
    font-size: 2em;
    text-align: center;
    margin: 1rem 2rem;
}

.loading-image {
    width: 100%;
    margin: 0 2rem;
    max-width: 350px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.loading-screen__form {
    width: 70%;
    animation: shake infinite 3000ms;
}

.loading-screen__bubble {
    width: 30%;
    animation: rotateAndBounce infinite 3000ms ease-in-out;
}

.input-radio {
    width: 40px !important;
    margin-bottom: 0.5rem;
    display: inline !important;
}

@keyframes shake {
    15% {
        transform: rotateZ(12deg);
    }
    25% {
        transform: rotate(0deg);
    }
    35% {
        transform: rotateZ(12deg);
    }
    45% {
        transform: rotate(0deg);
    }
}

@keyframes rotateAndBounce {
    50% {
        transform: rotateZ(0);
    }
    70% {
        transform: rotateZ(360deg);
    }
    75% {
        transform: translateY(-55px);
    }
    81% {
        transform: translateY(0);
    }
    82% {
        transform: translateY(-35px);
    }
    87% {
        transform: translateY(0);
    }
    88% {
        transform: translateY(-12px);
    }
    92% {
        transform: translateY(0);
    }

}