/* ==========================================================================
   Hero Background Video - FocoFit
   Exibição contínua em loop ocupando ~90% da tela (Desktop e Mobile)
   Efeito "Peek": Revela ~10% da próxima seção sem cortar o conteúdo da Hero
   ========================================================================== */

:root {
  --hero-viewport-height: 90vh;
}

@supports (height: 90svh) {
  :root {
    --hero-viewport-height: 90svh;
  }
}

/* 1. Container Principal da Hero */
.elementor-9 .elementor-element.elementor-element-d742317 {
  position: relative !important;
  width: 100% !important;
  height: var(--hero-viewport-height) !important;
  min-height: var(--hero-viewport-height) !important;
  max-height: var(--hero-viewport-height) !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-image: none !important;
  background-color: #071510 !important;
  box-sizing: border-box !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Remove imagem estática de fundo legada */
.elementor-9 .elementor-element.elementor-element-d742317:not(.elementor-motion-effects-element-type-background) {
  background-image: none !important;
}

/* 2. Wrapper do Vídeo de Fundo */
.hero-video-bg-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 0;
  pointer-events: none;
  user-select: none;
}

/* 3. Elemento de Vídeo com Enquadramento Perfeito */
.hero-video-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  object-fit: cover;
  object-position: center center;
  display: block;
  animation: heroVideoCinematic 1.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) both;
  will-change: transform, opacity;
}

/* 4. Overlay Escuro com Gradiente para Alto Contraste */
.hero-video-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background: linear-gradient(
    180deg,
    rgba(5, 15, 11, 0.45) 0%,
    rgba(4, 11, 8, 0.65) 50%,
    rgba(3, 9, 7, 0.88) 100%
  );
  pointer-events: none;
}

/* The local preview keeps the video card visible without loading the player. */
.hero-video-preview {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: #000;
  overflow: hidden;
}

.hero-youtube-docked .hero-video-preview img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-video-caption {
  position: absolute;
  inset: 0 0 auto;
  padding: 12px;
  color: #fff;
  background: linear-gradient(#000b, transparent);
  font: 700 16px/1.3 Arial, sans-serif;
}

.hero-video-play {
  position: absolute;
  display: grid;
  place-items: center;
  transition: transform 180ms ease;
}

.hero-video-preview:hover .hero-video-play,
.hero-video-preview:focus-visible .hero-video-play {
  transform: scale(1.08);
}

.hero-video-preview:focus-visible {
  outline: 3px solid #c5f542;
  outline-offset: -4px;
}

.hero-motion-paused .elementor-button,
.hero-motion-paused .elementor-button::after {
  animation-play-state: paused !important;
}

/* 5. Logotipo FocoFit no Topo Centralizado */
.hero-brand-logo {
  position: absolute !important;
  top: clamp(12px, 2vh, 24px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 15 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: auto !important;
}

.hero-brand-logo img {
  width: clamp(150px, 13vw, 210px) !important;
  height: auto !important;
  object-fit: contain !important;
  filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.75)) !important;
  display: block !important;
  animation: heroLogoEnter 0.75s var(--ease-spring-soft, cubic-bezier(0.175, 0.885, 0.32, 1.15)) 0.08s both;
  transition: transform 0.35s var(--ease-spring-soft, cubic-bezier(0.175, 0.885, 0.32, 1.15));
  will-change: transform, opacity;
}

.hero-brand-logo:hover img {
  transform: scale(1.06) translateY(-1px) !important;
  filter: drop-shadow(0 6px 20px rgba(197, 245, 66, 0.35)) drop-shadow(0 2px 8px rgba(0, 0, 0, 0.85)) !important;
}

/* 6. Container Interno da Hero */
.elementor-9 .elementor-element.elementor-element-d742317 > .e-con-inner {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: 1540px !important;
  height: 100% !important;
  max-height: 100% !important;
  margin: 0 auto !important;
  padding: clamp(16px, 3vh, 36px) clamp(20px, 3.5vw, 56px) !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

/* 7. Título Principal Centralizado na Tela (Esboço do Usuário) */
.elementor-9 .elementor-element.elementor-element-1ad5a7c {
  position: absolute !important;
  top: clamp(115px, 17vh, 175px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  --margin-top: 0px !important;
  --e-con-transform-translateY: 0px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
  max-width: 1140px !important;
  z-index: 5 !important;
}

.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-ca753a4 {
  margin: 0 0 clamp(16px, 2.5vh, 26px) 0 !important;
  padding: 0 !important;
  width: 100% !important;
  text-align: center !important;
  animation: heroTitleCinematic 0.85s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) 0.25s both;
  will-change: transform, opacity;
}

.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-ca753a4 .elementor-heading-title {
  text-align: center !important;
  font-size: clamp(2.6rem, 5.2vw, 4.85rem) !important;
  line-height: 1.04 !important;
  font-weight: 900 !important;
  letter-spacing: -0.015em !important;
  margin: 0 auto !important;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.95) !important;
}

