/*
 * Caboverde — estilos de componentes.
 *
 * Tokens (cores, fontes, tamanhos, espaçamentos) vêm do theme.json:
 *   --wp--preset--color--{primary|secondary|accent|white|ink|surface|mute}
 *   --wp--custom--color--{ink-2|line|input-border|error|hover-tint}
 *   --wp--preset--font-family--{body|utility}
 * Este arquivo cuida só do que o theme.json não expressa: grades, estados e componentes.
 * Carregado no site e no editor (add_editor_style).
 */

:root {
	--cv-white: var(--wp--preset--color--white, #fff);
	--cv-ink: var(--wp--preset--color--ink, #0d1b1e);
	--cv-ink-2: var(--wp--custom--color--ink-2, #16292d);
	--cv-primary: var(--wp--preset--color--primary, #00A088);
	--cv-secondary: var(--wp--preset--color--secondary, #48228A);
	--cv-accent: var(--wp--preset--color--accent, #E7F624);
	--cv-surface: var(--wp--preset--color--surface, #f1f3ee);
	--cv-mute: var(--wp--preset--color--mute, #52646a);
	--cv-line: var(--wp--custom--color--line, #dce4e1);
	--cv-input: var(--wp--custom--color--input-border, #b9c6c2);
	--cv-error: var(--wp--custom--color--error, #b42318);
	--cv-tint: var(--wp--custom--color--hover-tint, #eef3f1);
	--cv-font-utility: var(--wp--preset--font-family--utility, Nunito, system-ui, sans-serif);
	--cv-section: clamp(64px, 9vw, 120px);
	--cv-radius-card: 20px;
	--cv-radius-panel: 28px;
	--cv-header-h: 72px;
	--cv-header-stripe: 16px;
}

/* Base de 16px fixa: todos os tamanhos em rem partem daqui, então o texto fica igual em
 * Chrome, Safari, Firefox e Brave mesmo que o navegador tenha outro tamanho de fonte padrão.
 * O zoom do navegador continua funcionando. text-size-adjust impede o aumento automático no celular. */
html { font-size: 16px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--cv-header-h) + 16px + var(--wp-admin--admin-bar--height, 0px)); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---------- Foco visível ---------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--cv-secondary);
	outline-offset: 3px;
	border-radius: 6px;
}
:where(.has-ink-background-color, .has-secondary-background-color) :where(a, button, summary):focus-visible { outline-color: var(--cv-accent); }
.has-accent-background-color :where(a, button, summary):focus-visible { outline-color: var(--cv-ink); }

/* ---------- Seções ---------- */
.cv-section { padding-top: var(--cv-section); padding-bottom: var(--cv-section); }
.cv-section--tight { padding-top: clamp(48px, 6vw, 64px); padding-bottom: clamp(48px, 6vw, 64px); }
.cv-section > * { margin-block-start: 0; }
main .wp-block-group.alignfull { margin-block-start: 0; }
.wp-site-blocks > main { margin-block-start: 0; }

/* Cabeçalho de seção em duas colunas (título à esquerda, texto à direita). */
.cv-split { display: grid; gap: 1.5rem; align-items: end; margin-bottom: 3rem; }
.cv-split > * { min-width: 0; margin: 0 !important; }
@media (min-width: 1024px) { .cv-split { grid-template-columns: 1fr 1fr; column-gap: 4rem; } }
.cv-split--sidebar { align-items: start; }
@media (min-width: 1024px) { .cv-split--sidebar { grid-template-columns: 1fr 2fr; } }

.cv-heading-stack > * { margin-block: 0; }
.cv-heading-stack > * + * { margin-block-start: 1rem !important; }

/* Sobretítulo */
p.is-style-eyebrow {
	font-family: var(--cv-font-utility);
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	line-height: 1.4;
	color: var(--cv-secondary);
	margin-block: 0 1rem;
}
:where(.has-ink-background-color, .has-secondary-background-color) p.is-style-eyebrow { color: var(--cv-accent); }
.has-accent-background-color p.is-style-eyebrow { color: var(--cv-ink); }

/* Texto de destaque e nota */
.has-lead-font-size { line-height: 1.55; color: var(--cv-mute); }
:where(.has-ink-background-color, .has-secondary-background-color) .has-lead-font-size { color: rgba(255, 255, 255, 0.75); }
.has-accent-background-color .has-lead-font-size { color: var(--cv-ink); }
p.is-style-note { font-family: var(--cv-font-utility); font-size: 0.75rem; color: var(--cv-mute); }

/* Link com seta */
p.is-style-arrow-link a { display: inline-flex; align-items: center; gap: 0.4rem; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
p.is-style-arrow-link a::after { content: "→"; text-decoration: none; display: inline-block; transition: transform 0.15s; }
p.is-style-arrow-link a:hover::after { transform: translateX(3px); }

/* ---------- Botões ---------- */
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 48px; transition: background-color 0.15s, color 0.15s, border-color 0.15s, transform 0.15s; }
.wp-block-button__link:active { transform: translateY(1px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--cv-secondary); color: var(--cv-white); border-color: var(--cv-secondary); }
/* Sobre fundo escuro */
:where(.has-ink-background-color, .has-secondary-background-color) .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: var(--cv-white); color: var(--cv-ink); }
:where(.has-ink-background-color, .has-secondary-background-color) .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--cv-white); border-color: rgba(255, 255, 255, 0.55); }
:where(.has-ink-background-color, .has-secondary-background-color) .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--cv-white); color: var(--cv-secondary); border-color: var(--cv-white); }
/* Sobre a faixa amarela o botão principal inverte para não sumir */
.has-accent-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--cv-ink); color: var(--cv-white); }
.has-accent-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: var(--cv-secondary); }

/* ---------- Header ---------- */
header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	margin: 0;
}
.cv-header {
	/* Fundo sólido: backdrop-filter criaria um bloco de contenção e prenderia o menu aberto dentro do header. */
	background: var(--cv-primary);
}
/* Faixa amarela de 20px logo abaixo da barra do menu, na largura toda da tela.
 * Fica no topo do conteúdo (borda do elemento que vem depois do cabeçalho), então rola com a página
 * e passa por baixo do cabeçalho fixo. Está no CSS, e não num bloco, para valer em todos os modelos
 * e também em cabeçalhos já personalizados no Editor do Site. */
