/* Animações do site */
@keyframes fadeUp { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes drawLine { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes goldShift { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }
@keyframes spinSlow { to { transform: rotate(360deg); } }
@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes pulseRing { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(3.2); opacity: 0; } }
@keyframes waRing { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); } 100% { box-shadow: 0 0 0 20px rgba(37, 211, 102, 0); } }
@keyframes routeDrift { to { stroke-dashoffset: -26; } }

/* Hero: entrada em sequência */
.hero-copy > .eyebrow,
.hero-copy > h1,
.hero-copy > .hero-text,
.hero-copy > .hero-actions,
.hero-copy > .trust-row { animation: fadeUp .8s cubic-bezier(.2,.8,.2,1) both; }
.hero-copy > .eyebrow { animation-delay: .05s; }
.hero-copy > h1 { animation-delay: .18s; }
.hero-copy > .hero-text { animation-delay: .34s; }
.hero-copy > .hero-actions { animation-delay: .48s; }
.hero-copy > .trust-row { animation-delay: .62s; }
.hero .quote-panel { animation: fadeUp .9s .3s cubic-bezier(.2,.8,.2,1) both; }

.hero h1 span {
  background-size: 200% 100%;
  animation: goldShift 6s linear infinite;
}
.hero h1 span::after {
  transform-origin: left;
  animation: drawLine .9s .9s cubic-bezier(.2,.8,.2,1) both;
}

/* Arte de fundo da hero */
.hero-art {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: -6%;
  width: min(880px, 70vw);
  aspect-ratio: 1;
  transform: translateY(-50%);
  opacity: .5;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(circle, #000 38%, transparent 72%);
  mask-image: radial-gradient(circle, #000 38%, transparent 72%);
  animation: fadeIn 1.6s ease both;
}
.hero-art svg { width: 100%; height: 100%; overflow: visible; }
.art-globe { transform-origin: 400px 400px; animation: spinSlow 140s linear infinite; }
.art-route { animation: routeDrift 2.4s linear infinite; }
.art-pulse { transform-box: fill-box; transform-origin: center; animation: pulseRing 2.6s ease-out infinite; }
.art-pulse-2 { animation-delay: 1.3s; }

/* Botões: brilho passando */
.button-gold { position: relative; overflow: hidden; }
.button-gold::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: -60%;
  width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent);
  transform: skewX(-20deg);
  transition: left .7s ease;
  pointer-events: none;
}
.button-gold:hover::after { left: 130%; }
.button:hover { transform: translateY(-2px); }

/* Cards */
.service-card, .process-step, .strip-item, .testimonial-card {
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .35s ease;
}
.service-card:hover { transform: translateY(-8px); }
.process-step:hover { transform: translateY(-5px); }
.strip-item:hover { background: rgba(211, 173, 91, .06); }
.step-marker { transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.process-step:hover .step-marker { transform: scale(1.12) rotate(-6deg); }

/* Menu: sublinhado dourado */
.desktop-nav a { position: relative; }
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 2px;
  border-radius: 2px;
  background: var(--gold-400);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
.desktop-nav a:hover::after, .desktop-nav a.active::after { transform: scaleX(1); }

/* WhatsApp e telefone flutuantes */
.floating-whatsapp { animation: waRing 2.2s ease-out infinite; }
.floating-phone, .floating-whatsapp { transition: transform .25s ease; }
.floating-phone:hover, .floating-whatsapp:hover { transform: scale(1.1); }

/* Link da política de privacidade */
.quote-note a {
  color: var(--gold-300);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(226, 197, 127, .5);
  text-underline-offset: 3px;
  transition: color .2s ease, text-decoration-color .2s ease;
}
.quote-note a:hover { color: #fff; text-decoration-color: #fff; }

/* Vistos: imagem da hero entra suave */
.visa-page .visa-hero::after { animation: fadeIn 1.1s ease both; }

/* Revelação ao rolar: variações */
.reveal-left { transform: translateX(-28px); }
.reveal-left.is-visible { transform: none; }
.reveal-zoom { transform: scale(.94); }
.reveal-zoom.is-visible { transform: none; }

@media (max-width: 980px) {
  .hero-art { right: -30%; width: 120vw; opacity: .3; top: 38%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
}

.quote-note { display: block; }
