* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	max-width: 100%;
}

html {
	scroll-behavior: smooth;
	overflow-x: clip;
}

body {
	font-family: 'Titillium Web', sans-serif;
	font-size: 1rem;
	font-weight: 400;
	color: rgb(100 116 139);
	background-color: #fff;
	width: 100%;
	position: relative;
}

/* Padrões */
.text-xs {
	font-size: 0.75rem !important;
	line-height: 1rem !important;
}

.text-sm {
	font-size: 0.875rem !important;
	line-height: 1.25rem !important;
}

.text-xl {
	font-size: 1.25rem !important;
	line-height: 1.75rem !important;
}

.text-lg {
	font-size: 1.125rem;
	line-height: 1.75rem;
}

.font-normal {
	font-weight: 400;
}

.container {
	max-width: 90vw;
	margin: 0 auto;
}

@media (min-width: 1200px) {
	.container {
		max-width: 87vw;
	}
}

@media (min-width: 1536px) {
	.container {
		max-width: 1380px;
	}
}

a {
	text-decoration: none !important;
}

strong {
	font-weight: 700 !important;
}

button {
	cursor: pointer !important;
}

.hstack {
	display: flex;
	flex-direction: row;
}

.vstack {
	display: flex;
	flex-direction: column;
}

.items-center {
	align-items: center;
}

.items-start {
	align-items: flex-start;
}

.justify-center {
	justify-content: center;
}

.justify-between {
	justify-content: space-between;
}

.btn {
	transition-property: all;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 150ms;
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.1) 0px 2px 4px -2px;
	letter-spacing: 0.025em;
	text-transform: uppercase;
	text-align: center;
	font-weight: 700;
	font-size: 0.75rem;
	line-height: 1rem;
	padding: 0.75rem 1.5rem;
	border-radius: 0.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border: none;
}

.btn.btn-dark {
	background-color: #000;
	color: #fff;
}

.btn.btn-dark:hover,
.btn.btn-dark:active,
.btn.btn-dark:focus,
.btn.btn-blue:hover,
.btn.btn-blue:active,
.btn.btn-blue:focus {
	background-color: rgb(0, 200, 83);
}

.btn.btn-blue {
	padding: 1rem 2.5rem;
	background-color: rgb(0, 85, 255);
	color: #fff;
	border-radius: 0.75rem;
	letter-spacing: 0.1em;
}

section {
	padding: 5rem 0;
	scroll-margin-top: 50px;
}

@media (max-width: 768px) {
	section {
		padding: 3rem 0;
	}
}

.text-blue {
	color: rgb(0, 85, 255);
}

.text-green {
	color: rgb(0, 200, 83);
}

.text-gradient {
	background-image: linear-gradient(to right, rgb(0, 85, 255), rgb(0, 200, 83));
	color: transparent;
	background-clip: text;
}

.text-dark {
	color: rgb(15 23 42);
}

.text-darkgray {
	color: rgb(30 41 59);
}

.text-gray {
	color: rgb(148 163 184);
}

.card {
	transition-property: all;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 150ms;
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;
	padding: 2rem;
	background-color: #fff;
	border: 1px solid rgb(241 245 249);
	border-radius: 1.5rem;
}

.card:hover {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.1) 0px 2px 4px -2px;
}

.card .text {
	line-height: 1.625;
	margin-top: 1rem;
}

.italic {
	font-style: italic !important;
}

.d-none {
	display: none;
}

/* Fim Padrões */

/* Top Bar */
.top-bar {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	background-color: #000;
	border-bottom: 1px solid rgb(255 255 255 / 0.05);
	width: 100%;
}

.top-bar .container {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: space-between;
	gap: 1rem;
}

.top-bar .toggler-top-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
}

