
/* Posts: ratio sem colapsar o card (padding-bottom define a altura) */
.elementor-posts-container .elementor-post__thumbnail__link{
  display:block;
  position:relative;
  width:100%;
  overflow:hidden;
}
.elementor-posts-container .elementor-post__thumbnail{
  position:relative !important;
  inset:auto !important;
  width:100%;
  overflow:hidden;
  /* fallback se o CSS do widget não carregar */
  padding-bottom:56.25%;
}
.elementor-posts-container .elementor-post__thumbnail img{
  position:absolute;
  left:50%;
  top:50%;
  width:100%;
  height:auto;
  max-width:none;
  transform:scale(1.01) translate(-50%,-50%);
  object-fit:cover;
}
.elementor-posts-container .elementor-post__thumbnail.elementor-fit-height img{
  width:auto;
  height:100%;
}
.elementor-post__text{
  position:relative;
  z-index:1;
}
.elementor-post__title,
.elementor-post__title a{
  visibility:visible !important;
  opacity:1 !important;
}

/* Sticky header readable */
.elementor-sticky--active{
  z-index: 100;
}

/* Smooth anchor scroll with sticky offset */
html{ scroll-behavior:smooth; }
#sobre, #cases{ scroll-margin-top: 110px; }

/* === Hero + faixas === */
/*
  Empilhamento desejado:
  1) fundo do hero / #sobre (baixo)
  2) faixas como divisória na costura
  3) GIF/textos do hero por cima das faixas

  Importante: o container do hero NÃO pode ter z-index próprio,
  senão o GIF fica preso num stacking context abaixo das faixas.
*/
.elementor-132 .elementor-element-234c306{
  position:relative;
  z-index:auto !important;
  --z-index:auto !important;
  --overflow:visible !important;
  overflow:visible !important;
  isolation:auto;
  padding-bottom:clamp(1.25rem, 3vw, 2.25rem) !important;
}
.elementor-132 .elementor-element-234c306 .elementor-widget-heading,
.elementor-132 .elementor-element-234c306 .elementor-widget-text-editor,
.elementor-132 .elementor-element-234c306 .elementor-widget-button,
.elementor-132 .elementor-element-234c306 .elementor-element-49e6723{
  position:relative;
  z-index:5;
}
.elementor-132 .elementor-element-05feea5{
  position:relative;
  z-index:10 !important;
  --z-index:10 !important;
}
.elementor-132 .elementor-element-05feea5 .elementor-widget-container,
.elementor-132 .elementor-element-05feea5 img{
  position:relative;
  z-index:10;
}

/* Faixas = divisória entre hero e #sobre (abaixo do GIF) */
.elementor-132 .elementor-element-9a77c52.rotated-div{
  position:relative;
  z-index:3 !important;
  --z-index:3 !important;
  --overflow:visible !important;
  margin-top:-3.5rem !important;
  margin-bottom:-3.5rem !important;
  overflow:visible !important;
  pointer-events:none;
}
.elementor-132 .elementor-element-9a77c52 .elementor-element-d1b8886,
.elementor-132 .elementor-element-9a77c52 .elementor-widget-container{
  overflow:visible !important;
}

.engrena-faixas{
  height:72px !important;
}
.engrena-faixas .faixa-1{
  transform:translate(-50%, -48%) rotate(1.2deg) !important;
}
.engrena-faixas .faixa-2{
  transform:translate(-50%, -18%) rotate(-1.2deg) !important;
}
@media (min-width:768px){
  .engrena-faixas{ height:88px !important; }
  .engrena-faixas .faixa-1{
    width:140% !important;
    transform:translate(-50%, -52%) rotate(1.5deg) !important;
  }
  .engrena-faixas .faixa-2{
    width:125% !important;
    transform:translate(-50%, -22%) rotate(-1.5deg) !important;
  }
  .elementor-132 .elementor-element-9a77c52.rotated-div{
    margin-top:-4.25rem !important;
    margin-bottom:-4.25rem !important;
  }
  .elementor-132 .elementor-element-05feea5 > .elementor-widget-container{
    margin-bottom:1.25rem !important;
  }
}
/* Em telas largas o GIF cresce e invade mais a costura — garante sobreposição */
@media (min-width:1024px){
  .elementor-132 .elementor-element-05feea5{
    z-index:12 !important;
  }
  .elementor-132 .elementor-element-9a77c52.rotated-div{
    z-index:3;
    margin-top:-3.75rem !important;
    margin-bottom:-3.75rem !important;
  }
  .elementor-132 .elementor-element-234c306{
    padding-bottom:clamp(1.75rem, 2.5vw, 3rem) !important;
  }
}
@media (max-width:767px){
  .elementor-132 .elementor-element-9a77c52.rotated-div{
    margin-top:-3rem !important;
    margin-bottom:-3rem !important;
  }
  .engrena-faixas{
    height:64px !important;
  }
  .engrena-faixas .faixa-1{
    transform:translate(-50%, -45%) rotate(1.2deg) !important;
  }
  .engrena-faixas .faixa-2{
    transform:translate(-50%, -15%) rotate(-1.2deg) !important;
  }
  .elementor-132 .elementor-element-05feea5 > .elementor-widget-container{
    margin-bottom:1rem !important;
  }
}

