/* Efeitos prontos do Ceverinu — ligados por classe (ver CamadaDeDesign::EFEITOS).
   Só escondem o conteúdo quando o script carregou (.cvn-js): sem JS, e dentro
   dos editores, tudo aparece normalmente. */
.cvn-js .cvn-aparecer {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
}
.cvn-js .cvn-aparecer.cvn-visivel { opacity: 1; transform: none; }
.cvn-js .cvn-atraso-1 { transition-delay: .15s; }
.cvn-js .cvn-atraso-2 { transition-delay: .3s; }
.cvn-js .cvn-atraso-3 { transition-delay: .45s; }

/* Parágrafo que o conversor de blocos pôs em volta de um link ou span solto:
   some do layout, e o elemento volta a ser o item do flex/grid, como no HTML. */
:where(.cvn-envolve) { display: contents; }

/* Formulário do CF7 criado pelo Ceverinu (form_create): a grade de campos.
   Só estrutura, com especificidade zero — o visual da marca vem do CSS de
   design do site e ganha sempre. */
:where(.cvn-form) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
:where(.cvn-form .cvn-campo-inteira) { grid-column: 1 / -1; }
:where(.cvn-form label) { display: flex; flex-direction: column; gap: .4rem; }
:where(.cvn-form .wpcf7-form-control-wrap) { display: block; }
:where(.cvn-form) :where(input:not([type=checkbox], [type=radio], [type=submit]), select, textarea) { width: 100%; box-sizing: border-box; }
:where(.cvn-form .cvn-campo-aceite label) { flex-direction: row; align-items: flex-start; }
/* Quebra pela largura do formulário, não da tela: no desktop ele costuma
   ficar numa coluna estreita ao lado do texto. */
:where(.wpcf7-form:has(.cvn-form)) { container-type: inline-size; }
@container (max-width: 30rem) { :where(.cvn-form) { grid-template-columns: 1fr; } }

/* Itens de um contêiner entrando um depois do outro. */
.cvn-js .cvn-sequencia .cvn-item {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1);
  transition-delay: calc(var(--cvn-i, 0) * 90ms);
}
.cvn-js .cvn-sequencia.cvn-visivel .cvn-item { opacity: 1; transform: none; }

/* Título que entra palavra por palavra, cada uma subindo de trás de uma máscara. */
.cvn-js .cvn-revelar-palavras .cvn-palavra {
  display: inline-block;
  opacity: 0;
  transform: translateY(.45em);
  clip-path: inset(0 0 100% 0);
  transition: opacity .5s ease, transform .6s cubic-bezier(.2, .7, .2, 1), clip-path .6s cubic-bezier(.2, .7, .2, 1);
  transition-delay: calc(var(--cvn-i, 0) * 55ms);
}
.cvn-js .cvn-revelar-palavras.cvn-visivel .cvn-palavra { opacity: 1; transform: none; clip-path: inset(0 0 -20% 0); }

/* Carrossel (assets/comportamentos/carrossel.js): o trilho rola na horizontal
   com encaixe; sem JS, os itens ficam um embaixo do outro. */