.top-bar .toggler-top-bar .logo {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

.top-bar .toggler-top-bar .logo i {
	color: rgb(255 255 255 / 0.7);
}

.top-bar .toggler-top-bar .logo a,
.top-bar .nav-top-bar .nav-links .nav-link {
	color: rgb(255 255 255 / 0.8);
	text-transform: uppercase;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.top-bar .toggler-top-bar .logo a:hover,
.top-bar .toggler-top-bar .logo a:active,
.top-bar .toggler-top-bar .logo a:focus,
.top-bar .nav-top-bar .nav-links .nav-link:hover,
.top-bar .nav-top-bar .nav-links .nav-link:active,
.top-bar .nav-top-bar .nav-links .nav-link:focus {
	color: #fff;
}

.top-bar .nav-top-bar {
	display: none;
}

.top-bar .nav-top-bar.active {
	display: flex;
	gap: 1rem;
	flex-direction: column;
	align-items: stretch;
}

.top-bar .nav-top-bar .nav-links {
	border-right: 1px solid rgb(255 255 255 / 0.1);
	gap: 1rem;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.top-bar .nav-top-bar .nav-links .nav-link {
	color: rgb(255 255 255 / 0.6);
}

.top-bar .nav-top-bar .nav-socials {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.3rem;
}

.top-bar .nav-top-bar .nav-socials .nav-social,
.top-bar .toggler-top-bar .toggler {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 1.75rem;
	width: 1.75rem;
	border-radius: 9999px;
	background-color: rgb(255 255 255 / 0.1);
	color: rgb(255 255 255 / 0.8);
	transition-property: all;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 150ms;
}

.top-bar .nav-top-bar .nav-socials .nav-social:hover,
.top-bar .nav-top-bar .nav-socials .nav-social:active,
.top-bar .nav-top-bar .nav-socials .nav-social:focus,
.top-bar .toggler-top-bar .toggler:hover,
.top-bar .toggler-top-bar .toggler:active,
.top-bar .toggler-top-bar .toggler:focus {
	color: #000;
	background-color: #fff;
}

@media (min-width: 768px) {

	.top-bar .toggler-top-bar .toggler {
		display: none;
	}

	.top-bar .container,
	.top-bar .nav-top-bar,
	.top-bar .nav-top-bar .nav-links {
		flex-direction: row;
		align-items: center;
	}

	.top-bar .container {
		gap: 0.5rem;
	}

	.top-bar .nav-top-bar {
		gap: 2rem;
		display: flex;
	}

	.top-bar .nav-top-bar .nav-links {
		gap: 1.5rem;
	}

	.top-bar .nav-top-bar .nav-socials {
		margin-top: 0;
	}
}

@media (min-width: 1200px) {
	.top-bar .nav-top-bar .nav-links {
		padding-right: 2rem;
	}
}

/* Fim Top Bar */

/* Navbar */
.navbar {
	backdrop-filter: blur(12px);
	background-color: rgba(255, 255, 255, 0.8);
	border-bottom: 1px solid rgb(243, 244, 246);
	z-index: 50;
	top: 0;
	position: sticky;
	padding: 1.5rem 0;
}

@media (min-width: 768px) {
	.navbar {
		padding: 2rem 0;
	}
}

/* Fim Navbar */

/* Banner */
#banner>.container>.vstack {
	gap: 4rem;
}

#banner>.container>.vstack>* {
	width: 100%;
}

#banner .vstack .text {
	padding-top: 1rem;
	text-align: center;
}

#banner .vstack .text .pre-title {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 700;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
}

#banner .vstack .text .pre-title .bar-green {
	width: 2rem;
	height: 2px;
	background-color: rgb(0, 200, 83);
}

#banner .vstack .text .pre-title .square {
	margin: 0 0.5rem;
}

#banner .vstack .text .title {
	font-weight: 300;
	letter-spacing: -0.025em;
	color: rgb(15, 23, 42);
	font-size: 3rem;
	line-height: 1;
	text-transform: uppercase;
	margin-bottom: 2rem;
}

#banner .vstack .text .title .text-gradient {
	display: block;
	margin-top: 0.5rem;
	font-weight: 700;
}

#banner .vstack .text .subtitle {
	line-height: 1.625;
	font-size: 1.25rem;
	max-width: 32rem;
	margin-bottom: 2.5rem;
}

#banner .vstack .text .subtitle strong {
	color: rgb(15, 23, 42);
	font-weight: 700;
}

#banner .vstack .text .cta {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px,
		rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;
	padding: 0.5rem;
	background-color: rgb(248, 250, 252);
	border-radius: 1rem;
	gap: 0.5rem;
	border: 1px solid rgb(241, 245, 249);
	display: inline-flex;
	width: 100%;
}

#banner .vstack .text .cta .plan {
	color: rgb(15, 23, 42);
	padding: 1rem 1.5rem;
	text-align: left;
}

