.elementor-kit-5{--e-global-color-primary:#181C2B;--e-global-color-secondary:#3A4055;--e-global-color-text:#181C2B;--e-global-color-accent:#0E7FA8;--e-global-color-5039690:#32C6F4;--e-global-color-3a84cef:#E2E6EE;--e-global-color-70d30e2:#767D93;--e-global-color-dc30c47:#F5F8FB;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-size:48px;--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-size:24px;--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:20px;--e-global-typography-accent-font-weight:600;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1120px;}.e-con{--container-max-width:1120px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =====================================================================
   Life'n Tech — CSS companheiro dos templates
   Cole INTEIRO em: Elementor → Configurações do site → CSS personalizado
   Sem isso o site fica com texto atravessando a tela e colunas desiguais.
   ===================================================================== */

/* ---------- 1. LARGURA DE LEITURA ----------
   O Elementor estica texto na largura toda do container. Linha longa demais
   cansa e fica feia. Aqui limitamos como no HTML de referência.            */
.elementor .lt-measure { max-width: 62ch; }
.elementor .lt-h1 .elementor-heading-title { max-width: 17ch; }
@media (max-width: 767px) {
  .elementor .lt-measure { max-width: 100%; }
  .elementor .lt-h1 .elementor-heading-title { max-width: 100%; }
}

/* ---------- 2. COLUNAS IGUAIS ----------
   Containers do Elementor são flex e não expõem controle de flex-basis,
   então cards com textos de tamanhos diferentes ficam com larguras
   diferentes. Grid resolve: todas as colunas exatamente iguais.            */
.e-con.lt-c2, .e-con.lt-c3, .e-con.lt-c4 { display: grid; align-items: start; }
.e-con.lt-c2 { grid-template-columns: repeat(2, 1fr); }
.e-con.lt-c3 { grid-template-columns: repeat(3, 1fr); }
.e-con.lt-c4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
  .e-con.lt-c3, .e-con.lt-c4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .e-con.lt-c2, .e-con.lt-c3, .e-con.lt-c4 { grid-template-columns: 1fr; }
}

/* ---------- 3. BARRA DE CREDIBILIDADE ----------
   Divisórias entre os números, sem sobrar borda no primeiro.               */
.e-con.lt-cred-item:first-child {
  border-left: 0 !important;
  padding-left: 0 !important;
}
@media (max-width: 1024px) {
  .e-con.lt-cred-item {
    border-left: 0 !important;
    border-top: 1px solid #EEF2F7 !important;
    padding: 18px 0 !important;
  }
  .e-con.lt-cred-item:first-child { border-top: 0 !important; padding-top: 0 !important; }
}

/* ---------- 4. TIPOGRAFIA ----------
   Tracking do H1 encolhe junto com a fonte, senão as letras colam no mobile.
   text-wrap:balance distribui as linhas do título de forma mais equilibrada. */
.elementor h1, .elementor h2, .elementor h3 { text-wrap: balance; }
@media (max-width: 767px) {
  .elementor .lt-h1 .elementor-heading-title { letter-spacing: -1.2px !important; }
}

/* ---------- 5. BLOCOS COM FILETE ----------
   Garante respiro uniforme mesmo quando o texto tem alturas diferentes.    */
.e-con.lt-item { align-content: start; }

