html {
	height: 100%;
}

body {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-webkit-flex-direction: column;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	position: relative;
	min-height: 100%;
	background: #f1f1f1;
}
/* Animation Keyframes */
@-webkit-keyframes scale_header {
	0% {
		max-height: 0px;
		margin-bottom: 0px;
		opacity: 0;
	}
	100% {
		max-height: 117px;
		margin-bottom: 25px;
		opacity: 1;
	}
}
@keyframes scale_header {
	0% {
		max-height: 0px;
		margin-bottom: 0px;
		opacity: 0;
	}
	100% {
		max-height: 117px;
		margin-bottom: 25px;
		opacity: 1;
	}
}

@-webkit-keyframes input_opacity {
	0% {
		-webkit-transform: translateY(-10px);
		transform: translateY(-10px);
		opacity: 0;
	}
	100% {
		-webkit-transform: translateY(0px);
		transform: translateY(0px);
		opacity: 1;
	}
}

@keyframes input_opacity {
	0% {
		-webkit-transform: translateY(-10px);
		transform: translateY(-10px);
		opacity: 0;
	}
	100% {
		-webkit-transform: translateY(0px);
		transform: translateY(0px);
		opacity: 1;
	}
}

@-webkit-keyframes text_opacity {
	0% {
		color: transparent;
	}
}

@keyframes text_opacity {
	0% {
		color: transparent;
	}
}

@-webkit-keyframes error_before {
	0% {
		height: 5px;
		background: rgba(0, 0, 0, 0.156);
		color: transparent;
	}
	10% {
		height: 117px;
		background: #ffffff;
		color: #c62828;
	}
	90% {
		height: 117px;
		background: #ffffff;
		color: #c62828;
	}
	100% {
		height: 5px;
		background: rgba(0, 0, 0, 0.156);
		color: transparent;
	}
}

@keyframes error_before {
	0% {
		height: 5px;
		background: rgba(0, 0, 0, 0.156);
		color: transparent;
	}
	10% {
		height: 117px;
		background: #ffffff;
		color: #c62828;
	}
	90% {
		height: 117px;
		background: #ffffff;
		color: #c62828;
	}
	100% {
		height: 5px;
		background: rgba(0, 0, 0, 0.156);
		color: transparent;
	}
}

/* Login Form */
.login-container {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-webkit-flex-direction: column;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	position: relative;
	width: 340px;
	height: auto;
	padding: 5px;
	box-sizing: border-box;
}

.login-container img {
	width: 200px;
	margin: 0 0 20px 0;
}

.login-container p {
	-webkit-align-self: flex-start;
	-ms-flex-item-align: start;
	align-self: flex-start;
	font-family: "Roboto", sans-serif;
	font-size: 0.8rem;
	color: rgba(0, 0, 0, 0.5);
}

.login-container p a {
	color: rgba(0, 0, 0, 0.4);
}

.login {
	position: relative;
	width: 100%;
	padding: 10px;
	margin: 0 0 10px 0;
	box-sizing: border-box;
	border-radius: 3px;
	background: #fafafa;
	overflow: hidden;
	-webkit-animation: input_opacity 0.2s cubic-bezier(0.55, 0, 0.1, 1);
	animation: input_opacity 0.2s cubic-bezier(0.55, 0, 0.1, 1);
	box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12),
		0 3px 1px -2px rgba(0, 0, 0, 0.2);
}

.login > header {
	position: relative;
	width: 100%;
	padding: 10px;
	margin: -10px -10px 25px -10px;
	border-bottom: 1px solid #f7c03a1a;
	background: #c02739;
	font-family: "Roboto", sans-serif;
	font-size: 1.3rem;
	color: #fafafa;
	-webkit-animation: scale_header 0.6s cubic-bezier(0.55, 0, 0.1, 1),
		text_opacity 1s cubic-bezier(0.55, 0, 0.1, 1);
	animation: scale_header 0.6s cubic-bezier(0.55, 0, 0.1, 1),
		text_opacity 1s cubic-bezier(0.55, 0, 0.1, 1);
	box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
		0px 1px 5px 0px rgba(0, 0, 0, 0.12), 0px 3px 1px -2px rgba(0, 0, 0, 0.2);
}

.login > header:before {
	content: "";
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	position: absolute;
	width: 100%;
	height: 5px;
	padding: 10px;
	margin: -10px 0 0px -10px;
	box-sizing: border-box;
	background: #00000028;
	font-family: "Roboto", sans-serif;
	font-size: 0.9rem;
	color: transparent;
	z-index: 5;
}

.login.error_1 > header:before,
.login.error_2 > header:before {
	-webkit-animation: error_before 3s cubic-bezier(0.55, 0, 0.1, 1);
	-moz-animation: error_before 3s cubic-bezier(0.55, 0, 0.1, 1);
	animation: error_before 3s cubic-bezier(0.55, 0, 0.1, 1);
}

.login.error_1 > header:before {
	content: "Error en los datos de usuario!";
}

.login.error_2 > header:before {
	content: "Mensaje 2";
}

.login > header h2 {
	margin: 50px 0 10px 0;
}

.login > header h4 {
	font-size: 0.7em;
	-webkit-animation: text_opacity 1.5s cubic-bezier(0.55, 0, 0.1, 1);
	animation: text_opacity 1.5s cubic-bezier(0.55, 0, 0.1, 1);
	color: rgb(255, 255, 255);
}

/* Form */
.login-form {
	padding: 15px;
	box-sizing: border-box;
}

/* Inputs */
.login-input {
	position: relative;
	width: 100%;
	padding: 10px 5px;
	margin: 0 0 25px 0;
	border: none;
	border-bottom: 2px solid rgba(0, 0, 0, 0.2);
	box-sizing: border-box;
	background: transparent;
	font-size: 1rem;
	font-family: "Roboto", sans-serif;
	font-weight: 500;
	opacity: 1;
	-webkit-animation: input_opacity 0.8s cubic-bezier(0.55, 0, 0.1, 1);
	animation: input_opacity 0.8s cubic-bezier(0.55, 0, 0.1, 1);
	-webkit-transition: border-bottom 0.2s cubic-bezier(0.55, 0, 0.1, 1);
	transition: border-bottom 0.2s cubic-bezier(0.55, 0, 0.1, 1);
}

.curp {
	text-transform: uppercase;
}
.login-input:focus {
	outline: none;
	border-bottom: 2px solid #c02739;
}

/* Submit Button */
.submit-container {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-webkit-flex-direction: row;
	-ms-flex-direction: row;
	flex-direction: row;
	-webkit-box-pack: end;
	-webkit-justify-content: flex-end;
	-ms-flex-pack: end;
	justify-content: flex-end;
	position: relative;
	padding: 10px;
	margin: 35px -25px -25px -25px;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.login-button {
	padding: 10px;
	border: none;
	border-radius: 3px;
	background: #a22130;  
	font-family: "Roboto", sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	color: #fff;
	cursor: pointer;
	opacity: 1;
	-webkit-animation: input_opacity 0.8s cubic-bezier(0.55, 0, 0.1, 1);
	animation: input_opacity 0.8s cubic-bezier(0.55, 0, 0.1, 1);
	-webkit-transition: background 0.2s ease-in-out;
	transition: background 0.2s ease-in-out;
}

.login-button:hover {
	background: #eb0b25;
}