#banner .vstack .text .cta .plan .description {
	font-weight: 700;
	text-transform: uppercase;
	color: rgb(148, 163, 184);
}

#banner .vstack .text .cta .plan .price {
	font-weight: 700;
}

#banner .vstack .text .cta .bar-gray {
	display: none;
	width: 1px;
	background-color: rgb(226, 232, 240);
}

#banner .vstack .text .benefit {
	color: rgb(148, 163, 184);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
	font-size: 0.688rem;
	gap: 1rem;
	margin-top: 1.5rem;
}

@media (min-width: 1280px) {
	#banner>.container>.vstack {
		flex-direction: row;
	}

	#banner .vstack .text {
		text-align: left;
	}

	#banner .vstack .text .pre-title {
		justify-content: left;
	}

	#banner .vstack .text .benefit {
		justify-content: flex-start;
	}
}

@media (min-width: 768px) {
	#banner .vstack .text .title {
		font-size: 4.5rem;
		line-height: 1;
	}

	#banner .vstack .text .cta {
		flex-direction: row;
		width: auto;
	}

	#banner .vstack .text .cta .bar-gray {
		display: block;
	}
}

#banner .vstack .image {
	aspect-ratio: 4 / 3;
	border: 4px solid rgb(248, 250, 252);
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
	border-radius: 2rem;
	overflow: hidden;
	position: relative;
}

#banner .vstack .image .img-team {
	transition-duration: 1000ms;
	transition-property: transform;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	object-fit: cover;
	width: 100%;
	height: 100%;
}

#banner .vstack .image .img-team:hover {
	transform: scaleX(1.05) scaleY(1.05);
}

#banner .vstack .image .experience-badge {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
	color: #fff;
	padding: 1rem;
	background-color: rgb(15 23 42);
	border-radius: 0.75rem;
	align-items: center;
	z-index: 20;
	top: 1.5rem;
	right: 1.5rem;
	position: absolute;
	font-weight: 700;
}

#banner .vstack .image .experience-badge .number {
	font-size: 1.875rem;
	line-height: 1;
}

#banner .vstack .image .experience-badge .description {
	letter-spacing: -0.05em;
	text-transform: uppercase;
	font-size: 0.625rem;
}

#banner .vstack .image .google-review {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
	padding: 1.5rem;
	background-color: #fff;
	border: 1px solid rgb(241 245 249);
	border-radius: 1rem;
	position: absolute;
	bottom: 1.5rem;
	left: 1.5rem;
	max-width: 320px;
}

#banner .vstack .image .google-review>.vstack {
	gap: 1rem;
}

#banner .vstack .image .google-review .logo-google {
	height: 1.5rem;
	width: auto;
}

#banner .vstack .image .google-review .rating {
	gap: 0.75rem;
}

#banner .vstack .image .google-review .rating .number {
	letter-spacing: -0.05em;
	font-weight: 700;
	font-size: 3rem;
	line-height: 1;
}

#banner .vstack .image .google-review .rating .stars {
	gap: 0.125rem;
	color: rgb(255 215 0);
}

#banner .vstack .image .google-review .rating .description {
	font-weight: 500;
}

#banner .vstack .image .google-review .text {
	line-height: 1.625;
	color: rgb(71 85 105);
	font-weight: 600;
	padding: 0 !important;
	text-align: left !important;
}

#banner .vstack .image .google-review .card-blue {
	padding: 1rem;
	background-color: rgb(240 245 255);
	border: 1px solid rgb(239 246 255);
	border-radius: 0.75rem;
}

#banner .vstack .image .google-review .card-blue .metric {
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 2rem;
	margin-bottom: 0.25rem;
}

#banner .vstack .image .google-review .card-blue .text-metric {
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-weight: 700;
	font-size: 0.625rem;
}

@media (min-width: 768px) {
	#banner .vstack .image .google-review {
		max-width: 20rem;
		left: 2rem;
		bottom: 2rem;
	}
}

@media (max-width: 576px) {
	#banner .vstack .image {
		aspect-ratio: 4 / 6;
	}

	#banner .vstack .image .google-review {
		right: 1.5rem;
	}
}

@media (max-width: 1280px) {
	#banner .vstack .text .subtitle {
		margin-left: auto;
		margin-right: auto;
	}
}

