.elementor-kit-9{--e-global-color-primary:#191C20;--e-global-color-secondary:#7B2D2F;--e-global-color-text:#5B616A;--e-global-color-accent:#5E1E20;--e-global-color-42bdc1fe:#F1F2F3;--e-global-color-ad992260:#DCE0E4;--e-global-color-c1ef7120:#C4666A;--e-global-color-890818a8:#D9DDE1;--e-global-typography-primary-font-family:"Spectral";--e-global-typography-primary-font-weight:600;--e-global-typography-primary-line-height:1.1em;--e-global-typography-primary-letter-spacing:-0.5px;--e-global-typography-secondary-font-family:"Spectral";--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-line-height:1.25em;--e-global-typography-text-font-family:"Archivo";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.7em;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-size:12px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.4em;--e-global-typography-accent-letter-spacing:2.2px;color:#5B616A;font-family:"Archivo", Sans-serif;font-size:17px;font-weight:400;line-height:1.7em;}.elementor-kit-9 e-page-transition{background-color:#FFBC7D;}.elementor-kit-9 a{color:#7B2D2F;}.elementor-kit-9 a:hover{color:#5E1E20;}.elementor-kit-9 h1{color:#191C20;font-family:"Spectral", Sans-serif;font-size:56px;font-weight:600;line-height:1.08em;letter-spacing:-0.6px;}.elementor-kit-9 h2{color:#191C20;font-family:"Spectral", Sans-serif;font-size:42px;font-weight:600;line-height:1.08em;letter-spacing:-0.6px;}.elementor-kit-9 h3{color:#191C20;font-family:"Spectral", Sans-serif;font-size:28px;font-weight:600;line-height:1.25em;letter-spacing:-0.6px;}.elementor-kit-9 h4{color:#191C20;font-family:"Spectral", Sans-serif;font-size:21px;font-weight:600;line-height:1.25em;letter-spacing:0px;}.elementor-kit-9 h5{color:#191C20;font-family:"Spectral", Sans-serif;font-size:18px;font-weight:600;line-height:1.25em;letter-spacing:0px;}.elementor-kit-9 h6{color:#191C20;font-family:"Spectral", Sans-serif;font-size:16px;font-weight:600;line-height:1.25em;letter-spacing:0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}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-kit-9{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background: #7B2D2F; color: #FFFFFF; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid #7B2D2F; outline-offset: 3px; }

/* Rotulo de secao com fio a esquerda */
.fx-eyebrow .elementor-heading-title::before { content: ''; display: inline-block; width: 30px; height: 1px; background: currentColor; vertical-align: middle; margin-right: 14px; opacity: .75; }

/* Sublinhado que cresce da esquerda */
.fx-underline a, a.fx-underline { position: relative; text-decoration: none; }
.fx-underline a::after, a.fx-underline::after { content: ''; position: absolute; left: 0; bottom: -3px; height: 1px; width: 100%; background: currentColor; transform: scaleX(0); transform-origin: left center; transition: transform .24s cubic-bezier(.4, 0, .2, 1); }
.fx-underline a:hover::after, a.fx-underline:hover::after { transform: scaleX(1); }

/* Botoes */
.elementor-button { transition: background-color .22s ease, border-color .22s ease, color .22s ease, transform .22s ease, box-shadow .22s ease; }
.fx-lift .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -14px rgba(25, 28, 32, .6); }

/* ---------- Cabecalho ---------- */
.site-header .hdr-topbar { overflow: hidden; min-height: 0; max-height: 60px; transition: max-height .3s ease, opacity .25s ease; }
.site-header .hdr-bar > .e-con, .site-header .hdr-bar img { transition: min-height .3s ease, width .3s ease; }
.site-header.elementor-sticky--effects .hdr-topbar { min-height: 0 !important; max-height: 0 !important; opacity: 0 !important; }
.site-header.elementor-sticky--effects { box-shadow: 0 10px 30px -20px rgba(25, 28, 32, .55) !important; }
.site-header.elementor-sticky--effects .hdr-bar > .e-con { min-height: 68px !important; }
.site-header.elementor-sticky--effects .hdr-bar img { width: 128px !important; }

