/* Setup IA — folha do site. Um arquivo, tokens no topo, casca + blocos. */

:root {
	--cy3-ink: #111111;
	--cy3-muted: #5a6472;
	--cy3-line: #e6e8ec;
	--cy3-bg: #ffffff;
	--cy3-soft: #f6f7f9;
	--cy3-dominante: #12243b;
	--cy3-acento: #e11d48;
	--cy3-largura: 1100px;
	--cy3-raio: 14px;
	--cy3-espaco: clamp(24px, 5vw, 72px);
}

html { scroll-behavior: smooth; }

body.cy3su-corpo,
body.page {
	margin: 0;
	background: var(--cy3-bg);
	color: var(--cy3-ink);
	font-family: Manrope, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

body.cy3su-corpo h1,
body.cy3su-corpo h2,
body.cy3su-corpo h3 {
	font-family: inherit;
	letter-spacing: -.015em;
	line-height: 1.15;
	margin: 0 0 .5em;
	color: var(--cy3-dominante);
}

body.cy3su-corpo h1 { font-size: clamp(1.9rem, 4.2vw, 3rem); font-weight: 800; }
body.cy3su-corpo h2 { font-size: clamp(1.5rem, 2.8vw, 2.2rem); font-weight: 700; }
body.cy3su-corpo h3 { font-size: clamp(1.05rem, 1.6vw, 1.25rem); font-weight: 700; }

body.cy3su-corpo p { margin: 0 0 1em; }
body.cy3su-corpo a { color: var(--cy3-acento); text-decoration: none; }
body.cy3su-corpo a:hover { text-decoration: underline; }
body.cy3su-corpo img { max-width: 100%; height: auto; display: block; }

/* Largura total, conteúdo contido */
.cy3su-wrap,
main#cy3su-pagina,
main.wp-block-group {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.wp-block-group,
.wp-block-columns,
.wp-block-column { max-width: none; }

/* Cabeçalho */
.cy3su-topo {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	width: 100%;
	max-width: var(--cy3-largura) !important;
	margin: 0 auto !important;
	padding: 18px clamp(16px, 4vw, 24px) !important;
	border-bottom: 1px solid var(--cy3-line);
	background: var(--cy3-bg);
	position: sticky;
	top: 0;
	z-index: 30;
}

.cy3su-marca {
	margin: 0 !important;
	font-weight: 800;
	font-size: 1.05rem;
	color: var(--cy3-dominante) !important;
	letter-spacing: -.01em;
}

.cy3su-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	flex: 1 1 auto;
	margin: 0 !important;
}

.cy3su-menu-item { margin: 0 !important; font-size: .94rem; }
.cy3su-menu-item a {
	color: #2c3542 !important;
	text-decoration: none !important;
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	display: inline-block;
}
.cy3su-menu-item a:hover { color: var(--cy3-acento) !important; border-bottom-color: var(--cy3-acento); }

/* Botões */
.wp-element-button,
.cy3su-botao .wp-element-button,
a.wp-element-button {
	display: inline-block;
	background: var(--cy3-acento) !important;
	color: #fff !important;
	font-weight: 700;
	font-size: .95rem;
	padding: 12px 22px;
	border-radius: 999px;
	text-decoration: none !important;
	border: 0;
	transition: transform .15s ease, background .15s ease;
}
.wp-element-button:hover { background: #b3133a !important; transform: translateY(-1px); }

/* Hero em largura total */
.cy3su-hero {
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
	padding: var(--cy3-espaco) clamp(16px, 4vw, 24px) !important;
	background: var(--cy3-dominante) !important;
	color: #fff !important;
	border-radius: 0 !important;
	text-align: left;
}
.cy3su-hero > * { max-width: var(--cy3-largura); margin-left: auto !important; margin-right: auto !important; }
.cy3su-hero h1, .cy3su-hero h2 { color: #fff !important; max-width: 22ch; }
.cy3su-hero p { color: rgba(255,255,255,.88) !important; max-width: 60ch; font-size: 1.06rem; }
.cy3su-hero .wp-element-button { margin-top: 12px; }

/* Seções: conteúdo contido */
.cy3su-hero-titulo, .cy3su-servicos-grade, .cy3su-links, .cy3su-migalhas,
body.cy3su-corpo > main > h1, body.cy3su-corpo > main > h2,
body.cy3su-corpo .wp-block-heading, body.cy3su-corpo .wp-block-paragraph {
	margin-left: auto !important;
	margin-right: auto !important;
}

body.cy3su-corpo .wp-block-heading,
body.cy3su-corpo .wp-block-paragraph {
	max-width: var(--cy3-largura);
	padding-left: clamp(16px, 4vw, 24px);
	padding-right: clamp(16px, 4vw, 24px);
	box-sizing: border-box;
}

body.cy3su-corpo .wp-block-heading { margin-top: var(--cy3-espaco) !important; }

/* Grade de serviços */
.cy3su-servicos-grade {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	max-width: var(--cy3-largura);
	padding: 0 clamp(16px, 4vw, 24px);
	box-sizing: border-box;
	margin-bottom: var(--cy3-espaco) !important;
}

.cy3su-servico-card {
	background: #fff;
	border: 1px solid var(--cy3-line);
	border-top: 3px solid var(--cy3-acento);
	border-radius: var(--cy3-raio);
	padding: 22px !important;
	margin: 0 !important;
	max-width: none !important;
	transition: box-shadow .18s ease, transform .18s ease;
}
.cy3su-servico-card:hover { box-shadow: 0 14px 34px rgba(18,36,59,.10); transform: translateY(-2px); }
.cy3su-servico-card h3 { font-size: 1.03rem; margin-bottom: .5em; }
.cy3su-servico-card h3 a { color: var(--cy3-dominante) !important; text-decoration: none !important; }
.cy3su-servico-card p { color: var(--cy3-muted); font-size: .95rem; margin: 0 0 .7em; }
.cy3su-servico-card .cy3su-link a { font-weight: 700; font-size: .9rem; }

/* Chamada final */
.cy3su-cta {
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
	padding: var(--cy3-espaco) clamp(16px, 4vw, 24px) !important;
	background: var(--cy3-soft) !important;
	border-radius: 0 !important;
	text-align: center;
}
.cy3su-cta > * { max-width: var(--cy3-largura); margin-left: auto !important; margin-right: auto !important; }

/* Migalhas e links */
.cy3su-migalhas {
	font-size: .88rem;
	color: var(--cy3-muted);
	max-width: var(--cy3-largura);
	padding: 14px clamp(16px, 4vw, 24px) 0;
}
.cy3su-migalhas a { color: var(--cy3-muted); }

.cy3su-links {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	max-width: var(--cy3-largura);
	padding: 0 clamp(16px, 4vw, 24px);
}
.cy3su-link { margin: 0 !important; font-size: .9rem; }
.cy3su-link a { color: #2c3542; }

/* Rodapé */
.cy3su-rodape,
.cy3su-rodape-site {
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
	padding: 40px clamp(16px, 4vw, 24px) !important;
	background: var(--cy3-dominante) !important;
	color: rgba(255,255,255,.86) !important;
	border-radius: 0 !important;
}
.cy3su-rodape > *, .cy3su-rodape-site > * { max-width: var(--cy3-largura); margin-left: auto !important; margin-right: auto !important; }
.cy3su-rodape .cy3su-marca, .cy3su-rodape-site .wp-block-site-title a { color: #fff !important; font-weight: 700; }
.cy3su-rodape .cy3su-link a, .cy3su-rodape-site a { color: rgba(255,255,255,.86) !important; }
.cy3su-rodape-txt { font-size: .9rem; }

/* Conteúdo longo (artigos de cidade) */
body.cy3su-corpo .wp-block-column p,
body.cy3su-corpo .cy3su-secao p { color: #26303d; }

/* Formulário de contato */
.cy3su-contato input,
.cy3su-contato textarea,
.wpcf7 input, .wpcf7 textarea {
	width: 100%;
	border: 1px solid var(--cy3-line);
	border-radius: 10px;
	padding: 12px 14px;
	font: inherit;
	background: #fff;
}

/* Mobile */
@media (max-width: 900px) {
	.cy3su-servicos-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	body.cy3su-corpo { font-size: 16px; }
	.cy3su-topo { gap: 12px; padding: 14px 16px !important; }
	.cy3su-menu { gap: 12px; }
	.cy3su-menu-item { font-size: .88rem; }
	.cy3su-servicos-grade { grid-template-columns: 1fr; }
	.cy3su-hero h1 { max-width: none; }
}