/* Fim Banner */

/* Steps */
#passos.steps {
	padding: 3rem 0;
	border-top: 1px solid rgb(241 245 249);
	border-bottom: 1px solid rgb(241 245 249);
	background-color: rgb(248 250 252);
}

#passos.steps>.container>.vstack {
	gap: 2rem;
}

#passos.steps .step {
	gap: 1rem;
	font-weight: 700;
}

#passos.steps .step .number {
	background-color: rgb(0 85 255);
	border-radius: 9999px;
	width: 2rem;
	height: 2rem;
	color: #fff;
	font-style: italic;
}

#passos.steps .step .text-number {
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 0.625rem;
}

#passos.steps .bar-gray {
	background-color: rgb(226 232 240);
	width: 3rem;
	height: 1px;
	display: none;
}

@media (min-width: 768px) {
	#passos.steps>.container>.vstack {
		gap: 4rem;
		flex-direction: row;
	}

	#passos.steps .bar-gray {
		display: block;
	}
}

/* Fim Steps */

/* Security */
#seguranca.security .div-title {
	max-width: 56rem;
	text-align: center;
	margin: 0 auto 3rem auto;
}

#seguranca.security .div-title .pre-title {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 700;
	margin-bottom: 0.75rem;
}

#seguranca.security .div-title .title {
	line-height: 1.25;
	font-weight: 300;
	font-size: 2.25rem;
	line-height: 2.5rem;
	margin-bottom: 2rem;
}

#seguranca.security .div-title .subtitle {
	line-height: 1.625;
}

#seguranca.security .grid-1 {
	display: grid;
	gap: 2rem;
	max-width: 72rem;
	margin: 0 auto 5rem auto;
}

#seguranca.security .grid-1 .card .badge-icon {
	background-color: rgb(239 246 255);
	border-radius: 0.75rem;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1.5rem;
}

#seguranca.security .grid-2 {
	display: grid;
	gap: 2rem;
}

#seguranca.security .grid-2 .card {
	border-radius: 2.5rem;
}

#seguranca.security .grid-2 .card:hover {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.1) 0px 8px 10px -6px;
}

#seguranca.security .grid-2 .card .badge-icon {
	font-size: 1.5rem;
	line-height: 2rem;
	background-color: rgb(248 250 252);
	border-radius: 1rem;
	width: 3.5rem;
	height: 3.5rem;
	margin-bottom: 1.5rem;
}

#seguranca.security .grid-2 .card:hover .badge-icon {
	background-color: rgb(0 85 255);
	color: #fff;
}

@media (min-width: 768px) {
	#seguranca.security .div-title .title {
		font-size: 3.75rem;
		line-height: 1;
	}

	#seguranca.security .grid-1 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	#seguranca.security .grid-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	#seguranca.security .grid-2 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Fim Security */

/* Subjects */
#materias.subjects {
	background-color: rgb(248 250 252);
}

#materias.subjects .pre-title {
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
	margin-bottom: 1rem;
	text-align: center;
}

#materias.subjects .title {
	margin-bottom: 4rem;
	font-weight: 300;
	letter-spacing: -0.025em;
	font-size: 1.875rem;
	line-height: 2.25rem;
	text-align: center;
}

#materias.subjects .grid {
	gap: 1rem;
	align-items: stretch;
	max-width: 72rem;
	display: grid;
	margin: 0 auto;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

#materias.subjects .grid .link {
	transition-property: all;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 500ms;
	padding: 1.5rem;
	background-color: #fff;
	border: 1px solid rgb(241 245 249);
	border-radius: 1rem;
}

#materias.subjects .grid .link:hover {
	box-shadow: 0 0 #0000, 0 0 #0000, 0 25px 50px -12px rgb(0 0 0 / 0.25);
	border-color: rgb(0 85 255 / 0.3);
}

#materias.subjects .grid .link .logo {
	transition-property: all;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 500ms;
	filter: brightness(0);
	opacity: 0.3;
	object-fit: contain;
	width: auto;
	height: 2rem;
	transform: matrix(1, 0, 0, 1, 0, 0);
}

#materias.subjects .grid .link:hover .logo {
	opacity: 1;
	transform: matrix(1.1, 0, 0, 1.1, 0, 0);
}

