/* Compatibilidade WordPress + Elementor Free sem alterar a identidade original. */
body.admin-bar .topo { top: 32px; }
body.admin-bar .nav-painel { padding-top: 32px; }
.kanion-elementor-content { overflow: clip; }
.kanion-elementor-content > .elementor { width: 100%; }
.kanion-elementor-content .elementor-section.elementor-section-stretched,
.kanion-elementor-content .elementor-section.elementor-section-full_width,
.kanion-elementor-content .e-con.e-con-full { width: 100%; max-width: none; }
.kanion-elementor-content .elementor-column-gap-no > .elementor-column > .elementor-element-populated { padding: 0; }
.kanion-elementor-content .elementor-widget-kanion_faithful_section > .elementor-widget-container { margin: 0; padding: 0; }
.kanion-elementor-content .elementor-widget-kanion_faithful_section { margin-bottom: 0; }
.kanion-template-location .elementor-widget-kanion_faithful_section > .elementor-widget-container { margin:0; padding:0; }
@media (max-width: 782px) {
  body.admin-bar .topo { top: 46px; }
  body.admin-bar .nav-painel { padding-top: 46px; }
}

/* Header Builder: remove as caixas intermediárias do Elementor para que position:sticky/fixed
   continue se comportando exatamente como no HTML original. */
.kanion-template-location--header,
.kanion-template-location--header > .elementor,
.kanion-template-location--header .elementor-section,
.kanion-template-location--header .elementor-container,
.kanion-template-location--header .elementor-column,
.kanion-template-location--header .elementor-widget-wrap,
.kanion-template-location--header .elementor-widget,
.kanion-template-location--header .elementor-widget-container { display: contents; }

/* Kanion Kit 2.0 — widgets visuais estruturados para Elementor Free. */
.kanion-elementor-content .elementor-widget-kanion_visual_section,
.kanion-elementor-content .elementor-widget-kanion_visual_section > .elementor-widget-container,
.kanion-template-location .elementor-widget-kanion_header > .elementor-widget-container,
.kanion-template-location .elementor-widget-kanion_footer > .elementor-widget-container { margin: 0; padding: 0; }
.kanion-elementor-content .elementor-widget-kanion_visual_section { margin-bottom: 0; }
.kanion-visual-root .midia-texto h2,
.kanion-contact-grid h2 {
  font-size: var(--fs-h2);
  font-weight: 250;
  margin-bottom: 1.2rem;
  letter-spacing: -.015em;
}
.kanion-visual-root .kanion-footer-link { margin-top: 2.2rem; }
.kanion-visual-root .grade + .kanion-footer-link { margin-top: 2.5rem; }
.kanion-contact-intro { margin-bottom: 2.2rem; }
.kanion-visual-root .texto-guia + .texto-guia { margin-top: 1.2rem; }

/* O Header precisa se comportar como elemento raiz para o sticky/mobile original. */
.kanion-template-location--header .elementor-widget-kanion_header,
.kanion-template-location--header .elementor-widget-kanion_header > .elementor-widget-container { display: contents; }
.kanion-template-location--footer .elementor-section,
.kanion-template-location--footer .elementor-container,
.kanion-template-location--footer .elementor-column,
.kanion-template-location--footer .elementor-widget-wrap,
.kanion-template-location--footer .elementor-widget,
.kanion-template-location--footer .elementor-widget-container { margin: 0; }
.kanion-template-location--footer .elementor-column-gap-no > .elementor-column > .elementor-element-populated { padding: 0; }

/* Kanion 2.1 — alinhamento e segurança visual de logos */
.nav-marca { line-height: 0; min-width: 1px; }
.nav-marca img { max-width: min(220px, 28vw); }
.rodape-marca img { height: 46px; width: auto; max-width: min(240px, 64vw); }
.kanion-title-width,
.kanion-text-width { width: 100%; }

/* No editor, os elementos animados precisam permanecer visíveis enquanto são ajustados. */
body.elementor-editor-active [data-revelar] { opacity: 1 !important; transform: none !important; }

