/* Ajustes de apresentação para os conteúdos históricos importados do Elementor.
   Não altera blocos, textos, mídia ou a estrutura das páginas. */

.elementor.elementor-5,
.elementor.elementor-6,
.elementor.elementor-7 {
  --e-global-color-primary: #178647;
  --e-global-color-secondary: #123126;
  --e-global-color-text: #557064;
  --e-global-color-accent: #178647;
  --e-global-color-31b9b1f: #178647;
  --e-global-color-5369e1f: #123126;
}

/* Mantém a página ampla e legível sem transformar o conteúdo em uma faixa esticada. */
.elementor.elementor-5 > .e-con.e-parent > .e-con-inner,
.elementor.elementor-6 > .e-con.e-parent > .e-con-inner,
.elementor.elementor-7 > .e-con.e-parent > .e-con-inner {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
  margin-inline: auto !important;
}

/* A paleta anterior usava cinza frio e azul claro. Estes ajustes a aproximam da identidade Codificar. */
.elementor .elementor-shape svg {
  fill: #edf8f0 !important;
}
.elementor .elementor-widget-divider .elementor-divider-separator {
  border-color: #178647 !important;
}
.elementor .elementor-widget-heading .elementor-heading-title,
.elementor .elementor-widget-text-editor a:not(.elementor-button),
.elementor .elementor-icon-list-text {
  color: #123126;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-title,
.elementor .elementor-widget-icon-box .elementor-icon-box-title a,
.elementor .elementor-widget-icon-box .elementor-icon,
.elementor .elementor-widget-icon-box .elementor-icon svg {
  color: #178647;
  fill: #178647;
}

/* Cartões preservam o conteúdo, mas ganham dimensões e contraste consistentes. */
.elementor .elementor-widget-icon-box,
.elementor .elementor-widget-image-box {
  min-width: 0;
}
.elementor .e-con {
  min-width: 0;
}
.elementor .elementor-widget-image img,
.elementor .elementor-widget-video img,
.elementor .elementor-widget-image-carousel img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 440px;
  margin-inline: auto;
  object-fit: contain;
}
.elementor .elementor-widget-video,
.elementor .elementor-widget-image-carousel {
  overflow: hidden;
  border-radius: 16px;
}

/* Remover o cinza do bloco de depoimentos sem mudar o conteúdo interno. */
.elementor .elementor-element[class*="elementor-element"]:has(.elementor-testimonial-wrapper) {
  background-color: #0c4a2c !important;
}
.elementor .elementor-element[class*="elementor-element"]:has(.elementor-testimonial-wrapper) .elementor-heading-title,
.elementor .elementor-element[class*="elementor-element"]:has(.elementor-testimonial-wrapper) .elementor-widget-text-editor,
.elementor .elementor-element[class*="elementor-element"]:has(.elementor-testimonial-wrapper) .elementor-widget-text-editor p {
  color: #fff !important;
}

/* Mantém as áreas escuras com texto legível e sem o azul legado. */
.elementor .elementor-element[style*="background"] .elementor-heading-title,
.elementor .elementor-element[style*="background"] .elementor-widget-text-editor {
  color: inherit;
}

@media (max-width: 1024px) {
  .elementor.elementor-5 > .e-con.e-parent > .e-con-inner,
  .elementor.elementor-6 > .e-con.e-parent > .e-con-inner,
  .elementor.elementor-7 > .e-con.e-parent > .e-con-inner {
    width: min(100% - 36px, 760px) !important;
  }

  .elementor .elementor-widget-image img,
  .elementor .elementor-widget-video img,
  .elementor .elementor-widget-image-carousel img {
    max-height: 360px;
  }
}

@media (max-width: 767px) {
  .page-hero { padding: 42px 0 24px; }
  .page-content { padding: 28px 0 54px; }

  .elementor.elementor-5 > .e-con.e-parent > .e-con-inner,
  .elementor.elementor-6 > .e-con.e-parent > .e-con-inner,
  .elementor.elementor-7 > .e-con.e-parent > .e-con-inner {
    width: min(100% - 28px, 560px) !important;
  }

  /* O layout histórico é de várias colunas; no telefone, cada bloco passa a ocupar uma linha legível. */
  .elementor .e-con.e-child {
    min-width: 0;
  }
  .elementor .elementor-widget-image img,
  .elementor .elementor-widget-video img,
  .elementor .elementor-widget-image-carousel img {
    max-height: 280px;
  }
  .elementor .elementor-widget-heading .elementor-heading-title {
    overflow-wrap: anywhere;
  }
  .elementor .elementor-widget-container {
    max-width: 100%;
  }
}

/* Blocos de depoimentos do template antigo: verde institucional no lugar do cinza. */
.elementor.elementor-5 .elementor-element.elementor-element-9f102a0,
.elementor.elementor-6 .elementor-element.elementor-element-9f102a0,
.elementor.elementor-7 .elementor-element.elementor-element-9f102a0,
.elementor.elementor-5 .elementor-element.elementor-element-9f102a0 > .elementor-background-overlay,
.elementor.elementor-6 .elementor-element.elementor-element-9f102a0 > .elementor-background-overlay,
.elementor.elementor-7 .elementor-element.elementor-element-9f102a0 > .elementor-background-overlay {
  background-color: #0c4a2c !important;
  background-image: none !important;
}