@media (min-width: 768px) {
	#materias.subjects .title {
		font-size: 2.25rem;
		line-height: 2.5rem;
	}

	#materias.subjects .grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.5rem;
	}

	#materias.subjects .grid .link {
		padding: 2rem;
	}

	#materias.subjects .grid .link .logo {
		height: 2.5rem;
	}
}

@media (min-width: 1024px) {
	#materias.subjects .grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}

/* Fim Subjects */

/* Technology */
#tecnologia.technology {
	background-color: rgb(15 23 42);
}

#tecnologia.technology>.container>.vstack {
	gap: 4rem;
}

#tecnologia.technology>.container>.vstack>* {
	width: 100%;
}

#tecnologia.technology .text .pre-title {
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
	margin-bottom: 1rem;
}

#tecnologia.technology .text .title {
	color: #fff;
	line-height: 1.25;
	font-weight: 300;
	font-size: 2.25rem;
	line-height: 2.5rem;
	margin-bottom: 2rem;
}

#tecnologia.technology .text .subtitle {
	line-height: 1.625;
	margin-bottom: 2.5rem;
}

#tecnologia.technology .text .topics {
	margin-bottom: 2.5rem;
}

#tecnologia.technology .text .topics .topic {
	color: #fff;
	font-weight: 600;
	gap: 1rem;
}

#tecnologia.technology .text .topics .topic:not(:first-child) {
	margin-top: 1rem;
}

#tecnologia.technology .text .buttons {
	gap: 1rem;
}

#tecnologia.technology .text .buttons a {
	padding: 0.75rem;
	background-color: rgb(255 255 255 / 0.05);
	border: 1px solid rgb(255 255 255 / 0.1);
	border-radius: 0.75rem;
	gap: 0.75rem;
	color: #fff;
}

#tecnologia.technology .text .buttons a:hover {
	border-color: rgb(255 255 255 / 0.3);
}

#tecnologia.technology .text .buttons a i {
	font-size: 1.875rem;
	line-height: 2.25rem;
}

#tecnologia.technology .text .buttons a .pre-description {
	text-transform: uppercase;
	color: rgb(255 255 255 / 0.5);
	font-weight: 700;
	font-size: 0.625rem;
}

#tecnologia.technology .text .buttons a .description {
	font-weight: 700;
	color: #fff;
}

#tecnologia.technology .image {
	position: relative;
}

#tecnologia.technology .image img {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px,
		rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
	border: 4px solid rgb(255 255 255 / 0.05);
	border-radius: 3rem;
	z-index: 10;
	position: relative;
	transform: matrix(0.999391, 0.0348995, -0.0348995, 0.999391, 0, 0);
	width: 100%;
	height: auto;
}

@media (min-width: 768px) {
	#tecnologia.technology .text .title {
		font-size: 3rem;
		line-height: 1;
	}
}

@media (min-width: 1024px) {
	#tecnologia.technology>.container>.vstack {
		flex-direction: row;
	}
}

/* Fim Technology */

/* Locations */
#localizacoes.locations {
	background-color: rgb(248 250 252);
}

#localizacoes.locations .heading {
	letter-spacing: -0.025em;
	font-weight: 300;
	font-size: 2.25rem;
	line-height: 2.5rem;
	margin-bottom: 4rem;
}

#localizacoes.locations .grid {
	gap: 1.5rem;
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
}

#localizacoes.locations .grid .card {
	padding: 1rem;
	border-radius: 2rem;
}

#localizacoes.locations .grid .card:hover {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px,
		rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
}

#localizacoes.locations .grid .card .image {
	border-radius: 1.5rem;
	aspect-ratio: 4/3;
	margin-bottom: 1.25rem;
	position: relative;
	overflow: hidden;
}

#localizacoes.locations .grid .card .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition-property: transform;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 1000ms;
}

#localizacoes.locations .grid .card:hover .image img {
	transform: matrix(1.1, 0, 0, 1.1, 0, 0);
}

#localizacoes.locations .grid .card .legend {
	padding: 0 0.5rem;
}

#localizacoes.locations .grid .card .legend .title {
	margin-bottom: 0.75rem;
}

#localizacoes.locations .grid .card .legend .badges {
	gap: 0.5rem;
	flex-wrap: wrap;
}

