/*
 * Classico Rastreio JB: réplica do site da JB GPRS (feito em Elementor) sem Elementor.
 * As medidas vêm do site original (computador = 1025 px ou mais; tablet = 768 a 1024; celular = até 767).
 * As cores e as fotos de fundo que dependem do Personalizar chegam em variáveis, pelo CSS em linha (inc/setup.php).
 */

/* ---------- fontes (Google Fonts, só o alfabeto latino, servidas pelo próprio tema) ---------- */
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("../fonts/montserrat.woff2") format("woff2");
}
@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 400 600;
	font-display: swap;
	src: url("../fonts/roboto.woff2") format("woff2");
}
@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/poppins-600.woff2") format("woff2");
}
@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/poppins-700.woff2") format("woff2");
}
@font-face {
	font-family: "Raleway";
	font-style: normal;
	font-weight: 500 600;
	font-display: swap;
	src: url("../fonts/raleway.woff2") format("woff2");
}

/* ---------- base ---------- */
:root {
	--tcjb-principal: #960000;
	--tcjb-principal-claro: #ba0000;
	--tcjb-destaque: #db0000;
	--tcjb-rodape: #313131;
	--tcjb-rodape-fim: #232323;
	--tcjb-rodape-icone: #262626;
	--tcjb-cinza: #f2f2f2;
	--tcjb-topo-h: 97px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	overflow-x: clip;
	-webkit-text-size-adjust: 100%;
}

body.tcjb {
	margin: 0;
	overflow-x: clip;
	font-family: "Montserrat", Arial, Helvetica, sans-serif;
	font-size: 14px;
	line-height: 1.8;
	color: #4a4a4a;
	background: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.tcjb img {
	max-width: 100%;
	height: auto;
}

.tcjb [id] {
	scroll-margin-top: var(--tcjb-topo-h);
}

.admin-bar.tcjb [id] {
	scroll-margin-top: calc(var(--tcjb-topo-h) + 32px);
}

.tcjb a:focus-visible,
.tcjb button:focus-visible {
	outline: 2px solid var(--tcjb-principal);
	outline-offset: 2px;
}

.tcjb-icone {
	display: inline-block;
	flex: 0 0 auto;
	vertical-align: -0.125em;
}

.tcjb-pular {
	position: absolute;
	top: 0;
	left: -9999px;
	z-index: 2000;
	padding: 10px 16px;
	color: #000;
	background: #fff;
}

.tcjb-pular:focus {
	top: 10px;
	left: 10px;
}

/* ---------- topo ---------- */
.tcjb-topo {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: #fff;
	transition: background-color 0.4s ease-in-out;
}

.admin-bar .tcjb-topo {
	top: 32px;
}

.tcjb-topo--rolou {
	background: #e7e7e7;
}

.tcjb-topo__in {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 1140px;
	margin: 0 auto;
}

.tcjb-topo__logo {
	flex: 0 0 25.086%;
	max-width: 25.086%;
	padding: 10px;
	text-align: center;
}

.tcjb-topo__logo a {
	display: block;
	line-height: 0;
}

.tcjb-logo--topo {
	display: inline-block;
	width: auto;
	max-width: 100%;
	max-height: 77px;
}

.tcjb-menu {
	flex: 0 0 50.192%;
	max-width: 50.192%;
	padding: 10px;
}

.tcjb-menu__botao {
	display: none;
}

.tcjb-menu__lista {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tcjb-menu__lista a {
	position: relative;
	display: block;
	padding: 24px 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 15px;
	color: #000;
	text-decoration: none;
	transition: color 0.3s;
}

.tcjb-menu__lista a::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3px;
	background: var(--tcjb-destaque);
	opacity: 0;
	transform: scaleX(0);
	transition: transform 0.3s, opacity 0.3s;
}

.tcjb-menu__lista a:hover,
.tcjb-menu__lista a:focus-visible,
.tcjb-menu__lista a.is-ativo {
	color: var(--tcjb-destaque);
}

.tcjb-menu__lista a:hover::after,
.tcjb-menu__lista a:focus-visible::after,
.tcjb-menu__lista a.is-ativo::after {
	opacity: 1;
	transform: scaleX(1);
}

.tcjb-topo__acao {
	flex: 0 0 24.027%;
	max-width: 24.027%;
	padding: 10px;
}

.tcjb-botao-topo {
	display: inline-block;
	padding: 10px 20px;
	font-family: "Roboto", sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	color: #fff;
	text-decoration: none;
	background: var(--tcjb-principal);
	border: 3px solid #fff;
	border-radius: 8px;
	transition: all 0.3s;
}

.tcjb-botao-topo:hover,
.tcjb-botao-topo:focus-visible {
	color: var(--tcjb-principal-claro);
	background: #fff;
	border-color: var(--tcjb-principal-claro);
}

/* ---------- botões vermelhos da capa ---------- */
.tcjb-botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 15px 30px;
	font-family: "Roboto", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	color: #fff;
	text-decoration: none;
	background: var(--tcjb-principal);
	border-radius: 6px;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
	transition: background-color 0.3s, transform 0.3s;
}