.wp-site-blocks > header.wp-block-template-part + * { border-top: var(--cv-header-stripe) solid var(--cv-accent); }
.cv-header__bar { min-height: var(--cv-header-h); gap: 1rem; flex-wrap: nowrap !important; }
.cv-header__tools { gap: 0.5rem; flex-wrap: nowrap !important; }

.cv-logo { color: var(--cv-primary); line-height: 0; flex: none; }
.cv-logo__link { display: inline-flex; color: inherit; }
.cv-logo__svg { display: block; height: 15px; width: auto; max-width: 100%; }
.cv-logo__img { display: block; height: 32px; width: auto; }
@media (min-width: 640px) { .cv-logo__svg { height: 18px; } }
@media (min-width: 1280px) { .cv-logo__svg { height: 20px; } }
.cv-footer .cv-logo { color: var(--cv-white); }
.cv-footer .cv-logo__svg { height: 18px; }

/* Navegação: links com sublinhado animado */
.cv-nav .wp-block-navigation-item__content { position: relative; padding: 0.5rem 0; }
/* Menu no estilo do sobretítulo: fonte utilitária, caixa alta, espaçamento entre letras */
.cv-nav .wp-block-navigation-item__content {
	font-family: var(--cv-font-utility);
	font-size: 0.8125rem; /* mesmo tamanho em desktop e tablet (1024–1279px) */
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	line-height: 1.4;
	white-space: nowrap;
}
@media (min-width: 1024px) and (max-width: 1279.98px) {
	/* Caixa alta ocupa mais largura: menu um pouco menor, itens mais próximos, logo menor e redes sociais só no rodapé */
	.cv-nav,
	.cv-nav .wp-block-navigation__container { gap: 1.25rem !important; }
	.cv-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content { letter-spacing: 0.06em; }
	.cv-header .cv-social { display: none !important; }
	.cv-header .cv-logo__svg { height: 16px; }
}
.cv-nav .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--cv-secondary); transform: scaleX(0); transform-origin: left; transition: transform 0.2s; }
.cv-nav .wp-block-navigation-item__content:hover::after,
.cv-nav .wp-block-navigation-item__content[aria-current]::after { transform: scaleX(1); }
.cv-nav .cv-nav-cta { display: none; }

/* Hambúrguer abaixo de 1024px (o núcleo troca em 600px) */
.cv-nav .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; border: 1px solid var(--cv-line); border-radius: 999px; justify-content: center; align-items: center; }
.cv-nav .wp-block-navigation__responsive-container-open:hover { border-color: var(--cv-ink); }
@media (min-width: 600px) and (max-width: 1023.98px) {
	.cv-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.cv-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
/* Menu aberto */
.cv-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: calc(var(--wp-admin--admin-bar--height, 0px) + 20px) max(20px, env(safe-area-inset-right, 0px)) 24px max(20px, env(safe-area-inset-left, 0px));
	background: var(--cv-white);
}
.cv-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 56px; }
.cv-nav .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; align-items: stretch !important; }
.cv-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--cv-line); }
.cv-nav .is-menu-open .wp-block-navigation-item__content { display: block; box-sizing: border-box; width: 100%; padding: 1rem 0 !important; font-size: 0.95rem; }
.cv-nav .is-menu-open .wp-block-navigation-item__content::after { display: none; }
.cv-nav .is-menu-open .cv-nav-cta { display: block; border-bottom: 0; margin-top: 1rem; }
.cv-nav .is-menu-open .cv-nav-cta > .wp-block-navigation-item__content { background: var(--cv-accent); color: var(--cv-ink); border-radius: 999px; text-align: center; font-family: var(--wp--preset--font-family--body); font-weight: 600; font-size: 1rem; text-transform: none; letter-spacing: 0; padding: 0.85rem 1rem; }
.cv-nav .is-menu-open .cv-nav-cta > .wp-block-navigation-item__content:hover { background: var(--cv-ink); color: var(--cv-white); }
.cv-nav .wp-block-navigation__responsive-container-close { top: calc(var(--wp-admin--admin-bar--height, 0px) + 20px); right: max(20px, env(safe-area-inset-right, 0px)); width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--cv-line); border-radius: 999px; }