/* ---------- Componentes ---------- */
/* Retrato com bloco de acento atras */
.retrato-wrap { position: relative; }
.retrato-wrap::before { content: ''; position: absolute; left: -28px; top: -28px; width: 62%; height: 54%; background: #7B2D2F; z-index: 0; }
.retrato-wrap .elementor-widget-image { position: relative; z-index: 1; }
.retrato-img img { display: block; width: 100%; height: auto; }
@media (max-width: 767px) { .retrato-wrap::before { left: -14px; top: -14px; } }

/* Indice de areas */
.area-row { position: relative; text-decoration: none; transition: background-color .25s ease; }
.area-row::before { content: ''; position: absolute; left: 0; top: -1px; bottom: -1px; width: 2px; background: #7B2D2F; transform: scaleY(0); transform-origin: top center; transition: transform .28s cubic-bezier(.4, 0, .2, 1); }
.area-row::after { content: '→'; position: absolute; right: 26px; top: 28px; color: #7B2D2F; font-family: Archivo, sans-serif; font-size: 18px; line-height: 1; opacity: 0; transform: translateX(-8px); transition: opacity .25s ease, transform .25s ease; }
.area-row:hover { background: #FFFFFF; }
.area-row:hover::before { transform: scaleY(1); }
.area-row:hover::after { opacity: 1; transform: translateX(0); }
.area-row .elementor-heading-title { transition: color .25s ease; }
.area-row:hover h3.elementor-heading-title { color: #7B2D2F; }
@media (min-width: 768px) { .areas-grid > .e-con:nth-child(odd) { border-right: 1px solid #DCE0E4; } }

/* Grades separadas por fio */
@media (min-width: 768px) { .dif-grid > .e-con:nth-child(odd) { border-right: 1px solid #2E333A; } }
.dif-cell .elementor-icon { transition: transform .25s ease; }
.dif-cell:hover .elementor-icon { transform: translateY(-4px); }
@media (min-width: 768px) { .grid-fios > .e-con:nth-child(odd) { border-right: 1px solid #DCE0E4; } }

/* Depoimentos */
.quote-cell::before { content: '“'; display: block; font-family: Spectral, serif; font-size: 58px; line-height: .55; color: #7B2D2F; opacity: .3; margin-bottom: 12px; }
@media (min-width: 1025px) { .quotes > .e-con + .e-con { border-left: 1px solid #DCE0E4; } }
.credenciais { border-top: 1px solid #DCE0E4; }

/* Lista de contato */
.contato-lista .elementor-icon-list-item { transition: transform .2s ease; }
.contato-lista .elementor-icon-list-item:hover { transform: translateX(5px); }

/* Formulario */
.form-contato .elementor-field-textual { transition: border-color .2s ease, box-shadow .2s ease; padding-inline: 2px; }
.form-contato .elementor-field-textual:focus { border-bottom-color: #7B2D2F; box-shadow: 0 1px 0 0 #7B2D2F; outline: none; }
.form-contato .elementor-field-textual::placeholder { color: #A6ACB3; }
.form-contato .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -14px rgba(25, 28, 32, .6); }

/* Trilha de navegacao */
.breadcrumb a { color: #C4666A; text-decoration: none; transition: color .2s ease; }
.breadcrumb a:hover { color: #FFFFFF; }

/* Caixa de servicos */
.servicos-box .elementor-icon-list-item { align-items: flex-start; }
.servicos-box .elementor-icon-list-icon { padding-top: 5px; }

/* Perguntas frequentes */
.faq .elementor-tab-title { transition: color .2s ease, background-color .2s ease; }
.faq .elementor-tab-title:hover { color: #7B2D2F; }
.faq .elementor-accordion-icon { transition: transform .2s ease; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  .elementor-invisible { visibility: visible !important; animation: none !important; }
}

/* Sanfona: o titulo e um h3 e herdava o tamanho do kit */
.faq .elementor-tab-title { font-family: Spectral, serif; font-size: 19px; font-weight: 600; line-height: 1.45; letter-spacing: -0.2px; padding: 20px 26px 20px 0; }
.faq .elementor-tab-title .elementor-accordion-icon { margin-right: 0; }
.faq .elementor-tab-content { padding: 0 0 24px 0; }
.faq .elementor-accordion-item { border-left: 0 !important; border-right: 0 !important; border-top: 0 !important; }
.faq .elementor-accordion-item:first-child { border-top: 1px solid #DCE0E4 !important; }

/* Animação de entrada: rede de segurança.
   O Elementor esconde o bloco com .elementor-invisible ate o JS revelar.
   Se o JS nao rodar, o conteudo aparece sozinho em 5s. */
@keyframes brandao-failsafe { to { visibility: visible; } }
.elementor-invisible { animation: brandao-failsafe 0s linear 5s forwards; }
@media (scripting: none) {
  .elementor-invisible { visibility: visible !important; animation: none !important; }
}

/* Contadores das estatisticas: o widget vem centralizado e com folga
   entre numero e sufixo por causa do flex-grow do proprio Elementor. */
.stat-counter .elementor-counter-number-wrapper { justify-content: flex-start; }
.stat-counter .elementor-counter-number-prefix,
.stat-counter .elementor-counter-number-suffix { flex-grow: 0; white-space: normal; }
.stat-counter .elementor-counter-title { text-align: left; }

/* Sem JS o contador ficaria em zero. Aqui ele cai para o valor real,
   lido do proprio data-to-value do widget. */
@media (scripting: none) {
  .stat-counter .elementor-counter-number { font-size: 0; }
  .stat-counter .elementor-counter-number::after {
    content: attr(data-to-value);
    font-size: 42px;
    line-height: 1;
  }
}/* End custom CSS */