.tcjb-botao:hover,
.tcjb-botao:focus-visible {
	color: #fff;
	background: var(--tcjb-principal-claro);
}

.tcjb-botao--cresce:hover,
.tcjb-botao--cresce:focus-visible {
	transform: scale(1.1);
}

/* ---------- títulos das seções ---------- */
.tcjb-titulo {
	margin: 0;
	font-family: "Montserrat", sans-serif;
	font-size: 46px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
}

.tcjb-titulo--destaque {
	color: var(--tcjb-destaque);
}

.tcjb-titulo--claro {
	color: #fff;
}

.tcjb-divisor {
	display: block;
	height: 3px;
	margin: 0 auto;
	background: var(--tcjb-principal);
}

/* ---------- capa ---------- */
.tcjb-capa {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 100vh;
	padding: 50px;
	background-color: #1f2a22;
	background-position: left top;
	background-size: cover;
	background-repeat: no-repeat;
}

.tcjb-capa__in {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 10px;
}

.tcjb-capa__titulo {
	margin: 0 0 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 63px;
	font-weight: 600;
	line-height: 1;
	color: #fff;
}

.tcjb-capa__linha {
	display: flex;
}

.tcjb-capa__cartao {
	flex: 0 0 auto;
	width: calc(50% - 20px);
	margin: 10px;
	padding: 26px 40px 40px;
	background: #fff;
	border: 1px solid #4a4a4a;
	box-shadow: inset 5px 0 0 var(--tcjb-destaque), 0 0 7px 1px rgba(190, 161, 161, 0.55);
}

.tcjb-capa__texto {
	padding-bottom: 23px;
}

.tcjb-capa__texto p {
	margin: 0 0 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.8;
	color: #000;
}

.tcjb-capa__saiba {
	display: flex;
	flex: 1 1 auto;
	align-items: flex-end;
	justify-content: flex-end;
	margin: 10px;
	padding: 0 25px 41px 0;
}

/* ---------- faixa de destaques ---------- */
.tcjb-faixa {
	position: relative;
	background-color: #2b2b2b;
	background-position: left top;
	background-size: cover;
	background-repeat: no-repeat;
}

.tcjb-faixa::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #000;
	opacity: 0.67;
}

.tcjb-faixa__in {
	position: relative;
	display: flex;
	max-width: 1140px;
	margin: 0 auto;
}

.tcjb-faixa__item {
	flex: 1 1 0;
	min-width: 0;
	padding: 10px;
	text-align: center;
}

.tcjb-faixa__icone {
	display: block;
	width: 150px;
	height: auto;
	margin: 0 auto;
}

.tcjb-faixa__titulo {
	margin: 20px 0 0;
	font-family: "Montserrat", sans-serif;
	font-size: 25px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
}