/* 8. Botão CTA - Perfeitamente Centralizado Logo Abaixo do Título */
.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-cfaea04 {
  margin: 0 auto !important;
  padding: 0 !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  text-align: center !important;
  animation: heroCtaPopIn 0.8s var(--ease-spring, cubic-bezier(0.34, 1.56, 0.64, 1)) 0.45s both;
  will-change: transform, opacity;
}

.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button {
  margin: 0 auto !important;
  align-self: center !important;
  padding: clamp(13px, 1.8vh, 18px) clamp(28px, 2.8vw, 42px) !important;
  font-size: clamp(0.95rem, 1.25vw, 1.15rem) !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  overflow: hidden !important;
  animation: ctaEnergyPulse 5.2s ease-in-out 1.6s infinite !important;
  transition: transform 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              background-color 0.3s ease !important;
}

/* Efeito Shimmer de Luz Refletida no Botão CTA - Fluido, suave e contínuo */
.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 255, 255, 0) 25%,
    rgba(255, 255, 255, 0.12) 40%,
    rgba(225, 255, 140, 0.32) 50%,
    rgba(255, 255, 255, 0.12) 60%,
    rgba(255, 255, 255, 0) 75%,
    transparent 100%
  );
  pointer-events: none;
  animation: ctaShimmer 6.5s cubic-bezier(0.4, 0, 0.2, 1) 2s infinite;
}

.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button:hover {
  transform: translateY(-4px) scale(1.035) !important;
  box-shadow: 0 16px 38px rgba(197, 245, 66, 0.42), 0 6px 20px rgba(0, 0, 0, 0.6) !important;
}

.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button:active {
  transform: translateY(-1px) scale(0.99) !important;
}

.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button .elementor-button-icon {
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button:hover .elementor-button-icon {
  transform: translateX(6px) !important;
}

/* 9. Card "FIM DA INFLAMAÇÃO..." - No Canto Inferior Esquerdo (Texto Alinhado à Esquerda) */
.elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left {
  position: absolute !important;
  left: clamp(20px, 3.5vw, 56px) !important;
  bottom: clamp(16px, 3vh, 32px) !important;
  --align-self: flex-start !important;
  --e-con-transform-translateY: 0px !important;
  transform: none;
  margin: 0 !important;
  padding: clamp(12px, 1.8vh, 18px) clamp(16px, 1.8vw, 24px) !important;
  width: clamp(260px, 27vw, 420px) !important;
  max-width: 440px !important;
  background: rgba(0, 0, 0, 0.58) !important;
  border-radius: 14px !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-sizing: border-box !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.5) !important;
  z-index: 10 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
  will-change: transform, opacity;
}

/* Hold both supporting cards off-stage until the preloader curtain has fully
   cleared. The hero-ready class is applied on the following animation frame. */
html.preloader-active .elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left,
html.preloader-complete:not(.hero-ready) .elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left {
  opacity: 0;
  transform: translate3d(-48px, 0, 0) scale(.96);
}

html.hero-ready .elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left {
  animation: heroCardLeftSlide .9s var(--ease-out-expo, cubic-bezier(.16, 1, .3, 1)) .62s both !important;
}

.elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left .elementor-widget-heading {
  text-align: left !important;
  width: 100% !important;
}

.elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left .elementor-element-f244fbb .elementor-heading-title {
  text-align: left !important;
  font-size: clamp(0.92rem, 1.3vw, 1.3rem) !important;
  line-height: 1.2 !important;
  margin-bottom: 6px !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8) !important;
}

.elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left .elementor-element-6f29cea .elementor-heading-title {
  text-align: left !important;
  font-size: clamp(0.74rem, 0.88vw, 0.9rem) !important;
  line-height: 1.35 !important;
  opacity: 0.9 !important;
  margin: 0 !important;
}

/* 10. Vídeo do YouTube - No Canto Inferior Direito (Mesmo Alinhamento de Base) */
.elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked {
  position: absolute !important;
  right: clamp(20px, 3.5vw, 56px) !important;
  bottom: clamp(16px, 3vh, 32px) !important;
  width: clamp(240px, 24vw, 360px) !important;
  max-width: 380px !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 10 !important;
}

.elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked .elementor-wrapper {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.16) !important;
  background: #000 !important;
  will-change: transform, opacity;
}

html.preloader-active .elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked .elementor-wrapper,
html.preloader-complete:not(.hero-ready) .elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked .elementor-wrapper {
  opacity: 0;
  transform: translate3d(48px, 0, 0) scale(.96);
}