/* Ícones que ainda recebem cinza diretamente do modelo anterior. */
.elementor .elementor-view-default .elementor-icon,
.elementor .elementor-view-default .elementor-icon svg,
.elementor .elementor-view-framed .elementor-icon,
.elementor .elementor-view-framed .elementor-icon svg {
  color: #178647 !important;
  fill: #178647 !important;
  border-color: #178647 !important;
}

@media (max-width: 767px) {
  /* Espaçamento e leitura adequados no telefone, inclusive para as galerias. */
  .elementor .e-con.e-parent { padding-inline: 0 !important; }
  .elementor .e-con.e-child { width: 100% !important; }
  .elementor .elementor-widget-image-carousel .swiper-slide-image,
  .elementor .elementor-widget-image img { width: auto !important; }
}

/* Paleta dos blocos que ainda vinham do template antigo. */
.elementor.elementor-5 .elementor-element.elementor-element-683f57b4,
.elementor.elementor-6 .elementor-element.elementor-element-683f57b4,
.elementor.elementor-7 .elementor-element.elementor-element-683f57b4,
.elementor.elementor-5 .elementor-element.elementor-element-a5a6382,
.elementor.elementor-6 .elementor-element.elementor-element-a5a6382,
.elementor.elementor-7 .elementor-element.elementor-element-a5a6382 {
  background-color: #edf8f0 !important;
}

/* Faixa/formulário: branco com borda verde suave, sem o cinza que destoava da LP. */
.elementor.elementor-5 .elementor-element.elementor-element-64749c66,
.elementor.elementor-6 .elementor-element.elementor-element-64749c66,
.elementor.elementor-7 .elementor-element.elementor-element-64749c66 {
  background-color: #ffffff !important;
  border: 1px solid #d7e7dc;
  border-radius: 22px;
  box-shadow: 0 18px 44px rgba(12, 74, 44, .10);
}

.elementor.elementor-5 .elementor-element.elementor-element-2ddd3176,
.elementor.elementor-6 .elementor-element.elementor-element-2ddd3176,
.elementor.elementor-7 .elementor-element.elementor-element-2ddd3176 {
  background-color: #0c4a2c !important;
}

