/**
 * Páginas de serviços — design unificado Codificar (preto + verde).
 */

:root {
	--codificar-black: #080910;
	--codificar-black-soft: #111418;
	--codificar-green: #57b240;
	--codificar-green-dark: #1d7842;
	--codificar-green-accent: #38ee91;
	--codificar-gray: #5c6670;
	--codificar-gray-light: #eef1f3;
	--codificar-white: #ffffff;
	--codificar-max: 1180px;
	--codificar-header-offset: 88px;
}

.codificar-servicos-page .header-title-breadcrumb {
	display: none !important;
}

.codificar-servicos-page #primary.content-area,
.codificar-servicos-page #primary.high-padding,
.codificar-servicos-page #primary.no-padding-top {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.codificar-servicos-page article.type-page {
	padding: 0 !important;
	position: relative;
}

.codificar-servicos-page #primary > .container,
.codificar-servicos-page #primary > .container > .row {
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

.codificar-servicos-page #primary .site-main.main-content {
	padding: 0;
}

.codificar-servicos-page .entry-content {
	max-width: none;
}

.codificar-servicos-page .entry-content > .wp-block-cover:first-child,
.codificar-servicos-page .entry-content > .alignfull:first-child {
	margin-top: 0;
}

/* Seções full-bleed: alinha covers/grupos com shape dividers Ghost Kit (100vw) */
.codificar-servicos-page .entry-content > .wp-block-cover,
.codificar-servicos-page .entry-content > .wp-block-group,
.codificar-servicos-page .entry-content > .alignfull,
.codificar-servicos-page .entry-content > .codificar-servicos-shape-divider {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.codificar-servicos-page .entry-content {
	overflow-x: clip;
}

.codificar-servicos-page .entry-content .wp-block-cover__inner-container,
.codificar-servicos-page .entry-content .wp-block-group__inner-container {
	max-width: var(--codificar-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

.codificar-servicos-page .entry-content h1,
.codificar-servicos-page .entry-content h2,
.codificar-servicos-page .entry-content h3 {
	scroll-margin-top: calc(var(--codificar-header-offset) + 1rem);
}

/* ── Seções escuras (bloco-azul, bloco-escuro, covers #080910 / #2b3956 / #1d7842) ── */

.codificar-servicos-page :is(
	.wp-block-cover.bloco-azul,
	.wp-block-cover[style*="#080910"],
	.wp-block-cover[style*="#2b3956"],
	.wp-block-cover[style*="#2B3956"],
	.wp-block-cover[style*="#1d7842"]
) .wp-block-cover__inner-container :is(h1, h2, h3, h4, h5, h6, p, li):not(.has-text-color):not([class*="has-"][class*="-color"]):not([style*="color:"]),
.codificar-servicos-page .bloco-escuro :is(h1, h2, h3, h4, h5, h6, p, li):not(.has-text-color):not([class*="has-"][class*="-color"]):not([style*="color:"]) {
	color: var(--codificar-white);
}

.codificar-servicos-page :is(
	.wp-block-cover.bloco-azul,
	.wp-block-cover[style*="#080910"],
	.wp-block-cover[style*="#2b3956"],
	.wp-block-cover[style*="#2B3956"],
	.wp-block-cover[style*="#1d7842"],
	.bloco-escuro
) a:not(.wp-block-button__link):not(.codificar-servicos-toc a) {
	color: var(--codificar-green-accent) !important;
}

.codificar-servicos-page :is(
	.wp-block-cover.bloco-azul,
	.bloco-escuro,
	.wp-block-cover[style*="#2b3956"],
	.wp-block-cover[style*="#2B3956"]
) :is(h2, h3)[style*="#4b7196"],
.codificar-servicos-page :is(
	.wp-block-cover.bloco-azul,
	.bloco-escuro,
	.wp-block-cover[style*="#2b3956"],
	.wp-block-cover[style*="#2B3956"]
) :is(h2, h3)[style*="#4B7196"] {
	color: var(--codificar-green-accent) !important;
}

/* Accordions em seção escura */
.codificar-servicos-page :is(.wp-block-cover.bloco-azul, .bloco-escuro) .ghostkit-accordion-item :is(p, li, h3, h4, h5, h6):not([style*="color:"]):not(.has-inline-color) {
	color: #dce1e8;
}

/* ── Seções claras (bloco-branco, bloco-claro, covers is-light) ── */

.codificar-servicos-page :is(.wp-block-group.bloco-branco, .bloco-claro, .wp-block-cover.is-light) :is(h1, h2, h3, h4, h5, h6, p, li):not(.has-text-color):not([class*="has-"][class*="-color"]):not([style*="color:"]) {
	color: #2a2f36;
}

.codificar-servicos-page :is(.wp-block-group.bloco-branco, .bloco-claro) a:not(.wp-block-button__link):not(.codificar-servicos-toc a) {
	color: var(--codificar-green-dark) !important;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.codificar-servicos-page :is(.wp-block-group.bloco-branco, .bloco-claro) a:not(.wp-block-button__link):not(.codificar-servicos-toc a):hover,
.codificar-servicos-page :is(.wp-block-group.bloco-branco, .bloco-claro) a:not(.wp-block-button__link):not(.codificar-servicos-toc a):focus-visible {
	color: var(--codificar-green) !important;
}

.codificar-servicos-page :is(.bloco-claro, .bloco-branco, .wp-block-cover.is-light) :is(h2, h3)[style*="#4b7196"],
.codificar-servicos-page :is(.bloco-claro, .bloco-branco, .wp-block-cover.is-light) :is(h2, h3)[style*="#4B7196"] {
	color: var(--codificar-green-dark) !important;
}

/* ── Fundos de cover → preto/verde Codificar ── */

/* Blocos azuis legados (covers #2b3956, bloco-azul, bloco-escuro) → preto Codificar */
.codificar-servicos-page .wp-block-cover.bloco-azul,
.codificar-servicos-page .wp-block-cover[style*="#2b3956"],
.codificar-servicos-page .wp-block-cover[style*="#2B3956"],
.codificar-servicos-page .codificar-servicos-section--dark.wp-block-cover {
	background-color: var(--codificar-black) !important;
}

.codificar-servicos-page .wp-block-cover.bloco-azul .wp-block-cover__background,
.codificar-servicos-page .wp-block-cover[style*="#080910"] .wp-block-cover__background,
.codificar-servicos-page .wp-block-cover[style*="#2b3956"] .wp-block-cover__background,
.codificar-servicos-page .wp-block-cover[style*="#2B3956"] .wp-block-cover__background,
.codificar-servicos-page .codificar-servicos-section--dark .wp-block-cover__background {
	background-color: var(--codificar-black) !important;
}

.codificar-servicos-page .wp-block-cover[style*="#1d7842"] .wp-block-cover__background {
	background: linear-gradient(135deg, var(--codificar-green-dark) 0%, var(--codificar-green) 100%) !important;
}

.codificar-servicos-page .bloco-verde,
.codificar-servicos-page .quote-1,
.codificar-servicos-page .quote-2 {
	background: linear-gradient(135deg, var(--codificar-green-dark) 0%, var(--codificar-green) 100%) !important;
}

/* ── Acentos verdes + paleta legada azul → Codificar ── */

.codificar-servicos-page .entry-content .has-vivid-green-cyan-color,
.codificar-servicos-page .entry-content [style*="color:#38ee91"],
.codificar-servicos-page .entry-content [style*="color: #38ee91"] {
	color: var(--codificar-green-accent) !important;
}

.codificar-servicos-page :is(.bloco-claro, .bloco-branco, .wp-block-cover.is-light) [style*="color:#4b7196"],
.codificar-servicos-page :is(.bloco-claro, .bloco-branco, .wp-block-cover.is-light) [style*="color: #4b7196"],
.codificar-servicos-page :is(.bloco-claro, .bloco-branco, .wp-block-cover.is-light) [style*="color:#4B7196"],
.codificar-servicos-page :is(.bloco-claro, .bloco-branco, .wp-block-cover.is-light) [style*="color: #4B7196"] {
	color: var(--codificar-green-dark) !important;
}

.codificar-servicos-page :is(
	.wp-block-cover.bloco-azul,
	.bloco-escuro,
	.wp-block-cover[style*="#2b3956"],
	.wp-block-cover[style*="#2B3956"],
	.wp-block-cover[style*="#080910"]
) [style*="color:#4b7196"],
.codificar-servicos-page :is(
	.wp-block-cover.bloco-azul,
	.bloco-escuro,
	.wp-block-cover[style*="#2b3956"],
	.wp-block-cover[style*="#2B3956"],
	.wp-block-cover[style*="#080910"]
) [style*="color: #4b7196"],
.codificar-servicos-page :is(
	.wp-block-cover.bloco-azul,
	.bloco-escuro,
	.wp-block-cover[style*="#2b3956"],
	.wp-block-cover[style*="#2B3956"],
	.wp-block-cover[style*="#080910"]
) [style*="color:#4B7196"],
.codificar-servicos-page :is(
	.wp-block-cover.bloco-azul,
	.bloco-escuro,
	.wp-block-cover[style*="#2b3956"],
	.wp-block-cover[style*="#2B3956"],
	.wp-block-cover[style*="#080910"]
) [style*="color: #4B7196"] {
	color: var(--codificar-green-accent) !important;
}

.codificar-servicos-page .entry-content blockquote a {
	color: var(--codificar-green-dark) !important;
}

/* ── Botões (padrão desenvolvimento-de-aplicativos) ── */

.codificar-servicos-page .entry-content .wp-block-button__link {
	background-color: var(--codificar-green-accent) !important;
	border: 1px solid var(--codificar-green-accent) !important;
	color: var(--codificar-black) !important;
	border-radius: 4px !important;
	padding: 0.85em 1.5em !important;
	font-weight: 600;
	box-shadow: 0 8px 24px rgb(56 238 145 / 22%);
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.codificar-servicos-page .entry-content .wp-block-button__link:hover,
.codificar-servicos-page .entry-content .wp-block-button__link:focus-visible {
	background-color: var(--codificar-green) !important;
	border-color: var(--codificar-green-dark) !important;
	color: var(--codificar-white) !important;
	transform: translateY(-1px);
}

/* ── Ghost Kit: ícones e citações ── */

.codificar-servicos-page .ghostkit-icon-box-icon,
.codificar-servicos-page .ghostkit-icon-box-icon svg {
	color: var(--codificar-green-accent) !important;
}

.codificar-servicos-page .wp-block-pullquote {
	box-sizing: border-box;
	margin: 2rem auto !important;
	padding: 1.75rem 2rem !important;
	max-width: 52rem;
	border: none !important;
	border-left: 4px solid var(--codificar-green) !important;
	border-radius: 0 8px 8px 0;
	background: var(--codificar-gray-light);
	text-align: left;
}

.codificar-servicos-page .wp-block-pullquote blockquote {
	margin: 0;
}

.codificar-servicos-page .wp-block-pullquote blockquote p {
	margin: 0 0 0.85rem !important;
	font-size: 1.25rem !important;
	line-height: 1.65 !important;
	font-weight: 500;
	color: var(--codificar-black) !important;
}

.codificar-servicos-page .wp-block-pullquote blockquote p:last-child {
	margin-bottom: 0 !important;
}

.codificar-servicos-page .wp-block-pullquote blockquote p strong {
	font-weight: 700;
	color: var(--codificar-black) !important;
}

.codificar-servicos-page .wp-block-pullquote cite {
	margin-top: 0.75rem;
	font-size: 0.9375rem;
	font-style: normal;
	color: var(--codificar-gray) !important;
}

/* bloco-texto: citação isolada entre seções — integrar ao fluxo, sem “sanduíche” de divisores */
.codificar-servicos-page .bloco-texto .wp-block-pullquote {
	margin: 2.5rem auto !important;
}

/* Sumários legados (UAG/Spectra, Easy TOC) — substituídos pelo TOC fixo da Codificar */
.codificar-servicos-page .entry-content .wp-block-uagb-table-of-contents,
.codificar-servicos-page .entry-content .ez-toc-container,
.codificar-servicos-page .entry-content #ez-toc-container,
.codificar-servicos-page .ez-toc-sticky,
.codificar-servicos-page .uagb-toc__scroll-top {
	display: none !important;
}

.codificar-servicos-toc-wrap {
	position: fixed;
	top: calc(var(--codificar-header-offset, 88px) + 1rem);
	right: max(1rem, calc((100vw - var(--codificar-max)) / 2 - 17rem));
	width: 260px;
	z-index: 20;
}

.codificar-servicos-toc-wrap:not(.is-open) {
	width: auto;
}

.codificar-servicos-toc-wrap.is-open .codificar-servicos-toc-toggle {
	display: none !important;
}

.codificar-servicos-toc-wrap:not(.is-open) .codificar-servicos-toc {
	display: none !important;
}

.codificar-servicos-toc-wrap.is-mobile {
	position: static;
	width: auto;
	padding: 0 1.25rem 1rem;
}

.codificar-servicos-toc-wrap.is-mobile:not(.is-open) {
	padding-bottom: 0.75rem;
}

.codificar-servicos-toc-toggle,
.codificar-servicos-toc__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	padding: 0;
	border: 1px solid #dde3e8;
	border-radius: 8px;
	background: var(--codificar-white);
	color: var(--codificar-black);
	cursor: pointer;
	box-shadow: 0 8px 24px rgb(8 9 16 / 8%);
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.codificar-servicos-toc-toggle {
	width: 44px;
	height: 44px;
}

.codificar-servicos-toc-toggle:hover,
.codificar-servicos-toc-toggle:focus-visible,
.codificar-servicos-toc__close:hover,
.codificar-servicos-toc__close:focus-visible {
	background: var(--codificar-gray-light);
	border-color: #c8d0d6;
	color: var(--codificar-green-dark);
	outline: none;
}

.codificar-servicos-toc__close {
	width: 32px;
	height: 32px;
}

.codificar-servicos-toc__icon {
	display: block;
}

.codificar-servicos-toc {
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - var(--codificar-header-offset, 88px) - 2rem);
	background: var(--codificar-white);
	border: 1px solid #dde3e8;
	border-radius: 8px;
	padding: 1rem 1.1rem;
	box-shadow: 0 10px 30px rgb(8 9 16 / 6%);
	overflow: hidden;
}

.codificar-servicos-toc__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
	flex-shrink: 0;
}

.codificar-servicos-toc__title {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--codificar-black);
}

.codificar-servicos-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.codificar-servicos-toc__list li {
	margin: 0;
	padding: 0;
}

.codificar-servicos-toc__list a {
	display: block;
	padding: 0.45rem 0;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: var(--codificar-gray);
	text-decoration: none;
	border-left: 2px solid transparent;
	padding-left: 0.65rem;
}

.codificar-servicos-toc__list a:hover,
.codificar-servicos-toc__list a:focus-visible {
	color: var(--codificar-green-dark);
	border-left-color: var(--codificar-green);
	outline: none;
}

.codificar-servicos-toc__list a.is-active {
	color: var(--codificar-black);
	font-weight: 600;
	border-left-color: var(--codificar-green);
}

.codificar-servicos-toc__list li.is-h3 a {
	padding-left: 1.25rem;
	font-size: 0.875rem;
}

.codificar-servicos-skip {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.codificar-servicos-skip:focus {
	left: 1rem;
	top: 1rem;
	width: auto;
	height: auto;
	padding: 0.5rem 0.75rem;
	background: var(--codificar-black);
	color: var(--codificar-white);
	z-index: 9999;
	border-radius: 4px;
}

@media (max-width: 991px) {
	.codificar-servicos-toc {
		max-height: none;
	}

	.codificar-servicos-toc__list {
		max-height: 12rem;
	}
}

/* ── Estrutura visual (páginas legadas → padrão desenvolvimento-de-aplicativos) ── */

.codificar-servicos-shape-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	line-height: 0;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	pointer-events: none;
	user-select: none;
}

.codificar-servicos-shape-divider svg {
	display: block;
	width: 100%;
	height: 87px;
	flex: 0 0 auto;
}

.codificar-servicos-shape-divider--dark-to-light svg {
	transform: scaleY(-1);
}

.codificar-servicos-structured .codificar-servicos-section--dark.wp-block-cover:first-child {
	min-height: clamp(420px, 55vh, 571px) !important;
}

.codificar-servicos-structured .codificar-servicos-section--dark.wp-block-cover:not(:first-child) {
	min-height: clamp(260px, 38vh, 460px) !important;
	padding: clamp(2rem, 4vw, 3rem) 0;
}

.codificar-servicos-structured .codificar-servicos-section--light.wp-block-cover,
.codificar-servicos-structured .codificar-servicos-section--light.wp-block-group {
	min-height: 0 !important;
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}

.codificar-servicos-structured .codificar-servicos-section--light.wp-block-cover .wp-block-cover__background,
.codificar-servicos-structured .codificar-servicos-section--light.wp-block-group {
	background-color: #fff !important;
}

.codificar-servicos-structured .codificar-servicos-section--light.wp-block-cover .wp-block-cover__background {
	opacity: 1 !important;
}

.codificar-servicos-structured .codificar-servicos-section--light.wp-block-group.has-background {
	background-color: var(--codificar-gray-light) !important;
}

.codificar-servicos-structured .codificar-servicos-section--brand.wp-block-cover {
	min-height: clamp(300px, 42vh, 500px) !important;
	padding: clamp(2rem, 4vw, 3rem) 0;
}

.codificar-servicos-structured .codificar-servicos-section + .codificar-servicos-section {
	margin-top: 0;
}

@media (prefers-reduced-motion: reduce) {
	html.codificar-servicos-smooth-scroll {
		scroll-behavior: auto;
	}

	.codificar-servicos-page .entry-content .wp-block-button__link {
		transition: none;
	}
}
