/* ===== Rafael Horta Marketing — camada de reforço visual (animações) ===== */

/* ---------- Reveal on scroll ---------- */
.rh-reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}
.rh-reveal.rh-in{opacity:1;transform:translateY(0)}
.rh-reveal-stagger .rh-reveal:nth-child(1){transition-delay:0s}
.rh-reveal-stagger .rh-reveal:nth-child(2){transition-delay:.08s}
.rh-reveal-stagger .rh-reveal:nth-child(3){transition-delay:.16s}
.rh-reveal-stagger .rh-reveal:nth-child(4){transition-delay:.24s}

/* ---------- Hero: orbitas com movimento + brilho de fundo ---------- */
.gold-orbit{animation:rh-orbit-drift 22s ease-in-out infinite}
.orbit-one{animation-duration:26s}
.orbit-two{animation-duration:19s;animation-direction:reverse}
@keyframes rh-orbit-drift{
  0%{transform:translate(0,0) rotate(0deg)}
  50%{transform:translate(-18px,14px) rotate(6deg)}
  100%{transform:translate(0,0) rotate(0deg)}
}

.hero{position:relative}
.hero:before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(600px circle at var(--rh-mx,50%) var(--rh-my,30%),#b79a5b22,transparent 60%);
  transition:background-position .2s ease-out;
}
.hero-grain{animation:rh-grain-pulse 9s ease-in-out infinite}
@keyframes rh-grain-pulse{0%,100%{opacity:.25}50%{opacity:.4}}

.hero-signature{animation:rh-signature-float 7s ease-in-out infinite}
@keyframes rh-signature-float{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(-8deg) translateY(-10px)}}

/* ---------- CTA final: orbita girando devagar ---------- */
.cta-orbit{animation:rh-orbit-spin 40s linear infinite}
.final-cta:before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(420px circle at 50% 30%,#b79a5b1c,transparent 65%);
}
@keyframes rh-orbit-spin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ---------- Números (proof-strip) contados ---------- */
.proof-strip strong{transition:color .3s}

/* ---------- Cards de serviço ---------- */
.service-card{overflow:hidden}
.service-card .card-arrow{transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .35s}
.service-card:hover .card-arrow{transform:translate(5px,-5px) rotate(0deg) scale(1.15)}
.service-card:after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-light));
  transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.service-card:hover:after{transform:scaleX(1)}
.service-number{display:inline-block;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.service-card:hover .service-number{transform:translateY(-3px)}

/* ---------- Case cards ---------- */
.case-thumb-art:before,.case-thumb-art:after{transition:transform .6s cubic-bezier(.16,1,.3,1)}
.case-card-link:hover .case-thumb-art:before{transform:scale(1.12) translate(6px,-6px)}
.case-card-link:hover .case-thumb-art:after{transform:scale(1.12) translate(-6px,6px)}
.case-card-link b i{display:inline-block;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.case-card-link:hover b i{transform:translate(4px,-4px)}

/* ---------- Botões ---------- */
.button-gold{position:relative;overflow:hidden;z-index:0}
.button-gold:before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(120deg,var(--gold-light),var(--gold));
  transform:translateX(-100%);transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.button-gold:hover:before{transform:translateX(0)}
.button-gold span{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.button-gold:hover span{transform:translate(3px,-3px)}

.text-link{position:relative;display:inline-flex;align-items:center}
.text-link span{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.text-link:hover span{transform:translateY(3px)}

.whatsapp-float{transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.whatsapp-float:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 16px 40px #00000060}

/* ---------- Timeline do método (progressão) ---------- */
.method-list{position:relative}
.method-list:before{
  content:"";position:absolute;left:27px;top:0;bottom:0;width:1px;
  background:#cec8bd;z-index:0;
}
.method-list:after{
  content:"";position:absolute;left:27px;top:0;width:1px;height:var(--rh-method-progress,0%);
  background:linear-gradient(var(--gold),var(--gold-light));z-index:1;transition:height .1s linear;
}
.method-list li{position:relative;z-index:2;background:transparent}
.method-list>li>span{position:relative}
.method-list>li>span:before{
  content:"";position:absolute;left:-4px;top:6px;width:9px;height:9px;border-radius:50%;
  background:var(--paper);border:1px solid var(--gold);transition:background .3s,transform .3s;
}
.method-list li.rh-active>span:before{background:var(--gold);transform:scale(1.25)}

/* ---------- Portrait ring girando bem devagar ---------- */
.portrait-ring{animation:rh-orbit-spin-slow 60s linear infinite}
.portrait-ring:after{animation:rh-orbit-spin-slow-rev 46s linear infinite}
@keyframes rh-orbit-spin-slow{from{transform:translate(-50%,0) rotate(0deg)}to{transform:translate(-50%,0) rotate(360deg)}}
@keyframes rh-orbit-spin-slow-rev{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}

/* ---------- Audience grid tags ---------- */
.audience-grid span{transition:background .3s,color .3s}
.audience-grid span:hover{background:var(--ink);color:#fff}

/* ---------- Respeita usuários que preferem menos movimento ---------- */
@media (prefers-reduced-motion:reduce){
  .rh-reveal{opacity:1!important;transform:none!important;transition:none!important}
  .gold-orbit,.hero-grain,.hero-signature,.cta-orbit,.portrait-ring,.portrait-ring:after{animation:none!important}
  .button-gold:before,.service-card .card-arrow,.case-thumb-art:before,.case-thumb-art:after{transition:none!important}
}