.cvn-carrossel-trilho {
  display: flex;
  gap: var(--cvn-carrossel-espaco, 1.5rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  cursor: grab;
}
.cvn-carrossel-trilho::-webkit-scrollbar { display: none; }
.cvn-carrossel-trilho.cvn-arrastando { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.cvn-carrossel-trilho > * {
  flex: 0 0 var(--cvn-carrossel-item, min(85%, 26rem));
  scroll-snap-align: start;
  min-width: 0;
}
.cvn-carrossel-controles { display: flex; gap: .5rem; margin-top: 1rem; }
/* Tudo cabe na tela (carrossel.js põe `hidden`): sem isto o display:flex vencia, e as setas apareciam apagadas, sem fazer nada (cobaia, 2026-10-01). */
.cvn-carrossel-controles[hidden] { display: none; }
.cvn-carrossel-controles button {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  line-height: 1;
  opacity: .8;
  transition: opacity .2s;
}
.cvn-carrossel-controles button:hover { opacity: 1; }
.cvn-carrossel-controles button:disabled { opacity: .25; cursor: default; }
.cvn-carrossel-controles button:focus-visible,
.cvn-carrossel-trilho:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Menu de celular (assets/comportamentos/menu.js). `button.` e o reset de
   borda/fundo de propósito: o reset de botão de tema (Hello Elementor) pinta
   todo <button> de rosa e com display, e às vezes carrega depois. */
button.cvn-menu-botao,
button.cvn-menu-botao:hover,
button.cvn-menu-botao:focus {
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
}
button.cvn-menu-botao,
.cvn-menu-botao {
  display: none;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  position: relative;
}
.cvn-menu-botao span,
.cvn-menu-botao::before,
.cvn-menu-botao::after {
  content: "";
  position: absolute;
  left: 25%;
  width: 50%;
  height: 2px;
  background: currentColor;
  transition: transform .25s ease, opacity .2s ease;
}
.cvn-menu-botao span,
.cvn-menu-botao::before,
.cvn-menu-botao::after { top: calc(50% - 1px); }
/* As três linhas partem do centro: aberto, as de fora só giram e viram o X. */
.cvn-menu-botao::before { transform: translateY(-7px); }
.cvn-menu-botao::after { transform: translateY(7px); }
.cvn-menu-aberto .cvn-menu-botao::before { transform: rotate(45deg); }
.cvn-menu-aberto .cvn-menu-botao span { opacity: 0; }
.cvn-menu-aberto .cvn-menu-botao::after { transform: rotate(-45deg); }
.cvn-menu-botao:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* !important de propósito: o CSS da página estiliza a lista (".topo ul {
   display: flex }") com mais especificidade, e quem liga e desliga a lista
   aqui é o comportamento, não o layout. */
@media (max-width: 900px) {
  .cvn-menu-pronto button.cvn-menu-botao { display: inline-block !important; }
  .cvn-menu-pronto:not(.cvn-menu-aberto) .cvn-menu-lista { display: none !important; }
  .cvn-menu-pronto.cvn-menu-aberto .cvn-menu-lista {
    display: flex !important;
    flex-direction: column !important;
    gap: 1rem;
    position: absolute !important;
    left: 0;
    right: 0;
    top: 100%;
    padding: 1.5rem;
    background: var(--cvn-menu-fundo, Canvas);
    color: var(--cvn-menu-cor, CanvasText);
    z-index: 50;
  }
  .cvn-menu-pronto { position: relative; }
}

/* Botão magnético (assets/comportamentos/magnetico.js). */
.cvn-magnetico {
  translate: var(--cvn-mx, 0) var(--cvn-my, 0);
  transition: translate .25s cubic-bezier(.2, .7, .2, 1);
}

/* Fundo em shader (assets/comportamentos/shader.js): o canvas fica atrás do conteúdo. */
.cvn-fundo-shader { position: relative; isolation: isolate; }
.cvn-fundo-shader > .cvn-shader {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
  display: block;
}
/* Cor dos links dos componentes contra o `a { color }` da própria página. O
   construtor prefixa o CSS da página (`.cvn-p-209 a`, força 0,1,1) e ele
   vencia a classe única do componente (0,1,0): o botão da Chamada saiu
   laranja sobre laranja na landing de capoeira (2026-10-02). Aqui com o
   bloco na frente (0,2,1), o componente manda na cor dos próprios links. */
.cvn-chamada a.cvn-chamada-botao { color: var(--cvn-destaque-texto); background: var(--cvn-destaque); }
.cvn-chamada a.cvn-chamada-botao--secundario { color: inherit; background: transparent; }
.cvn-precos a.cvn-plano-botao, .cvn-plano a.cvn-plano-botao { color: var(--cvn-destaque); }
.cvn-plano--destaque a.cvn-plano-botao { color: var(--cvn-destaque-texto); background: var(--cvn-destaque); }
.cvn-caixas a.cvn-caixa-link { color: var(--cvn-destaque); }
.cvn-whatsapp a.cvn-whatsapp-botao { color: #fff; }
.cvn-agenda-externa a.cvn-agenda-externa-botao { color: var(--cvn-destaque-texto); background: var(--cvn-destaque); }
.cvn-slider a.cvn-slide-botao { color: var(--cvn-slider-botao-texto, var(--cvn-destaque-texto)); }


@media (prefers-reduced-motion: reduce) {
  .cvn-js .cvn-aparecer,
  .cvn-js .cvn-sequencia .cvn-item,
  .cvn-js .cvn-revelar-palavras .cvn-palavra { opacity: 1; transform: none; clip-path: none; transition: none; }
  .cvn-magnetico { translate: none; }
}

/*
 * Pacote de componentes do Ceverinu (src/Componentes, assets/comportamentos/).
 *
 * A identidade vem do site, nesta ordem: a cor escolhida no próprio
 * componente, as variáveis da página do construtor do Ceverinu, a cor do
 * site que o plugin resolveu (Componentes::corDoSite — Elementor com o Kit
 * desenhado, ou a paleta do theme.json) e, por último, a cor do texto. Assim
 * o componente não parece "de fora" num site pronto nem num feito do zero
 * (jp, 2026-10-01).
 */
.cvn-slider, .cvn-formulario {
  --cvn-destaque: var(--cvn-cor-destaque, var(--cor-marca, var(--cor-destaque, var(--cvn-destaque-site, currentColor))));
  --cvn-destaque-texto: var(--cvn-cor-destaque-texto, #fff);
  --cvn-raio: var(--cvn-raio-escolhido, var(--raio, 12px));
}

/* Slider. Sem o JS, mostra o primeiro slide. */
.cvn-slider {
  --cvn-slider-n: var(--cvn-slider-por-vez, 1);
  position: relative;
  width: 100%;
}
.cvn-slider-janela, .cvn-slider:not(.cvn-slider-pronto) { overflow: hidden; }
.cvn-slider-janela { border-radius: inherit; outline-offset: 3px; }
.cvn-slider-janela.cvn-arrastando { cursor: grabbing; user-select: none; }
.cvn-slider-trilho, .cvn-slider:not(.cvn-slider-pronto) {
  display: flex;
  gap: var(--cvn-slider-espaco, 16px);
}
.cvn-slider-trilho { transition: transform var(--cvn-slider-velocidade, 500ms) cubic-bezier(.22, .61, .36, 1); will-change: transform; }
.cvn-slide {
  position: relative;
  flex: 0 0 calc((100% - (var(--cvn-slider-n) - 1) * var(--cvn-slider-espaco, 16px)) / var(--cvn-slider-n));
  min-width: 0;
  overflow: hidden;
  border-radius: var(--cvn-slider-raio, var(--cvn-raio));
  margin: 0;
}
@media (max-width: 1024px) { .cvn-slider { --cvn-slider-n: var(--cvn-slider-por-vez-tablet, 1); } }
@media (max-width: 767px) { .cvn-slider { --cvn-slider-n: var(--cvn-slider-por-vez-celular, 1); } }

/* Esmaecer: os slides empilhados, só o ativo aparece. */
.cvn-js .cvn-slider--fade .cvn-slider-trilho { display: grid; transform: none !important; }
.cvn-js .cvn-slider--fade .cvn-slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity var(--cvn-slider-velocidade, 500ms) ease, visibility 0s linear var(--cvn-slider-velocidade, 500ms); }
.cvn-js .cvn-slider--fade .cvn-slide.cvn-ativo { opacity: 1; visibility: visible; transition-delay: 0s; }

.cvn-slide-midia { margin: 0; }
.cvn-slide-midia img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cvn-slider[style*="--cvn-slider-altura"] .cvn-slide-midia { height: var(--cvn-slider-altura); }

/* Texto sobre a imagem (estilo "fundo"). */
.cvn-slider--fundo .cvn-slide-midia { height: var(--cvn-slider-altura, auto); min-height: 280px; }
.cvn-slider--fundo .cvn-slide-midia::after { content: ""; position: absolute; inset: 0; background: var(--cvn-slider-sobreposicao, rgba(0, 0, 0, .35)); pointer-events: none; }
.cvn-slider--fundo .cvn-slide-conteudo {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .75rem;
  padding: clamp(1.5rem, 5vw, 4rem);
  color: #fff;
}
.cvn-slider--alinhar-left .cvn-slide-conteudo { align-items: flex-start; text-align: left; }
.cvn-slider--alinhar-center .cvn-slide-conteudo { align-items: center; text-align: center; }
.cvn-slider--alinhar-right .cvn-slide-conteudo { align-items: flex-end; text-align: right; }
.cvn-slider--fundo .cvn-slide-titulo { color: inherit; font-size: clamp(1.6rem, 3.5vw, 3rem); line-height: 1.1; margin: 0; max-width: 22ch; }
.cvn-slider--fundo .cvn-slide-texto { color: inherit; opacity: .9; margin: 0; max-width: 52ch; }

/* Cartão: imagem em cima, texto embaixo. */
.cvn-slider--cartao .cvn-slide { display: flex; flex-direction: column; background: var(--cvn-slider-cartao, rgba(127, 127, 127, .08)); }
.cvn-slider--cartao .cvn-slide-midia { aspect-ratio: 4 / 3; height: var(--cvn-slider-altura, auto); }
.cvn-slider--cartao .cvn-slide-conteudo { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem; flex: 1; }
.cvn-slider--cartao .cvn-slide-titulo { font-size: 1.15rem; margin: 0; }
.cvn-slider--cartao .cvn-slide-texto { margin: 0; opacity: .8; }

.cvn-slide-botao {
  display: inline-block;
  margin-top: .5rem;
  padding: .8rem 1.6rem;
  border-radius: 999px;
  background: var(--cvn-slider-botao, var(--cvn-destaque));
  color: var(--cvn-slider-botao-texto, var(--cvn-destaque-texto));
  font-weight: 600;
  text-decoration: none;
}
.cvn-slider--cartao .cvn-slide-botao { align-self: flex-start; }

/* Setas, pontos e pausa. */
.cvn-slider-seta {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-top: -22px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--cvn-destaque);
  box-shadow: 0 4px 16px rgba(0, 0, 0, .18);
  cursor: pointer;
  transition: transform .15s ease, opacity .15s ease;
}
.cvn-slider-seta:hover { transform: scale(1.06); }
.cvn-slider-seta:disabled { opacity: .35; cursor: default; transform: none; }
.cvn-slider-seta--anterior { left: 12px; }
.cvn-slider-seta--proximo { right: 12px; }
.cvn-slider-seta--proximo svg { transform: rotate(180deg); }
.cvn-slider-seta[hidden], .cvn-slider-pontos[hidden] { display: none; }
.cvn-slider-pontos { display: flex; justify-content: center; gap: .5rem; margin-top: 1rem; }
.cvn-slider-ponto { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 999px; background: currentColor; opacity: .25; cursor: pointer; transition: width .2s ease, opacity .2s ease; }
.cvn-slider-ponto.cvn-ativo { width: 26px; opacity: 1; background: var(--cvn-destaque); }
.cvn-slider-pausa { position: absolute; top: 12px; right: 12px; z-index: 2; display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .45); color: #fff; cursor: pointer; }
.cvn-slider-seta:focus-visible, .cvn-slider-ponto:focus-visible, .cvn-slider-pausa:focus-visible, .cvn-slider-janela:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Ken Burns: zoom lento no slide ativo. */
@media (prefers-reduced-motion: no-preference) {
  .cvn-slider--kenburns .cvn-slide.cvn-ativo .cvn-slide-midia img { animation: cvn-ken-burns calc(var(--cvn-slider-intervalo, 5s) + 2s) ease-out both; }
}
@keyframes cvn-ken-burns { from { transform: scale(1); } to { transform: scale(1.12); } }

/* Lightbox (ampliar ao clicar). */
.cvn-lightbox img { cursor: zoom-in; }
.cvn-lightbox-aberto { overflow: hidden; }
.cvn-lightbox-tela { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; background: rgba(10, 10, 12, .92); padding: 4vh 6vw; }
.cvn-lightbox-tela[hidden] { display: none; }
.cvn-lightbox-figura { margin: 0; display: flex; flex-direction: column; align-items: center; gap: .75rem; max-width: 100%; max-height: 100%; }
.cvn-lightbox-figura img { max-width: 100%; max-height: 82vh; object-fit: contain; border-radius: 6px; cursor: default; }
.cvn-lightbox-figura figcaption { color: rgba(255, 255, 255, .8); font-size: .95rem; text-align: center; }
.cvn-lightbox-tela button { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.cvn-lightbox-tela button:hover { background: rgba(255, 255, 255, .22); }
.cvn-lightbox-tela button[hidden] { display: none; }
.cvn-lightbox-fechar { top: 16px; right: 16px; }
.cvn-lightbox-anterior { left: 16px; top: 50%; margin-top: -24px; }
.cvn-lightbox-proxima { right: 16px; top: 50%; margin-top: -24px; }

/* Formulário do Ceverinu (src/Componentes/Formulario.php). Herda a fonte e as cores do site. */
.cvn-formulario { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; }
.cvn-form-isca { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cvn-form-etapa { border: 0; margin: 0; padding: 0; min-width: 0; }
.cvn-form-etapa[hidden] { display: none; }
.cvn-form-etapa-titulo { font-weight: 600; font-size: 1.1rem; margin-bottom: .75rem; padding: 0; }
.cvn-form-campos { display: flex; flex-wrap: wrap; gap: 1rem; }
.cvn-form-campo { display: flex; flex-direction: column; gap: .4rem; min-width: 0; flex: 0 0 100%; }
.cvn-form-largura-75 { flex-basis: calc(75% - .25rem); }
.cvn-form-largura-66 { flex-basis: calc(66.666% - .34rem); }
.cvn-form-largura-50 { flex-basis: calc(50% - .5rem); }
.cvn-form-largura-33 { flex-basis: calc(33.333% - .67rem); }
.cvn-form-largura-25 { flex-basis: calc(25% - .75rem); }
@media (max-width: 767px) { .cvn-form-campo { flex-basis: 100% !important; } }
.cvn-form-rotulo { font-weight: 500; font-size: .95rem; padding: 0; }
.cvn-formulario--sem-rotulos .cvn-form-campo > .cvn-form-rotulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.cvn-form-obrigatorio { color: var(--cvn-destaque); margin-left: .2em; }
.cvn-formulario input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.cvn-formulario select,
.cvn-formulario textarea {
  width: 100%;
  box-sizing: border-box;
  padding: .75rem .9rem;
  border: 1px solid var(--cvn-form-borda, rgba(127, 127, 127, .45));
  border-radius: calc(var(--cvn-raio) * .66);
  background: var(--cvn-form-fundo, transparent);
  color: inherit;
  font: inherit;
  line-height: 1.4;
}
.cvn-formulario input:focus, .cvn-formulario select:focus, .cvn-formulario textarea:focus {
  outline: 2px solid var(--cvn-destaque);
  outline-offset: 1px;
  border-color: var(--cvn-destaque);
}
.cvn-formulario textarea { resize: vertical; }
.cvn-form-grupo { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.cvn-form-opcoes { display: flex; flex-direction: column; gap: .4rem; }
.cvn-form-opcoes--linha { flex-direction: row; flex-wrap: wrap; gap: .4rem 1.25rem; }
.cvn-form-opcao { display: inline-flex; align-items: flex-start; gap: .5rem; cursor: pointer; }
.cvn-form-opcao input { accent-color: var(--cvn-destaque); margin-top: .25em; }
.cvn-form-campo--erro input, .cvn-form-campo--erro select, .cvn-form-campo--erro textarea { border-color: #d63638 !important; }
.cvn-form-erro { color: #d63638; font-size: .85rem; }
.cvn-form-erro[hidden] { display: none; }
.cvn-form-acoes { display: flex; gap: .75rem; flex-wrap: wrap; }
.cvn-form-acoes--center { justify-content: center; }
.cvn-form-acoes--right { justify-content: flex-end; }
.cvn-form-enviar, .cvn-form-proximo {
  padding: .85rem 1.8rem;
  border: 0;
  border-radius: var(--cvn-raio);
  background: var(--cvn-destaque);
  color: var(--cvn-destaque-texto);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: filter .15s ease, opacity .15s ease;
}
.cvn-form-enviar:hover, .cvn-form-proximo:hover { filter: brightness(1.08); }
.cvn-form-enviar:disabled { opacity: .6; cursor: progress; }
.cvn-form-enviar--inteiro { flex: 1 0 100%; }
.cvn-form-anterior { padding: .85rem 1.4rem; border: 1px solid currentColor; border-radius: var(--cvn-raio); background: transparent; color: inherit; font: inherit; cursor: pointer; }
.cvn-form-acoes button[hidden] { display: none; }
.cvn-form-mensagem { padding: .85rem 1rem; border-radius: calc(var(--cvn-raio) * .66); font-size: .95rem; }
.cvn-form-mensagem[hidden] { display: none; }
.cvn-form-mensagem[data-tipo="sucesso"] { background: rgba(0, 163, 42, .1); color: inherit; border: 1px solid rgba(0, 163, 42, .4); }
.cvn-form-mensagem[data-tipo="erro"] { background: rgba(214, 54, 56, .08); color: inherit; border: 1px solid rgba(214, 54, 56, .4); }
.cvn-form-indicador--barra { height: 6px; border-radius: 999px; background: rgba(127, 127, 127, .2); overflow: hidden; }
.cvn-form-indicador-barra { display: block; height: 100%; width: 0; background: var(--cvn-destaque); transition: width .3s ease; }
.cvn-form-indicador--numeros { display: flex; gap: .5rem; }
.cvn-form-indicador-passo { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; border: 1px solid rgba(127, 127, 127, .45); font-size: .85rem; }
.cvn-form-indicador-passo.cvn-ativo, .cvn-form-indicador-passo.cvn-feito { background: var(--cvn-destaque); border-color: var(--cvn-destaque); color: var(--cvn-destaque-texto); }

.cvn-abas, .cvn-galeria, .cvn-contagem, .cvn-precos, .cvn-depoimentos {
  --cvn-destaque: var(--cvn-cor-destaque, var(--cor-marca, var(--cor-destaque, var(--cvn-destaque-site, currentColor))));
  --cvn-destaque-texto: var(--cvn-cor-destaque-texto, #fff);
  --cvn-raio: var(--cvn-raio-escolhido, var(--raio, 12px));
  --cvn-linha: rgba(127, 127, 127, .28);
}

/* Abas e acordeão (src/Componentes/Abas.php). */
.cvn-abas-item { border-bottom: 1px solid var(--cvn-linha); }
.cvn-abas-titulo, .cvn-abas-titulo-celular {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  width: 100%; padding: 1.1rem 0; border: 0; background: none; color: inherit;
  font: inherit; font-weight: 600; text-align: left; cursor: pointer; list-style: none;
}
.cvn-abas-titulo::-webkit-details-marker { display: none; }
.cvn-abas-titulo:focus-visible, .cvn-abas-aba:focus-visible, .cvn-abas-titulo-celular:focus-visible { outline: 2px solid var(--cvn-destaque); outline-offset: 2px; }
.cvn-abas-conteudo { padding: 0 0 1.25rem; }
.cvn-abas-conteudo > :first-child { margin-top: 0; }
.cvn-abas-conteudo > :last-child { margin-bottom: 0; }
.cvn-abas-icone { position: relative; flex: 0 0 auto; width: 14px; height: 14px; color: var(--cvn-destaque); transition: transform .2s ease; }
.cvn-abas--icone-nenhum .cvn-abas-icone { display: none; }
.cvn-abas--icone-mais .cvn-abas-icone::before, .cvn-abas--icone-mais .cvn-abas-icone::after { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s ease; }
.cvn-abas--icone-mais .cvn-abas-icone::after { transform: rotate(90deg); }
.cvn-abas--icone-mais [open] > summary .cvn-abas-icone::after, .cvn-abas--icone-mais .cvn-abas-painel.cvn-ativo .cvn-abas-icone::after { transform: rotate(0); }
.cvn-abas--icone-seta .cvn-abas-icone::before { content: ""; position: absolute; inset: 1px 3px 4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.cvn-abas--icone-seta [open] > summary .cvn-abas-icone, .cvn-abas--icone-seta .cvn-abas-painel.cvn-ativo .cvn-abas-icone { transform: rotate(180deg); }
.cvn-abas-lista { display: flex; gap: .25rem; border-bottom: 1px solid var(--cvn-linha); overflow-x: auto; }
.cvn-abas-aba { padding: .8rem 1.2rem; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; color: inherit; font: inherit; font-weight: 500; opacity: .7; cursor: pointer; white-space: nowrap; }
.cvn-abas-aba.cvn-ativo { opacity: 1; border-bottom-color: var(--cvn-destaque); color: var(--cvn-destaque); }
.cvn-abas-paineis { padding-top: 1.25rem; }
.cvn-abas-titulo-celular { display: none; }
.cvn-js .cvn-abas--abas .cvn-abas-painel:not(.cvn-ativo) { display: none; }
.cvn-abas--vertical.cvn-abas--abas { display: grid; grid-template-columns: minmax(10rem, 16rem) 1fr; gap: 2rem; }
.cvn-abas--vertical .cvn-abas-lista { flex-direction: column; border-bottom: 0; border-right: 1px solid var(--cvn-linha); }
.cvn-abas--vertical .cvn-abas-aba { text-align: left; border-bottom: 0; border-right: 2px solid transparent; margin: 0 -1px 0 0; }
.cvn-abas--vertical .cvn-abas-aba.cvn-ativo { border-right-color: var(--cvn-destaque); }
.cvn-abas--vertical .cvn-abas-paineis { padding-top: 0; }
@media (max-width: 767px) {
  .cvn-abas--abas, .cvn-abas--vertical.cvn-abas--abas { display: block; }
  .cvn-abas--abas .cvn-abas-lista { display: none; }
  .cvn-abas--abas .cvn-abas-paineis { padding-top: 0; }
  .cvn-abas--abas .cvn-abas-painel, .cvn-js .cvn-abas--abas .cvn-abas-painel:not(.cvn-ativo) { display: block; border-bottom: 1px solid var(--cvn-linha); }
  .cvn-abas--abas .cvn-abas-titulo-celular { display: flex; }
  .cvn-js .cvn-abas--abas .cvn-abas-painel:not(.cvn-ativo) .cvn-abas-conteudo { display: none; }
}

/* Galeria (src/Componentes/Galeria.php). */
.cvn-galeria { --cvn-galeria-n: var(--cvn-galeria-colunas, 3); }
@media (max-width: 1024px) { .cvn-galeria { --cvn-galeria-n: var(--cvn-galeria-colunas-tablet, 2); } }
@media (max-width: 767px) { .cvn-galeria { --cvn-galeria-n: var(--cvn-galeria-colunas-celular, 1); } }
.cvn-galeria-filtro { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.cvn-galeria-filtro button { padding: .5rem 1rem; border: 1px solid var(--cvn-linha); border-radius: 999px; background: none; color: inherit; font: inherit; cursor: pointer; }
.cvn-galeria-filtro button.cvn-ativo { background: var(--cvn-destaque); border-color: var(--cvn-destaque); color: var(--cvn-destaque-texto); }
.cvn-galeria-item { position: relative; margin: 0; overflow: hidden; border-radius: calc(var(--cvn-raio) * .66); }
.cvn-galeria-item[hidden] { display: none; }
.cvn-galeria-item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease, filter .3s ease; }
.cvn-galeria--grade .cvn-galeria-itens { display: grid; grid-template-columns: repeat(var(--cvn-galeria-n), minmax(0, 1fr)); gap: var(--cvn-galeria-espaco, 12px); }
.cvn-galeria--grade .cvn-galeria-item img { aspect-ratio: var(--cvn-galeria-proporcao, auto); }
.cvn-galeria--mosaico .cvn-galeria-itens { column-count: var(--cvn-galeria-n); column-gap: var(--cvn-galeria-espaco, 12px); }
.cvn-galeria--mosaico .cvn-galeria-item { break-inside: avoid; margin-bottom: var(--cvn-galeria-espaco, 12px); }
.cvn-galeria--justificada .cvn-galeria-itens { display: flex; flex-wrap: wrap; gap: var(--cvn-galeria-espaco, 12px); }
.cvn-galeria--justificada .cvn-galeria-itens::after { content: ""; flex-grow: 999; }
.cvn-galeria--justificada .cvn-galeria-item { flex-grow: calc(var(--cvn-img-proporcao) * 100); flex-basis: calc(var(--cvn-galeria-altura-linha, 240px) * var(--cvn-img-proporcao)); height: var(--cvn-galeria-altura-linha, 240px); }
@media (max-width: 767px) { .cvn-galeria--justificada .cvn-galeria-item { height: calc(var(--cvn-galeria-altura-linha, 240px) * .66); flex-basis: calc(var(--cvn-galeria-altura-linha, 240px) * .66 * var(--cvn-img-proporcao)); } }
@media (hover: hover) {
  .cvn-galeria--efeito-zoom .cvn-galeria-item:hover img { transform: scale(1.06); }
  .cvn-galeria--efeito-escurecer .cvn-galeria-item:hover img { filter: brightness(.7); }
}
.cvn-galeria--legenda-sobre figcaption { position: absolute; inset: auto 0 0; padding: 2rem .9rem .75rem; background: linear-gradient(transparent, rgba(0, 0, 0, .65)); color: #fff; font-size: .9rem; }
.cvn-galeria--legenda-embaixo figcaption { padding: .5rem .1rem 0; font-size: .9rem; opacity: .85; }
.cvn-galeria--legenda-embaixo .cvn-galeria-item { border-radius: 0; }
.cvn-galeria--legenda-embaixo .cvn-galeria-item img { border-radius: calc(var(--cvn-raio) * .66); }

/* Contagem regressiva (src/Componentes/Contagem.php). */
.cvn-contagem { display: flex; flex-wrap: wrap; gap: .75rem; }
.cvn-contagem[hidden], .cvn-contagem-bloco[hidden], .cvn-contagem-fim[hidden] { display: none; }
.cvn-contagem--blocos .cvn-contagem-bloco { display: flex; flex-direction: column; align-items: center; min-width: 4.5rem; padding: .9rem .75rem; border-radius: var(--cvn-raio); background: var(--cvn-destaque); color: var(--cvn-destaque-texto); }
.cvn-contagem-numero { font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.cvn-contagem-rotulo { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; opacity: .85; margin-top: .4rem; }
.cvn-contagem--linha { align-items: baseline; gap: 1.25rem; }
.cvn-contagem--linha .cvn-contagem-bloco { display: flex; align-items: baseline; gap: .35rem; }
.cvn-contagem--linha .cvn-contagem-numero { color: var(--cvn-destaque); }
.cvn-contagem-fim { margin: 0; font-weight: 600; }

/* Tabela de preços (src/Componentes/Precos.php). */
.cvn-precos-alternar { display: inline-flex; margin: 0 auto 1.75rem; padding: .25rem; border: 1px solid var(--cvn-linha); border-radius: 999px; }
.cvn-precos { display: flex; flex-direction: column; align-items: center; }
.cvn-precos-alternar button { padding: .55rem 1.25rem; border: 0; border-radius: 999px; background: none; color: inherit; font: inherit; font-weight: 500; cursor: pointer; }
.cvn-precos-alternar button.cvn-ativo { background: var(--cvn-destaque); color: var(--cvn-destaque-texto); }
.cvn-precos-selo-anual { font-size: .75em; opacity: .85; }
.cvn-precos-grade { display: grid; grid-template-columns: repeat(var(--cvn-precos-colunas, 3), minmax(0, 1fr)); gap: 1.25rem; width: 100%; align-items: stretch; }
@media (max-width: 1024px) { .cvn-precos-grade { grid-template-columns: repeat(min(2, var(--cvn-precos-colunas, 3)), minmax(0, 1fr)); } }
@media (max-width: 767px) { .cvn-precos-grade { grid-template-columns: 1fr; } }
.cvn-plano { position: relative; display: flex; flex-direction: column; gap: .9rem; padding: 2rem 1.6rem; border: 1px solid var(--cvn-linha); border-radius: var(--cvn-raio); }
.cvn-plano--destaque { border: 2px solid var(--cvn-destaque); box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .35); }
.cvn-plano-selo { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); padding: .3rem .9rem; border-radius: 999px; background: var(--cvn-destaque); color: var(--cvn-destaque-texto); font-size: .8rem; font-weight: 600; white-space: nowrap; }
.cvn-plano-nome { margin: 0; font-size: 1.25rem; }
.cvn-plano-descricao { margin: 0; opacity: .8; }
.cvn-plano-preco { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem; }
.cvn-plano-antigo { width: 100%; opacity: .6; font-size: .95rem; }
.cvn-plano-moeda { font-weight: 600; }
.cvn-plano-valor { font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 800; line-height: 1; }
.cvn-plano-periodo { opacity: .7; }
.cvn-plano-recursos { list-style: none; margin: .25rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; flex: 1; }
.cvn-plano-recursos li { position: relative; padding-left: 1.6rem; }
.cvn-plano-recursos li::before { content: "✓"; position: absolute; left: 0; color: var(--cvn-destaque); font-weight: 700; }
.cvn-plano-recursos li.cvn-fora { opacity: .5; text-decoration: line-through; }
.cvn-plano-recursos li.cvn-fora::before { content: "✕"; color: inherit; }
.cvn-plano-botao { display: block; padding: .9rem 1.2rem; border: 2px solid var(--cvn-destaque); border-radius: var(--cvn-raio); color: var(--cvn-destaque); font-weight: 600; text-align: center; text-decoration: none; }
.cvn-plano--destaque .cvn-plano-botao { background: var(--cvn-destaque); color: var(--cvn-destaque-texto); }
.cvn-plano-rodape { margin: 0; font-size: .8rem; opacity: .7; text-align: center; }
.cvn-precos .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Depoimentos (src/Componentes/Depoimentos.php). Em slider, o resto vem do cvn-slider. */
.cvn-depoimentos--grade { --cvn-depo-n: var(--cvn-depoimentos-colunas, 3); display: grid; grid-template-columns: repeat(var(--cvn-depo-n), minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 1024px) { .cvn-depoimentos--grade { --cvn-depo-n: var(--cvn-depoimentos-colunas-tablet, 2); } }
@media (max-width: 767px) { .cvn-depoimentos--grade { --cvn-depo-n: var(--cvn-depoimentos-colunas-celular, 1); } }
.cvn-depoimento { display: flex; flex-direction: column; gap: 1rem; margin: 0; padding: 1.75rem; border: 1px solid var(--cvn-linha); border-radius: var(--cvn-raio); background: var(--cvn-depoimento-fundo, transparent); }
.cvn-depoimentos--slider .cvn-depoimento { height: 100%; box-sizing: border-box; }
.cvn-depoimento-nota { color: var(--cvn-destaque); letter-spacing: .1em; }
.cvn-estrela:not(.cvn-cheia) { opacity: .25; }
.cvn-depoimento-texto { margin: 0; padding: 0; border: 0; flex: 1; font-size: 1.02rem; line-height: 1.6; }
.cvn-depoimento-texto p { margin: 0; }
.cvn-depoimentos--aspas .cvn-depoimento-texto p::before { content: "“"; display: block; font-size: 3rem; line-height: .6; color: var(--cvn-destaque); margin-bottom: .5rem; font-family: Georgia, serif; }
.cvn-depoimento-autor { display: flex; align-items: center; gap: .8rem; }
.cvn-depoimento-foto { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.cvn-depoimento-autor > span { display: flex; flex-direction: column; }
.cvn-depoimento-cargo { font-size: .88rem; opacity: .7; }

.cvn-caixas, .cvn-chamada, .cvn-numeros, .cvn-whatsapp, .cvn-popup, .cvn-indice {
  --cvn-destaque: var(--cvn-cor-destaque, var(--cor-marca, var(--cor-destaque, var(--cvn-destaque-site, currentColor))));
  --cvn-destaque-texto: var(--cvn-cor-destaque-texto, #fff);
  --cvn-raio: var(--cvn-raio-escolhido, var(--raio, 12px));
  --cvn-linha: rgba(127, 127, 127, .28);
}
.cvn-icone { width: 1.5em; height: 1.5em; flex: 0 0 auto; }
.cvn-icone--pequeno { width: 1em; height: 1em; }
.cvn-icone--texto { width: auto; height: auto; font-size: 1.5em; line-height: 1; }

/* Caixas com ícone (src/Componentes/Caixas.php). */
.cvn-caixas { --cvn-caixas-n: var(--cvn-caixas-colunas, 3); display: grid; grid-template-columns: repeat(var(--cvn-caixas-n), minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 1024px) { .cvn-caixas { --cvn-caixas-n: var(--cvn-caixas-colunas-tablet, 2); } }
@media (max-width: 767px) { .cvn-caixas { --cvn-caixas-n: var(--cvn-caixas-colunas-celular, 1); } }
.cvn-caixa { display: flex; flex-direction: column; gap: 1rem; }
.cvn-caixas--lado .cvn-caixa { flex-direction: row; align-items: flex-start; }
.cvn-caixas--alinhar-center .cvn-caixa { align-items: center; text-align: center; }
.cvn-caixas--cartao .cvn-caixa { padding: 1.75rem; border: 1px solid var(--cvn-linha); border-radius: var(--cvn-raio); }
.cvn-caixa-icone { display: inline-grid; place-items: center; color: var(--cvn-destaque); font-size: 1.1rem; }
.cvn-caixas--icone-circulo .cvn-caixa-icone, .cvn-caixas--icone-quadrado .cvn-caixa-icone { width: 3.5rem; height: 3.5rem; background: var(--cvn-destaque); color: var(--cvn-destaque-texto); }
.cvn-caixas--icone-circulo .cvn-caixa-icone { border-radius: 50%; }
.cvn-caixas--icone-quadrado .cvn-caixa-icone { border-radius: calc(var(--cvn-raio) * .66); }
.cvn-caixa-imagem { width: 100%; max-width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: calc(var(--cvn-raio) * .66); }
.cvn-caixas--lado .cvn-caixa-imagem { width: 6rem; aspect-ratio: 1; }
.cvn-caixa-texto { display: flex; flex-direction: column; gap: .4rem; }
.cvn-caixa-titulo { margin: 0; font-size: 1.15rem; }
.cvn-caixa-titulo a { color: inherit; text-decoration: none; }
.cvn-caixa-descricao { margin: 0; opacity: .8; }
.cvn-caixa-link { display: inline-flex; align-items: center; gap: .35rem; margin-top: .25rem; color: var(--cvn-destaque); font-weight: 600; text-decoration: none; }

/* Chamada com botão (src/Componentes/Chamada.php). */
.cvn-chamada { position: relative; display: grid; overflow: hidden; border-radius: var(--cvn-raio); min-height: var(--cvn-chamada-altura, auto); }
.cvn-chamada-conteudo { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 1rem; justify-content: center; padding: clamp(2rem, 6vw, 4.5rem); }
.cvn-chamada--alinhar-center .cvn-chamada-conteudo { align-items: center; text-align: center; }
.cvn-chamada-titulo { margin: 0; font-size: clamp(1.6rem, 3.5vw, 2.6rem); line-height: 1.15; max-width: 24ch; }
.cvn-chamada-texto { margin: 0; max-width: 56ch; opacity: .9; }
.cvn-chamada-botoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
.cvn-chamada--alinhar-center .cvn-chamada-botoes { justify-content: center; }
.cvn-chamada-botao { display: inline-block; padding: .9rem 1.8rem; border: 2px solid var(--cvn-destaque); border-radius: var(--cvn-raio); background: var(--cvn-destaque); color: var(--cvn-destaque-texto); font-weight: 600; text-decoration: none; }
.cvn-chamada-botao--secundario { background: transparent; color: inherit; border-color: currentColor; }
.cvn-chamada-midia { margin: 0; }
.cvn-chamada-midia img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cvn-chamada--fundo { color: #fff; }
.cvn-chamada--fundo > * { grid-area: 1 / 1; }
.cvn-chamada--fundo .cvn-chamada-midia::after { content: ""; position: absolute; inset: 0; background: var(--cvn-chamada-sobreposicao, rgba(0, 0, 0, .5)); }
.cvn-chamada--simples { background: var(--cvn-chamada-fundo, rgba(127, 127, 127, .08)); }
.cvn-chamada--esquerda, .cvn-chamada--direita { grid-template-columns: 1fr 1fr; background: var(--cvn-chamada-fundo, rgba(127, 127, 127, .08)); }
.cvn-chamada--direita .cvn-chamada-midia { order: 2; }
@media (max-width: 767px) { .cvn-chamada--esquerda, .cvn-chamada--direita { grid-template-columns: 1fr; } .cvn-chamada--direita .cvn-chamada-midia { order: 0; } .cvn-chamada--esquerda .cvn-chamada-midia img, .cvn-chamada--direita .cvn-chamada-midia img { aspect-ratio: 16 / 10; } }
.cvn-chamada-faixa { position: absolute; top: 1rem; right: 1rem; z-index: 2; padding: .35rem .9rem; border-radius: 999px; background: var(--cvn-destaque); color: var(--cvn-destaque-texto); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }

/* Números animados (src/Componentes/Numeros.php); a contagem é o cvn-contador. */
.cvn-numeros { --cvn-numeros-n: var(--cvn-numeros-colunas, 4); display: grid; grid-template-columns: repeat(var(--cvn-numeros-n), minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 1024px) { .cvn-numeros { --cvn-numeros-n: var(--cvn-numeros-colunas-tablet, 2); } }
@media (max-width: 767px) { .cvn-numeros { --cvn-numeros-n: var(--cvn-numeros-colunas-celular, 2); } }
.cvn-numero { display: flex; flex-direction: column; gap: .35rem; }
.cvn-numeros--alinhar-center .cvn-numero { align-items: center; text-align: center; }
.cvn-numero-icone { color: var(--cvn-destaque); font-size: 1.2rem; }
.cvn-numero-valor { margin: 0; font-size: clamp(2.2rem, 5vw, 3.4rem); font-weight: 800; line-height: 1; color: var(--cvn-destaque); font-variant-numeric: tabular-nums; }
.cvn-numero-titulo { margin: 0; opacity: .8; }

/* WhatsApp flutuante (src/Componentes/Whatsapp.php). */
.cvn-whatsapp { position: fixed; bottom: 20px; z-index: 9990; display: flex; align-items: center; gap: .6rem; text-decoration: none; animation: cvn-whatsapp-entra .4s ease both; animation-delay: var(--cvn-whatsapp-atraso, 0s); }
.cvn-whatsapp--direita { right: 20px; }
.cvn-whatsapp--esquerda { left: 20px; flex-direction: row-reverse; }
.cvn-whatsapp-botao { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .22); }
.cvn-whatsapp-botao svg { width: 30px; height: 30px; }
.cvn-whatsapp-texto { padding: .55rem .9rem; border-radius: 999px; background: #fff; color: #111; font-size: .9rem; font-weight: 600; box-shadow: 0 6px 18px rgba(0, 0, 0, .15); white-space: nowrap; }
@media (max-width: 767px) { .cvn-whatsapp-texto { display: none; } .cvn-whatsapp--computador { display: none; } }
@media (min-width: 768px) { .cvn-whatsapp--celular { display: none; } }
@media (prefers-reduced-motion: no-preference) {
  .cvn-whatsapp--pulsar .cvn-whatsapp-botao { animation: cvn-whatsapp-pulso 2.4s ease-out infinite 3s; }
}
@keyframes cvn-whatsapp-entra { from { transform: scale(0); } to { transform: none; } }
@keyframes cvn-whatsapp-pulso { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55), 0 8px 24px rgba(0, 0, 0, .22); } 70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0), 0 8px 24px rgba(0, 0, 0, .22); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0), 0 8px 24px rgba(0, 0, 0, .22); } }

/* Popup (src/Componentes/Popup.php). Fechado de fábrica (hidden): só o popup.js abre. */
.cvn-popup[hidden] { display: none; }
.cvn-popup { position: fixed; z-index: 99990; display: flex; padding: 16px; pointer-events: none; }
.cvn-popup--centro { inset: 0; align-items: center; justify-content: center; background: rgba(10, 10, 12, .55); pointer-events: auto; }
.cvn-popup--canto { right: 0; bottom: 0; }
.cvn-popup--topo { top: 0; left: 0; right: 0; padding: 0; }
.cvn-popup--rodape { bottom: 0; left: 0; right: 0; padding: 0; }
.cvn-popup-caixa { position: relative; width: min(100%, var(--cvn-popup-largura, 560px)); max-height: calc(100vh - 32px); overflow: auto; padding: 2rem; border-radius: var(--cvn-raio); background: var(--cvn-popup-fundo, #fff); color: var(--cvn-popup-texto, #111); box-shadow: 0 24px 64px -16px rgba(0, 0, 0, .45); pointer-events: auto; }
.cvn-popup--topo .cvn-popup-caixa, .cvn-popup--rodape .cvn-popup-caixa { width: 100%; max-width: none; border-radius: 0; padding: 1rem 3rem 1rem 1.5rem; }
.cvn-popup-fechar { position: absolute; top: .5rem; right: .5rem; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(127, 127, 127, .15); color: inherit; font-size: 22px; line-height: 1; cursor: pointer; }
.cvn-popup-conteudo > :first-child { margin-top: 0; }
.cvn-popup-conteudo > :last-child { margin-bottom: 0; }
.cvn-popup-travado { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .cvn-popup .cvn-popup-caixa { transition: transform .2s ease, opacity .2s ease; }
  .cvn-popup:not(.cvn-popup-aberto) .cvn-popup-caixa { transform: translateY(12px); }
}

/* Índice da página (src/Componentes/Indice.php). Sem o script, não aparece. */
.cvn-indice:not(.cvn-indice-montado) { display: none; }
.cvn-indice { padding: 1.25rem 1.5rem; border: 1px solid var(--cvn-linha); border-radius: var(--cvn-raio); }
.cvn-indice--fixo { position: sticky; top: 1.5rem; }
.cvn-indice-titulo { margin: 0; font-weight: 700; cursor: pointer; }
.cvn-indice-lista, .cvn-indice-lista ul, .cvn-indice-lista ol { margin: .5rem 0 0; padding-left: 1.2rem; }
ul.cvn-indice-lista, .cvn-indice-lista ul { list-style: none; padding-left: .9rem; }
.cvn-indice-lista li { margin: .35rem 0; }
.cvn-indice-lista a { color: inherit; text-decoration: none; opacity: .8; }
.cvn-indice-lista a:hover, .cvn-indice-lista a.cvn-ativo { opacity: 1; color: var(--cvn-destaque); }

/* Agendamento on-line (src/Componentes/Agendamento.php) e agenda externa. */
.cvn-agendamento, .cvn-agenda-externa {
  --cvn-destaque: var(--cvn-cor-destaque, var(--cor-marca, var(--cor-destaque, var(--cvn-destaque-site, currentColor))));
  --cvn-destaque-texto: var(--cvn-cor-destaque-texto, #fff);
  --cvn-raio: var(--cvn-raio-escolhido, var(--raio, 12px));
  --cvn-linha: rgba(127, 127, 127, .28);
}
.cvn-agendamento { max-width: 640px; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--cvn-linha); border-radius: var(--cvn-raio); }
.cvn-agenda-topo { display: flex; align-items: center; gap: .75rem; min-height: 1.5rem; margin-bottom: .75rem; }
.cvn-agenda-voltar { border: 0; background: none; color: var(--cvn-destaque); font: inherit; font-weight: 600; cursor: pointer; padding: 0; }
.cvn-agenda-voltar[hidden] { display: none; }
.cvn-agenda-resumo { margin: 0; font-size: .9rem; opacity: .75; }
.cvn-agenda-titulo { margin: 0 0 1rem; font-size: 1.2rem; outline: none; }
.cvn-agenda-opcoes { display: grid; gap: .6rem; }
.cvn-agenda-opcao { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; width: 100%; padding: .9rem 1.1rem; border: 1px solid var(--cvn-linha); border-radius: calc(var(--cvn-raio) * .66); background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.cvn-agenda-opcao:hover, .cvn-agenda-opcao:focus-visible { border-color: var(--cvn-destaque); outline: none; }
.cvn-agenda-opcao span { font-size: .88rem; opacity: .75; }
.cvn-agenda-foto { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; margin-bottom: .3rem; }
.cvn-agenda-mes { display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem; text-transform: capitalize; }
.cvn-agenda-mes button { width: 36px; height: 36px; border: 1px solid var(--cvn-linha); border-radius: 50%; background: none; color: inherit; font-size: 1.2rem; cursor: pointer; }
.cvn-agenda-mes button:disabled { opacity: .3; cursor: default; }
.cvn-agenda-calendario { display: grid; grid-template-columns: repeat(7, 1fr); gap: .3rem; text-align: center; }
.cvn-agenda-semana { font-size: .75rem; opacity: .6; padding: .2rem 0; }
.cvn-agenda-dia { aspect-ratio: 1; border: 0; border-radius: 50%; background: rgba(127, 127, 127, .08); color: inherit; font: inherit; cursor: pointer; }
.cvn-agenda-dia:not(:disabled):hover, .cvn-agenda-dia:not(:disabled):focus-visible { background: var(--cvn-destaque); color: var(--cvn-destaque-texto); outline: none; }
.cvn-agenda-dia:disabled { background: none; opacity: .3; cursor: default; }
.cvn-agenda-horarios { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: .5rem; }
.cvn-agenda-hora { padding: .65rem 0; border: 1px solid var(--cvn-linha); border-radius: calc(var(--cvn-raio) * .66); background: none; color: inherit; font: inherit; font-variant-numeric: tabular-nums; cursor: pointer; }
.cvn-agenda-hora:hover, .cvn-agenda-hora:focus-visible { border-color: var(--cvn-destaque); background: var(--cvn-destaque); color: var(--cvn-destaque-texto); outline: none; }
.cvn-agenda-aviso { margin: .75rem 0 0; opacity: .75; }
.cvn-agenda-aviso[hidden] { display: none; }
.cvn-agenda-form { display: grid; gap: .9rem; }
.cvn-agenda-campo { display: grid; gap: .35rem; font-size: .95rem; }
.cvn-agenda-campo input, .cvn-agenda-campo textarea { width: 100%; box-sizing: border-box; padding: .75rem .9rem; border: 1px solid var(--cvn-linha); border-radius: calc(var(--cvn-raio) * .66); background: transparent; color: inherit; font: inherit; }
.cvn-agenda-campo input:focus, .cvn-agenda-campo textarea:focus { outline: 2px solid var(--cvn-destaque); outline-offset: 1px; }
.cvn-agenda-aceite { display: grid; grid-template-columns: auto 1fr; gap: .5rem; font-size: .88rem; }
.cvn-agenda-aceite input { accent-color: var(--cvn-destaque); margin-top: .2em; }
.cvn-agenda-aceite .cvn-agenda-erro { grid-column: 1 / -1; }
.cvn-agenda-erro { color: #d63638; font-size: .82rem; }
.cvn-agenda-erro:empty { display: none; }
.cvn-agenda-enviar { padding: .9rem 1.6rem; border: 0; border-radius: var(--cvn-raio); background: var(--cvn-destaque); color: var(--cvn-destaque-texto); font: inherit; font-weight: 600; cursor: pointer; }
.cvn-agenda-enviar:disabled { opacity: .6; cursor: progress; }
.cvn-agenda-mensagem { margin: 0; color: #d63638; }
.cvn-agenda-mensagem[hidden] { display: none; }
.cvn-agenda-feito p { margin: .4rem 0; }
.cvn-agenda-resumo-final { font-weight: 600; }
.cvn-agenda-externa iframe { display: block; width: 100%; height: var(--cvn-agenda-altura, 720px); border: 0; border-radius: var(--cvn-raio); }
.cvn-agenda-externa-alternativa { margin: .5rem 0 0; font-size: .85rem; opacity: .75; }
.cvn-agenda-externa-botao { display: inline-flex; align-items: center; gap: .6rem; padding: .95rem 1.8rem; border-radius: var(--cvn-raio); background: var(--cvn-destaque); color: var(--cvn-destaque-texto); font-weight: 600; text-decoration: none; }

/*
 * cvn-digitar: sem o script fica só a primeira frase. O cursor é o do
 * efeitos.js (cvn-digitar-cursor); a página pode trocar a cor por currentColor.
 */
.cvn-digitar:not(.cvn-digitando) > :not(:first-child) { display: none; }
.cvn-digitar-cursor { display: inline-block; width: 2px; height: 1.1em; margin-left: 2px; vertical-align: -0.15em; background: currentColor; animation: cvn-digitar-pisca 1s steps(1) infinite; }
@keyframes cvn-digitar-pisca { 50% { background: transparent; } }

/*
 * cvn-idioma: a faixa que sugere a versão no idioma do navegador (sem
 * redirecionar). Fica no rodapé da tela, por cima de tudo, e some ao escolher.
 */
.cvn-idioma-sugestao { position: fixed; left: 50%; bottom: 18px; z-index: 99999; transform: translateX(-50%); display: flex; align-items: center; gap: 14px; max-width: calc(100vw - 24px); padding: 10px 10px 10px 18px; border-radius: 10px; background: #111113; color: #fff; font: 500 14px/1.4 system-ui, -apple-system, "Segoe UI", sans-serif; box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .45); }
.cvn-idioma-sugestao a { color: #111113; background: #fff; border-radius: 7px; padding: 6px 12px; text-decoration: none; white-space: nowrap; }
.cvn-idioma-sugestao button { all: unset; cursor: pointer; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 7px; color: rgba(255, 255, 255, .7); font-size: 18px; }
.cvn-idioma-sugestao button:hover { color: #fff; background: rgba(255, 255, 255, .12); }
@media (max-width: 560px) { .cvn-idioma-sugestao { flex-wrap: wrap; bottom: 12px; } }