/* CTA do header: só no desktop; em telas menores ele fica dentro do menu */
.cv-header-cta { display: none !important; }
@media (min-width: 1024px) { .cv-header-cta { display: flex !important; } }
.cv-header-cta .wp-block-button__link { min-height: 42px; padding: 0.6rem 1.25rem; font-size: 0.95rem; }

/* Redes sociais */
.cv-social { gap: 0 !important; }
.cv-social .wp-social-link { background: transparent !important; color: currentColor !important; }
.cv-social .wp-social-link a { padding: 9px !important; border-radius: 999px; transition: background-color 0.15s; }
.cv-social .wp-social-link a:hover { background: var(--cv-tint); }
.cv-social .wp-social-link svg { width: 18px; height: 18px; }
:where(.has-ink-background-color, .has-secondary-background-color) .cv-social .wp-social-link a:hover { background: rgba(255, 255, 255, 0.12); }
.cv-header .cv-social { display: none !important; }
@media (min-width: 768px) { .cv-header .cv-social { display: flex !important; } }

/* Seletor de idioma */
.cv-lang { position: relative; flex: none; }
.cv-lang__details > summary { list-style: none; }
.cv-lang__details > summary::-webkit-details-marker { display: none; }
.cv-lang__toggle { display: inline-flex; align-items: center; gap: 0.35rem; height: 40px; padding: 0 0.75rem; border: 1px solid var(--cv-line); border-radius: 999px; font-family: var(--cv-font-utility); font-size: 0.85rem; font-weight: 700; cursor: pointer; }
.cv-lang__toggle:hover, .cv-lang__details[open] .cv-lang__toggle { border-color: var(--cv-ink); }
.cv-lang__toggle svg { width: 16px; height: 16px; }
.cv-lang__toggle svg:last-child { width: 14px; height: 14px; transition: transform 0.15s; }
.cv-lang__details[open] .cv-lang__toggle svg:last-child { transform: rotate(180deg); }
.cv-lang__menu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; min-width: 11rem; margin: 0; padding: 0.5rem 0; list-style: none; background: var(--cv-white); border: 1px solid var(--cv-line); border-radius: 12px; box-shadow: 0 12px 30px -16px rgba(13, 27, 30, 0.35); }
.cv-lang__menu a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 1rem; color: var(--cv-ink); font-weight: 500; text-decoration: none; font-size: 0.95rem; }
.cv-lang__menu a:hover { background: var(--cv-tint); }
.cv-lang__menu a[aria-current] { color: var(--cv-secondary); font-weight: 600; }
.cv-lang__code { font-family: var(--cv-font-utility); color: var(--cv-mute); font-size: 0.8rem; }

/* ---------- Hero ---------- */
.cv-hero { padding-top: clamp(48px, 7vw, 80px); padding-bottom: clamp(64px, 8vw, 96px); }
.cv-hero__grid { display: grid; gap: 3rem; align-items: center; }
.cv-hero__grid > * { min-width: 0; margin: 0 !important; }
@media (min-width: 1024px) { .cv-hero__grid { grid-template-columns: 1.15fr 1fr; gap: 4rem; } }
.cv-hero h1 { margin-block: 0; }
.cv-hero .has-lead-font-size { max-width: 36rem; margin-block: 1.5rem 0; }
.cv-hero .wp-block-buttons { margin-block-start: 2.25rem; gap: 0.75rem; }

/* Diagrama do fluxo */
.cv-flow { margin: 0; background: var(--cv-ink); color: var(--cv-white); border-radius: var(--cv-radius-panel); padding: clamp(22px, 3.2vw, 36px); }
.cv-flow__caption { font-family: var(--cv-font-utility); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--cv-accent); text-align: center; margin: 0; }
.cv-flow__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 3.4vw, 34px); margin: 22px 0 0; padding: 0; list-style: none; }
.cv-flow__step { display: flex; flex-direction: column; align-items: center; gap: 12px; min-width: 0; }
/* Caixa 5:6 feita com padding-bottom (120%) e ilustração posicionada dentro.
 * Não usa aspect-ratio + height: 100%: o Safari não resolve essa altura e a ilustração vazava da caixa. */
