/* Open Sans Regular (400) */
@font-face {
    font-family: 'Open Sans';
    src: url('/static/main/vendor/opensans/OpenSans-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Open Sans Medium (500) */
@font-face {
    font-family: 'Open Sans';
    src: url('/static/main/vendor/opensans/OpenSans-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* Open Sans SemiBold (600) */
@font-face {
    font-family: 'Open Sans';
    src: url('/static/main/vendor/opensans/OpenSans-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* Open Sans Bold (700) */
@font-face {
    font-family: 'Open Sans';
    src: url('/static/main/vendor/opensans/OpenSans-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/*[ RESET TAGS ]*/
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body, html {
  height: 100%;
  font-family: 'Open Sans', sans-serif;
  font-weight: 400;
}

/* Links */
a {
  font-family: 'Open Sans';
  font-size: 14px;
  line-height: 1.7;
  color: #666;
  transition: 0.4s;
  font-weight: 400;
}

a:hover {
  color: #57b846;
  text-decoration: none;
}

/* Headings */
h1,h2,h3,h4,h5,h6 {
  margin: 0;
  font-family: 'Open Sans';
  font-weight: 700;
}

p {
  font-size: 14px;
  line-height: 1.7;
  color: #666;
  font-family: 'Open Sans';
}

ul, li {
  list-style: none;
}

/* Inputs */
input, textarea {
  outline: none;
  border: none;
  font-family: 'Open Sans';
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
  color: transparent;
}

/* Buttons */
button {
  outline: none !important;
  border: none;
  background: transparent;
}

button:hover {
  cursor: pointer;
}

/*//////////////////////////////////////////////////////////////////
[ Utility ]*/
.txt1 {
  font-family: 'Open Sans';
  font-size: 13px;
  font-weight: 400;
  color: #999;
}

.txt2 {
  font-family: 'Open Sans';
  font-size: 13px;
  font-weight: 400;
  color: #666;
}

/*//////////////////////////////////////////////////////////////////
[ LOGIN ]*/
.limiter {
  width: 100%;
  margin: 0 auto;
}

.container-login100 {
  width: 100%;
  min-height: 100vh;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  padding: 15px;
  background: linear-gradient(-135deg, #068740, #6EA555);
}

.wrap-login100 {
  width: 100%;
  max-width: 850px;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 4rem;
  padding: 1.5rem 2rem;
  margin: 0 auto;
  box-sizing: border-box;
}

/* Imagem */
.login100-pic {
  flex: 1 1 300px;
  max-width: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.login100-pic img {
  width: 100%;
  height: auto;
  display: block;
}

/* Formulário */
.login100-form {
  flex: 0 0 290px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.login100-form-title {
  font-family: 'Open Sans';
  font-weight: 700;
  font-size: 24px;
  color: #333;
  text-align: center;
  margin-bottom: 1rem;
}

/* Inputs */
.wrap-input100 {
  position: relative;
  width: 100%;
  margin-bottom: 10px;
}

.input100 {
  font-family: 'Open Sans';
  font-weight: 600;
  font-size: 15px;
  color: #666;
  width: 100%;
  background: #e6e6e6;
  height: 50px;
  border-radius: 25px;
  padding: 0 30px 0 68px;
}

.focus-input100 {
  position: absolute;
  border-radius: 25px;
  bottom: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 0 0;
  transition: 0.5s;
}

.input100:focus + .focus-input100 {
  animation: anim-shadow 0.5s forwards;
}

@keyframes anim-shadow {
  to {
    box-shadow: 0 0 70px 25px rgba(87, 184, 70, 0.8);
    opacity: 0;
  }
}

.symbol-input100 {
  font-size: 15px;
  display: flex;
  align-items: center;
  position: absolute;
  border-radius: 25px;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-left: 35px;
  pointer-events: none;
  color: #666;
  transition: 0.4s;
}

.input100:focus + .focus-input100 + .symbol-input100 {
  color: #57b846;
  padding-left: 28px;
}

/* Botão */
.container-login100-form-btn {
  width: 100%;
  display: flex;
  justify-content: center;
  padding-top: 10px;
}

.login100-form-btn {
  font-family: 'Open Sans';
  font-weight: 700;
  font-size: 20px;
  color: #fff;
  text-transform: uppercase;
  width: 100%;
  height: 50px;
  border-radius: 25px;
  background: #57b846;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 25px;
  transition: 0.4s;
}

.login100-form-btn:hover {
  background: #333;
}

/* Botão pequeno */
.container-login100-form-btn-sm {
  width: 100%;
  display: flex;
  justify-content: center;
  padding-top: 10px;
}

.login100-form-btn-sm {
  font-family: 'Open Sans';
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  width: auto;
  height: 35px;
  border-radius: 20px;
  background: #64AAC3;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 0 20px;
  transition: 0.4s;
}

.login100-form-btn-sm:hover {
  background: #333;
  color: #fff;
}

/*//////////////////////////////////////////////////////////////////
[ ALERT VALIDATE ]*/
.validate-input {
  position: relative;
}

.alert-validate::before {
  content: attr(data-validate);
  position: absolute;
  max-width: 70%;
  background-color: #fff;
  border: 1px solid #c80000;
  border-radius: 13px;
  padding: 4px 25px 4px 10px;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  font-family: 'Open Sans';
  font-weight: 600;
  color: #c80000;
  font-size: 13px;
  line-height: 1.4;
  text-align: left;
  visibility: hidden;
  opacity: 0;
  transition: 0.4s;
}

.alert-validate::after {
  content: "\f06a";
  font-family: FontAwesome;
  position: absolute;
  color: #c80000;
  font-size: 15px;
  top: 50%;
  right: 13px;
  transform: translateY(-50%);
}

.alert-validate:hover::before {
  visibility: visible;
  opacity: 1;
}

/*//////////////////////////////////////////////////////////////////
[ MEDIA QUERIES RESPONSIVE ]*/
@media (max-width: 992px) {
  .wrap-login100 {
    flex-direction: column;
    padding: 2rem 1.5rem;
    gap: 2rem;
  }
}

@media (max-width: 768px) {
  .wrap-login100 {
    flex-direction: column;
    padding: 2rem 1.5rem;
    gap: 2rem;
  }

  .login100-pic {
    flex: none;
    max-width: 70%;
    width: 100%;
    margin-bottom: 2rem;
  }

  .login100-form {
    width: 100%;
    min-width: unset;
  }
}

/* Mensagens gerais acima do login */
.login-messages {
  width: 100%;
  max-width: 850px;
  margin: 0 auto 1.5rem auto;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  text-align: center;
}

.login-messages .alert {
  margin: 0;
}

@media (max-width: 576px) {
  .wrap-login100 {
    padding: 1rem;
    gap: 0rem;
  }

  .login100-pic {
    max-width: 60%;
  }
}