.tcjb-faixa__item:first-child .tcjb-faixa__titulo {
	font-size: 22px;
}

/* ---------- sobre nós ---------- */
.tcjb-sobre {
	display: flex;
}

.tcjb-sobre__texto {
	flex: 0 0 50%;
	max-width: 50%;
	padding: 80px;
	text-align: center;
	background: var(--tcjb-cinza);
}

.tcjb-divisor--sobre {
	width: 22%;
	margin-bottom: 37px;
}

.tcjb-sobre__corpo p {
	margin: 0 0 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 27px;
	font-weight: 600;
	line-height: 1.8;
	color: #303030;
}

.tcjb-sobre__foto {
	flex: 0 0 50%;
	max-width: 50%;
}

.tcjb-sobre__img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

/* ---------- serviços ---------- */
.tcjb-servicos {
	position: relative;
	padding: 80px 70px;
	background-color: #151515;
	background-position: left top;
	background-size: cover;
	background-repeat: no-repeat;
}

.tcjb-servicos::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #000;
	opacity: 0.87;
}

.tcjb-servicos__in {
	position: relative;
	max-width: 1140px;
	margin: 0 auto;
	padding: 10px;
}

.tcjb-divisor--servicos {
	width: 10%;
	margin-bottom: 37px;
	background: var(--tcjb-destaque);
}

.tcjb-servicos__grade {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	padding: 10px;
}

.tcjb-servico {
	position: relative;
	isolation: isolate;
	padding: 40px;
	color: #fff;
	text-align: center;
	background-color: #3a3a3a;
}

.tcjb-servico::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #000;
	opacity: 0.75;
}

/* fundos dos cartões: os mesmos mapas do site original, com o mesmo enquadramento */
.tcjb-servico--1,
.tcjb-servico--2 {
	background-image: url("../img/card-mapa1.jpg");
}

.tcjb-servico--3 {
	background-image: url("../img/card-mapa2.jpg");
	background-position: center center;
	background-size: cover;
}

.tcjb-servico--4 {
	background-image: url("../img/card-mapa3.jpg");
	background-position: center bottom;
	background-size: cover;
}

.tcjb-servico--5 {
	background-image: url("../img/card-carros.jpg");
	background-position: right center;
	background-size: cover;
}

.tcjb-servico--6 {
	background-image: url("../img/card-mapa4.jpg");
	background-position: right center;
}

.tcjb-servico--4::before,
.tcjb-servico--6::before {
	opacity: 0.8;
}

.tcjb-servico--5::before {
	opacity: 0.81;
}

.tcjb-servico__icone {
	display: block;
	width: 24%;
	height: auto;
	margin: 0 auto;
}

.tcjb-servico__titulo {
	margin: 20px 0 0;
	font-family: "Montserrat", sans-serif;
	font-size: 23px;
	font-weight: 600;
	line-height: 1;
	color: #fff;
	text-decoration: underline;
}

.tcjb-servico__texto {
	margin-top: 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.8;
	color: #fff;
}

.tcjb-servico__texto p {
	margin: 0 0 20px;
}

.tcjb-servico--2 .tcjb-servico__texto,
.tcjb-servico--5 .tcjb-servico__texto,
.tcjb-servico--6 .tcjb-servico__texto {
	font-size: 18px;
}

.tcjb-servico--4 .tcjb-servico__texto {
	font-size: 17px;
}

/* ---------- planos ---------- */
.tcjb-planos {
	background: var(--tcjb-cinza);
}

.tcjb-planos__topo {
	max-width: 1140px;
	margin: 0 auto;
	padding: 10px 10px 0;
}

.tcjb-divisor--planos {
	width: 16%;
	margin-bottom: 27px;
}

.tcjb-planos__grade {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: center;
	gap: 20px;
	max-width: 1140px;
	margin: 0 auto;
	padding: 10px;
}