/* Kanion 2.2 — mobile: header centralizado e menu seguro em telas baixas. */
@media (max-width: 1000px) {
  .topo .nav,
  .kanion-header-root .topo .nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .topo .nav-marca,
  .kanion-header-root .topo .nav-marca {
    display: flex;
    align-items: center;
    align-self: stretch;
  }
  .topo .nav-abrir,
  .kanion-header-root .topo .nav-abrir {
    align-self: center;
    margin-top: 0;
    margin-bottom: 0;
  }
}

/* Kanion 2.3 — refinamentos de alinhamento e menu mobile. */
.kanion-header-root .topo .wrap.nav {
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
}
.rodape-logo-link { display: inline-flex; line-height: 0; }
.rodape-legal { align-items: baseline; }

@media (max-width: 1000px) {
  .topo .nav-marca, .kanion-header-root .topo .nav-marca { margin-right: auto; }
  .topo .nav-abrir, .kanion-header-root .topo .nav-abrir { margin-left: auto; }
  .rodape-legal { align-items: flex-start; }
}

/* Kanion 2.4 — correções de Header/Footer no Elementor e alinhamentos solicitados. */

/* O header claro volta a uma grade de três áreas equilibradas. O menu fica no
   centro sem invadir a marca nem o CTA. O header escuro/sobreposto mantém o
   comportamento aprovado da versão anterior. */
@media (min-width: 1001px) {
  .kanion-header-root .topo:not(.topo--sobreposto) .wrap.nav,
  body:not(.home) .topo:not(.topo--sobreposto) .wrap.nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: clamp(.9rem, 1.6vw, 1.6rem);
  }
  .kanion-header-root .topo:not(.topo--sobreposto) .nav > nav,
  body:not(.home) .topo:not(.topo--sobreposto) .nav > nav {
    position: static;
    left: auto;
    top: auto;
    transform: none;
    justify-self: center;
    min-width: 0;
  }
  .kanion-header-root .topo:not(.topo--sobreposto) .nav-marca,
  body:not(.home) .topo:not(.topo--sobreposto) .nav-marca { justify-self: start; }
  .kanion-header-root .topo:not(.topo--sobreposto) .nav-acao,
  body:not(.home) .topo:not(.topo--sobreposto) .nav-acao { justify-self: end; }
  .kanion-header-root .topo:not(.topo--sobreposto) .nav-menu,
  body:not(.home) .topo:not(.topo--sobreposto) .nav-menu {
    gap: clamp(.85rem, 1.55vw, 1.6rem);
  }
}

/* Sobrelinhas sempre partem da margem esquerda, inclusive quando o cabeçalho
   da seção está em grid ou recebe estilos do Elementor. */
.kanion-visual-root .sobrelinha,
.cabecalho-secao--largo .sobrelinha {
  justify-self: start;
  justify-content: flex-start;
  align-self: flex-start;
  width: 100%;
  margin-left: 0;
  margin-right: auto;
  text-align: left;
}

/* No mobile o conteúdo principal do Hero da Home ocupa o centro vertical da
   viewport. O header continua sobreposto e o conteúdo preserva folga segura. */
@media (max-width: 760px) {
  .kanion-visual-root.hero,
  .hero {
    align-items: center;
    min-height: 100svh;
    padding-top: var(--nav-h);
    padding-bottom: 0;
  }
  .kanion-visual-root.hero .hero-conteudo,
  .hero .hero-conteudo {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: calc(100svh - var(--nav-h));
    padding-top: clamp(1.25rem, 4vh, 2.2rem);
    padding-bottom: clamp(1.25rem, 4vh, 2.2rem);
  }
}


/* Kanion 2.5 — menu claro no centro real e hover das etapas sem recorte. */
@media (min-width: 1001px) {
  /* Usa o mesmo eixo central do header escuro. A marca e o CTA continuam nas
     extremidades, enquanto a navegação fica ancorada no centro da viewport. */
  .kanion-header-root .topo:not(.topo--sobreposto) .wrap.nav,
  body:not(.home) .topo:not(.topo--sobreposto) .wrap.nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    gap: 1.25rem;
  }
  .kanion-header-root .topo:not(.topo--sobreposto) .nav > nav,
  body:not(.home) .topo:not(.topo--sobreposto) .nav > nav {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    justify-self: auto;
    min-width: 0;
    z-index: 1;
  }
  .kanion-header-root .topo:not(.topo--sobreposto) .nav-marca,
  body:not(.home) .topo:not(.topo--sobreposto) .nav-marca,
  .kanion-header-root .topo:not(.topo--sobreposto) .nav-acao,
  body:not(.home) .topo:not(.topo--sobreposto) .nav-acao {
    position: relative;
    z-index: 2;
  }
  .kanion-header-root .topo:not(.topo--sobreposto) .nav-menu,
  body:not(.home) .topo:not(.topo--sobreposto) .nav-menu {
    gap: clamp(.8rem, 1.45vw, 1.45rem);
  }
}

