/**
 * Conduscobre Cotação: base do site.
 *
 * Entra quando o plugin assume o site (cabeçalho, rodapé e páginas), depois
 * da folha da loja, e faz o papel que o kit do construtor fazia: fonte, cor
 * do texto, títulos, links, largura do conteúdo, botões e campos do tema e do
 * WooCommerce. O Astra fica nos padrões de fábrica (fonte do sistema, link
 * azul, caixa de 1240px) e é o que aparecia quando o construtor saiu.
 *
 * Toda regra começa por body.cc-tema: (0,1,1) ou mais, acima do que o Astra
 * imprime para esses mesmos elementos, e sem !important. Os blocos do plugin
 * (.cc-*) não são tocados aqui; eles já têm a própria folha.
 */

body.cc-tema {
	--cc-conteudo: 1280px;
	font-family: var(--cc-fonte);
	font-size: 16px;
	line-height: 1.65;
	color: var(--cc-texto);
	background: var(--cc-fundo);
	-webkit-font-smoothing: antialiased;
}

body.cc-tema button,
body.cc-tema input,
body.cc-tema select,
body.cc-tema textarea {
	font-family: inherit;
}

/* ---------- Títulos e texto ---------- */

/*
 * Nada daqui entra nos blocos do plugin: ":not([class*="cc-"])" deixa de fora
 * o elemento com classe do plugin, e ":not(:where(:not(body)[class*="cc-"]) *)"
 * tudo o que está dentro de um bloco do plugin, que já tem as próprias
 * regras. O "body" fica de fora da conta porque ele também recebe classes
 * do plugin (cc-tema, cc-liberado) e, sem isso, a exceção valeria para a
 * página inteira. O ":where" mantém a força do seletor no nível do tema.
 */
body.cc-tema :is(h1, h2, h3, h4, h5, h6):not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	margin: 0 0 .5em;
	color: var(--cc-texto);
	font-family: var(--cc-fonte-titulos);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
}

body.cc-tema h1:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	font-size: 34px;
}

body.cc-tema h2:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	font-size: var(--cc-t7);
}

body.cc-tema h3:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	font-size: var(--cc-t6);
}

body.cc-tema h4:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	font-size: var(--cc-t5);
}

body.cc-tema :is(h5, h6):not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	font-size: var(--cc-t4);
}

body.cc-tema .entry-content :is(p, ul, ol):not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	margin: 0 0 var(--cc-e4);
}

body.cc-tema .entry-content :is(ul, ol):not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	padding-left: var(--cc-e6);
}

body.cc-tema .entry-content li:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	margin: 0 0 var(--cc-e1);
}

body.cc-tema .entry-content img:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	max-width: 100%;
	height: auto;
}

/* Links de texto na cor da marca; o sublinhado só ao passar o mouse. */
body.cc-tema a:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	color: var(--cc-acao-hover);
	text-decoration: none;
	transition: color var(--cc-transicao);
}

body.cc-tema a:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *):hover,
body.cc-tema a:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *):focus-visible {
	color: var(--cc-texto);
}

body.cc-tema .entry-content a:not([class]):not(:where(:not(body)[class*="cc-"]) *):hover {
	text-decoration: underline;
}

/* ---------- Largura e respiro do conteúdo ---------- */

body.cc-tema .ast-container {
	max-width: calc(var(--cc-conteudo) + 2 * var(--cc-e4));
	padding-left: var(--cc-e4);
	padding-right: var(--cc-e4);
}

body.cc-tema #content {
	padding-top: var(--cc-e6);
	padding-bottom: var(--cc-e7);
}

/* Na largura total (página inicial) o conteúdo vai de borda a borda e os
   blocos do plugin cuidam da própria margem. */
body.cc-tema.ast-page-builder-template .ast-container,
body.cc-tema.ast-page-builder-template #content {
	max-width: none;
	padding: 0;
}

body.cc-tema .entry-header {
	margin: 0 0 var(--cc-e5);
}

body.cc-tema header.entry-header .entry-title {
	margin: 0;
	font-family: var(--cc-fonte-titulos);
	font-size: 34px;
	font-weight: 700;
}

body.cc-tema .entry-content {
	margin-top: 0;
}

/* Títulos e trilha do WooCommerce nas listagens e no produto. */
body.cc-tema .woocommerce-products-header__title,
body.cc-tema h1.page-title {
	margin: 0 0 var(--cc-e3);
	font-family: var(--cc-fonte-titulos);
	font-size: 34px;
	font-weight: 700;
}

body.cc-tema .woocommerce-breadcrumb {
	margin: 0 0 var(--cc-e5);
	color: var(--cc-suave);
	font-size: var(--cc-t2);
}

body.cc-tema .woocommerce-breadcrumb a {
	color: var(--cc-suave);
}

body.cc-tema .woocommerce-breadcrumb a:hover {
	color: var(--cc-acao-hover);
}