.tcjb-plano {
	position: relative;
	flex: 0 0 calc((100% - 40px) / 3);
	min-width: 0;
	overflow: hidden;
	padding: 30px;
	text-align: left;
	border: 1px solid rgba(9, 9, 9, 0.1);
	border-radius: 4px;
	box-shadow: 0 0 10px rgba(150, 150, 150, 0.5);
}

.tcjb-plano::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 1;
	height: 3px;
	background: var(--tcjb-destaque);
	border-radius: 5px 5px 0 0;
}

.tcjb-plano--destaque {
	box-shadow: 0 0 10px rgba(130, 56, 56, 0.5);
}

.tcjb-plano--destaque::before {
	display: none;
}

.tcjb-plano__selo {
	position: absolute;
	top: 30px;
	right: -55px;
	z-index: 10;
	width: 200px;
	padding: 7px 0;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: 600;
	line-height: 25.2px;
	color: #fff;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
	background: var(--tcjb-destaque);
	transform: rotate(45deg);
}

.tcjb-plano__nome {
	margin: 0 0 15px;
	padding: 0 0 15px;
	font-family: "Montserrat", sans-serif;
	font-size: 25px;
	font-weight: 600;
	line-height: 30px;
	color: #000;
	border-bottom: 1px solid #dbdbdb;
}

.tcjb-plano--destaque .tcjb-plano__nome {
	padding-right: 50px;
}

.tcjb-plano__preco {
	margin-bottom: 15px;
	padding: 15px 0;
	font-family: "Poppins", sans-serif;
	line-height: 25.2px;
	color: #5a5a5a;
	border-bottom: 1px solid rgba(9, 9, 9, 0.04);
}

.tcjb-plano__moeda {
	margin: 0 7px;
	font-size: 24px;
	font-weight: 700;
}

.tcjb-plano__valor {
	font-size: 28px;
	font-weight: 600;
}

.tcjb-plano__periodo {
	margin-left: 3px;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: #585858;
}

.tcjb-plano__itens {
	margin: 0 0 15px;
	padding: 0;
	list-style: none;
}

.tcjb-plano__itens li {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px 0;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 25.2px;
	color: #6d6d6d;
	border-bottom: 1px solid rgba(9, 9, 9, 0.04);
}

.tcjb-plano__itens li:last-child {
	border-bottom: 0;
}

.tcjb-plano__itens .tcjb-icone {
	margin: 0 6px;
	font-size: 20px;
	color: #000;
	vertical-align: middle;
}

.tcjb-plano__botao {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px 25px;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 25.2px;
	color: var(--tcjb-destaque);
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	background: #fff;
	border: 3px solid var(--tcjb-destaque);
	border-radius: 10px;
	box-shadow: 0 0 10px 1px #b0b0b0;
	transition: all 0.3s;
}

.tcjb-plano--destaque .tcjb-plano__botao {
	box-shadow: 0 0 10px 0 #919191;
}

.tcjb-plano__botao:hover,
.tcjb-plano__botao:focus-visible {
	color: #f9f9f9;
	background: var(--tcjb-destaque);
}

/* ---------- fale conosco e mapa ---------- */
.tcjb-contato {
	margin: 40px 0;
}

.tcjb-contato__in {
	display: flex;
	max-width: 1140px;
	margin: 0 auto;
}

.tcjb-contato__col {
	flex: 0 0 50%;
	max-width: 50%;
	padding: 10px;
}

.tcjb-contato__titulo {
	margin-bottom: 20px;
}

.tcjb-form {
	position: relative;
}

.tcjb-form__aviso {
	margin: 0 0 6px;
	font-family: "Roboto", sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 25.2px;
	color: #4a4a4a;
}

.tcjb-form__req {
	color: #e80000;
}

.tcjb-form__campo {
	margin-bottom: 25px;
	padding: 0 5px;
}

.tcjb-form label {
	display: block;
	margin-bottom: 14px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 18px;
	font-weight: 700;
	line-height: 20px;
	color: #4a4a4a;
}