#localizacoes.locations .grid .card .legend .badges .badge {
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: rgb(29 78 216);
	font-weight: 700;
	font-size: 0.625rem;
	padding: 0.25rem 0.75rem;
	background-color: rgb(239 246 255);
	border-radius: 0.5rem;
}

@media (min-width: 768px) {
	#localizacoes.locations .heading {
		font-size: 3.75rem;
		line-height: 1;
	}

	#localizacoes.locations .grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	#localizacoes.locations .grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Fim Locations */

/* Plans */
#planos.plans .div-title {
	text-align: center;
	max-width: 42rem;
	margin: 0 auto 4rem auto;
}

#planos.plans .div-title .pre-title {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 700;
	margin-bottom: 0.75rem;
}

#planos.plans .div-title .title {
	letter-spacing: -0.05em;
	text-transform: uppercase;
	font-weight: 300;
	font-size: 2.25rem;
	line-height: 2.5rem;
	margin-bottom: 1.5rem;
}

#planos.plans .grid {
	gap: 3rem;
	display: grid;
	align-items: stretch;
	max-width: 72rem;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	margin: 0 auto;
}

#planos.plans .grid .card {
	border-radius: 2rem;
	position: relative;
}

#planos.plans .grid .card.monthly:hover {
	border-color: rgb(203 213 225);
}

#planos.plans .grid .card .info {
	text-align: center;
	margin-bottom: 2rem;
}

#planos.plans .grid .card.monthly .info .badge-type {
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-weight: 700;
	padding: 0.25rem 0.75rem;
	background-color: rgb(241 245 249);
	border-radius: 9999px;
}

#planos.plans .grid .card .info .price {
	align-items: baseline;
}

#planos.plans .grid .card.card.monthly .info .price {
	margin-top: 1rem;
}

#planos.plans .grid .card .info .price .value {
	margin: 0 0.25rem;
	font-size: 3rem;
	line-height: 1;
}

#planos.plans .grid .card.monthly .info .details {
	padding-top: 1rem;
	border-top: 1px dashed rgb(226 232 240);
	margin-top: 1rem;
}

#planos.plans .grid .card .topics {
	color: rgb(71 85 105);
	font-weight: 600;
	margin-bottom: 2rem;
	flex: 1 1 0%;
}

#planos.plans .grid .card .topics .topic {
	gap: 0.75rem;
}

#planos.plans .grid .card .topics .topic:not(:first-child) {
	margin-top: 1rem;
}

#planos.plans .grid .card .btn {
	padding: 1rem 0;
	border-radius: 0.75rem;
	width: 100%;
	letter-spacing: 0.1em;
}

#planos.plans .grid .card .btn:hover {
	color: #fff !important;
	background-color: #000 !important;
}

#planos.plans .grid .card.monthly .btn {
	background-color: rgb(248 250 252);
	border: 1px solid rgb(226 232 240);
	box-shadow: none;
}

#planos.plans .grid .card.annual {
	border: 2px solid rgb(0 85 255);
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.1) 0px 8px 10px -6px;
	transform: matrix(1.05, 0, 0, 1.05, 0, 0);
	position: relative;
	z-index: 10;
}

#planos.plans .grid .card .badge-cta {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.1) 0px 8px 10px -6px;
	letter-spacing: 0.1em;
	color: #fff;
	text-transform: uppercase;
	font-weight: 700;
	font-size: 0.625rem;
	padding: 0.5rem 1.5rem;
	border-radius: 9999px;
	left: 50%;
	top: -1rem;
	position: absolute;
}

#planos.plans .grid .card.annual .badge-cta {
	background-color: rgb(0 85 255);
	transform: matrix(1, 0, 0, 1, -63.175, 0);
}

#planos.plans .grid .card .info .type {
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

#planos.plans .grid .card .info .price-description {
	text-transform: uppercase;
	margin-top: 1rem;
}

#planos.plans .grid .card .info .card-details {
	padding: 1rem;
	border-radius: 0.75rem;
	margin-top: 1.5rem;
	width: 100%;
}

#planos.plans .grid .card.annual .info .card-details {
	background-color: rgb(248 250 252);
	border: 1px solid rgb(241 245 249);
}

#planos.plans .grid .card .info .card-details .old-price {
	text-decoration-line: line-through;
}

#planos.plans .grid .card .info .card-details .obs-price {
	font-size: 0.625rem;
}

