/* =========================================================
   Site motion — camada ADITIVA (não substitui animações existentes)
   Scroll + interativo (cards clicáveis, tilt, ripple, glow)
   ========================================================= */

:root{
  --sm-ease:cubic-bezier(.22,1,.36,1);
  --sm-ease-out:cubic-bezier(.16,1,.3,1);
  --sm-dur:.7s;
}

/* ---- Base: elementos com data-motion entram no scroll ---- */
.js.motion-ready [data-motion]{
  opacity:0;
  transform:translate3d(0,22px,0);
  transition:
    opacity var(--sm-dur) var(--sm-ease),
    transform var(--sm-dur) var(--sm-ease),
    filter var(--sm-dur) var(--sm-ease);
  transition-delay:var(--motion-delay,0ms);
  will-change:opacity,transform;
}
.js.motion-ready [data-motion].is-visible,
.js.motion-ready [data-inview] [data-motion].is-visible{
  opacity:1;
  transform:none;
  filter:none;
}

.js.motion-ready [data-motion="fade"]{transform:none}
.js.motion-ready [data-motion="left"]{transform:translate3d(-28px,0,0)}
.js.motion-ready [data-motion="right"]{transform:translate3d(28px,0,0)}
.js.motion-ready [data-motion="scale"]{
  transform:translate3d(0,18px,0) scale(.94);
  filter:blur(4px);
}
.js.motion-ready [data-motion="scale"].is-visible{
  transform:none;
  filter:none;
}
.js.motion-ready [data-motion="blur"]{
  transform:translate3d(0,14px,0);
  filter:blur(8px);
}
.js.motion-ready [data-motion="blur"].is-visible{
  filter:none;
  transform:none;
}

/* Stagger */
.js.motion-ready [data-stagger].is-visible > *:nth-child(1){--motion-delay:40ms}
.js.motion-ready [data-stagger].is-visible > *:nth-child(2){--motion-delay:100ms}
.js.motion-ready [data-stagger].is-visible > *:nth-child(3){--motion-delay:160ms}
.js.motion-ready [data-stagger].is-visible > *:nth-child(4){--motion-delay:220ms}
.js.motion-ready [data-stagger].is-visible > *:nth-child(5){--motion-delay:280ms}
.js.motion-ready [data-stagger].is-visible > *:nth-child(6){--motion-delay:340ms}
.js.motion-ready [data-stagger].is-visible > *:nth-child(7){--motion-delay:400ms}
.js.motion-ready [data-stagger].is-visible > *:nth-child(8){--motion-delay:460ms}