/* O cartão sobe 4px no hover. O trilho rolável precisa de espaço acima para
   que a borda/linha dourada não seja cortada pelo clipping do scroll. */
.carrossel--etapas .carrossel-trilho {
  padding-top: 6px;
  margin-top: -6px;
}


/* Kanion 2.6 — header claro estável: 3 áreas reais, sem position:absolute.
   As colunas laterais têm a mesma largura; por isso a navegação ocupa o centro
   geométrico sem invadir a marca nem o CTA. O header escuro permanece intocado. */
@media (min-width: 1001px) {
  .kanion-header-root--clear .topo .wrap.nav {
    display: grid !important;
    grid-template-columns: minmax(205px, 1fr) auto minmax(205px, 1fr) !important;
    align-items: center !important;
    justify-content: initial !important;
    column-gap: clamp(.75rem, 1.2vw, 1.15rem) !important;
    position: relative;
  }

  .kanion-header-root--clear .topo .nav-marca {
    grid-column: 1;
    justify-self: start;
    align-self: center;
    position: static !important;
    margin: 0 !important;
    z-index: 1;
  }

  .kanion-header-root--clear .topo .nav > nav {
    grid-column: 2;
    justify-self: center;
    align-self: center;
    position: static !important;
    inset: auto !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    margin: 0 !important;
    z-index: 1;
  }

  .kanion-header-root--clear .topo .nav-acao {
    grid-column: 3;
    justify-self: end;
    align-self: center;
    position: static !important;
    margin: 0 !important;
    z-index: 1;
  }

  .kanion-header-root--clear .topo .nav-menu {
    justify-content: center;
    flex-wrap: nowrap;
    gap: clamp(.72rem, 1.3vw, 1.35rem);
  }

  .kanion-header-root--clear .topo .nav-link,
  .kanion-header-root--clear .topo .nav-acao .btn {
    white-space: nowrap;
  }
}

/* Próximo do breakpoint desktop, reduzimos só os espaços — nunca deslocamos
   a navegação ou sobrepomos a marca. */
@media (min-width: 1001px) and (max-width: 1120px) {
  .kanion-header-root--clear .topo .wrap.nav {
    grid-template-columns: minmax(185px, 1fr) auto minmax(185px, 1fr) !important;
    column-gap: .65rem !important;
  }
  .kanion-header-root--clear .topo .nav-menu { gap: .68rem; }
  .kanion-header-root--clear .topo .nav-link { font-size: .9rem; }
  .kanion-header-root--clear .topo .nav-acao .btn { padding-inline: 1.1rem; }
}

/* Kanion 2.7 — header claro centralizado pela viewport, inclusive dentro dos
   wrappers/containers do Elementor. O problema anterior era o "centro" ser
   calculado pela largura do widget/section. Aqui o topo escapa desse limite e
   ocupa 100vw; a grade interna continua protegendo logo e CTA. */
@media (min-width: 1001px) {
  .kanion-header-root--clear {
    width: 100% !important;
    max-width: none !important;
    overflow: visible !important;
  }

  .kanion-header-root--clear .topo {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }

  .kanion-header-root--clear .topo .wrap.nav {
    width: 100% !important;
    max-width: var(--wrap) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--gutter) !important;
    padding-right: var(--gutter) !important;
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: center !important;
    column-gap: clamp(.8rem, 1.3vw, 1.35rem) !important;
  }

  .kanion-header-root--clear .topo .nav-marca {
    grid-column: 1 !important;
    justify-self: start !important;
    min-width: 0 !important;
  }

  .kanion-header-root--clear .topo .nav > nav {
    grid-column: 2 !important;
    justify-self: center !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
  }

  .kanion-header-root--clear .topo .nav-acao {
    grid-column: 3 !important;
    justify-self: end !important;
    min-width: 0 !important;
  }
}

