* {
	box-sizing: border-box;
}

html,
body {
	height: 100%;
}

html {
	font-size: 62.5%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: "Poppins", sans-serif;
	background: #ffffff;
}

button,
input {
	border: 0;
	width: 100%;
	height: 60px;
	background: transparent;
	font-size: 1.6rem;
	outline: none;
}

main {
	width: 100vw;
	display: flex;
	justify-content: center;
}

.container {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 70%;
	padding: 50px 0;
	margin: 50px 0;
	background: #f7f7f7;
	box-shadow: 0px 5px 8px rgba(0, 0, 0, 0.2);
	gap: 16px;
}

.container > h1 {
	font-size: 4.8rem;
	font-weight: 700;
	color: #012b68;
}

.form {
	width: 90%;
	margin: 0;
	display: inline-block;
	flex-direction: column;
	gap: 16px;
}

.text-box {
	display: flex;
	flex-direction: column;
	margin-bottom: 16px;
}

.group {
	display: flex;
	align-items: center;
	gap: 12px;
}

.text-box .group:not(.plan) span {
	translate: 0 -150%;
	font-size: 2.2rem;
	pointer-events: none;
	color: #012b68;
}

.text-box .group:not(.plan) label {
	translate: 0 -130%;
	color: #012b68;
	pointer-events: none;
	transition: 0.4s;
	font-size: 1.6rem;
}

:is(input:focus, input:valid) ~ .group:not(.plan) label {
	translate: -40px -60px;
	scale: 0.875;
}

input:focus ~ .group:not(.plan) label {
	color: #216ce7;
}

:is(input:focus, input:valid) ~ .group:not(.plan) span {
	color: #216ce7;
}
/* exclusivo para o campo indicação */

.text-box .group .label-referred {
	translate: -6% -130%;
}

.text-box .group .span-referred {
	color: #012b68;
}

:is(input:focus) ~ .group .span-referred {
	color: #216ce7;
}

:is(input:focus) ~ .group .label-referred {
	translate: -50px -60px;
	scale: 0.875;
}

.text-box input:not(#indication, #terms-use) {
	padding: 0 24px 0 36px;
	border-bottom: 2px solid #012b68;
	color: #012b68;
	height: 40px;
}

input:focus {
	border-color: #216ce7;
}

.text-password {
	margin-top: -25px;
}

button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	padding: 0 24px;
	border-radius: 4px;
	background: #1156bd;
	color: #f7f7f7;
	border: 0;
	font-family: inherit;
	font-weight: 600;
	transition: 0.6s;
}

button:hover {
	background: #216ce7;
	transition: 0.6s;
}

.container p {
	color: #778395;
}

.container form a:not(.terms-use) {
	margin-top: 50px;
	display: flex;
	gap: 16px;
	align-items: center;
	text-decoration: none;
	font-size: 1.6rem;
	color: #012b68;
	padding: 12px;
	width: 125px;
	transition: 0.8s;
}

.container form a:not(.terms-use):hover {
	background: #c0c5cc;
	border-radius: 4px;
}

.logo {
	width: 15rem;
	filter: drop-shadow(0px 5px 8px #00000070);
}

span.error {
	color: #f04545;
}

input[type="checkbox"] {
	appearance: none;
	outline: none;
	cursor: pointer;
	border: 1px solid #012b68;

	background-color: transparent;
	color: transparent;

	border-radius: 2px;
	outline: none;
	cursor: pointer;

	height: 1.8rem;
	margin-left: 0;
	width: 1.8rem;

	display: flex;
	justify-content: center;
	align-items: center;

	&:checked {
		background-color: #012b68;
		border-color: #012b68;

		&:after {
			content: "\2714";
			color: #fff;
		}
	}
}

.indication-input {
	height: 0;
	overflow: hidden;
	transition: height 0.3s ease-in-out;
}

#formRegister:has(#indication:checked) .indication-input {
	height: auto;
	overflow: visible;
}

.label-indication, .label-terms-use {
	color: #012b68;
	transition: 0.4s;
	font-size: 1.6rem;
	display: flex;
	align-items: center;
	cursor: pointer;
	margin-left: 1.3rem;
	width: 100%;
	gap: 0.6rem;

	a {
		text-decoration: none;
		font-weight: bold;
		color: #012b68;
	}
}

.text-box.indication {
	flex-direction: row;
	align-items: center;
	margin-bottom: 35px;
}

.text-box.terms-use {
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;

	label {
		width: auto;
	};

	span {
		width: 100%;
		flex-grow: 1;
		margin-top: 0.8rem !important;
	};
}

.text-box.plan {
	gap: 0.8rem;

	> span {
		padding-top: 1.5rem;
	}
}

.text-box .group.plan {
	display: flex;
	align-items: center;
}

.text-box .group.plan span {
	font-size: 2.2rem;
	pointer-events: none;
	color: #012b68;
}

.text-box .group.plan label {
	color: #012b68;
	font-size: 1.6rem;
}

#plan {
	outline-color: #012b68;
	font-size: 1.6rem;
	padding: 0.9rem 0.5rem;
	color: #012b68;
	background-color: transparent;
  border-radius: 0.2rem;
}

@media (max-width: 414px) {
	html {
		font-size: 50%;
	}
	.container {
		width: 95%;
	}

	:is(input:focus, input:valid) ~ .group label {
		translate: -30px -50px;
		scale: 0.875;
	}

	:is(input:focus) ~ .group .label-referred {
		translate: -40px -50px;
		scale: 0.875;
	}

	.text-password {
		margin-top: -15px;
	}
}