/* ---- Scroll progress bar (topo) ---- */
.sm-scroll-progress{
  position:fixed;
  top:0;left:0;
  height:3px;
  width:0%;
  z-index:9999;
  background:linear-gradient(90deg,#ff6a00,#ff9a4a);
  box-shadow:0 0 12px rgba(255,106,0,.55);
  pointer-events:none;
  transform-origin:left center;
}
html.menu-open .sm-scroll-progress{opacity:0}

/* ---- Interactive cards (clique sem navegação) ---- */
.svc-card,
.method-fit__card,
.cboard-card{
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  position:relative;
  transform-style:preserve-3d;
  transition:
    transform .35s var(--sm-ease-out),
    box-shadow .35s ease,
    border-color .3s ease,
    background .3s ease;
}
.svc-card.is-picked,
.method-fit__card.is-picked,
.cboard-card.is-picked{
  border-color:rgba(255,106,0,.45)!important;
  box-shadow:
    0 0 0 1px rgba(255,106,0,.2),
    0 18px 40px rgba(255,106,0,.14),
    0 8px 20px rgba(17,17,17,.08)!important;
  z-index:2;
}
.method-fit__card.is-picked{
  background:rgba(255,106,0,.1)!important;
  border-color:rgba(255,106,0,.4)!important;
}
.svc-card.is-picked{
  transform:translateY(-6px) scale(1.015);
}
.method-fit__card.is-picked{
  transform:translateY(-4px);
}
.cboard-card.is-picked{
  transform:translateY(-4px);
}

/* Ripple */
.sm-ripple{
  position:absolute;
  border-radius:50%;
  transform:scale(0);
  background:rgba(255,106,0,.28);
  pointer-events:none;
  animation:smRipple .65s var(--sm-ease-out) forwards;
  z-index:5;
}
@keyframes smRipple{
  to{transform:scale(2.6);opacity:0}
}

/* Tilt 3D (desktop) */
@media (hover:hover) and (pointer:fine){
  .svc-card.is-tilting,
  .method-fit__card.is-tilting,
  .cboard-card.is-tilting{
    transition:transform .08s linear,box-shadow .25s ease,border-color .25s ease;
  }
  .svc-card:hover:not(.is-picked),
  .method-fit__card:hover:not(.is-picked){
    border-color:rgba(255,106,0,.28);
  }
  .svc-card:active,
  .method-fit__card:active,
  .cboard-card:active{
    transform:scale(.985);
  }
}

/* Metrics expand slightly when card picked */
.svc-card.is-picked .svc-metric__value{
  transform:scale(1.08);
  transition:transform .35s var(--sm-ease);
}
.svc-card.is-picked .svc-card__icon{
  transform:scale(1.1) rotate(-4deg);
  background:rgba(255,106,0,.16);
}

/* ---- Service cards: ícone flutuando (aditivo) ---- */
.svc-card__icon{
  transition:transform .35s var(--sm-ease),box-shadow .35s ease,background .25s ease;
}
@media (hover:hover) and (pointer:fine){
  .svc-card:hover .svc-card__icon{
    transform:translateY(-3px) scale(1.04);
  }
}
.js.motion-ready .services-uni.is-visible .svc-card__icon{
  animation:smIconFloat 4.5s var(--sm-ease) infinite;
}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(2) .svc-card__icon{animation-delay:.4s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(3) .svc-card__icon{animation-delay:.8s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(4) .svc-card__icon{animation-delay:1.2s}

@keyframes smIconFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}

/* Métricas pop + setas */
.js.motion-ready .svc-metric__value{
  transition:transform .45s var(--sm-ease),color .25s ease;
}
.js.motion-ready .services-uni.is-visible .svc-metric__value{
  animation:smMetricPop .55s var(--sm-ease) both;
  animation-duration:.55s!important;
}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(1) .svc-metric:nth-child(1) .svc-metric__value{animation-delay:.2s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(1) .svc-metric:nth-child(2) .svc-metric__value{animation-delay:.3s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(2) .svc-metric:nth-child(1) .svc-metric__value{animation-delay:.35s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(2) .svc-metric:nth-child(2) .svc-metric__value{animation-delay:.45s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(3) .svc-metric:nth-child(1) .svc-metric__value{animation-delay:.5s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(3) .svc-metric:nth-child(2) .svc-metric__value{animation-delay:.6s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(4) .svc-metric:nth-child(1) .svc-metric__value{animation-delay:.65s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(4) .svc-metric:nth-child(2) .svc-metric__value{animation-delay:.75s}

/* Seta sobe/desce com bounce suave ao entrar */
.js.motion-ready .svc-metric__arrow{
  opacity:0;
  display:inline-block;
}
.js.motion-ready .services-uni.is-visible .svc-metric__value:not(.svc-metric__value--down) .svc-metric__arrow{
  animation:smArrowUp .7s cubic-bezier(.22,1,.36,1) both;
  animation-duration:.7s!important;
}
.js.motion-ready .services-uni.is-visible .svc-metric__value--down .svc-metric__arrow{
  animation:smArrowDown .7s cubic-bezier(.22,1,.36,1) both;
  animation-duration:.7s!important;
}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(1) .svc-metric:nth-child(1) .svc-metric__arrow{animation-delay:.28s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(1) .svc-metric:nth-child(2) .svc-metric__arrow{animation-delay:.38s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(2) .svc-metric:nth-child(1) .svc-metric__arrow{animation-delay:.43s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(2) .svc-metric:nth-child(2) .svc-metric__arrow{animation-delay:.53s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(3) .svc-metric:nth-child(1) .svc-metric__arrow{animation-delay:.58s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(3) .svc-metric:nth-child(2) .svc-metric__arrow{animation-delay:.68s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(4) .svc-metric:nth-child(1) .svc-metric__arrow{animation-delay:.73s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(4) .svc-metric:nth-child(2) .svc-metric__arrow{animation-delay:.83s}

/* =========================================================
   Serviços IDLE (só DEPOIS da entrada — classe .is-alive)
   NÃO mexe nas regras .is-visible (entrada que o user curtiu).
   Números ficam quietos; vida fica em card / ícone / seta.
   ========================================================= */

/* dígitos: sem loop (entrada e count-up já rodaram) */
html body .services-uni.is-alive .svc-metric__value.is-counted,
html body .services-uni.is-alive .svc-metric__num{
  /* não forçar animation:none no value sem is-counted —
     evita matar smMetricPop se is-alive chegar cedo */
  transform:none;
  filter:none;
  text-shadow:none;
}

/* setas: micro-loop só no idle (bem contido) */
html body .services-uni.is-alive .svc-metric__value.is-counted:not(.svc-metric__value--down) .svc-metric__arrow{
  animation:smArrowIdleUp 2.8s ease-in-out infinite!important;
  animation-duration:2.8s!important;
  animation-iteration-count:infinite!important;
  opacity:1!important;
}
html body .services-uni.is-alive .svc-metric__value--down.is-counted .svc-metric__arrow{
  animation:smArrowIdleDown 2.8s ease-in-out infinite!important;
  animation-duration:2.8s!important;
  animation-iteration-count:infinite!important;
  opacity:1!important;
}
html body .services-uni.is-alive .svc-card:nth-child(1) .svc-metric:nth-child(1) .svc-metric__arrow{animation-delay:0s!important}
html body .services-uni.is-alive .svc-card:nth-child(1) .svc-metric:nth-child(2) .svc-metric__arrow{animation-delay:.35s!important}
html body .services-uni.is-alive .svc-card:nth-child(2) .svc-metric:nth-child(1) .svc-metric__arrow{animation-delay:.15s!important}
html body .services-uni.is-alive .svc-card:nth-child(2) .svc-metric:nth-child(2) .svc-metric__arrow{animation-delay:.5s!important}
html body .services-uni.is-alive .svc-card:nth-child(3) .svc-metric:nth-child(1) .svc-metric__arrow{animation-delay:.25s!important}
html body .services-uni.is-alive .svc-card:nth-child(3) .svc-metric:nth-child(2) .svc-metric__arrow{animation-delay:.6s!important}
html body .services-uni.is-alive .svc-card:nth-child(4) .svc-metric:nth-child(1) .svc-metric__arrow{animation-delay:.1s!important}
html body .services-uni.is-alive .svc-card:nth-child(4) .svc-metric:nth-child(2) .svc-metric__arrow{animation-delay:.45s!important}

/* cards: base quieta + foco rotativo */
html body .services-uni.is-alive .svc-card{
  transition:
    transform .55s cubic-bezier(.22,1,.36,1),
    box-shadow .55s ease,
    border-color .4s ease!important;
  transition-duration:.55s,.55s,.4s!important;
}
html body .services-uni.is-alive .svc-card.is-spotlight{
  transform:translateY(-4px)!important;
  border-color:rgba(255,106,0,.32)!important;
  box-shadow:
    0 3px 10px rgba(17,17,17,.06),
    0 14px 30px rgba(40,28,18,.09),
    0 0 0 1px rgba(255,106,0,.14)!important;
  z-index:2;
}
html body .services-uni.is-alive .svc-card.is-spotlight .svc-card__icon{
  background:rgba(255,106,0,.14)!important;
  border-color:rgba(255,106,0,.3)!important;
}

/* ícones flutuando (só idle) */
html body .services-uni.is-alive .svc-card__icon{
  animation:smIconAlive 4.8s ease-in-out infinite!important;
  animation-duration:4.8s!important;
  animation-iteration-count:infinite!important;
  transition:background .4s ease,border-color .4s ease!important;
}
html body .services-uni.is-alive .svc-card:nth-child(2) .svc-card__icon{animation-delay:.55s!important}
html body .services-uni.is-alive .svc-card:nth-child(3) .svc-card__icon{animation-delay:1.1s!important}
html body .services-uni.is-alive .svc-card:nth-child(4) .svc-card__icon{animation-delay:1.65s!important}

/* linha do head — ambient */
html body .services-uni.is-alive .services-uni__head::after{
  background:linear-gradient(
    90deg,
    transparent 0%,
    rgba(255,106,0,.08) 28%,
    rgba(255,106,0,.45) 50%,
    rgba(255,106,0,.08) 72%,
    transparent 100%
  )!important;
  background-size:200% 100%!important;
  animation:smHeadShimmer 6s linear infinite!important;
  animation-duration:6s!important;
  animation-iteration-count:infinite!important;
  opacity:1!important;
  height:2px!important;
  bottom:-1px!important;
}

@keyframes smMetricPop{
  from{opacity:0;transform:translateY(10px) scale(.92)}
  to{opacity:1;transform:none}
}
@keyframes smArrowUp{
  0%{opacity:0;transform:translateY(8px) scale(.7)}
  55%{opacity:1;transform:translateY(-3px) scale(1.08)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes smArrowDown{
  0%{opacity:0;transform:translateY(-8px) scale(.7)}
  55%{opacity:1;transform:translateY(3px) scale(1.08)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes smIconAlive{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
@keyframes smArrowIdleUp{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-1.5px)}
}
@keyframes smArrowIdleDown{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(1.5px)}
}
@keyframes smHeadShimmer{
  0%{background-position:100% 0}
  100%{background-position:-100% 0}
}
@keyframes smNotePulse{
  0%,100%{opacity:.72}
  50%{opacity:1}
}

/* Service note line draw */
.js.motion-ready .services-uni__note{
  opacity:0;
  transform:translateY(12px);
  transition:opacity .6s var(--sm-ease),transform .6s var(--sm-ease);
  transition-delay:.45s;
}
.js.motion-ready .services-uni.is-visible .services-uni__note{
  opacity:1;
  transform:none;
}

/* ---- Fit section cascade ---- */
.js.motion-ready .method-fit__card{
  opacity:0;
  transform:translate3d(0,24px,0) scale(.98);
  transition:
    opacity .65s var(--sm-ease),
    transform .65s var(--sm-ease),
    border-color .25s ease,
    background .25s ease,
    box-shadow .3s ease;
}
.js.motion-ready .method-fit.is-inview .method-fit__card{
  opacity:1;
  transform:none;
}
.js.motion-ready .method-fit.is-inview .method-fit__card:nth-child(1){transition-delay:.06s}
.js.motion-ready .method-fit.is-inview .method-fit__card:nth-child(2){transition-delay:.14s}
.js.motion-ready .method-fit.is-inview .method-fit__card:nth-child(3){transition-delay:.22s}
.js.motion-ready .method-fit.is-inview .method-fit__card:nth-child(4){transition-delay:.3s}
.js.motion-ready .method-fit__panel{
  opacity:0;
  transform:translate3d(22px,0,0);
  transition:opacity .7s var(--sm-ease),transform .7s var(--sm-ease),border-color .25s ease;
  transition-delay:.18s;
}
.js.motion-ready .method-fit.is-inview .method-fit__panel{
  opacity:1;
  transform:none;
}
.js.motion-ready .method-fit.is-inview .method-fit__num{
  animation:smNumPulse .7s var(--sm-ease) both;
}
.js.motion-ready .method-fit.is-inview .method-fit__card:nth-child(1) .method-fit__num{animation-delay:.12s}
.js.motion-ready .method-fit.is-inview .method-fit__card:nth-child(2) .method-fit__num{animation-delay:.2s}
.js.motion-ready .method-fit.is-inview .method-fit__card:nth-child(3) .method-fit__num{animation-delay:.28s}
.js.motion-ready .method-fit.is-inview .method-fit__card:nth-child(4) .method-fit__num{animation-delay:.36s}

@keyframes smNumPulse{
  from{opacity:0;transform:scale(.65)}
  60%{transform:scale(1.12)}
  to{opacity:1;transform:none}
}

/* Panel list items cascade when fit inview */
.js.motion-ready .method-fit__panel-list li{
  opacity:0;
  transform:translateX(12px);
  transition:opacity .5s var(--sm-ease),transform .5s var(--sm-ease);
}
.js.motion-ready .method-fit.is-inview .method-fit__panel-list li{
  opacity:1;
  transform:none;
}
.js.motion-ready .method-fit.is-inview .method-fit__panel-list li:nth-child(1){transition-delay:.28s}
.js.motion-ready .method-fit.is-inview .method-fit__panel-list li:nth-child(2){transition-delay:.36s}
.js.motion-ready .method-fit.is-inview .method-fit__panel-list li:nth-child(3){transition-delay:.44s}
.js.motion-ready .method-fit.is-inview .method-fit__panel-list li:nth-child(4){transition-delay:.52s}

/* Panel items also interactive */
.method-fit__panel-list li{
  cursor:pointer;
  border-radius:8px;
  margin-inline:-.35rem;
  padding-inline:.35rem!important;
  transition:background .25s ease,transform .25s var(--sm-ease);
}
.method-fit__panel-list li:hover{
  background:rgba(255,106,0,.08);
}
.method-fit__panel-list li.is-picked{
  background:rgba(255,106,0,.14);
  transform:translateX(4px);
}

/* ---- Difference ---- */
.js.motion-ready .difference__heading.reveal:not(.is-visible){
  opacity:0;
  transform:translate3d(0,28px,0);
}
.js.motion-ready .difference__heading.reveal.is-visible{
  opacity:1;
  transform:none;
  transition:opacity .75s var(--sm-ease),transform .75s var(--sm-ease);
}
.js.motion-ready .difference-console.reveal:not(.is-visible){
  opacity:0;
  transform:translate3d(0,32px,0) scale(.98);
  filter:blur(2px);
}
.js.motion-ready .difference-console.reveal.is-visible{
  opacity:1;
  transform:none;
  filter:none;
  transition:opacity .8s var(--sm-ease),transform .8s var(--sm-ease),filter .8s ease;
  transition-delay:.1s;
}

/* Points list interactive hover */
.diff-panel__points li,
.diff-panel__list li{
  cursor:default;
  transition:transform .25s var(--sm-ease),background .25s ease,padding .25s ease;
  border-radius:8px;
}
@media (hover:hover) and (pointer:fine){
  .diff-panel__points li:hover,
  .diff-panel__list li:hover{
    transform:translateX(6px);
    background:rgba(255,106,0,.06);
    padding-left:.35rem!important;
  }
}

/* ---- Social strip ---- */
.js.motion-ready .social-strip__inner.reveal:not(.is-visible){
  opacity:0;
  transform:translate3d(0,24px,0);
}
.js.motion-ready .social-strip__inner.reveal.is-visible{
  opacity:1;
  transform:none;
  transition:opacity .7s var(--sm-ease),transform .7s var(--sm-ease);
}
.js.motion-ready .social-strip__inner.is-visible h2 a{
  background-size:100% 1px;
  background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;
  background-position:0 100%;
  animation:smUnderline .85s var(--sm-ease) .3s both;
}
@keyframes smUnderline{
  from{background-size:0% 1px}
  to{background-size:100% 1px}
}
.social-strip .btn{
  transition:transform .25s var(--sm-ease),box-shadow .25s ease!important;
}
.social-strip .btn:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(255,106,0,.25);
}

/* ---- Contact ambient ---- */
.contact::after{
  content:"";
  position:absolute;
  left:50%;
  top:42%;
  width:min(70vw,520px);
  height:min(70vw,520px);
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,106,0,.18),transparent 68%);
  pointer-events:none;
  z-index:0;
  opacity:.65;
}
.js.motion-ready .contact.is-inview::after{
  animation:smGlow 4.5s ease-in-out infinite;
}
@keyframes smGlow{
  0%,100%{opacity:.4;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:.9;transform:translate(-50%,-50%) scale(1.1)}
}
.js.motion-ready .contact__content.is-visible h2 em{
  animation:smEmRise .75s var(--sm-ease) .15s both;
}
@keyframes smEmRise{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:none}
}

/* Contact CTA pulse ring */
.js.motion-ready .contact.is-inview .btn--light{
  animation:smBtnPulse 2.8s ease-in-out infinite;
}
@keyframes smBtnPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
  50%{box-shadow:0 0 0 10px rgba(255,255,255,.06)}
}

/* ---- Footer ---- */
.js.motion-ready .footer-left,
.js.motion-ready .footer-right{
  opacity:0;
  transform:translate3d(0,32px,0);
  transition:opacity .75s var(--sm-ease),transform .75s var(--sm-ease);
}
.js.motion-ready .footer-right{transition-delay:.14s}
.js.motion-ready .footer.is-inview .footer-left,
.js.motion-ready .footer.is-inview .footer-right{
  opacity:1;
  transform:none;
}
.js.motion-ready .footer.is-inview .lucky-cube{
  animation:smCubeSettle .8s var(--sm-ease) .2s both;
}
@keyframes smCubeSettle{
  from{opacity:0;transform:rotate(-10deg) translateY(16px) scale(.8)}
  70%{transform:rotate(-10deg) translateY(-3px) scale(1.04)}
  to{opacity:1;transform:rotate(-10deg)}
}
.footer-social-icons .social-icon{
  transition:transform .25s var(--sm-ease),background .2s ease,box-shadow .25s ease!important;
}
.footer-social-icons .social-icon:hover{
  transform:translateY(-4px) scale(1.06)!important;
}

/* ---- Buttons sheen (aditivo) ---- */
.hero-clean__btn:not(.hero-clean__btn--secondary),
.btn--primary,
.btn--light{
  position:relative;
  overflow:hidden;
}
.hero-clean__btn:not(.hero-clean__btn--secondary)::after,
.btn--primary::after,
.btn--light::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.3) 50%,transparent 60%);
  transform:translateX(-120%);
  pointer-events:none;
}
@media (hover:hover) and (pointer:fine){
  .hero-clean__btn:not(.hero-clean__btn--secondary):hover::after,
  .btn--primary:hover::after,
  .btn--light:hover::after{
    animation:smSheen .7s var(--sm-ease);
  }
}
@keyframes smSheen{
  to{transform:translateX(120%)}
}

/* Eyebrow bar */
.js.motion-ready .eyebrow{position:relative}
.js.motion-ready .is-visible > .eyebrow::after,
.js.motion-ready .method-fit.is-inview .eyebrow::after,
.js.motion-ready .difference__heading.is-visible .eyebrow::after,
.js.motion-ready .services-uni.is-visible .eyebrow::after,
.js.motion-ready .clarity__head.is-visible .eyebrow::after,
.js.motion-ready .process__head.is-visible .eyebrow::after,
.js.motion-ready .process__head.is-visible .process__badge::after{
  content:"";
  display:block;
  width:32px;
  height:2px;
  margin-top:.55rem;
  border-radius:2px;
  background:#ff6a00;
  transform-origin:left center;
  animation:smBar .55s var(--sm-ease) .08s both;
}
.js.motion-ready .method-fit.is-inview .eyebrow.eyebrow--light::after{
  background:#ff8a3d;
}
@keyframes smBar{
  from{transform:scaleX(0);opacity:0}
  to{transform:scaleX(1);opacity:1}
}

/* Process steps rise when lit (desktop) */
@media (min-width:901px){
  .process-step__body{
    transition:opacity .45s ease,transform .5s var(--sm-ease);
  }
  .process-step:not(.is-lit) .process-step__body{
    opacity:.5;
    transform:translateY(8px);
  }
  .process-step.is-lit .process-step__body{
    opacity:1;
    transform:none;
  }
  .process-step{
    cursor:pointer;
  }
  .process-step.is-focus .process-step__body{
    opacity:1!important;
    transform:none!important;
  }
  .process-step.is-focus .process-step__title{
    color:#ff6a00;
  }
}

/* Process mobile: click focus */
@media (max-width:900px){
  .process-step{
    cursor:pointer;
    transition:transform .25s var(--sm-ease);
  }
  .process-step.is-focus .process-step__body{
    background:rgba(255,106,0,.06);
    border-radius:12px;
    padding:.35rem .5rem .35rem 0;
  }
  .process-step.is-focus .process-step__title{
    color:#ff6a00;
  }
}

/* Clarity icons pulse */
.js .clarity-board.is-visible .cboard-bar__ico{
  animation:smIcoSoft 3s ease-in-out infinite;
}
.js .clarity-board.is-visible .cboard-bar__points li:nth-child(2) .cboard-bar__ico{animation-delay:.35s}
.js .clarity-board.is-visible .cboard-bar__points li:nth-child(3) .cboard-bar__ico{animation-delay:.7s}
@keyframes smIcoSoft{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.08)}
}

/* Clarity cards interactive */
.cboard-card{
  overflow:hidden;
}
.cboard-card.is-picked .cboard-card__rule{
  transform:scaleX(1.15);
  background:#ff6a00;
  transition:transform .4s var(--sm-ease),background .3s ease;
}

/* Hero chips: slight bounce on hover */
@media (hover:hover) and (pointer:fine){
  .hero-chip{
    transition:transform .25s var(--sm-ease),background .2s ease,box-shadow .25s ease!important;
  }
  .hero-chip:hover{
    transform:translateY(-3px) scale(1.04)!important;
    box-shadow:0 8px 18px rgba(255,106,0,.15);
  }
}

/* Header magnetic already exists — logo subtle scale on scroll */
.header.scrolled .logo img{
  transition:transform .35s var(--sm-ease);
}
.header.scrolled .logo:hover img{
  transform:scale(1.04);
}

/* Section ambient: soft orange sweep when in view */
.js.motion-ready .services--unified.is-inview,
.js.motion-ready #servicos.is-inview{
  /* section itself may not have class — services-uni has */
}
.js.motion-ready .services.services--unified{
  transition:background .6s ease;
}

/* Cursor glow follower (desktop only, decorative) */
.sm-cursor-glow{
  position:fixed;
  width:280px;
  height:280px;
  margin:-140px 0 0 -140px;
  border-radius:50%;
  pointer-events:none;
  z-index:1;
  background:radial-gradient(circle,rgba(255,106,0,.12),transparent 68%);
  opacity:0;
  transition:opacity .4s ease;
  mix-blend-mode:multiply;
}
.sm-cursor-glow.is-on{opacity:1}
body.has-hero-clean .sm-cursor-glow{mix-blend-mode:multiply}

/* =========================================================
   EXTRA REVEALS (aditivo) — só onde faltava animação de entrada
   NÃO reescreve process / clarity board / hero / trusted cycle
   ========================================================= */

/* ---- Services: head + cards entrando (antes só métricas/ícones) ---- */
.js.motion-ready .services-uni:not(.is-visible) .services-uni__head-main,
.js.motion-ready .services-uni:not(.is-visible) .services-uni__lead{
  opacity:0;
  transform:translate3d(0,22px,0);
}
.js.motion-ready .services-uni.is-visible .services-uni__head-main,
.js.motion-ready .services-uni.is-visible .services-uni__lead{
  opacity:1;
  transform:none;
  transition:opacity .7s var(--sm-ease),transform .7s var(--sm-ease);
}
.js.motion-ready .services-uni.is-visible .services-uni__lead{
  transition-delay:.1s;
}
.js.motion-ready .services-uni:not(.is-visible) .svc-card{
  opacity:0;
  transform:translate3d(0,28px,0);
}
.js.motion-ready .services-uni.is-visible .svc-card{
  opacity:1;
  transform:none;
  transition:
    opacity .65s var(--sm-ease),
    transform .65s var(--sm-ease),
    box-shadow .3s ease,
    border-color .3s ease;
}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(1){transition-delay:.08s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(2){transition-delay:.16s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(3){transition-delay:.24s}
.js.motion-ready .services-uni.is-visible .svc-card:nth-child(4){transition-delay:.32s}
/* em italic no H2 */
.js.motion-ready .services-uni.is-visible .services-uni__head-main em{
  display:inline-block;
  animation:smEmRise .7s var(--sm-ease) .22s both;
}

/* ---- FAQ: cascade (antes só o bloco inteiro) ---- */
.js.motion-ready .faq-seo__wrap.reveal:not(.is-visible) .faq-seo__head,
.js.motion-ready .faq-seo__wrap.reveal:not(.is-visible) .faq-seo__grid > li{
  opacity:0;
  transform:translate3d(0,20px,0);
}
.js.motion-ready .faq-seo__wrap.reveal.is-visible .faq-seo__head{
  opacity:1;
  transform:none;
  transition:opacity .65s var(--sm-ease),transform .65s var(--sm-ease);
}
.js.motion-ready .faq-seo__wrap.reveal.is-visible .faq-seo__grid > li{
  opacity:1;
  transform:none;
  transition:opacity .6s var(--sm-ease),transform .6s var(--sm-ease),box-shadow .25s ease,border-color .25s ease;
}
.js.motion-ready .faq-seo__wrap.reveal.is-visible .faq-seo__grid > li:nth-child(1){transition-delay:.1s}
.js.motion-ready .faq-seo__wrap.reveal.is-visible .faq-seo__grid > li:nth-child(2){transition-delay:.18s}
.js.motion-ready .faq-seo__wrap.reveal.is-visible .faq-seo__grid > li:nth-child(3){transition-delay:.26s}
.js.motion-ready .faq-seo.is-inview .faq-seo__head .eyebrow::after,
.js.motion-ready .faq-seo__wrap.is-visible .faq-seo__head .eyebrow::after{
  content:"";
  display:block;
  width:32px;
  height:2px;
  margin-top:.55rem;
  border-radius:2px;
  background:#ff6a00;
  transform-origin:left center;
  animation:smBar .55s var(--sm-ease) .08s both;
}
/* hover leve nos cards FAQ */
.faq-seo__grid > li{
  transition:transform .28s var(--sm-ease),box-shadow .28s ease,border-color .25s ease;
}
@media (hover:hover) and (pointer:fine){
  .faq-seo__grid > li:hover{
    transform:translateY(-3px);
  }
}

/* ---- Contact: filhos em stagger (aditivo ao reveal do bloco) ---- */
.js.motion-ready .contact__content.reveal:not(.is-visible) > .eyebrow,
.js.motion-ready .contact__content.reveal:not(.is-visible) > h2,
.js.motion-ready .contact__content.reveal:not(.is-visible) > p,
.js.motion-ready .contact__content.reveal:not(.is-visible) > .btn{
  opacity:0;
  transform:translate3d(0,18px,0);
}
.js.motion-ready .contact__content.reveal.is-visible > .eyebrow,
.js.motion-ready .contact__content.reveal.is-visible > h2,
.js.motion-ready .contact__content.reveal.is-visible > p,
.js.motion-ready .contact__content.reveal.is-visible > .btn{
  opacity:1;
  transform:none;
  transition:opacity .65s var(--sm-ease),transform .65s var(--sm-ease);
}
.js.motion-ready .contact__content.reveal.is-visible > .eyebrow{transition-delay:.05s}
.js.motion-ready .contact__content.reveal.is-visible > h2{transition-delay:.12s}
.js.motion-ready .contact__content.reveal.is-visible > p{transition-delay:.2s}
.js.motion-ready .contact__content.reveal.is-visible > .btn{transition-delay:.3s}

/* ---- Footer: form + ícones sociais (left/right já existiam) ---- */
.js.motion-ready .footer:not(.is-inview) .footer-tagline,
.js.motion-ready .footer:not(.is-inview) .footer-subscribe-row,
.js.motion-ready .footer:not(.is-inview) .footer-social-row,
.js.motion-ready .footer:not(.is-inview) .social-icon{
  opacity:0;
  transform:translate3d(0,16px,0);
}
.js.motion-ready .footer.is-inview .footer-tagline,
.js.motion-ready .footer.is-inview .footer-subscribe-row,
.js.motion-ready .footer.is-inview .footer-social-row,
.js.motion-ready .footer.is-inview .social-icon{
  opacity:1;
  transform:none;
  transition:opacity .6s var(--sm-ease),transform .6s var(--sm-ease);
}
.js.motion-ready .footer.is-inview .footer-tagline{transition-delay:.12s}
.js.motion-ready .footer.is-inview .footer-social-row{transition-delay:.2s}
.js.motion-ready .footer.is-inview .footer-subscribe-row{transition-delay:.28s}
.js.motion-ready .footer.is-inview .social-icon:nth-child(1){transition-delay:.22s}
.js.motion-ready .footer.is-inview .social-icon:nth-child(2){transition-delay:.3s}
.js.motion-ready .footer.is-inview .social-icon:nth-child(3){transition-delay:.38s}

/* ---- Method intro lines (cards já tinham cascade) ---- */
.js.motion-ready .method-fit:not(.is-inview) .method-fit__title-main,
.js.motion-ready .method-fit:not(.is-inview) .method-fit__title-sub,
.js.motion-ready .method-fit:not(.is-inview) .method-fit__lead{
  opacity:0;
  transform:translate3d(0,18px,0);
}
.js.motion-ready .method-fit.is-inview .method-fit__title-main,
.js.motion-ready .method-fit.is-inview .method-fit__title-sub,
.js.motion-ready .method-fit.is-inview .method-fit__lead{
  opacity:1;
  transform:none;
  transition:opacity .7s var(--sm-ease),transform .7s var(--sm-ease);
}
.js.motion-ready .method-fit.is-inview .method-fit__title-main{transition-delay:.05s}
.js.motion-ready .method-fit.is-inview .method-fit__title-sub{transition-delay:.14s}
.js.motion-ready .method-fit.is-inview .method-fit__lead{transition-delay:.22s}

/* ---- Difference heading children (console já tem reveal próprio) ---- */
.js.motion-ready .difference__heading.reveal:not(.is-visible) .eyebrow,
.js.motion-ready .difference__heading.reveal:not(.is-visible) h2,
.js.motion-ready .difference__heading.reveal:not(.is-visible) > p:not(.eyebrow){
  opacity:0;
  transform:translate3d(0,16px,0);
}
.js.motion-ready .difference__heading.reveal.is-visible .eyebrow,
.js.motion-ready .difference__heading.reveal.is-visible h2,
.js.motion-ready .difference__heading.reveal.is-visible > p:not(.eyebrow){
  opacity:1;
  transform:none;
  transition:opacity .65s var(--sm-ease),transform .65s var(--sm-ease);
}
.js.motion-ready .difference__heading.reveal.is-visible .eyebrow{transition-delay:.04s}
.js.motion-ready .difference__heading.reveal.is-visible h2{transition-delay:.12s}
.js.motion-ready .difference__heading.reveal.is-visible > p:not(.eyebrow){transition-delay:.2s}

/* ---- Reduced motion: conteúdo visível; Serviços IDLE continua (retenção) ---- */
@media (prefers-reduced-motion:reduce){
  .js.motion-ready [data-motion],
  .js.motion-ready .method-fit__card,
  .js.motion-ready .method-fit__panel,
  .js.motion-ready .method-fit__panel-list li,
  .js.motion-ready .footer-left,
  .js.motion-ready .footer-right,
  .js.motion-ready .difference-console.reveal,
  .js.motion-ready .difference__heading.reveal,
  .js.motion-ready .social-strip__inner.reveal,
  .js.motion-ready .services-uni:not(.is-alive) .services-uni__note,
  .js.motion-ready .services-uni:not(.is-alive) .svc-card,
  .js.motion-ready .services-uni__head-main,
  .js.motion-ready .services-uni__lead,
  .js.motion-ready .faq-seo__wrap .faq-seo__head,
  .js.motion-ready .faq-seo__wrap .faq-seo__grid > li,
  .js.motion-ready .contact__content.reveal > *,
  .js.motion-ready .footer .footer-tagline,
  .js.motion-ready .footer .footer-subscribe-row,
  .js.motion-ready .footer .footer-social-row,
  .js.motion-ready .footer .social-icon,
  .js.motion-ready .method-fit__title-main,
  .js.motion-ready .method-fit__title-sub,
  .js.motion-ready .method-fit__lead{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    transition:none!important;
    animation:none!important;
  }
  /* NÃO matar .services-uni.is-alive — idle de retenção é product-critical */
  .js.motion-ready .contact.is-inview::after,
  .js.motion-ready .footer.is-inview .lucky-cube,
  .js.motion-ready .contact__content.is-visible h2 em,
  .js.motion-ready .contact.is-inview .btn--light,
  .js .clarity-board.is-visible .cboard-bar__ico,
  .sm-ripple,
  .sm-scroll-progress{
    animation:none!important;
  }
  .sm-cursor-glow{display:none!important}
}

/* hover no card vivo: pausa o breathe do card sob o ponteiro */
@media (hover:hover) and (pointer:fine){
  .js.motion-ready .services-uni.is-alive .svc-card:hover{
    animation-play-state:paused;
  }
}

@media (max-width:720px){
  .js.motion-ready .services-uni.is-visible .svc-card__icon{
    animation:none;
  }
  .js .clarity-board.is-visible .cboard-bar__ico{animation:none}
  .sm-cursor-glow{display:none!important}
  .js.motion-ready .contact.is-inview .btn--light{animation:none}
  .svc-card.is-picked{transform:translateY(-3px) scale(1.01)}
}