/* O preview do Elementor deve reproduzir a mesma referência de largura do site. */
.elementor-widget-kanion_header,
.elementor-widget-kanion_header > .elementor-widget-container {
  max-width: none !important;
}

/* Kanion 2.7 — remove qualquer contenção de largura criada pelo Elementor na
   localização global do cabeçalho. Isso garante que 50% seja sempre o centro
   da tela, não o centro de uma section boxed. */
@media (min-width: 1001px) {
  .kanion-template-location--header,
  .kanion-template-location--header > .elementor,
  .kanion-template-location--header .elementor-section-wrap,
  .kanion-template-location--header .elementor-section,
  .kanion-template-location--header .elementor-container,
  .kanion-template-location--header .elementor-column,
  .kanion-template-location--header .elementor-column-wrap,
  .kanion-template-location--header .elementor-widget-wrap,
  .kanion-template-location--header .elementor-widget-kanion_header,
  .kanion-template-location--header .elementor-widget-kanion_header > .elementor-widget-container {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .kanion-template-location--header .elementor-section,
  .kanion-template-location--header .elementor-container {
    left: auto !important;
  }
}

/* Kanion 2.9 — correção definitiva do header claro.
   Desktop preservado. No mobile: logo à esquerda e hamburger à direita.
   O topo claro usa position:fixed diretamente na viewport; o root mantém um
   espaço no fluxo para o conteúdo não subir por baixo do cabeçalho. */
.kanion-header-root--clear {
  position: relative !important;
  top: auto !important;
  z-index: 100;
  min-height: var(--kanion-header-height, var(--nav-h));
}

.kanion-header-root--clear .topo {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 !important;
  z-index: 100 !important;
}

body.admin-bar .kanion-header-root--clear .topo { top: 32px !important; }

@media (max-width: 782px) {
  body.admin-bar .kanion-header-root--clear .topo { top: 46px !important; }
}

@media (max-width: 1000px) {
  /* Header claro mobile: marca na esquerda e botão hamburger na direita. */
  .kanion-header-root--clear .topo .wrap.nav {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1rem !important;
  }

  .kanion-header-root--clear .topo .nav-marca {
    order: 0 !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    justify-self: start !important;
    flex: 0 1 auto !important;
  }

  .kanion-header-root--clear .topo .nav-abrir {
    order: 1 !important;
    flex: 0 0 44px !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    justify-self: end !important;
  }
}

/* v3.2.1 — Hero/CTA usam diretamente o Group Control Background nativo do Elementor. */
.rodape[style*="background-image"] { background-repeat: no-repeat; background-size: cover; }

/* --------------------------------------------------------------------------
   v3.1 — CABEÇALHO EM TRÊS COLUNAS
   Com a área de redes sociais o lado direito do cabeçalho ficou mais largo e o
   menu centralizado por position:absolute passava por cima dos ícones. Aqui
   todas as variantes (tema, Elementor, sobreposto e claro) passam a usar o
   mesmo grid de três colunas, que nunca sobrepõe.
   -------------------------------------------------------------------------- */
@media (min-width: 1001px) {
  .topo .wrap.nav,
  .kanion-header-root .topo .wrap.nav,
  .kanion-header-root--clear .topo .wrap.nav {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: center !important;
    gap: clamp(.9rem, 1.6vw, 1.6rem) !important;
  }

  .topo .nav > nav,
  .kanion-header-root .topo .nav > nav,
  .kanion-header-root--clear .topo .nav > nav {
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    position: static !important;
    inset: auto !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    margin: 0 !important;
    min-width: 0 !important;
  }

  .topo .nav-marca,
  .kanion-header-root .topo .nav-marca,
  .kanion-header-root--clear .topo .nav-marca {
    grid-column: 1 !important;
    justify-self: start !important;
  }

  .topo .nav-acao,
  .kanion-header-root .topo .nav-acao,
  .kanion-header-root--clear .topo .nav-acao {
    grid-column: 3 !important;
    justify-self: end !important;
  }
}


/* Kanion 3.3.1 — Hero da Home sempre cobre toda a área visual. */
.kanion-elementor-content .kanion-visual-root.hero {
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
