body {
	background-color: #fff;
	overflow: auto;
}

* {
	box-sizing: border-box
}

a {
	color: #5788f3;
}

a:hover, a:focus {
	color: #5788f3;
	text-decoration: underline;
}

pre {
	margin-bottom: 0;
}

small {
	font-size: 0.92em;
}

h1, .h1, h2, .h2, h3, .h3 {
    margin-top: 15px;
}

#container-geral {
	overflow: hidden;
	height: 100vh;
	width: 100vw;
	display: flex;
	flex-direction: row;
}

#secao-login, #secao-publicidade {
	-webkit-overflow-scrolling: touch;
	height: 100vh;
	display: flex;
}

#secao-login {
	height: 100vh;
	overflow-y: auto;
	min-height: 100%;
	flex: 1 1 35%;
	max-width: 672px;
	min-width: min-content;
}

#secao-publicidade {
	overflow-y: auto;
	background-color: #F8F8F8;
	flex: 1 1 65%;
	min-height: 100vh;
	max-height: 100%;
	height: fit-content;
}

#container-login {
	margin: 0 auto;
	width: 60%;
	min-width: 290px;
	max-width: 100vh;
	position: relative;
	display: flex;
	flex-direction: column;
	row-gap: 15px;
}

#container-login > *:first-child {
	margin-top: auto;
}

#container-login > *:last-child {
	margin-bottom: auto;
}

#container-login h3, #container-login  h4 {
	margin: 0;
}

#header-login {
	flex-basis: 18%;
	display: flex;
	flex-direction: column;
	row-gap: 15px;
	justify-content: space-evenly;
}

#header-login > * {
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

#header-login #logo {
	display: block;
	width: 90%;
	height: auto;
	margin-left: auto;
	margin-right: auto;
}

#form-login {
	flex-basis: 28%;
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	row-gap: 8px;
}

#form-login {
	margin: 0;
}

.input-container {
	position: relative;
}

.input-container .icone-input {
	pointer-events: none;
	position: absolute;
	left: 15px;
	top: 50%;
	transform: translate(0, -50%);
}

.input-container .campo-login {
	font-family: inherit;
	padding: 15px 15px;
	padding-left: 40px;
	border-radius: 8px;
	box-shadow: none;
	border: 1px solid #E7E7E7;
	background-color: #F8F8F8;

	outline-color: transparent;
	transition-property: outline-color, border-color;
	transition-duration: 0.23s;
	transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

.input-container .campo-login:focus, .input-container .campo-login:focus-visible {
	border: 1px solid #F8F8F8;
	outline-width: 2px;
	outline-style: solid;
	outline-color: #2c3e50;
}

#btn-login {
	margin-top: 8px;
	padding: 15px 15px;
	width: 100%;
	box-shadow: none;
	border: none;
	border-radius: 10px;
	background-color: #3F84CA;
	color: white;
	font-weight: bold;
	transition: background-color 80ms cubic-bezier(0.33, 1, 0.68, 1);
}

#btn-login:hover, #btn-login:focus, #btn-login:active {
	background: #357ac0;
	transition-duration: .1s;
}

#footer-login {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	column-gap: 10px;
	margin-top: -10px;
}

#footer-login > * {
	white-space: nowrap;
	margin: 0 auto;
}

#form-login, #input-container, .campo-login {
	width: 100%;
}

#mensagem-erro-login {
	width: 100%;
	max-width: 100vw;
}

#mensagem-erro-login .alert {
	margin: 0;
	max-width: 100%;
	word-break: break-word;
   	white-space: pre-wrap;
}


#barra-redes-sociais {
	flex-basis: 12%;
	padding: 0 10%;
	margin-bottom: auto;
	width: 100%;
	display: flex;
	justify-content: space-around;
}

#barra-redes-sociais > * {
	margin-top: auto;
}

.link-rede-social {
	color: inherit;
}

.link-rede-social:hover, .link-rede-social:focus {
	text-decoration: none;
}

#container-publicidade {
	-webkit-overflow-scrolling: touch;
	margin: auto auto;
	max-width: 90%;
	height: fit-content;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

#imagem-publicidade {
	width: 100%;
	min-height: 200px;
	max-height: 55vh;
	height: 55vh;
}

#imagem-publicidade > img {
	display: block;
	margin: 0 auto;
	max-height: 100%;
	width: auto;
	max-width: 100%;
}

#container-recursos-vex {
	padding: 22px;
	width: 80%;
	height: auto;
	min-height: max(min-content, 220px);
	display: flex;
	align-items: start;
	justify-content: space-evenly;
	width: fit-content;
	border-radius: 16px;
	background-color: white;
}

.recurso-vex {
	padding: 0 20px;
	width: fit-content;
	height: fit-content;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	min-width: 20%;
	max-width: 180px;
}

.recurso-vex {
	position: relative;
	border-radius: 16px;
	top: 0;
	right: 0;
	transition-property: box-shadow, right, top;
	transition-duration: 0.2s;
	transition-timing-function: ease-out;
	background-color: white;
}

.recurso-vex .recurso-icone {
	box-shadow: 0 13px 20px rgba(41, 38, 76, 0.06);
	font-size: 35px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	aspect-ratio: 1/1;
	border-radius: 50%;
	background-color: #fff;
	color: inherit;
	transition-property: color, background-color;
	transition-duration: 0.5s;
	transition-timing-function: ease-out;
}

.recurso-vex .recurso-titulo {
	font-size: 1.1em;
	font-weight: 600 !important;
}

.recurso-vex .recurso-texto {
	color: #808080;
}

.recurso-vex:hover .recurso-icone {
	transition-duration: 0.25s;
	transition-timing-function: ease-out;
	background-color: #3F84CA;
	color: white;
}



.icone-chave, .icone-cadeado, .icone-email, .icone-vex {
	display: block;
	text-indent: -9999px;
	width: 20px;
	height: 20px;
	background-repeat: no-repeat !important;
	background-size: 20px 20px;
}

.icone-chave {
	background-image: url(/assets/img/svg/ph_key-fill.svg);
}

.icone-cadeado {
	background-image: url(/assets/img/svg/mdi_password.svg);
}

.icone-email {
	background-image: url(/assets/img/svg/material-symbols_mail.svg);
}

@media screen and (max-width: 923px){
	#secao-publicidade {
		display: none;
	}
	
	#secao-login{
		width: 100%;
		max-width: none;
	}

	.input-container {
	}
}

@media screen and (max-width: 923px), screen and (max-height: 715px){
	#btn-login {
		margin-top: 5px;
	}

	#barra-redes-sociais {
		position: static;
		padding: 0 16%;
	}

	#container-recursos-vex {
		padding: 10px;
	}

	.recurso-vex .recurso-icone {
		width: 11vh;
	}

	#barra-redes-sociais > * {
		margin-top: auto;
		margin-bottom: auto;
	}

}

@media screen and (max-height: 550px){
	#container-recursos-vex {
		align-items: center;
	}

	.recurso-vex .recurso-icone {
		display: none;
	}

	.recurso-vex:hover{
		right: -5px;
		top: -5px;
		box-shadow: -5px 5px 5px 2px rgba(41, 38, 76, 0.1);
	}
}