#planos.plans .grid .card .info .complement-details {
	font-size: 0.625rem;
	text-transform: uppercase;
	font-weight: 700;
	margin-top: 1rem;
}

#planos.plans .grid .card.annual .btn {
	background-color: rgb(0, 85, 255);
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(59, 130, 246, 0.2) 0px 10px 15px -3px, rgba(59, 130, 246, 0.2) 0px 4px 6px -4px;
	color: #fff;
}

#planos.plans .grid .card.bi-annual {
	border: 2px solid rgb(0 200 83);
	box-shadow: none;
	position: relative;
}

#planos.plans .grid .card.annual:hover,
#planos.plans .grid .card.bi-annual:hover {
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
}

#planos.plans .grid .card.bi-annual .badge-cta {
	background-color: rgb(0 200 83);
	transform: matrix(1, 0, 0, 1, -70.375, 0);
}

#planos.plans .grid .card.bi-annual .info .card-details {
	background-color: rgb(240 253 244);
	border: 1px solid rgb(220 252 231);
}

#planos.plans .grid .card.bi-annual .info .complement-details {
	letter-spacing: 0.1em;
}

#planos.plans .grid .card.bi-annual .btn {
	background-color: rgb(0, 200, 83);
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(34, 197, 94, 0.3) 0px 10px 15px -3px, rgba(34, 197, 94, 0.3) 0px 4px 6px -4px;
	color: #fff;
}

#planos.plans .observation {
	color: rgb(148 163 184);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
	text-align: center;
	margin-top: 3rem;
}

@media (min-width: 768px) {
	#planos.plans .div-title .title {
		font-size: 3rem;
		line-height: 1;
	}

	#planos.plans .div-title .subtitle {
		font-size: 1.25rem;
		line-height: 1.75rem;
	}

	#planos.plans .grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem;
	}
}

/* Fim Plans */

/* FAQ */
#faq {
	background-color: rgb(248 250 252);
	border: 1px solid rgb(241 245 249);
}

#faq .container {
	max-width: 56rem;
	padding: 0 1.5rem;
	margin: 0 auto;
}

#faq .title {
	font-weight: 300;
	margin-bottom: 4rem;
	font-size: 1.875rem;
	line-height: 2.25rem;
	text-align: center;
}

#faq .faq-container {
	gap: 1rem;
}

#faq .faq-container .faq-card {
	background-color: #fff;
	border: 1px solid rgb(241 245 249);
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;
}

#faq .faq-container .faq-card .faq-button {
	width: 100%;
	text-align: left;
	padding: 1.5rem;
	background-color: #fff;
	border: none;
}

#faq .faq-container .faq-card .faq-button:hover {
	background-color: rgb(248 250 252);
}

#faq .faq-container .faq-card .faq-button .question,
#faq .faq-container .faq-card .faq-button,
#faq .faq-container .faq-card .faq-button .icon {
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 150ms;
}

#faq .faq-container .faq-card .faq-button .icon {
	color: rgb(148 163 184);
	background-color: rgb(248 250 252);
	border-radius: 9999px;
	width: 2rem;
	height: 2rem;
}

#faq .faq-container .faq-card .faq-content {
	transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
}

#faq .faq-container .faq-card .faq-content>div {
	line-height: 1.625;
	font-weight: 600;
	padding: 1.5rem;
	padding-top: 0;
}

#faq .faq-container .faq-card.active .faq-content {
	opacity: 1;
	max-height: 69px;
}

#faq .faq-container .faq-card.active .question {
	color: rgb(0, 85, 255);
}

#faq .faq-container .faq-card.active .icon i {
	transform: rotate(180deg);
}

#faq .faq-container .faq-card .icon i {
	transition: transform 0.3s ease;
}

@media (min-width: 768px) {
	#faq .title {
		font-size: 2.25rem;
		line-height: 2.5rem;
	}

	#faq .faq-card .faq-button .question {
		font-size: 1rem;
		line-height: 1.5rem;
	}
}

/* Fim FAQ */

/* Footer */
footer {
	padding-top: 5rem;
	padding-bottom: 3rem;
	border-top: 1px solid rgb(243 244 246);
	text-align: center;
}

footer .info {
	margin-bottom: 4rem;
}