html.hero-ready .elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked .elementor-wrapper {
  animation: heroVideoCardSlide .9s var(--ease-out-expo, cubic-bezier(.16, 1, .3, 1)) .76s both !important;
}

.elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked iframe {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: none !important;
  border-radius: 14px !important;
  display: block !important;
}

/* ==========================================================================
   Responsividade: Laptops com altura reduzida (<= 750px)
   ========================================================================== */
@media (max-height: 750px) {
  .hero-brand-logo {
    top: 8px !important;
  }

  .hero-brand-logo img {
    width: 140px !important;
  }

  .elementor-9 .elementor-element.elementor-element-1ad5a7c {
    top: clamp(70px, 15vh, 125px) !important;
  }

  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-ca753a4 .elementor-heading-title {
    font-size: clamp(2.1rem, 4.6vw, 3.6rem) !important;
  }

  .elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left {
    padding: 10px 14px !important;
    bottom: 12px !important;
  }

  .elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked {
    width: clamp(210px, 21vw, 290px) !important;
    bottom: 12px !important;
  }
}

/* ==========================================================================
   Responsividade: Tablets (<= 991px)
   ========================================================================== */
@media (max-width: 991px) and (min-width: 768px) {
  .elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left {
    width: clamp(230px, 30vw, 300px) !important;
    left: 16px !important;
    bottom: 16px !important;
  }

  .elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked {
    width: clamp(220px, 28vw, 300px) !important;
    right: 16px !important;
    bottom: 16px !important;
  }
}

/* ==========================================================================
   Responsividade: Mobile (<= 767px)
   ========================================================================== */
@media (max-width: 767px) {
  .hero-brand-logo {
    top: 8px !important;
  }

  .hero-brand-logo img {
    width: 130px !important;
  }

  .elementor-9 .elementor-element.elementor-element-d742317 {
    padding: 0 !important;
  }

  .elementor-9 .elementor-element.elementor-element-d742317 > .e-con-inner {
    flex-direction: column !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 0 16px clamp(10px, 2vh, 16px) 16px !important;
    text-align: center !important;
  }

  .elementor-9 .elementor-element.elementor-element-1ad5a7c {
    position: static !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    align-items: center !important;
    text-align: center !important;
    margin: auto 0 !important;
    padding-top: clamp(24px, 4vh, 40px) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
  }

  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-ca753a4 {
    margin: 0 !important;
  }

  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-ca753a4 .elementor-heading-title {
    font-size: clamp(2.4rem, 10.5vw, 3.2rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.015em !important;
    text-shadow: 0 4px 18px rgba(0, 0, 0, 0.95) !important;
  }

  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-cfaea04 {
    margin: 0 auto !important;
  }

  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button {
    padding: 12px 26px !important;
    font-size: 0.95rem !important;
  }

  .elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left {
    position: static !important;
    display: none !important;
  }

  .elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked {
    position: static !important;
    width: 100% !important;
    max-width: clamp(210px, 64vw, 250px) !important;
    margin: 0 auto !important;
    flex-shrink: 0 !important;
  }

  html.hero-ready .elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked .elementor-wrapper {
    animation: heroTitleCinematic 1.05s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) 0.6s both !important;
  }
}

/* ==========================================================================
   Acessibilidade: Suporte a Usuários com Movimento Reduzido
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .hero-video-bg,
  .hero-brand-logo img,
  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-ca753a4,
  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-element-cfaea04,
  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button,
  .elementor-9 .elementor-element.elementor-element-1ad5a7c .elementor-button::after,
  .elementor-9 .elementor-element.elementor-element-712ba0c.hero-card-docked-left,
  .elementor-9 .elementor-element.elementor-element-0da6290.hero-youtube-docked .elementor-wrapper {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }

  .hero-video-bg {
    transform: translate(-50%, -50%) !important;
  }
}

/* ==========================================================================
   Expansão da Largura Máxima dos Containers no Desktop
   Reduz o espaçamento excessivo nas laterais da tela
   ========================================================================== */
@media (min-width: 1025px) {
  :root {
    --content-width: 1480px !important;
    --container-max-width: 1480px !important;
    --wp--style--global--content-size: 1480px !important;
    --wp--style--global--wide-size: 1540px !important;
  }

  
  .e-con.e-con-boxed > .e-con-inner,
  .elementor-9 .e-con-boxed > .e-con-inner {
    max-width: 1480px !important;
  }
}

@media (min-width: 1440px) {
  :root {
    --content-width: 1540px !important;
    --container-max-width: 1540px !important;
  }

  
  .e-con.e-con-boxed > .e-con-inner,
  .elementor-9 .e-con-boxed > .e-con-inner {
    max-width: 1540px !important;
  }
}