body.cc-tema .term-description {
	max-width: 860px;
	margin: 0 0 var(--cc-e6);
	color: var(--cc-suave);
	font-size: var(--cc-t3);
	line-height: 1.6;
}

/* ---------- Botões e campos do tema ---------- */

/* Só os que não são do plugin nem estão dentro de um bloco dele. */
body.cc-tema .button:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *),
body.cc-tema .ast-button:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *),
body.cc-tema .wp-block-button__link,
body.cc-tema input[type="submit"]:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *),
body.cc-tema button:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *):not(.menu-toggle) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--cc-e2);
	min-height: var(--cc-toque);
	padding: var(--cc-e3) var(--cc-e5);
	border: none;
	border-radius: var(--cc-raio);
	background: var(--cc-acao);
	color: #fff;
	font-family: inherit;
	font-size: var(--cc-t4);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition: background-color var(--cc-transicao), color var(--cc-transicao);
}

body.cc-tema .button:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *):hover,
body.cc-tema .ast-button:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *):hover,
body.cc-tema .wp-block-button__link:hover,
body.cc-tema input[type="submit"]:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *):hover,
body.cc-tema button:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *):not(.menu-toggle):hover {
	background: var(--cc-acao-hover);
	color: #fff;
}

body.cc-tema :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="search"], input[type="number"], input[type="password"], textarea, select):not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
	box-sizing: border-box;
	min-height: var(--cc-toque);
	padding: var(--cc-e3);
	border: 1px solid var(--cc-borda);
	border-radius: var(--cc-raio);
	background: var(--cc-fundo);
	color: var(--cc-texto);
	font-family: inherit;
	font-size: var(--cc-t4);
	line-height: 1.3;
	box-shadow: none;
}

body.cc-tema :is(input, textarea, select):not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *):focus {
	outline: none;
	border-color: var(--cc-acao);
	box-shadow: 0 0 0 3px var(--cc-acao-suave);
}

/* ---------- Tabelas e blocos de texto ---------- */

body.cc-tema .entry-content table:not(:where(:not(body)[class*="cc-"]) *) {
	width: 100%;
	margin: 0 0 var(--cc-e5);
	border-collapse: collapse;
	font-size: var(--cc-t3);
}

body.cc-tema .entry-content :is(th, td):not(:where(:not(body)[class*="cc-"]) *) {
	padding: var(--cc-e3) var(--cc-e2);
	border: none;
	border-bottom: 1px solid var(--cc-borda);
	text-align: left;
	vertical-align: top;
}

body.cc-tema .entry-content th:not(:where(:not(body)[class*="cc-"]) *) {
	color: var(--cc-suave);
	font-weight: 600;
}

body.cc-tema .entry-content blockquote:not(:where(:not(body)[class*="cc-"]) *) {
	margin: 0 0 var(--cc-e5);
	padding: var(--cc-e3) var(--cc-e5);
	border-left: 3px solid var(--cc-acao);
	color: var(--cc-suave);
}

body.cc-tema .entry-content hr:not(:where(:not(body)[class*="cc-"]) *) {
	margin: var(--cc-e6) 0;
	border: none;
	border-top: 1px solid var(--cc-borda);
}

/* ---------- Páginas ainda no construtor ---------- */

/*
 * Sem o construtor, a página de texto mostra o HTML que ele guardou de
 * reserva: os mesmos títulos e parágrafos, dentro de divs sem estilo. As
 * divs viram só espaçamento, e o que sobrou de widget de lista ou de ícone
 * deixa de aparecer como texto solto.
 */
body.cc-tema .elementor-element,
body.cc-tema .elementor-widget-container {
	margin: 0;
}

body.cc-tema .elementor-widget {
	margin: 0 0 var(--cc-e4);
}

body.cc-tema .e-con-inner {
	max-width: var(--cc-conteudo);
	margin: 0 auto;
}

body.cc-tema .elementor-icon,
body.cc-tema .elementor-icon-box-icon,
body.cc-tema .elementor-screen-only,
body.cc-tema .elementor-hidden {
	display: none;
}

body.cc-tema .elementor-widget-html link,
body.cc-tema .elementor-widget-html style {
	display: none;
}

/* ---------- Telas menores ---------- */

@media (max-width: 782px) {
	body.cc-tema h1:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *),
	body.cc-tema header.entry-header .entry-title,
	body.cc-tema .woocommerce-products-header__title,
	body.cc-tema h1.page-title {
		font-size: var(--cc-t7);
	}

	body.cc-tema h2:not([class*="cc-"]):not(:where(:not(body)[class*="cc-"]) *) {
		font-size: var(--cc-t6);
	}

	body.cc-tema #content {
		padding-top: var(--cc-e5);
		padding-bottom: var(--cc-e6);
	}
}

/* ---------- Página 404 ---------- */

/* O bloco do plugin entra no lugar do modelo do tema; o que sobra da
   estrutura do tema (seção e cabeçalho) fica sem margem própria. */
body.cc-tema.error404 .error-404 {
	margin: 0;
	padding: 0;
	text-align: left;
}