footer .info .company {
	margin-bottom: 2rem;
}

footer .info .company img {
	margin: 0 auto 1.5rem auto;
	width: auto;
	height: 2.5rem;
}

footer .info .company .slogan {
	font-weight: 600;
	max-width: 24rem;
	margin: 0 auto;
}

footer .info .contact {
	gap: 1rem;
}

footer .info .contact .text {
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
}

footer .info .contact .number {
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 150ms;
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 2rem;
}

footer .info .contact .number:hover,
footer .info .contact .number:active,
footer .info .contact .number:focus {
	color: rgb(0, 85, 255);
}

footer .copyright {
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
	padding-top: 2rem;
	border-top: 1px solid rgb(243 244 246);
	font-size: 0.625rem;
}

footer .copyright .links {
	font-weight: 700;
	gap: 1.5rem;
	margin-top: 1rem;
}

footer .copyright .links a:hover,
footer .copyright .links a:active,
footer .copyright .links:focus {
	color: rgb(15 23 42);
}

@media (min-width: 768px) {
	footer {
		text-align: left;
	}

	footer .info,
	footer .copyright {
		flex-direction: row;
	}

	footer .info .company {
		margin-bottom: 0;
	}

	footer .info .company img {
		margin: 0 0 1.5rem 0;
	}

	footer .info .company .slogan {
		margin: 0;
	}

	footer .copyright .links {
		margin-top: 0;
	}
}

/* Fim Footer */

/* Modal Plans */
.modal-overlay {
	display: none;
	position: fixed;
	z-index: 1000;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(4px);
	padding: 3.5rem 0;
}

.modal-content {
	background-color: rgb(248 250 252);
	margin: 0 auto;
	padding: 2rem;
	border-radius: 1.5rem;
	width: 100%;
	max-width: 90vw;
	position: relative;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
	animation: fadeIn 0.3s ease-out;
	max-height: calc(100vh - 7rem);
	overflow-y: scroll;
}

@media (min-width: 1200px) {
	.modal-content {
		max-width: 87vw;
	}
}

@media (min-width: 1536px) {
	.modal-content {
		max-width: 1380px;
	}
}

#modal-form-whats .modal-content {
	width: 80%;
	max-width: 450px;
	background-color: #fff;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(-20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.close-btn {
	font-size: 1.2rem;
	color: #999;
	transition: color 0.2s, transform 0.2s;
	cursor: pointer;
}

#modal-form-whats .close-btn {
	position: absolute;
	top: 1rem;
	right: 1rem;
}

.close-btn:hover {
	color: #e74c3c;
	transform: scale(1.1);
}

.modal-heading {
	align-items: flex-start;
	gap: 0.5rem;
}

.modal-content .grid-locations {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-top: 1.25rem;
}

@media (min-width: 768px) {
	.modal-content .grid-locations {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 992px) {
	.modal-content .grid-locations {
		grid-template-columns: repeat(4, 1fr);
	}
}

.modal-content .grid-locations .card {
	padding: 1rem;
}

.modal-content .grid-locations .card .image {
	margin-bottom: 1rem;
}

.modal-content .grid-locations .card .image img {
	width: 100%;
	height: 150px;
	object-fit: cover;
	object-position: center;
	border-radius: 1.5rem;
}

.modal-content .grid-locations .card .legend p {
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.modal-content .grid-locations .card .legend .btn {
	margin-top: 1rem;
}

.modal-content .heading h3 {
	letter-spacing: 0.1em;
	margin-bottom: 0.25rem;
}

.modal-content .heading h2 {
	font-size: 1.875rem;
	line-height: 2.25rem;
	font-weight: 300;
}

@media (min-width: 768px) {
	.modal-content .heading h2 {
		font-size: 2.25rem;
		line-height: 2.5rem;
	}
}

form .form-field {
	font-size: 0.875rem;
	line-height: 1.25rem;
	padding: 0.75rem 1rem;
	border-radius: 0.5rem;
	color: rgb(15 23 42);
	border: 1px solid rgb(30 41 59);
}

form .form-field:focus,
form .form-field:focus-visible {
	outline: none;
	border-color: rgb(0, 85, 255);
}

#modal-form-whats .form-whats {
	gap: 0.75rem;
	margin-top: 1.5rem;
}

/* Fim Modal Plans */