/* #sobre fica abaixo das faixas na costura */
.elementor-132 .elementor-element-897237c,
.elementor-132 #sobre{
  position:relative;
  z-index:1;
  margin-top:0 !important;
  padding-top:clamp(3.5rem, 6vw, 5rem) !important;
}
/* === end hero-faixas === */

/* === Mobile menu Engrena === */
.elementor-location-header{
  position:relative;
  z-index:300;
}

/* Evita clipping do painel pelos containers do header */
.elementor-441 .elementor-element-ec2aac1,
.elementor-441 .elementor-element-ec2aac1 > .e-con-inner,
.elementor-441 .elementor-element-10df0c2,
.elementor-441 .elementor-element-886e898,
.elementor-441 .elementor-element-886e898 > .elementor-widget-container{
  overflow:visible !important;
}

.elementor-441 .elementor-element-886e898 .elementor-menu-toggle{
  position:relative;
  z-index:320;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:1px solid rgba(255,255,255,.22);
  border-radius:10px;
  width:44px;
  height:44px;
  padding:0;
  color:#fff;
  cursor:pointer;
  transition:border-color .25s ease, background-color .25s ease, transform .2s ease;
}
.elementor-441 .elementor-element-886e898 .elementor-menu-toggle:hover,
.elementor-441 .elementor-element-886e898 .elementor-menu-toggle:focus{
  background:rgba(233,0,234,.12);
  border-color:#E900EA;
  outline:none;
}
.elementor-441 .elementor-element-886e898 .elementor-menu-toggle.elementor-active{
  background:linear-gradient(135deg, rgba(224,2,228,.35), rgba(31,177,188,.25));
  border-color:#E900EA;
}
.elementor-441 .elementor-element-886e898 .elementor-menu-toggle svg{
  fill:#fff;
  width:1.35rem;
  height:1.35rem;
}

/*
  O burger fica à direita do header. Com position:absolute + left:0,
  o painel nasce sob o widget (fora da tela no mobile).
  Por isso o estado aberto usa position:fixed na viewport.
*/
.elementor-441 .elementor-element-886e898 .elementor-nav-menu--dropdown.elementor-nav-menu__container{
  --menu-height:0px;
  background:
    linear-gradient(180deg, rgba(233,0,234,.18) 0%, transparent 42%),
    #171718 !important;
  border:0 !important;
  border-top:1px solid rgba(233,0,234,.35) !important;
  box-shadow:0 18px 40px rgba(0,0,0,.45);
  margin-top:0 !important;
  padding:0;
  border-radius:0 0 18px 18px;
  transform-origin:top center;
  z-index:310;
}

.elementor-441 .elementor-element-886e898 .elementor-nav-menu--dropdown .elementor-nav-menu{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  padding:1.25rem 1.25rem 1.75rem;
  margin:0;
  width:100%;
  box-sizing:border-box;
}

.elementor-441 .elementor-element-886e898 .elementor-nav-menu--dropdown .elementor-item{
  color:#fff !important;
  font-family:"Poppins", sans-serif !important;
  font-size:clamp(1.15rem, 4.5vw, 1.45rem) !important;
  font-weight:300 !important;
  letter-spacing:.04em;
  text-transform:none;
  justify-content:center;
  padding:1rem 1.25rem !important;
  border:0 !important;
  border-radius:14px;
  background:transparent;
  transition:background-color .25s ease, color .25s ease, transform .2s ease;
}