.cv-flow__art { position: relative; display: block; width: 100%; height: 0; padding: 0 0 120%; background: var(--cv-ink-2); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; box-sizing: border-box; }
.cv-flow__art svg { position: absolute; left: 14%; top: 11.667%; width: 72%; height: 76.667%; overflow: visible; }
.cv-flow__step:not(:last-child) .cv-flow__art::after { content: ""; position: absolute; top: 50%; right: calc(clamp(18px, 3.4vw, 34px) / -2 - 4px); width: 11px; height: 11px; margin-top: -6px; border-top: 2.5px solid var(--cv-accent); border-right: 2.5px solid var(--cv-accent); transform: rotate(45deg); }
.cv-flow__label-wrap { margin: 0; text-align: center; line-height: 1.25; }
.cv-flow__label { display: block; font-weight: 600; font-size: clamp(0.82rem, 1.4vw, 0.95rem); }
.cv-flow__sub { display: block; margin-top: 2px; font-size: 0.78rem; color: rgba(255, 255, 255, 0.6); }
.cv-flow__merge { position: relative; height: 26px; margin: 18px 16.66% 0; border: 2px solid rgba(231, 246, 36, 0.55); border-top: 0; border-radius: 0 0 14px 14px; }
.cv-flow__merge::after { content: ""; position: absolute; left: 50%; bottom: -16px; width: 2px; height: 16px; background: rgba(231, 246, 36, 0.55); }
.cv-flow__out { margin: 16px 0 0; background: var(--cv-accent); color: var(--cv-ink); border-radius: 14px; padding: 12px 16px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: clamp(14px, 3vw, 28px); font-weight: 600; font-size: 0.92rem; }
.cv-flow__out-item { display: inline-flex; align-items: center; gap: 7px; }
.cv-flow__out-item svg { width: 20px; height: 20px; flex: none; }
/* Cores das ilustrações do diagrama (sem cores fixas no SVG salvo) */
/* Ilustração substituída por uma imagem: sem o painel escuro, a imagem aparece como foi enviada. */
.cv-flow.has-image { background: none; padding: 0; border-radius: 0; color: inherit; }
.cv-flow__image { display: block; width: 100%; height: auto; margin: 0 auto; }
.cv-flow .cv-art-paper { fill: var(--cv-white); }
.cv-flow .cv-art-line { fill: var(--cv-line); }
.cv-flow .cv-art-rule { stroke: var(--cv-input); }
.cv-flow .cv-art-dot { fill: #9aaba6; }
.cv-flow .cv-art-secondary { fill: var(--cv-secondary); }
.cv-flow .cv-art-secondary-stroke { stroke: var(--cv-secondary); }
.cv-flow .cv-art-accent { fill: var(--cv-accent); }
.cv-flow .cv-art-ink-stroke { stroke: var(--cv-ink); }

/* ---------- Prova social ---------- */
.cv-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 1.5rem; align-items: start; }
@media (min-width: 1024px) { .cv-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cv-stat { min-width: 0; }
.cv-stat__number { margin: 0; font-size: clamp(2.4rem, 4.4vw, 3.4rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1; font-variant-numeric: tabular-nums; }
.cv-stat__label { margin: 0.75rem 0 0; color: var(--cv-mute); font-size: 0.95rem; line-height: 1.45; }

/* ---------- Cards de serviço ---------- */
.cv-services { display: grid; gap: 1.25rem; }
@media (min-width: 768px) { .cv-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cv-services > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (min-width: 1024px) { .cv-services { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cv-services > :last-child:nth-child(odd) { grid-column: auto; } }
.cv-card { display: flex; flex-direction: column; gap: 1.1rem; min-width: 0; margin: 0; padding: 1.75rem; background: var(--cv-white); border: 1px solid var(--cv-line); border-radius: var(--cv-radius-card); transition: border-color 0.2s, box-shadow 0.2s; }
.cv-card:hover { border-color: var(--cv-ink); box-shadow: 0 10px 30px -18px rgba(13, 27, 30, 0.45); }
.cv-card__head { display: flex; align-items: center; gap: 1rem; }
.cv-card__icon { flex: none; width: 48px; height: 48px; border-radius: 12px; background: var(--cv-accent); color: var(--cv-ink); display: grid; place-items: center; }
.cv-card__icon svg { width: 24px; height: 24px; }
.cv-card__title { margin: 0; font-size: var(--wp--preset--font-size--large); }
.cv-card__body { display: flex; flex-direction: column; gap: 1.1rem; flex: 1; }
.cv-card__body > * { margin: 0 !important; }
.cv-card__body > p:first-child { color: var(--cv-mute); }
.cv-card__body > p.is-style-arrow-link { margin-top: auto !important; padding-top: 0.5rem; }
.cv-card__toolbar-icon svg { width: 20px; height: 20px; }

ul.is-style-squares { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; font-size: 0.97rem; }
ul.is-style-squares li { display: grid; grid-template-columns: 18px 1fr; gap: 0.6rem; align-items: start; }
ul.is-style-squares li::before { content: ""; width: 8px; height: 8px; margin-top: 0.62em; border-radius: 2px; background: var(--cv-secondary); }

/* ---------- Como trabalhamos ---------- */
.cv-steps { counter-reset: cv-step; display: grid; gap: 2.5rem 2rem; }
@media (min-width: 640px) { .cv-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cv-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cv-step { counter-increment: cv-step; min-width: 0; padding-top: 1.4rem; border-top: 1px solid rgba(255, 255, 255, 0.18); }
.cv-step__label { margin: 0; font-family: var(--cv-font-utility); font-size: 0.85rem; font-weight: 700; color: var(--cv-accent); }
.cv-step__label::before { content: counter(cv-step, decimal-leading-zero) " — "; }
.cv-step__title { margin: 0.75rem 0 0; font-size: var(--wp--preset--font-size--large); }
.cv-step__text { margin: 0.75rem 0 0; color: rgba(255, 255, 255, 0.7); }
.cv-steps + .wp-block-buttons { margin-top: 3.5rem; }

/* ---------- Publy.Science ---------- */
.cv-features { display: grid; gap: 1rem; }
@media (min-width: 640px) { .cv-features { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cv-features { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cv-feature { min-width: 0; padding: 1.4rem; background: rgba(255, 255, 255, 0.55); border: 1px solid rgba(13, 27, 30, 0.14); border-radius: 16px; }
/* Ícone do card (Flowbite Icons, Outline): quadrado escuro com o traço em amarelo, sobre a faixa amarela da seção. */
.cv-feature__icon { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 0 1rem; border-radius: 12px; background: var(--cv-ink); color: var(--cv-accent); }
.cv-feature__icon svg { width: 24px; height: 24px; }
.cv-feature__toolbar-icon svg { width: 24px; height: 24px; display: block; }
/* Etiqueta antiga (até a v1.4): o site público já troca por ícone; isto só cobre o editor antes da migração. */
.cv-feature__tag { margin: 0 0 0.75rem; font-family: var(--cv-font-utility); font-size: 0.78rem; font-weight: 500; letter-spacing: 0.02em; }
.cv-feature__title { margin: 0; font-size: 1.125rem; font-weight: 600; line-height: 1.3; letter-spacing: 0; }
.cv-feature__text { margin: 0.5rem 0 0; font-size: 0.97rem; color: rgba(13, 27, 30, 0.8); }

.cv-journals { margin-top: 2.5rem; }
.cv-journals > * { margin-block: 0; }
ul.is-style-pills { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
ul.is-style-pills li { font-size: 0.95rem; padding: 0.55rem 0.9rem; background: var(--cv-white); border: 1px solid var(--cv-line); border-radius: 999px; white-space: nowrap; }
ul.is-style-pills li:has(> a) { padding: 0; border: 0; background: transparent; }
ul.is-style-pills li > a { display: inline-block; padding: 0.55rem 0.9rem; border-radius: 999px; background: var(--cv-ink); color: var(--cv-white); text-decoration: none; font-weight: 500; }
ul.is-style-pills li > a:hover { background: var(--cv-secondary); color: var(--cv-white); }
@media (max-width: 480px) { ul.is-style-pills li { white-space: normal; } }

.cv-scope { display: grid; gap: 1.5rem; align-items: center; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid rgba(13, 27, 30, 0.2); }
.cv-scope > * { margin: 0 !important; min-width: 0; }
.cv-scope p { max-width: 46rem; font-size: 0.97rem; }
@media (min-width: 1024px) { .cv-scope { grid-template-columns: 1fr auto; } }

/* ---------- Depoimentos ---------- */
.cv-testimonials__top { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 1024px) { .cv-testimonials__top { grid-template-columns: 1fr 2fr; column-gap: 4rem; } }
.cv-testimonials__top > * { min-width: 0; }
.cv-testimonials__head > * { margin-block: 0; }
.cv-testimonials__grid { display: grid; gap: 1.25rem; margin-top: 3.5rem; }
@media (min-width: 768px) { .cv-testimonials__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cv-quote { margin: 0; min-width: 0; }
.cv-quote__mark { display: block; height: 2.2rem; font-weight: 700; font-size: 4.5rem; line-height: 0.6; color: var(--cv-secondary); }
.cv-quote__text { margin: 0; padding: 0; border: 0; }
.cv-quote__text p { margin: 0; }
.cv-quote__text p + p { margin-top: 0.8em; }
.cv-quote--featured .cv-quote__text { font-size: clamp(1.3rem, 2.3vw, 1.75rem); line-height: 1.4; letter-spacing: -0.005em; }
.cv-quote--featured .cv-quote__by { display: flex; align-items: center; gap: 0.75rem; margin-top: 1.5rem; }
.cv-quote__rule { flex: none; width: 40px; height: 3px; border-radius: 999px; background: var(--cv-accent); }
.cv-quote--featured .cv-quote__role { color: var(--cv-mute); }
.cv-quote--card { display: flex; flex-direction: column; gap: 1.25rem; padding: 1.75rem; border: 1px solid var(--cv-line); border-radius: var(--cv-radius-card); }
.cv-quote--card .cv-quote__by { display: flex; align-items: center; gap: 0.85rem; margin-top: auto; padding-top: 1.1rem; border-top: 1px solid var(--cv-line); }
.cv-quote__who { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
/* Foto do autor (imagem destacada do depoimento) */
.cv-quote__photo { flex: none; display: block; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; background: var(--cv-surface); }
.cv-quote--featured .cv-quote__photo { width: 64px; height: 64px; box-shadow: 0 0 0 3px var(--cv-accent); }
.cv-quote--card .cv-quote__role { color: var(--cv-mute); font-size: 0.92rem; line-height: 1.4; }
.cv-quote__by strong { font-weight: 600; }
.cv-testimonials__empty { color: var(--cv-mute); font-style: italic; }

/* ---------- FAQ ---------- */
.cv-faq-list { border-top: 1px solid var(--cv-line); }
.cv-faq-list > * { margin: 0 !important; }
details.is-style-faq { border-bottom: 1px solid var(--cv-line); }
details.is-style-faq > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.35rem 0; font-weight: 600; font-size: 1.12rem; line-height: 1.35; cursor: pointer; list-style: none; }
details.is-style-faq > summary::-webkit-details-marker { display: none; }
details.is-style-faq > summary::after { content: ""; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--cv-line); background: center / 16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%230D1B1E' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M10 4v12M4 10h12'/%3E%3C/svg%3E"); transition: transform 0.2s, background-color 0.2s, border-color 0.2s; }
details.is-style-faq > summary:hover { color: var(--cv-secondary); }
details.is-style-faq[open] > summary::after { transform: rotate(45deg); background-color: var(--cv-accent); border-color: var(--cv-accent); }
details.is-style-faq > :not(summary) { margin: 0; padding-bottom: 1.5rem; max-width: 42rem; color: var(--cv-mute); }

/* ---------- Contato ---------- */
.cv-contact { display: grid; border: 2px solid var(--cv-ink); border-radius: var(--cv-radius-panel); overflow: hidden; }
@media (min-width: 1024px) { .cv-contact { grid-template-columns: 1fr 1.3fr; } }
.cv-contact > * { margin: 0 !important; min-width: 0; }
.cv-contact__info { display: flex; flex-direction: column; gap: 2rem; padding: clamp(2rem, 4vw, 3rem); }
.cv-contact__info > * { margin: 0 !important; }
.cv-contact__info .has-lead-font-size { margin-top: 1.25rem !important; }
.cv-contact__details { margin-top: auto !important; display: grid; gap: 1.25rem; }
.cv-contact__details > * { margin: 0 !important; }
.cv-contact__label { font-family: var(--cv-font-utility); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255, 255, 255, 0.6); margin: 0 !important; }
.cv-contact__value { font-size: 1.25rem; font-weight: 600; margin: 0.25rem 0 0 !important; user-select: all; }
.cv-contact__form { padding: clamp(2rem, 4vw, 3rem); }
.cv-contact__form > * { margin: 0 !important; }

/* Formulário (Contact Form 7) */
.cv-form { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .cv-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cv-field--full { grid-column: 1 / -1; } }
.cv-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.cv-field > label, .cv-field > legend { display: block; margin-bottom: 0.4rem; padding: 0; font-weight: 600; font-size: 0.95rem; }
.cv-hint { margin: 0 0 0.75rem; font-size: 0.85rem; font-weight: 400; color: var(--cv-mute); }
.cv-field label .cv-hint { margin: 0; }
.cv-form input[type="text"], .cv-form input[type="email"], .cv-form input[type="tel"], .cv-form select, .cv-form textarea {
	width: 100%; min-height: 48px; padding: 0.7rem 0.9rem; font: inherit; color: var(--cv-ink); background: var(--cv-white);
	border: 1.5px solid var(--cv-input); border-radius: 12px; transition: border-color 0.15s, box-shadow 0.15s; box-sizing: border-box;
}
.cv-form textarea { min-height: 132px; resize: vertical; }
.cv-form input:hover, .cv-form textarea:hover { border-color: var(--cv-ink); }
.cv-form input:focus, .cv-form textarea:focus { outline: none; border-color: var(--cv-secondary); box-shadow: 0 0 0 3px rgba(72, 34, 138, 0.22); }
.cv-form .wpcf7-not-valid { border-color: var(--cv-error) !important; }
.cv-form .wpcf7-not-valid-tip { color: var(--cv-error); font-size: 0.85rem; margin-top: 0.35rem; }
.cv-form .wpcf7-form-control-wrap { display: block; }

/* Serviços: seleção múltipla em chips */
.cv-form .cv-service-picker .wpcf7-checkbox { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.cv-form .wpcf7-checkbox .wpcf7-list-item { margin: 0; }
.cv-form .wpcf7-checkbox label { position: relative; display: inline-flex; cursor: pointer; }
.cv-form .wpcf7-checkbox input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cv-form .wpcf7-checkbox .wpcf7-list-item-label { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; padding: 0 1rem; border: 1.5px solid var(--cv-input); border-radius: 999px; font-weight: 500; transition: background-color 0.15s, border-color 0.15s, color 0.15s; }
.cv-form .wpcf7-checkbox .wpcf7-list-item-label::before { content: ""; flex: none; width: 16px; height: 16px; border: 1.5px solid currentColor; border-radius: 4px; background: center / 12px no-repeat; }
.cv-form .wpcf7-checkbox label:hover .wpcf7-list-item-label { border-color: var(--cv-ink); }
.cv-form .wpcf7-checkbox input:checked + .wpcf7-list-item-label { background: var(--cv-secondary); border-color: var(--cv-secondary); color: var(--cv-white); }
.cv-form .wpcf7-checkbox input:checked + .wpcf7-list-item-label::before { background-color: var(--cv-white); border-color: var(--cv-white); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%2348228A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.cv-form .wpcf7-checkbox input:focus-visible + .wpcf7-list-item-label { outline: 3px solid var(--cv-secondary); outline-offset: 3px; }

/* Consentimento */
.cv-consent .wpcf7-list-item { margin: 0; }
.cv-consent label { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.95rem; color: var(--cv-mute); cursor: pointer; }
.cv-consent input[type="checkbox"] { flex: none; width: 20px; height: 20px; margin-top: 2px; accent-color: var(--cv-secondary); }

/* Envio */
.cv-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.cv-form input[type="submit"] { min-height: 48px; padding: 0 1.4rem; border: 2px solid transparent; border-radius: 999px; background: var(--cv-accent); color: var(--cv-ink); font: inherit; font-weight: 600; cursor: pointer; transition: background-color 0.15s, color 0.15s; }
.cv-form input[type="submit"]:hover { background: var(--cv-ink); color: var(--cv-white); }
.cv-form input[type="submit"]:disabled { opacity: 0.6; cursor: wait; }
.wpcf7 .wpcf7-spinner { margin: 0; }
.wpcf7 form .wpcf7-response-output { margin: 1.25rem 0 0; padding: 0.75rem 1rem; border-radius: 12px; border-width: 1.5px; font-weight: 600; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--cv-secondary); color: var(--cv-secondary); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: var(--cv-error); color: var(--cv-error); }

/* ---------- Footer ---------- */
footer.wp-block-template-part { margin-block-start: 0; }
.cv-footer { padding-top: 4rem; padding-bottom: 2.5rem; }
.cv-footer__grid { display: grid; gap: 2.5rem; }
.cv-footer__grid > * { margin: 0 !important; min-width: 0; }
@media (min-width: 640px) { .cv-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cv-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.cv-footer__about { color: rgba(255, 255, 255, 0.7); max-width: 22rem; margin-top: 1rem !important; }
.cv-footer__title { font-family: var(--cv-font-utility); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255, 255, 255, 0.75); margin: 0 0 1rem !important; }
.cv-footer .wp-block-navigation .wp-block-navigation-item__content { color: var(--cv-white); text-decoration: none; padding: 0.15rem 0; }
.cv-footer .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--cv-accent); }
.cv-footer a:not(.wp-block-navigation-item__content):not(.wp-social-link-anchor) { color: var(--cv-white); text-decoration: none; font-weight: 500; }
.cv-footer a:not(.wp-block-navigation-item__content):not(.wp-social-link-anchor):hover { color: var(--cv-accent); }
.cv-footer .cv-social { margin-top: 1.25rem !important; margin-left: -9px !important; }
.cv-footer__bottom { margin-top: 3.5rem !important; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.15); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; font-size: 0.875rem; color: rgba(255, 255, 255, 0.75); }
.cv-footer__bottom > * { margin: 0 !important; }

/* ---------- Páginas internas ---------- */
.cv-page { padding-top: clamp(48px, 7vw, 80px); padding-bottom: var(--cv-section); }
.cv-page .wp-block-post-content { max-width: 46rem; }

/* ---------- Editor ---------- */
/* O item "Fale conosco" do menu (só aparece no menu mobile) fica oculto no editor também; edite-o pela Visão em lista. */
.editor-styles-wrapper .cv-header-cta { display: flex !important; }
.editor-styles-wrapper header.wp-block-template-part { position: static; }
.editor-styles-wrapper .cv-services > .block-list-appender,
.editor-styles-wrapper .cv-steps > .block-list-appender,
.editor-styles-wrapper .cv-features > .block-list-appender,
.editor-styles-wrapper .cv-stats > .block-list-appender { grid-column: 1 / -1; }

/* ---------- Ajustes de seção ---------- */
.cv-section--flush-top { padding-top: 0; }
.cv-section--ruled { border-top: 1px solid var(--cv-line); }
.cv-contact__email:has(.cv-contact__value:empty) { display: none; }
@media (max-width: 1023.98px) {
	.cv-header__bar .cv-nav { order: 3; }
	.cv-header__bar .cv-header__tools { margin-left: auto; }
}
@media (max-width: 420px) {
	.cv-header__bar { gap: 0.75rem; }
	.cv-header__tools { gap: 0.5rem; }
	.cv-logo__svg { height: 13px; }
}
.cv-form textarea { height: 132px; }

/* ---------- Cabeçalho: verde da marca, logo e menu em branco ----------
 * Atenção: branco sobre #00A088 dá 3,3:1 (abaixo do AA para texto pequeno). Decisão do cliente:
 * manter para o lançamento e reavaliar depois.
 * A classe antiga is-style-header-green (v1.2–1.3) pode continuar no markup; não tem mais efeito.
 */
.cv-header .cv-logo { color: var(--cv-white); }
.cv-header .cv-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content { color: var(--cv-white); }
.cv-header .cv-nav .wp-block-navigation-item__content::after { background: var(--cv-accent); }
.cv-header .cv-nav .wp-block-navigation__responsive-container-open { color: var(--cv-white); border-color: rgba(255, 255, 255, 0.55); }
.cv-header .cv-nav .wp-block-navigation__responsive-container-open:hover { border-color: var(--cv-white); }
.cv-header .cv-lang__toggle { color: var(--cv-white); border-color: rgba(255, 255, 255, 0.55); }
.cv-header .cv-lang__toggle:hover,
.cv-header .cv-lang__details[open] .cv-lang__toggle { border-color: var(--cv-white); }
.cv-header .cv-social .wp-social-link { color: var(--cv-white) !important; }
.cv-header .cv-social .wp-social-link a:hover { background: rgba(255, 255, 255, 0.15); }
.cv-header :where(a, button, summary):focus-visible { outline-color: var(--cv-white); }
.cv-header .wp-block-navigation__responsive-container.is-menu-open :where(a, button):focus-visible { outline-color: var(--cv-secondary); }

/* ---------- Card de serviço com imagem (opcional) ----------
 * Com imagem: ilustração no topo, sem moldura, e o ícone some.
 * Sem imagem: o card segue com o ícone amarelo ao lado do título.
 */
.cv-card__image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; max-height: 280px; object-fit: contain; margin: -0.25rem auto 0.25rem; }
.cv-card--service.has-image .cv-card__icon { display: none; }

/* Posição da imagem (Card de serviço › Imagem › Posição da imagem).
 * O conteúdo do card vira itens do próprio card (display: contents) e a ordem visual
 * é definida por "order": título 1, blocos do conteúdo 3, 5, 7…, imagem entre eles. */
.cv-card--service[class*="cv-card--image-"] .cv-card__body { display: contents; }
.cv-card--service[class*="cv-card--image-"] .cv-card__head { order: 1; }
.cv-card--service[class*="cv-card--image-"] .cv-card__body > * { order: 13; }
.cv-card--service[class*="cv-card--image-"] .cv-card__body > :nth-child(1) { order: 3; }
.cv-card--service[class*="cv-card--image-"] .cv-card__body > :nth-child(2) { order: 5; }
.cv-card--service[class*="cv-card--image-"] .cv-card__body > :nth-child(3) { order: 7; }
.cv-card--service[class*="cv-card--image-"] .cv-card__body > :nth-child(4) { order: 9; }
.cv-card--service[class*="cv-card--image-"] .cv-card__body > :nth-child(5) { order: 11; }
.cv-card--service[class*="cv-card--image-"] .cv-card__image { margin: 0.25rem auto; }
.cv-card--image-after-title .cv-card__image { order: 2; }
.cv-card--image-after-1 .cv-card__image { order: 4; }
.cv-card--image-after-2 .cv-card__image { order: 6; }
.cv-card--image-bottom .cv-card__image { order: 99; }
/* Com a imagem no fim, o link deixa de ser empurrado para baixo e a imagem ocupa o rodapé do card. */
.cv-card--image-bottom .cv-card__body > p.is-style-arrow-link { margin-top: 0 !important; }
.cv-card--image-bottom .cv-card__image { margin-top: auto; }