.tcjb-form input[type="text"],
.tcjb-form input[type="email"],
.tcjb-form input[type="tel"],
.tcjb-form textarea {
	display: block;
	width: 100%;
	height: 50px;
	margin: 0;
	padding: 12px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: normal;
	color: #6b6b6b;
	background: #f7f7f7;
	border: 1px solid #c4c4c4;
	border-radius: 0;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 0.2s, background-color 0.2s;
}

.tcjb-form textarea {
	height: 200px;
	line-height: 24px;
	resize: vertical;
}

.tcjb-form input::placeholder,
.tcjb-form textarea::placeholder {
	color: #757575;
	opacity: 1;
}

.tcjb-form input:focus,
.tcjb-form textarea:focus {
	background: #fff;
	border-color: #8a8a8a;
	outline: none;
}

.tcjb-form__campo--invalido input,
.tcjb-form__campo--invalido textarea {
	border-color: #e80000;
}

.tcjb-form__erro {
	display: block;
	margin-top: 6px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	line-height: 1.4;
	color: #e80000;
}

.tcjb-form__erro[hidden] {
	display: none;
}

.tcjb-form__isca {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.tcjb-form__campo--enviar {
	padding-top: 8px;
}

.tcjb-form__enviar {
	width: 130px;
	height: 50px;
	padding: 10px 20px;
	font-family: "Raleway", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 1.6px;
	color: #000;
	text-transform: uppercase;
	cursor: pointer;
	background: #fff;
	border: 3px solid #000;
	border-radius: 3px;
	transition: all 0.3s;
}

.tcjb-form__enviar:hover,
.tcjb-form__enviar:focus-visible {
	color: #fff;
	background: #000;
}

.tcjb-form__enviar[disabled] {
	cursor: wait;
	opacity: 0.6;
}

.tcjb-form__status {
	margin: 0 5px;
	padding: 12px 15px;
	font-family: "Montserrat", sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	border-radius: 3px;
}

.tcjb-form__status[hidden] {
	display: none;
}

.tcjb-form__status--ok {
	color: #11572c;
	background: #e2f4e8;
}

.tcjb-form__status--erro {
	color: #8a1f1f;
	background: #fbe2e2;
}

.tcjb-form__status a {
	color: inherit;
}

.tcjb-mapa iframe {
	display: block;
	width: 100%;
	height: 300px;
	border: 0;
}

.tcjb-contato__listas {
	display: flex;
	margin-top: 30px;
}

.tcjb-lista {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	padding: 0 10px;
	list-style: none;
}

.tcjb-lista li {
	display: flex;
	align-items: center;
	font-family: "Raleway", sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 21.6px;
	color: #5a5a5a;
}

.tcjb-lista .tcjb-icone {
	width: 1.25em;
	margin-right: 5px;
	font-size: 14px;
	color: var(--tcjb-principal);
}

.tcjb-lista a {
	color: #5a5a5a;
	text-decoration: none;
	transition: color 0.3s;
}

.tcjb-lista a:hover {
	color: var(--tcjb-principal);
}

/* ---------- rodapé ---------- */
.tcjb-rodape {
	padding-top: 20px;
	background: var(--tcjb-rodape);
}

.tcjb-rodape__in {
	display: flex;
	max-width: 1140px;
	margin: 0 auto;
}

.tcjb-rodape__col {
	flex: 0 0 33.333%;
	max-width: 33.333%;
	padding: 10px;
}

.tcjb-rodape__logo {
	display: block;
	margin-bottom: 20px;
	line-height: 0;
	text-align: center;
}

.tcjb-logo--rodape {
	display: inline-block;
	width: auto;
	max-width: 100%;
	max-height: 76px;
}

.tcjb-rodape__sobre-titulo {
	margin: 0 0 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	color: #9c9c9c;
}

.tcjb-rodape__sobre {
	font-family: "Montserrat", sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.8;
	color: #939393;
	text-align: center;
}

.tcjb-rodape__sobre p {
	margin: 0 0 20px;
}

.tcjb-rodape__titulo {
	margin: 0 0 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 17px;
	font-weight: 600;
	line-height: 1;
	color: #fff;
}

.tcjb-rodape__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tcjb-rodape__links li {
	display: flex;
	align-items: center;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 25.2px;
}

.tcjb-rodape__links .tcjb-icone {
	width: 1.25em;
	font-size: 15px;
	color: var(--tcjb-principal);
}

.tcjb-rodape__links a {
	padding-left: 5px;
	color: #cecece;
	text-decoration: none;
	transition: color 0.3s;
}

.tcjb-rodape__links a:hover {
	color: #fff;
}

.tcjb-sociais {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.tcjb-sociais__item {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	font-size: 25px;
	color: #fff;
	background: var(--tcjb-rodape-icone);
	border-radius: 10%;
	transition: background-color 0.3s;
}

.tcjb-sociais__item:hover,
.tcjb-sociais__item:focus-visible {
	color: #fff;
	background: var(--tcjb-principal);
}

.tcjb-rodape__fim {
	padding: 10px;
	font-family: "Roboto", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 25.2px;
	color: #666;
	text-align: center;
	background: var(--tcjb-rodape-fim);
}

/* ---------- WhatsApp e voltar ao topo ---------- */
.tcjb-whats {
	position: fixed;
	right: 20px;
	bottom: 80px;
	z-index: 900;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	font-size: 30px;
	color: #fff;
	text-decoration: none;
	background: #48d319;
	border-radius: 50%;
	transition: background-color 0.3s;
	animation: tcjb-cai 1.25s both;
}

.tcjb-whats:hover,
.tcjb-whats:focus-visible {
	color: #fff;
	background: #47b621;
}

.tcjb-voltar {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 900;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	font-size: 18px;
	color: #fff;
	background: rgba(0, 0, 0, 0.4);
	border-radius: 2px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s, background-color 0.3s;
}

.tcjb-voltar--ver {
	opacity: 1;
	visibility: visible;
}

.tcjb-voltar:hover,
.tcjb-voltar:focus-visible {
	color: #fff;
	background: rgba(0, 0, 0, 0.8);
}

/* ---------- páginas avulsas (Política de privacidade) ---------- */
.tcjb-pagina {
	padding: 60px 20px 80px;
}

.tcjb-pagina__in {
	max-width: 900px;
	margin: 0 auto;
}

.tcjb-pagina__titulo {
	margin: 0 0 30px;
	font-family: "Montserrat", sans-serif;
	font-size: 40px;
	font-weight: 500;
	line-height: 1.15;
	color: var(--tcjb-destaque);
}

.tcjb-pagina__conteudo {
	font-size: 15px;
	line-height: 1.8;
	color: #4a4a4a;
}

.tcjb-pagina__conteudo h2,
.tcjb-pagina__conteudo h3,
.tcjb-pagina__conteudo h4 {
	margin: 1.6em 0 0.6em;
	line-height: 1.3;
	color: #303030;
}

.tcjb-pagina__conteudo a,
.tcjb-pagina__resumo a {
	color: var(--tcjb-principal);
}

.tcjb-pagina__resumo {
	margin-bottom: 30px;
}

/* ---------- animações de entrada (as mesmas do site original, só com JavaScript) ---------- */
.tcjb-js [data-tcjb-anim] {
	opacity: 0;
}

.tcjb-js [data-tcjb-anim].tcjb-visivel {
	opacity: 1;
	animation-duration: 1.25s;
	animation-fill-mode: both;
}

.tcjb-js [data-tcjb-anim="esquerda"].tcjb-visivel {
	animation-name: tcjb-esquerda;
}

.tcjb-js [data-tcjb-anim="direita"].tcjb-visivel {
	animation-name: tcjb-direita;
}

.tcjb-js [data-tcjb-anim="cima"].tcjb-visivel {
	animation-name: tcjb-cima;
}

@keyframes tcjb-esquerda {
	from {
		opacity: 0;
		transform: translate3d(-100%, 0, 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes tcjb-direita {
	from {
		opacity: 0;
		transform: translate3d(100%, 0, 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes tcjb-cima {
	from {
		opacity: 0;
		transform: translate3d(0, 100%, 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes tcjb-cai {
	from,
	60%,
	75%,
	90%,
	to {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	0% {
		opacity: 0;
		transform: translate3d(0, -3000px, 0);
	}
	60% {
		opacity: 1;
		transform: translate3d(0, 25px, 0);
	}
	75% {
		transform: translate3d(0, -10px, 0);
	}
	90% {
		transform: translate3d(0, 5px, 0);
	}
	to {
		transform: none;
	}
}

/* ---------- computador: fotos fixas ao rolar (como no original) ---------- */
@media (min-width: 1025px) {
	.tcjb-faixa,
	.tcjb-servicos {
		background-attachment: fixed;
	}
}

/* ---------- tablet e celular: menu no botão ---------- */
@media (max-width: 1024px) {
	.tcjb-menu {
		text-align: center;
	}

	.tcjb-menu__botao {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 0.35em;
		font-size: 20px;
		line-height: 1;
		color: #000;
		cursor: pointer;
		background: #ececec;
		border: 0;
		border-radius: 0;
	}

	.tcjb-menu__fechar,
	.tcjb-menu--aberto .tcjb-menu__abrir {
		display: none;
	}

	.tcjb-menu--aberto .tcjb-menu__fechar {
		display: inline-block;
	}

	.tcjb-menu__lista {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		z-index: 5;
		display: none;
		flex-direction: column;
		text-align: left;
		background: #fff;
		box-shadow: 0 10px 18px rgba(0, 0, 0, 0.12);
	}

	.tcjb-menu--aberto .tcjb-menu__lista {
		display: flex;
	}

	.tcjb-menu__lista a {
		padding: 15px 20px;
	}

	.tcjb-menu__lista a::after {
		display: none;
	}
}

/* ---------- tablet: o original fica com colunas espremidas; aqui o texto e os cartões respiram ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
	.tcjb-sobre__texto {
		padding: 50px 40px;
	}

	.tcjb-sobre__corpo p {
		font-size: 20px;
	}

	.tcjb-servicos {
		padding: 60px 30px;
	}

	.tcjb-servicos__grade {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tcjb-servico {
		padding: 30px;
	}
}

@media (min-width: 768px) and (max-width: 900px) {
	.tcjb-plano {
		flex-basis: calc((100% - 20px) / 2);
	}
}

/* ---------- celular ---------- */
@media (max-width: 782px) {
	.admin-bar .tcjb-topo {
		top: 46px;
	}

	.admin-bar.tcjb [id] {
		scroll-margin-top: calc(var(--tcjb-topo-h) + 46px);
	}
}

@media (max-width: 600px) {
	.admin-bar .tcjb-topo {
		top: 0;
	}
}

@media (max-width: 767px) {
	/* no celular o topo do original tem 20 px a mais embaixo da logo */
	:root {
		--tcjb-topo-h: 117px;
	}

	.tcjb-topo__in {
		padding-bottom: 20px;
	}

	.tcjb-topo__logo {
		flex-basis: 51%;
		max-width: 51%;
	}

	.tcjb-menu {
		flex-basis: 49%;
		max-width: 49%;
	}

	.tcjb-topo__acao {
		display: none;
	}

	.tcjb-menu__botao {
		font-size: 19px;
		border-radius: 8px;
	}

	/* no celular a capa tem a altura do conteúdo (o Elementor só põe a tela cheia a partir de 768 px) */
	.tcjb-capa {
		min-height: 0;
		padding: 5px 5px 105px;
		background-position: center bottom;
	}

	.tcjb-capa__titulo {
		font-size: 42px;
	}

	.tcjb-capa__linha {
		flex-direction: column;
	}

	.tcjb-capa__cartao {
		width: auto;
	}

	.tcjb-capa__saiba {
		display: none;
	}

	.tcjb-faixa {
		padding: 5px;
	}

	.tcjb-faixa__in {
		flex-wrap: wrap;
	}

	.tcjb-faixa__item {
		flex: 0 0 50%;
		max-width: 50%;
	}

	.tcjb-faixa__in--1 .tcjb-faixa__item,
	.tcjb-faixa__in--3 .tcjb-faixa__item:nth-child(3) {
		flex-basis: 100%;
		max-width: 100%;
	}

	.tcjb-sobre {
		flex-direction: column;
	}

	.tcjb-sobre__texto,
	.tcjb-sobre__foto {
		flex-basis: auto;
		max-width: 100%;
	}

	.tcjb-sobre__texto {
		padding: 40px;
	}

	.tcjb-sobre__corpo p {
		font-size: 14px;
	}

	.tcjb-sobre__img {
		height: auto !important;
	}

	.tcjb-servicos {
		padding: 0;
	}

	.tcjb-servicos__in {
		padding: 6px;
	}

	.tcjb-servicos .tcjb-titulo {
		font-size: 35px;
	}

	.tcjb-divisor--servicos {
		width: 12%;
	}

	.tcjb-servicos__grade {
		grid-template-columns: minmax(0, 1fr);
	}

	.tcjb-servico {
		padding: 6px;
	}

	.tcjb-servico--1 {
		padding: 0;
	}

	.tcjb-servico--5 {
		padding: 10px;
	}

	.tcjb-servico--2 {
		background-image: url("../img/card-mapa5.jpg");
	}

	.tcjb-servico--1 .tcjb-servico__texto {
		font-size: 15px;
	}

	.tcjb-servico--3 .tcjb-servico__texto {
		font-size: 17px;
	}

	.tcjb-servico--5 .tcjb-servico__texto {
		font-size: 19px;
	}

	.tcjb-planos .tcjb-titulo {
		font-size: 34px;
	}

	.tcjb-divisor--planos {
		width: 35%;
	}

	.tcjb-planos__grade {
		flex-direction: column;
		align-items: stretch;
		gap: 50px;
	}

	.tcjb-plano {
		flex-basis: auto;
	}

	.tcjb-plano__moeda {
		margin: 0 9px;
	}

	.tcjb-contato__in {
		flex-direction: column;
	}

	.tcjb-contato__col {
		flex-basis: auto;
		max-width: 100%;
	}

	.tcjb-contato__listas {
		flex-direction: column;
		gap: 20px;
	}

	.tcjb-lista .tcjb-icone {
		font-size: 15px;
	}

	.tcjb-rodape__in {
		flex-wrap: wrap;
	}

	.tcjb-rodape__col {
		flex-basis: 50%;
		max-width: 50%;
	}

	.tcjb-rodape__col--sobre {
		flex-basis: 100%;
		max-width: 100%;
	}

	.tcjb-whats {
		right: 0;
		bottom: 41px;
		width: 48px;
		height: 48px;
		font-size: 26px;
	}

	.tcjb-voltar {
		right: 10px;
		bottom: 10px;
		width: 26px;
		height: 26px;
		font-size: 16px;
	}

	.tcjb-pagina {
		padding: 40px 16px 60px;
	}

	.tcjb-pagina__titulo {
		font-size: 30px;
	}
}

/* celular estreito: a faixa do preço fica mais baixa, como no original */
@media (max-width: 480px) {
	.tcjb-plano__preco {
		padding: 2px 0;
		line-height: 27px;
	}
}

/* ---------- quem prefere menos movimento ---------- */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.tcjb-js [data-tcjb-anim],
	.tcjb-js [data-tcjb-anim].tcjb-visivel {
		opacity: 1;
		animation: none !important;
	}

	.tcjb-whats {
		animation: none;
	}

	.tcjb-botao--cresce:hover,
	.tcjb-botao--cresce:focus-visible {
		transform: none;
	}
}