.elementor-441 .elementor-element-886e898 .elementor-nav-menu--dropdown .elementor-item:hover,
.elementor-441 .elementor-element-886e898 .elementor-nav-menu--dropdown .elementor-item:focus{
  background:rgba(255,255,255,.06) !important;
  color:#E900EA !important;
  transform:translateY(-1px);
}

.elementor-441 .elementor-element-886e898 .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{
  color:#E900EA !important;
  background:rgba(233,0,234,.12) !important;
  box-shadow:inset 0 0 0 1px rgba(233,0,234,.35);
}

/* Fechado */
.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container{
  max-height:0 !important;
  transform:scaleY(0) !important;
  overflow:hidden !important;
  visibility:hidden;
  pointer-events:none;
}

/* Aberto: fixo na viewport (visível no mobile) */
.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container.engrena-menu-open,
.elementor-441 .elementor-element-886e898 .elementor-nav-menu--dropdown.engrena-menu-open{
  display:block !important;
  visibility:visible !important;
  pointer-events:auto !important;
  position:fixed !important;
  top:var(--engrena-menu-top, 72px) !important;
  left:0 !important;
  right:0 !important;
  width:100vw !important;
  max-width:100vw !important;
  margin:0 !important;
  max-height:min(75vh, 480px) !important;
  --menu-height:min(75vh, 480px);
  transform:scaleY(1) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
}

html.engrena-menu-is-open{
  overflow:hidden;
}
html.engrena-menu-is-open body::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.5);
  z-index:250;
  pointer-events:none;
}

@media (min-width:768px){
  /* Header mobile some no tablet+; limpa overlay */
  html.engrena-menu-is-open body::before{ display:none; }
}

/*
  Menu sticky (909c57d): permanece em uma linha no tablet/desktop.
  No mobile (<768) o header 93713f4 some (hidden-mobile) e entra o burger 886e898.
*/
.elementor-441 .elementor-element-909c57d .elementor-nav-menu--main .elementor-nav-menu{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center;
  justify-content:center;
  gap:clamp(.15rem, .6vw, .75rem);
  width:auto;
  max-width:100%;
}
.elementor-441 .elementor-element-909c57d .elementor-nav-menu--main .elementor-nav-menu > li{
  flex:0 0 auto;
}
.elementor-441 .elementor-element-909c57d .elementor-nav-menu--main .elementor-item{
  white-space:nowrap !important;
  font-size:clamp(.82rem, 1.35vw, 1.1rem) !important;
  padding-inline:clamp(.35rem, .9vw, .85rem) !important;
}

@media (min-width:768px) and (max-width:1024px){
  /* Mantém header sticky em uma linha (logo | menu | CTA) */
  .elementor-441 .elementor-element-93713f4{
    --grid-auto-flow:column !important;
  }
  .elementor-441 .elementor-element-93713f4 > .e-con-inner{
    align-items:center;
  }
  /* Anula dropdown-tablet: mostra links em linha, esconde burger deste widget */
  .elementor-441 .elementor-element-909c57d.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{
    display:block !important;
  }
  .elementor-441 .elementor-element-909c57d.elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,
  .elementor-441 .elementor-element-909c57d.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown{
    display:none !important;
  }
  .elementor-441 .elementor-element-909c57d .elementor-nav-menu--main .elementor-item{
    font-size:clamp(.75rem, 1.5vw, .95rem) !important;
    padding-inline:clamp(.25rem, .7vw, .55rem) !important;
  }
  .elementor-441 .elementor-element-faffc90 .elementor-button{
    font-size:clamp(.7rem, 1.4vw, .85rem) !important;
    padding:.55em .9em !important;
    white-space:nowrap;
  }
}
/* === end mobile menu === */

/* === Responsive base === */
/* Só no body para não cortar faixas rotacionadas / carrosséis full-bleed */
body{
  overflow-x:clip;
}
.elementor img,
.elementor video,
.elementor iframe{
  max-width:100%;
  height:auto;
}