/* Tipografia e cartões históricos: mesma hierarquia, com contraste e tamanho mais consistentes. */
.elementor .titulo1 .elementor-heading-title,
.elementor .fontColor .elementor-heading-title {
  color: #123126 !important;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-title,
.elementor .elementor-widget-icon-box .elementor-icon-box-title a {
  font-size: clamp(1rem, 1.2vw, 1.2rem) !important;
  line-height: 1.25 !important;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-description {
  line-height: 1.45 !important;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-wrapper {
  min-height: 100%;
}

/* Os cartões destacados continuam verdes; o texto não perde legibilidade. */
.elementor.elementor-5 .elementor-element.elementor-element-fc252a3 .elementor-icon-box-title,
.elementor.elementor-6 .elementor-element.elementor-element-fc252a3 .elementor-icon-box-title,
.elementor.elementor-7 .elementor-element.elementor-element-fc252a3 .elementor-icon-box-title,
.elementor.elementor-5 .elementor-element.elementor-element-5a2b470 .elementor-icon-box-title,
.elementor.elementor-6 .elementor-element.elementor-element-5a2b470 .elementor-icon-box-title,
.elementor.elementor-7 .elementor-element.elementor-element-5a2b470 .elementor-icon-box-title,
.elementor.elementor-5 .elementor-element.elementor-element-fc252a3 .elementor-icon-box-description,
.elementor.elementor-6 .elementor-element.elementor-element-fc252a3 .elementor-icon-box-description,
.elementor.elementor-7 .elementor-element.elementor-element-fc252a3 .elementor-icon-box-description,
.elementor.elementor-5 .elementor-element.elementor-element-5a2b470 .elementor-icon-box-description,
.elementor.elementor-6 .elementor-element.elementor-element-5a2b470 .elementor-icon-box-description,
.elementor.elementor-7 .elementor-element.elementor-element-5a2b470 .elementor-icon-box-description {
  color: #fff !important;
}

@media (min-width: 768px) {
  .elementor .elementor-widget-image img,
  .elementor .elementor-widget-video img {
    max-height: 360px;
  }
}

/* Remove as duas sobreposições escuras herdadas e aplica a paleta institucional. */
.elementor.elementor-5 .elementor-element.elementor-element-1ec9bf8d::before,
.elementor.elementor-6 .elementor-element.elementor-element-1ec9bf8d::before,
.elementor.elementor-7 .elementor-element.elementor-element-1ec9bf8d::before {
  background-color: #edf8f0 !important;
  background-image: none !important;
  opacity: 1 !important;
}
.elementor.elementor-5 .elementor-element.elementor-element-7c85507b::before,
.elementor.elementor-6 .elementor-element.elementor-element-7c85507b::before,
.elementor.elementor-7 .elementor-element.elementor-element-7c85507b::before {
  background-color: #0c4a2c !important;
  background-image: none !important;
  opacity: 1 !important;
}
.elementor.elementor-5 .elementor-element.elementor-element-7c85507b .elementor-heading-title,
.elementor.elementor-6 .elementor-element.elementor-element-7c85507b .elementor-heading-title,
.elementor.elementor-7 .elementor-element.elementor-element-7c85507b .elementor-heading-title,
.elementor.elementor-5 .elementor-element.elementor-element-7c85507b .elementor-widget-text-editor,
.elementor.elementor-6 .elementor-element.elementor-element-7c85507b .elementor-widget-text-editor,
.elementor.elementor-7 .elementor-element.elementor-element-7c85507b .elementor-widget-text-editor {
  color: #fff !important;
}

/* Tech Stack: contraste legível, com cartões claros dentro de uma área verde escura. */
.elementor.elementor-5 .elementor-element.elementor-element-778247f3,
.elementor.elementor-6 .elementor-element.elementor-element-778247f3,
.elementor.elementor-7 .elementor-element.elementor-element-778247f3 {
  background-color: #0c4a2c !important;
  background-image: none !important;
}
.elementor.elementor-5 .elementor-element.elementor-element-778247f3 .elementor-heading-title,
.elementor.elementor-6 .elementor-element.elementor-element-778247f3 .elementor-heading-title,
.elementor.elementor-7 .elementor-element.elementor-element-778247f3 .elementor-heading-title,
.elementor.elementor-5 .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor,
.elementor.elementor-6 .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor,
.elementor.elementor-7 .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor {
  color: #fff !important;
}
.elementor.elementor-5 .elementor-element.elementor-element-92d5de4,
.elementor.elementor-5 .elementor-element.elementor-element-1a300d4,
.elementor.elementor-5 .elementor-element.elementor-element-304eb40,
.elementor.elementor-5 .elementor-element.elementor-element-a54a8f2,
.elementor.elementor-5 .elementor-element.elementor-element-ff3dac7,
.elementor.elementor-5 .elementor-element.elementor-element-87fb88b,
.elementor.elementor-6 .elementor-element.elementor-element-92d5de4,
.elementor.elementor-6 .elementor-element.elementor-element-1a300d4,
.elementor.elementor-6 .elementor-element.elementor-element-304eb40,
.elementor.elementor-6 .elementor-element.elementor-element-a54a8f2,
.elementor.elementor-6 .elementor-element.elementor-element-ff3dac7,
.elementor.elementor-6 .elementor-element.elementor-element-87fb88b,
.elementor.elementor-7 .elementor-element.elementor-element-92d5de4,
.elementor.elementor-7 .elementor-element.elementor-element-1a300d4,
.elementor.elementor-7 .elementor-element.elementor-element-304eb40,
.elementor.elementor-7 .elementor-element.elementor-element-a54a8f2,
.elementor.elementor-7 .elementor-element.elementor-element-ff3dac7,
.elementor.elementor-7 .elementor-element.elementor-element-87fb88b {
  background: #fff !important;
  border: 1px solid #d7e7dc;
  border-radius: 14px;
}
.elementor .premium-gallery-container img,
.elementor .stratum-image-accordion img { object-fit: cover; }

/* Correção das logos do Tech Stack: o template antigo forçava largura automática e zerava as imagens. */
.elementor .elementor-widget-image img {
  width: 100% !important;
  max-width: 220px !important;
  height: auto !important;
}
.elementor.elementor-5 .elementor-element.elementor-element-293d1af img,
.elementor.elementor-6 .elementor-element.elementor-element-293d1af img,
.elementor.elementor-7 .elementor-element.elementor-element-293d1af img {
  max-width: 460px !important;
}
@media (max-width: 767px) {
  .elementor .elementor-widget-image img { max-width: 180px !important; }
}

/* Renderização compatível das galerias e depoimentos gravados no backup. */
.codificar-testimonials { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; width:min(100%,980px); margin:34px auto 0; }
.codificar-testimonial { min-width:0; padding:24px; border-radius:16px; background:#fff; color:#123126; text-align:center; box-shadow:0 14px 32px rgba(0,0,0,.16); }
.codificar-testimonial img { width:76px!important; max-width:76px!important; height:76px!important; border-radius:50%; object-fit:cover; margin:0 auto 14px; }
.codificar-testimonial blockquote { margin:0; font-size:.94rem; line-height:1.55; color:#557064; }
.codificar-testimonial blockquote p { margin:0; }
.codificar-testimonial__name { margin:18px 0 2px; color:#178647; font-weight:800; }
.codificar-testimonial__title { margin:0; color:#557064; font-size:.86rem; }
.codificar-gallery { width:100%; margin:24px auto 0; text-align:center; }
.codificar-gallery__filters { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0 0 22px; }
.codificar-gallery__filters button, .codificar-gallery__more { border:1px solid #178647; background:#fff; color:#123126; border-radius:999px; padding:8px 13px; font:inherit; font-size:.78rem; font-weight:700; cursor:pointer; }
.codificar-gallery__filters button.is-active, .codificar-gallery__more { background:#178647; color:#fff; }
.codificar-gallery__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.codificar-gallery__item { margin:0; overflow:hidden; border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(12,74,44,.12); }
.codificar-gallery__item.is-hidden { display:none; }
.codificar-gallery__item a { display:block; aspect-ratio:1/1; overflow:hidden; }
.codificar-gallery__item img { width:100%!important; max-width:none!important; height:100%!important; max-height:none!important; object-fit:cover; transition:transform .2s ease; }
.codificar-gallery__item a:hover img { transform:scale(1.04); }
.codificar-gallery__item figcaption { padding:9px 10px; color:#123126; font-size:.78rem; font-weight:700; }
.codificar-gallery__more { margin-top:22px; }
@media(max-width:767px) { .codificar-testimonials{grid-template-columns:1fr; gap:14px;}.codificar-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.codificar-gallery__filters{gap:6px}.codificar-gallery__filters button{font-size:.68rem;padding:7px 10px} }
/* Imagens da galeria histórica são preenchidas a partir das URLs preservadas no Elementor. */
.premium-img-gallery .pa-gallery-img-container { aspect-ratio: 4/3; overflow:hidden; border-radius:12px; background:#fff; }
.premium-img-gallery .pa-gallery-img-container img { width:100%!important; max-width:none!important; height:100%!important; max-height:none!important; object-fit:cover; }

/* Escala compacta da LP: preserva cada bloco e reduz a altura excessiva dos componentes. */
.elementor .elementor-widget-icon-box {
  padding: 8px !important;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-icon {
  margin-bottom: 8px !important;
}
.elementor .elementor-widget-icon-box .elementor-icon,
.elementor .elementor-widget-icon-box .elementor-icon i,
.elementor .elementor-widget-icon-box .elementor-icon svg {
  font-size: 28px !important;
  width: 28px !important;
  height: 28px !important;
  line-height: 28px !important;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-title,
.elementor .elementor-widget-icon-box .elementor-icon-box-title a {
  font-size: .98rem !important;
  line-height: 1.2 !important;
  margin-bottom: 7px !important;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-description,
.elementor .elementor-widget-icon-box .elementor-icon-box-description p {
  font-size: .84rem !important;
  line-height: 1.42 !important;
}

/* Cards de tecnologia: logos e cartões proporcionais ao restante da página. */
.elementor .elementor-element.elementor-element-778247f3 .e-con.e-child {
  padding: 15px 12px !important;
  min-height: 0 !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image img {
  width: auto !important;
  max-width: 120px !important;
  max-height: 90px !important;
  margin: 0 auto !important;
  object-fit: contain !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-heading .elementor-heading-title {
  font-size: .95rem !important;
  line-height: 1.2 !important;
  margin: 8px 0 4px !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor p {
  font-size: .8rem !important;
  line-height: 1.35 !important;
  margin: 0 !important;
}

/* Depoimentos compactos: apenas a foto principal é circular; as estrelas permanecem pequenas. */
.codificar-testimonials { gap: 16px; margin-top: 24px; }
.codificar-testimonial { padding: 18px; border-radius: 14px; }
.codificar-testimonial > img { width: 58px !important; max-width: 58px !important; height: 58px !important; margin: 0 auto 10px; }
.codificar-testimonial blockquote,
.codificar-testimonial blockquote p { font-size: .88rem !important; line-height: 1.48 !important; }
.codificar-testimonial__name { margin: 12px 0 2px; font-size: .92rem !important; line-height: 1.2 !important; }
.codificar-testimonial__name .emoji { display: inline-block !important; width: 18px !important; max-width: 18px !important; height: 18px !important; margin: 0 1px !important; vertical-align: -3px; }
.codificar-testimonial__title { font-size: .8rem !important; }

/* Ilustrações e títulos internos deixam de dominar a seção. */
.elementor.elementor-5 .elementor-element.elementor-element-293d1af img,
.elementor.elementor-6 .elementor-element.elementor-element-293d1af img,
.elementor.elementor-7 .elementor-element.elementor-element-293d1af img { max-width: 360px !important; }
.elementor .elementor-widget-heading .elementor-heading-title { line-height: 1.15 !important; }

@media (max-width: 767px) {
  .elementor .elementor-widget-icon-box { padding: 12px !important; }
  .elementor .elementor-widget-icon-box .elementor-icon-box-title,
  .elementor .elementor-widget-icon-box .elementor-icon-box-title a { font-size: 1rem !important; }
  .elementor .elementor-element.elementor-element-778247f3 .e-con.e-child { padding: 16px !important; }
  .elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image img { max-width: 108px !important; max-height: 78px !important; }
  .codificar-testimonial { padding: 16px; }
}

/* Tech Stack: impede que linhas flexíveis estiquem o fundo dos cartões. */
.elementor .elementor-element.elementor-element-778247f3 > .e-con-inner {
  padding-top: 72px !important;
  padding-bottom: 64px !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-24816bd,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-461effa {
  align-items: flex-start !important;
  min-height: 0 !important;
  height: auto !important;
  padding-block: 10px !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-92d5de4,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-1a300d4,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-304eb40,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-a54a8f2,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-ff3dac7,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-87fb88b {
  align-self: flex-start !important;
  flex-grow: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}
@media (max-width: 767px) {
  .elementor .elementor-element.elementor-element-778247f3 > .e-con-inner { padding-block: 52px !important; }
}

/* Espaçamentos internos do bloco de tecnologia alinhados à altura compacta dos cards. */
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-12e90fe5 {
  gap: 12px !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-24816bd,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-461effa {
  gap: 18px !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-24816bd {
  margin-top: 24px !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image img {
  max-height: 72px !important;
}

/* Compactação global das seções importadas: reduz os vazios verticais do template antigo. */
.elementor.elementor-5 > .elementor-element.elementor-element-1ec9bf8d > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-1ec9bf8d > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-1ec9bf8d > .e-con-inner { padding-bottom: 64px !important; }

.elementor.elementor-5 > .elementor-element.elementor-element-2fb36f71 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-2fb36f71 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-2fb36f71 > .e-con-inner { padding: 56px 0 48px !important; }

.elementor.elementor-5 > .elementor-element.elementor-element-6ffb8252 > .e-con-inner,
.elementor.elementor-5 > .elementor-element.elementor-element-683f57b4 > .e-con-inner,
.elementor.elementor-5 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
.elementor.elementor-5 > .elementor-element.elementor-element-54fe0a42 > .e-con-inner,
.elementor.elementor-5 > .elementor-element.elementor-element-9f102a0 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-6ffb8252 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-683f57b4 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-54fe0a42 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-9f102a0 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-6ffb8252 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-683f57b4 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-54fe0a42 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-9f102a0 > .e-con-inner { padding: 52px 0 !important; }

.elementor.elementor-5 > .elementor-element.elementor-element-a5a6382 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-a5a6382 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-a5a6382 > .e-con-inner { padding: 72px 0 48px !important; }

/* Títulos deixados pelo template com margem fixa de 58px passam a acompanhar a escala compacta. */
.elementor .elementor-widget-heading .elementor-heading-title { margin-top: 26px !important; margin-bottom: 10px !important; }
.elementor .elementor-widget-icon-box .elementor-heading-title,
.elementor .elementor-element.elementor-element-778247f3 .elementor-heading-title { margin-top: 8px !important; margin-bottom: 4px !important; }

/* Quatro depoimentos em duas colunas evitam o card isolado e reduzem a área verde vazia. */
@media (min-width: 768px) {
  .codificar-testimonials { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}

@media (max-width: 767px) {
  .elementor.elementor-5 > .e-con.e-parent > .e-con-inner,
  .elementor.elementor-6 > .e-con.e-parent > .e-con-inner,
  .elementor.elementor-7 > .e-con.e-parent > .e-con-inner { padding-top: 36px !important; padding-bottom: 36px !important; }
  .elementor.elementor-5 > .elementor-element.elementor-element-1ec9bf8d > .e-con-inner,
  .elementor.elementor-6 > .elementor-element.elementor-element-1ec9bf8d > .e-con-inner,
  .elementor.elementor-7 > .elementor-element.elementor-element-1ec9bf8d > .e-con-inner { padding-bottom: 44px !important; }
  .elementor .elementor-widget-heading .elementor-heading-title { margin-top: 20px !important; margin-bottom: 8px !important; }
}

/* Segunda etapa de compactação solicitada: cards e seus fundos ocupam somente o espaço necessário. */
.elementor .elementor-widget-icon-box { padding: 5px !important; }
.elementor .elementor-widget-icon-box .elementor-icon-box-icon { margin-bottom: 5px !important; }
.elementor .elementor-widget-icon-box .elementor-icon,
.elementor .elementor-widget-icon-box .elementor-icon i,
.elementor .elementor-widget-icon-box .elementor-icon svg {
  width: 22px !important;
  height: 22px !important;
  font-size: 22px !important;
  line-height: 22px !important;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-title,
.elementor .elementor-widget-icon-box .elementor-icon-box-title a { font-size: .86rem !important; margin-bottom: 4px !important; }
.elementor .elementor-widget-icon-box .elementor-icon-box-description,
.elementor .elementor-widget-icon-box .elementor-icon-box-description p { font-size: .76rem !important; line-height: 1.34 !important; }

.elementor .elementor-element.elementor-element-778247f3 > .e-con-inner { padding-top: 48px !important; padding-bottom: 44px !important; }
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-24816bd,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-461effa { gap: 12px !important; padding-block: 6px !important; }
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-24816bd { margin-top: 14px !important; }
.elementor .elementor-element.elementor-element-778247f3 .e-con.e-child { padding: 10px 9px !important; }
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image img { max-width: 88px !important; max-height: 56px !important; }
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-heading .elementor-heading-title { font-size: .82rem !important; margin: 5px 0 3px !important; }
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor p { font-size: .72rem !important; line-height: 1.28 !important; }

.codificar-testimonials { gap: 12px; margin-top: 16px; }
.codificar-testimonial { padding: 12px; border-radius: 12px; }
.codificar-testimonial > img { width: 46px !important; max-width: 46px !important; height: 46px !important; margin-bottom: 7px; }
.codificar-testimonial blockquote,
.codificar-testimonial blockquote p { font-size: .78rem !important; line-height: 1.4 !important; }
.codificar-testimonial__name { margin-top: 8px; font-size: .84rem !important; }
.codificar-testimonial__name .emoji { width: 15px !important; max-width: 15px !important; height: 15px !important; }
.codificar-testimonial__title { font-size: .74rem !important; }

.codificar-gallery { margin-top: 14px; }
.codificar-gallery__grid { gap: 9px; }
.codificar-gallery__item { border-radius: 9px; }
.codificar-gallery__item figcaption { padding: 6px 7px; font-size: .68rem; }
.codificar-gallery__filters { margin-bottom: 12px; }
.codificar-gallery__filters button, .codificar-gallery__more { padding: 6px 10px; font-size: .7rem; }

/* Fundos de seção: reduzem o espaço que sobra antes e depois dos cards. */
.elementor.elementor-5 > .elementor-element.elementor-element-2fb36f71 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-2fb36f71 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-2fb36f71 > .e-con-inner { padding: 40px 0 34px !important; }
.elementor.elementor-5 > .elementor-element.elementor-element-6ffb8252 > .e-con-inner,
.elementor.elementor-5 > .elementor-element.elementor-element-683f57b4 > .e-con-inner,
.elementor.elementor-5 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
.elementor.elementor-5 > .elementor-element.elementor-element-54fe0a42 > .e-con-inner,
.elementor.elementor-5 > .elementor-element.elementor-element-9f102a0 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-6ffb8252 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-683f57b4 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-54fe0a42 > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-9f102a0 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-6ffb8252 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-683f57b4 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-54fe0a42 > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-9f102a0 > .e-con-inner { padding: 36px 0 !important; }
@media (max-width: 767px) {
  .elementor .elementor-widget-icon-box { padding: 8px !important; }
  .elementor .elementor-widget-icon-box .elementor-icon-box-description,
  .elementor .elementor-widget-icon-box .elementor-icon-box-description p { font-size: .8rem !important; }
  .elementor.elementor-5 > .e-con.e-parent > .e-con-inner,
  .elementor.elementor-6 > .e-con.e-parent > .e-con-inner,
  .elementor.elementor-7 > .e-con.e-parent > .e-con-inner { padding-top: 28px !important; padding-bottom: 28px !important; }
}

/* Cards de tecnologia ainda mais enxutos. */
.elementor .elementor-element.elementor-element-778247f3 > .e-con-inner { padding-top: 36px !important; padding-bottom: 34px !important; }
.elementor .elementor-element.elementor-element-778247f3 .e-con.e-child { padding: 7px 8px !important; }
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image img { max-width: 68px !important; max-height: 42px !important; }
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-heading .elementor-heading-title { font-size: .74rem !important; line-height: 1.1 !important; }
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor p { font-size: .66rem !important; line-height: 1.22 !important; }

/* Formulário substitui o shortcode indisponível do Mautic e envia para o e-mail administrativo do site. */
.codificar-contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; max-width:620px; margin:20px auto 0; text-align:left; }
.codificar-contact-form p { margin:0; }
.codificar-contact-form p:nth-of-type(4) { grid-column:1 / -1; }
.codificar-contact-form label { display:block; margin:0 0 5px; color:#123126; font-size:.82rem; font-weight:700; }
.codificar-contact-form input,
.codificar-contact-form textarea { box-sizing:border-box; width:100%; border:1px solid #b9d5c2; border-radius:8px; background:#fff; color:#123126; padding:10px 11px; font:inherit; font-size:.9rem; }
.codificar-contact-form textarea { resize:vertical; min-height:100px; }
.codificar-contact-form button { justify-self:center; grid-column:1 / -1; border:0; border-radius:999px; padding:11px 22px; background:#178647; color:#fff; font:inherit; font-size:.9rem; font-weight:800; cursor:pointer; }
.codificar-contact-form button:hover { background:#0c4a2c; }
.codificar-contact-form__notice { grid-column:1 / -1; margin:0; padding:10px 12px; border-radius:8px; font-size:.86rem; }
.codificar-contact-form__notice.is-success { background:#e8f7ed; color:#0c4a2c; }
.codificar-contact-form__notice.is-error { background:#fff0ef; color:#8a241b; }
@media(max-width:767px) { .codificar-contact-form { grid-template-columns:1fr; gap:10px; }.codificar-contact-form p:nth-of-type(4) { grid-column:auto; } }

/* Cards comparativos: o fundo acompanha o conteúdo e os ícones voltam a ter presença visual. */
.elementor .elementor-element.elementor-element-fc252a3,
.elementor .elementor-element.elementor-element-1fff062,
.elementor .elementor-element.elementor-element-e3f564f,
.elementor .elementor-element.elementor-element-7f1391a,
.elementor .elementor-element.elementor-element-6116d0a,
.elementor .elementor-element.elementor-element-5a2b470,
.elementor .elementor-element.elementor-element-a608ebc,
.elementor .elementor-element.elementor-element-e3ec9f4,
.elementor .elementor-element.elementor-element-dd7337f,
.elementor .elementor-element.elementor-element-01b936b {
  align-self: flex-start !important;
  flex-grow: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 6px !important;
}
.elementor .elementor-element.elementor-element-0b6ab8f > .e-con-inner,
.elementor .elementor-element.elementor-element-bed8930 > .e-con-inner,
.elementor .elementor-element.elementor-element-5c7c768 > .e-con-inner,
.elementor .elementor-element.elementor-element-49c5cfc > .e-con-inner { align-items: flex-start !important; }
.elementor .elementor-widget-icon-box .elementor-icon,
.elementor .elementor-widget-icon-box .elementor-icon i,
.elementor .elementor-widget-icon-box .elementor-icon svg {
  width: 34px !important;
  height: 34px !important;
  font-size: 34px !important;
  line-height: 34px !important;
}
.elementor .elementor-widget-icon-box .elementor-icon-box-icon { margin-bottom: 6px !important; }
.elementor .elementor-widget-icon-box .elementor-icon-box-title,
.elementor .elementor-widget-icon-box .elementor-icon-box-title a { font-size: .92rem !important; }
.elementor .elementor-widget-icon-box .elementor-icon-box-description,
.elementor .elementor-widget-icon-box .elementor-icon-box-description p { font-size: .78rem !important; line-height: 1.32 !important; }

/* Largura adicional somente nas grades comparativas; reduz quebras de linha e a altura dos cartões. */
@media (min-width: 1025px) {
  .elementor.elementor-5 > .elementor-element.elementor-element-6c0fb31 > .e-con-inner,
  .elementor.elementor-6 > .elementor-element.elementor-element-6c0fb31 > .e-con-inner,
  .elementor.elementor-7 > .elementor-element.elementor-element-6c0fb31 > .e-con-inner { width: min(100% - 48px, 1040px) !important; max-width: 1040px !important; }
}

/* Correção final da grade Tech Stack: logos legíveis e cartões baixos, sem área vazia. */
.elementor .elementor-element.elementor-element-778247f3 > .e-con-inner {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
  gap: 8px !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-12e90fe5 {
  gap: 8px !important;
  padding: 0 !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-24816bd,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-461effa {
  gap: 10px !important;
  padding: 0 !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-24816bd { margin-top: 8px !important; }
.elementor .elementor-element.elementor-element-778247f3 .e-con.e-child {
  min-height: 0 !important;
  height: auto !important;
  padding: 10px 12px !important;
  gap: 4px !important;
  justify-content: flex-start !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image .elementor-widget-container {
  margin: 0 !important;
  line-height: 0 !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image img {
  width: auto !important;
  max-width: 132px !important;
  max-height: 78px !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  object-fit: contain !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-heading .elementor-heading-title {
  margin: 2px 0 !important;
  font-size: .78rem !important;
  line-height: 1.15 !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor p {
  margin: 0 !important;
  font-size: .72rem !important;
  line-height: 1.25 !important;
}
@media (max-width: 767px) {
  .elementor .elementor-element.elementor-element-778247f3 > .e-con-inner { padding-block: 20px !important; }
  .elementor .elementor-element.elementor-element-778247f3 .e-con.e-child { padding: 10px !important; }
  .elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image img { max-width: 116px !important; max-height: 68px !important; }
}

/* A área de cada card não recebe mais o mesmo preenchimento dos agrupadores. */
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-24816bd,
.elementor .elementor-element.elementor-element-778247f3 .elementor-element.elementor-element-461effa {
  padding: 0 !important;
}
.elementor .elementor-element.elementor-element-778247f3 .e-con.e-child {
  padding: 7px 10px !important;
  gap: 2px !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-heading,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-icon-box,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-text-editor {
  padding: 0 !important;
  margin: 0 !important;
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image img {
  max-width: 112px !important;
  max-height: 68px !important;
  transform: scale(1.28);
}
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-image { padding-block: 3px !important; }

/* CTAs da LP: texto e ícones brancos sobre o fundo verde. */
.elementor .elementor-button,
.elementor .elementor-button .elementor-button-text,
.elementor .elementor-button .elementor-button-icon,
.elementor .elementor-button .elementor-button-icon i {
  color: #fff !important;
}
.elementor .elementor-button .elementor-button-icon svg {
  fill: currentColor !important;
}

/* Depoimentos: elimina a sobreposição e remove o espaço vertical excessivo. */
.elementor .elementor-element.elementor-element-206866ec {
  margin-top: 0 !important;
  z-index: auto !important;
}
.elementor .elementor-element.elementor-element-7c85507b > .e-con-inner {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}
.elementor .elementor-element.elementor-element-7c85507b .elementor-element.elementor-element-2bac71ab {
  padding: 0 !important;
  gap: 10px !important;
}
.elementor .elementor-element.elementor-element-7c85507b .elementor-element.elementor-element-2cb9580f .elementor-heading-title,
.elementor .elementor-element.elementor-element-7c85507b .elementor-element.elementor-element-bb90cc6 .elementor-heading-title {
  margin-top: 6px !important;
  margin-bottom: 4px !important;
}
.elementor .elementor-element.elementor-element-7c85507b .elementor-element.elementor-element-5edc9975 {
  margin: 0 !important;
}
.elementor .elementor-element.elementor-element-7c85507b .elementor-element.elementor-element-5edc9975 .elementor-heading-title {
  margin: 0 !important;
  font-size: 72px !important;
  line-height: .8 !important;
}
.elementor .elementor-element.elementor-element-7c85507b .codificar-testimonials {
  margin-top: 4px !important;
}
@media (max-width: 767px) {
  .elementor .elementor-element.elementor-element-7c85507b > .e-con-inner { padding-block: 20px !important; }
  .elementor .elementor-element.elementor-element-7c85507b .elementor-element.elementor-element-5edc9975 .elementor-heading-title { font-size: 58px !important; }
}

/* Especificidade necessária para substituir o padding legado do fundo de depoimentos. */
.elementor.elementor-5 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
.elementor.elementor-6 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
.elementor.elementor-7 > .elementor-element.elementor-element-7c85507b > .e-con-inner {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}
@media (max-width: 767px) {
  .elementor.elementor-5 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
  .elementor.elementor-6 > .elementor-element.elementor-element-7c85507b > .e-con-inner,
  .elementor.elementor-7 > .elementor-element.elementor-element-7c85507b > .e-con-inner { padding-block: 20px !important; }
}

/* Alinhamento coerente por contexto: cards e chamadas centralizados; texto corrido preserva leitura à esquerda. */
.elementor .elementor-element.elementor-element-6c0fb31 .elementor-widget-icon-box,
.elementor .elementor-element.elementor-element-6c0fb31 .elementor-widget-icon-box .elementor-icon-box-content,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-icon-box,
.elementor .elementor-element.elementor-element-778247f3 .elementor-widget-icon-box .elementor-icon-box-content {
  text-align: center !important;
}
.elementor .elementor-element.elementor-element-5c89eaf6,
.elementor .elementor-element.elementor-element-5c89eaf6 p {
  text-align: center !important;
}

/* Bloco de projetos de sucesso: impede que o carrossel cubra o título e o texto introdutório. */
.elementor.elementor-5 > .elementor-element.elementor-element-206866ec,
.elementor.elementor-6 > .elementor-element.elementor-element-206866ec,
.elementor.elementor-7 > .elementor-element.elementor-element-206866ec {
  position: relative !important;
  z-index: 2 !important;
  isolation: isolate !important;
}
.elementor.elementor-5 > .elementor-element.elementor-element-206866ec .elementor-heading-title,
.elementor.elementor-6 > .elementor-element.elementor-element-206866ec .elementor-heading-title,
.elementor.elementor-7 > .elementor-element.elementor-element-206866ec .elementor-heading-title {
  color: #123126 !important;
}
.elementor.elementor-5 > .elementor-element.elementor-element-206866ec .elementor-widget-text-editor,
.elementor.elementor-5 > .elementor-element.elementor-element-206866ec .elementor-widget-text-editor p,
.elementor.elementor-6 > .elementor-element.elementor-element-206866ec .elementor-widget-text-editor,
.elementor.elementor-6 > .elementor-element.elementor-element-206866ec .elementor-widget-text-editor p,
.elementor.elementor-7 > .elementor-element.elementor-element-206866ec .elementor-widget-text-editor,
.elementor.elementor-7 > .elementor-element.elementor-element-206866ec .elementor-widget-text-editor p {
  color: #557064 !important;
}
.elementor.elementor-5 > .elementor-element.elementor-element-a5a6382,
.elementor.elementor-6 > .elementor-element.elementor-element-a5a6382,
.elementor.elementor-7 > .elementor-element.elementor-element-a5a6382 {
  margin-top: 0 !important;
  z-index: 1 !important;
}
@media (max-width: 767px) {
  .elementor.elementor-5 > .elementor-element.elementor-element-206866ec > .e-con-inner,
  .elementor.elementor-6 > .elementor-element.elementor-element-206866ec > .e-con-inner,
  .elementor.elementor-7 > .elementor-element.elementor-element-206866ec > .e-con-inner { padding-block: 22px !important; }
  .elementor.elementor-5 > .elementor-element.elementor-element-a5a6382 > .e-con-inner,
  .elementor.elementor-6 > .elementor-element.elementor-element-a5a6382 > .e-con-inner,
  .elementor.elementor-7 > .elementor-element.elementor-element-a5a6382 > .e-con-inner { padding-block: 28px 34px !important; }
}