/* ---------- 6. AJUSTES GERAIS ---------- */
html { scroll-behavior: smooth; }
.elementor img { max-width: 100%; height: auto; }
@media (max-width: 767px) { body { overflow-x: hidden; } }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible {
  outline: 2px solid #0E7FA8; outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---------- 7. GTRANSLATE ---------- */
body { top: 0 !important; }
.skiptranslate iframe { display: none !important; }
#goog-gt-tt, .goog-te-balloon-frame { display: none !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }

.gtranslate_wrapper select, .switcher select {
  font-family: Inter, sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: .06em; color: #181C2B; background: #fff;
  border: 1px solid #E2E6EE; border-radius: 7px;
  padding: 7px 10px; cursor: pointer;
}
.gtranslate_wrapper select:hover { border-color: #767D93; }
.gtranslate_wrapper select:focus-visible { outline: 2px solid #0E7FA8; outline-offset: 2px; }

/* ---------- 8. FORMULÁRIOS (Contact Form 7) ---------- */
.fgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.fgrid .full { grid-column: 1 / -1; }
.fgrid p { margin: 0; }
.fgrid label { font-size: .82rem; font-weight: 600; color: #181C2B; display: block; }
.fgrid input, .fgrid select, .fgrid textarea {
  font-size: .96rem; color: #181C2B; background: #fff;
  border: 1px solid #E2E6EE; border-radius: 6px;
  padding: 12px 14px; width: 100%; margin-top: 7px;
}
.fgrid textarea { min-height: 118px; }
.fgrid input:focus, .fgrid select:focus, .fgrid textarea:focus {
  border-color: #0E7FA8; outline: none; box-shadow: 0 0 0 3px rgba(50,198,244,.16);
}
.fgrid input[type=submit] {
  background: #181C2B; color: #fff; font-weight: 600; border: 0;
  padding: 14px 28px; width: auto; cursor: pointer;
}
.fgrid input[type=submit]:hover { background: #0E7FA8; }
.wpcf7-response-output {
  border-left: 2px solid #32C6F4 !important; border-width: 0 0 0 2px !important;
  background: #F5F8FB; border-radius: 0 6px 6px 0;
  padding: 16px 20px !important; margin: 22px 0 0 !important;
}
@media (max-width: 640px) { .fgrid { grid-template-columns: 1fr; } }

/* ---------- 9. CABECALHO ----------
   Nao force o menu a encolher: min-width:0 faz os itens empilharem.
   O menu tem largura natural e vira hamburguer antes de faltar espaco.     */
.lt-header { flex-wrap: nowrap !important; }
.lt-header .lt-marca,
.lt-header .lt-idiomas,
.lt-header .lt-header-cta,
.lt-header .lt-menu { flex: 0 0 auto; }

/* o <ul> do menu e o que precisa de nowrap, nao o <nav> */
.lt-header .elementor-nav-menu { flex-wrap: nowrap !important; }
.lt-header .elementor-nav-menu > li > a { white-space: nowrap; }

/* BUG DO PRO ELEMENTS — o hamburguer nunca aparecia.
   O plugin emite  .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle{display:none}
   FORA de qualquer media query, e nunca emite a regra que mostra o toggle.
   No Elementor Pro original essa regra vive dentro de @media (min-width:1025px).
   Abaixo, a correcao: hamburguer visivel ate 1024, menu horizontal a partir de 1025. */
@media (max-width: 1024px) {
  .lt-header .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,
  .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle { display: flex !important; }
  .lt-header .elementor-nav-menu--main,
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main { display: none !important; }
}
@media (min-width: 1025px) {
  .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle { display: none !important; }
}

/* no hamburguer o painel abre em coluna, como esperado */
.lt-header .elementor-nav-menu--dropdown .elementor-nav-menu { flex-wrap: wrap !important; }

html, body { max-width: 100%; overflow-x: clip; }

/* ---------- 10. HALFTONE ----------
   Textura de pontos sobre a pagina inteira, para o design nao ficar chapado.
   Pontos escuros em multiply: e o que aparece sobre fundo branco.
   (A versao original com #fff + plus-lighter e invisivel no claro —
    plus-lighter so clareia, e branco sobre branco nao muda nada.)          */
html::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image: radial-gradient(at 20% 80%, #0E0F12 1px, transparent 0px);
  background-size: 3px 3px;
  pointer-events: none;
  z-index: 999;
  opacity: 0.045;
  mix-blend-mode: multiply;
  user-select: none;
}

/* ---------- 11. ACABAMENTO VISUAL ---------- */

/* cards reagem ao mouse: sem isso a pagina parece uma imagem estatica */
.e-con.lt-card, .e-con.lt-pessoa, .e-con.lt-etapa {
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.e-con.lt-card:hover, .e-con.lt-pessoa:hover {
  transform: translateY(-3px);
  box-shadow: 0 1px 2px rgba(24,28,43,.04), 0 12px 32px rgba(24,28,43,.08);
}
.e-con.lt-card:hover { border-color: #B9C0D4; }
.e-con.lt-etapa:hover { border-top-color: #32C6F4; }

/* o visual do hero nao pode dominar o mobile */
@media (max-width: 767px) {
  .e-con.lt-hero-visual { min-height: 200px !important; }
}

/* imagem de fundo dos cards com leve escurecida no hover, para dar profundidade */
.e-con.lt-card > .e-con:first-child { transition: filter .25s ease; }
.e-con.lt-card:hover > .e-con:first-child { filter: saturate(1.08) contrast(1.03); }

/* links do rodape e do menu com transicao suave */
.elementor a { transition: color .16s ease; }

/* ---------- 12. ACORDEAO DOS DIFERENCIAIS ----------
   Base: grid de 3 iguais (nativo, e o que o editor mostra).
   Aqui o grid vira flex e o card sob o cursor cresce, como na referencia.
   Progressive enhancement: se este CSS nao carregar, continuam 3 cards iguais. */
@media (min-width: 1025px) and (hover: hover) {
  .e-con.lt-acc { display: flex !important; gap: 14px; }
  .e-con.lt-acc > .e-con {
    flex: 1 1 0 !important;
    min-width: 0;
    transition: flex-grow .8s cubic-bezier(.22,1,.36,1);
  }
  .e-con.lt-acc > .e-con:hover { flex-grow: 2.4; }
  /* o texto respira quando o card abre */
  .e-con.lt-acc > .e-con .elementor-widget-text-editor {
    opacity: .82; transition: opacity .5s ease;
  }
  .e-con.lt-acc > .e-con:hover .elementor-widget-text-editor { opacity: 1; }
}

/* ---------- 13. PAINEL DAS ETAPAS ----------
   Cards de vidro sobre o video: o blur separa o texto do movimento de fundo,
   que e o que torna o video legivel como fundo em vez de ruido.            */
.e-con.lt-etapa-card {
  background: rgba(255,255,255,.07) !important;
  -webkit-backdrop-filter: blur(16px) saturate(160%);
          backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 10px 34px rgba(0,0,0,.20);
  transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}
.e-con.lt-etapa-card:hover {
  background: rgba(255,255,255,.13) !important;
  border-color: rgba(50,198,244,.40) !important;
  transform: translateY(-2px);
}

/* sem suporte a backdrop-filter, vidro vira vidro fosco solido */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .e-con.lt-etapa-card { background: rgba(20,32,48,.72) !important; }
}

/* ---------- 14. VIDRO (estilo Apple) NOS FORMULARIOS ----------
   Vidro so existe se houver algo atras para desfocar: por isso o formulario
   fica sobre um gradiente suave (.lt-form-wrap), e o cartao (.lt-glass) borra
   o que esta atras dele.                                                     */
.e-con.lt-glass {
  -webkit-backdrop-filter: blur(22px) saturate(180%);
          backdrop-filter: blur(22px) saturate(180%);
  box-shadow:
    0 1px 1px rgba(24,28,43,.04),
    0 12px 40px rgba(14,79,104,.10),
    inset 0 1px 0 rgba(255,255,255,.85);
}

/* campos: vidro mais leve, para nao competir com o cartao */
.lt-form-glass input[type="text"],
.lt-form-glass input[type="email"],
.lt-form-glass input[type="tel"],
.lt-form-glass input[type="url"],
.lt-form-glass select,
.lt-form-glass textarea {
  background: rgba(255,255,255,.62) !important;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  border: 1px solid rgba(15,18,34,.09) !important;
  box-shadow: inset 0 1px 2px rgba(15,18,34,.03);
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.lt-form-glass input:hover, .lt-form-glass select:hover, .lt-form-glass textarea:hover {
  border-color: rgba(15,18,34,.18) !important;
}
.lt-form-glass input:focus, .lt-form-glass select:focus, .lt-form-glass textarea:focus {
  background: rgba(255,255,255,.92) !important;
  border-color: #0E7FA8 !important;
  box-shadow: 0 0 0 3px rgba(50,198,244,.18) !important;
  outline: none;
}
.lt-form-glass ::placeholder { color: #8A93A6; }

/* upload de curriculo */
.lt-form-glass input[type="file"] {
  background: rgba(255,255,255,.62) !important;
  border: 1px dashed rgba(15,18,34,.16) !important;
  border-radius: 10px; padding: 12px 14px;
}

/* mensagens de retorno */
.lt-form-glass .elementor-message {
  border-left: 2px solid #32C6F4; background: rgba(255,255,255,.7);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-radius: 0 8px 8px 0; padding: 14px 18px; margin-top: 16px;
}

/* navegador sem suporte a backdrop-filter: cai para branco solido */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .e-con.lt-glass { background: rgba(255,255,255,.94) !important; }
  .lt-form-glass input, .lt-form-glass select, .lt-form-glass textarea {
    background: #fff !important;
  }
}/* End custom CSS */