@media (max-width:767px){
  .elementor-location-header .e-con-inner{
    padding-inline:12px;
  }
  #sobre, #cases{
    scroll-margin-top:88px;
  }
  /* Faixas um pouco mais contidas sem quebrar o marquee */
  .engrena-faixas .faixa-1{width:170%}
  .engrena-faixas .faixa-2{width:155%}
}
/* === end responsive === */


/* Ilustração SVG 78b0b4c / b6272ff */
.elementor-132 .elementor-element-78b0b4c,
.elementor-132 .elementor-element-b6272ff{visibility:visible!important;opacity:1!important}
.elementor-132 .elementor-element-78b0b4c .elementor-icon-wrapper,
.elementor-132 .elementor-element-78b0b4c .elementor-icon{
  display:block!important;width:100%!important;max-width:100%!important;
  font-size:0!important;line-height:0!important;overflow:visible!important;background:transparent!important;
}
.elementor-132 .elementor-element-78b0b4c .elementor-icon svg{
  display:block!important;width:auto!important;max-width:100%!important;height:153px!important;margin:0 auto!important;fill:none!important;
}
.elementor-132 .elementor-element-b6272ff .elementor-icon-wrapper,
.elementor-132 .elementor-element-b6272ff .elementor-icon{
  display:block!important;width:100%!important;max-width:100%!important;
  font-size:0!important;line-height:0!important;overflow:visible!important;background:transparent!important;
}
.elementor-132 .elementor-element-b6272ff .elementor-icon svg{
  display:block!important;
  width:min(92vw, 300px)!important;
  max-width:100%!important;
  height:auto!important;
  max-height:none!important;
  margin:0 auto!important;
  fill:none!important;
}


/* Broken Elementor swipers (data-src=#) — replaced by CSS marquee */
.elementor-132 .elementor-element-3caf37b,
.elementor-132 .elementor-element-e5d15de{display:none!important}

/* +30 Campanhas — oval SVG (padding real; traço fora do texto) */
.elementor-132 .elementor-element.elementor-element-be3c482{
  position:relative !important;
  width:fit-content !important;
  max-width:100%;
  align-self:flex-start;
  box-sizing:border-box !important;
  padding:0.5em 0.85em 0.55em !important;
  --padding-top:0px;
  --padding-right:0px;
  --padding-bottom:0px;
  --padding-left:0px;
  background:none !important;
  background-image:none !important;
  isolation:isolate;
}
.elementor-132 .elementor-element.elementor-element-be3c482:not(.elementor-motion-effects-element-type-background),
.elementor-132 .elementor-element.elementor-element-be3c482 > .elementor-motion-effects-container > .elementor-motion-effects-layer{
  background-image:none !important;
}
.elementor-132 .elementor-element.elementor-element-be3c482::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 68' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='8' y1='34' x2='392' y2='34' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23E900EA'/%3E%3Cstop offset='.38' stop-color='%236B2FFF'/%3E%3Cstop offset='1' stop-color='%231FB8C4'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath stroke='url(%23g)' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' fill='none' d='M118 14.5C70 11 22 20 16 34C9 50 62 60.5 200 60.5C338 60.5 391 50 384 34C377 18 324 9.5 200 9.5C145 9.5 105 11.5 92 16C82 19 102 12 128 11C142 10.5 140 14 128 15.5'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  transform:rotate(-1.5deg);
  pointer-events:none;
  z-index:0;
}
.elementor-132 .elementor-element.elementor-element-be3c482 > .e-con-inner{
  position:relative;
  z-index:1;
  width:auto !important;
  max-width:none !important;
  --padding-top:0px;
  --padding-right:0px;
  --padding-bottom:0px;
  --padding-left:0px;
  padding:0 !important;
}
.elementor-132 .elementor-element.elementor-element-e7e7d32{
  width:auto !important;
  max-width:none !important;
  --container-widget-width:auto !important;
  line-height:1 !important;
}
.elementor-132 .elementor-element.elementor-element-e7e7d32 > .elementor-widget-container{
  margin:0 !important;
}
.elementor-132 .elementor-element.elementor-element-e7e7d32 p{
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap;
  line-height:1 !important;
}
.elementor-132 .elementor-element.elementor-element-e7e7d32 .destaque{
  color:#E002E4;
}
@media (max-width:767px){
  .elementor-132 .elementor-element.elementor-element-be3c482{
    padding:0.4em 0.65em 0.45em !important;
  }
}
