/* ==========================================================================
   MOVIMENTO — política de animação do site (07/11/2026)
   Carregado por último em todas as páginas.
   Fica:  entradas suaves (uma vez), carrosséis de depoimentos (devagar,
          pausam no mouse/toque), ponto vermelho de "ao vivo".
   Sai:   loops decorativos (orbes, malhas, partículas, giros, brilho em texto
          e botão, cartões flutuando, pulsos) — distraem da leitura e pesam
          no celular.
   ========================================================================== */

/* Todo loop roda no máximo uma vez... */
*, *::before, *::after { animation-iteration-count: 1 !important; }

/* ...menos o que é conteúdo em movimento de propósito */
.marquee, .testi-marquee, .yt-marquee, .scroller__inner, [class*="marquee-track"],
.live-tag-dot, .live-tag-fixed i,
.fa-spin, .fa-spinner, .fa-circle-notch, .spinner, .loader, [class*="loading"] { animation-iteration-count: infinite !important; }

.marquee:hover, .testi-marquee:hover, .marquee-wrap:hover .marquee,
.testi-wrap-marquee:hover .testi-marquee, .scroller:hover .scroller__inner,
.yt-carousel-wrap:hover .yt-marquee, .yt-carousel-wrap.is-paused .yt-marquee, .marquee-wrap.is-paused .marquee,
.marquee:focus-within, .testi-marquee:focus-within { animation-play-state: paused !important; }

/* Decoração que não precisa existir */
.particle, .particles { display: none !important; }
[class*="orb"]:not([class*="orbit"]), .hero::before, .cta-card::after,
.hero-bg-img, .deco-card, .gradient, .accent, .btn-explore::after,
.btn-explore-ico::after, .testi-vcard-play::after { animation: none !important; }
.hero-bg-img { transform: scale(1.05) !important; will-change: auto !important; }

/* Exceção pedida pelo Jonathas (10/11): os cartões do topo da home voltam a flutuar, devagar.
   Só aparecem em tela larga (acima de 1440 px). */
.hero-deco .deco-card { animation: cardFloat 8s ease-in-out infinite !important; }
.hero-deco-2 .deco-card { animation-delay: -2s !important; }
.hero-deco-3 .deco-card { animation-delay: -4s !important; }
.hero-deco-4 .deco-card { animation-delay: -6s !important; }
.hero-deco .ico-brilho::after { animation-iteration-count: infinite !important; }

/* Quem pediu menos movimento no sistema não vê animação nenhuma,
   mas tudo termina no estado final (visível). */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    animation-delay: 0s !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .marquee, .testi-marquee, .scroller__inner { animation: none !important; transform: none !important; }
  .hero-deco .deco-card { animation: none !important; }
  .marquee-wrap, .testi-wrap-marquee, .scroller { overflow-x: auto !important; }
}

/* ==========================================================================
   CARDS AZUIS DE CHAMADA (CTA) — animação de volta (pedido do Jonathas, 10/11)
   Malha de cor que respira, brilho girando devagar e orbes flutuando, em todos os
   cards azuis (.cta-card da home e páginas de formação; .cta-wrapper das demais).
   Keyframes próprios: as páginas com .cta-wrapper não têm os da home.
   ========================================================================== */
@keyframes adinCtaMalha { 0%,100% { transform: translate(0,0) scale(1) } 25% { transform: translate(4%,-3%) scale(1.08) } 50% { transform: translate(-2%,5%) scale(.96) } 75% { transform: translate(-5%,-2%) scale(1.05) } }
@keyframes adinCtaGiro { to { transform: rotate(360deg) } }
@keyframes adinCtaOrbe { 0%,100% { transform: translate(0,0) scale(1) } 33% { transform: translate(40px,-30px) scale(1.15) } 66% { transform: translate(-30px,40px) scale(.9) } }

.cta-card, .cta-wrapper { isolation: isolate; }
.cta-card::before, .cta-wrapper::before {
  animation: adinCtaMalha 16s ease-in-out infinite !important;
  animation-iteration-count: infinite !important;
}
.cta-wrapper::before {
  inset: -10%;
  background:
    radial-gradient(ellipse 60% 50% at 20% 30%, rgba(59,91,255,.5), transparent 60%),
    radial-gradient(ellipse 50% 60% at 80% 70%, rgba(212,175,158,.28), transparent 60%),
    radial-gradient(ellipse 40% 40% at 50% 100%, rgba(63,211,198,.18), transparent 60%);
  filter: blur(20px);
  z-index: 0;
}
.cta-wrapper::after {
  content: ''; position: absolute; inset: -20%; pointer-events: none; z-index: 0; opacity: .7;
  background: conic-gradient(from 0deg at 50% 50%, rgba(59,91,255,0) 0deg, rgba(59,91,255,.15) 90deg, rgba(212,175,158,.1) 180deg, rgba(63,211,198,.08) 270deg, rgba(59,91,255,0) 360deg);
}
.cta-card::after, .cta-wrapper::after {
  filter: blur(36px);
  animation: adinCtaGiro 28s linear infinite !important;
  animation-iteration-count: infinite !important;
}
.cta-card .cta-orb-1 { animation: adinCtaOrbe 11s ease-in-out infinite !important; }
.cta-card .cta-orb-2 { animation: adinCtaOrbe 14s ease-in-out -3s infinite !important; }
.cta-card .cta-orb-3 { animation: adinCtaOrbe 17s ease-in-out -7s infinite !important; }
/* card da parceria com a Clínica Sentido (home) */
.partnership-card::before { animation: adinCtaMalha 18s ease-in-out infinite !important; }
.partnership-card .partnership-orb-1 { animation: adinCtaOrbe 14s ease-in-out infinite !important; }
.partnership-card .partnership-orb-2 { animation: adinCtaOrbe 18s ease-in-out -5s infinite !important; }

/* Botão do card azul: pílula branca com contorno, sombra de luz e reflexo no hover */
.cta-wrapper .btn-cta, .cta-card .cta-btn, .cta-card .btn-primary, .partnership-card .btn-primary {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
  padding: 17px 34px !important; border-radius: 100px !important;
  background: linear-gradient(180deg, #FFFFFF 0%, #EEF2FF 100%) !important;
  color: var(--ink) !important;
  border: 1px solid rgba(255,255,255,.9) !important;
  box-shadow: 0 0 0 6px rgba(255,255,255,.08), 0 18px 40px -14px rgba(59,91,255,.75), inset 0 -2px 0 rgba(10,22,40,.06) !important;
  font-weight: 600; letter-spacing: -.01em; text-decoration: none;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, color .35s !important;
}
.cta-wrapper .btn-cta::after, .cta-card .cta-btn::after, .cta-card .btn-primary::after, .partnership-card .btn-primary::after {
  content: ''; position: absolute; top: 0; left: -75%; width: 50%; height: 100%; z-index: -1; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(59,91,255,.18), transparent);
  transform: skewX(-20deg);
}
.cta-wrapper .btn-cta:hover, .cta-card .cta-btn:hover, .cta-card .btn-primary:hover, .partnership-card .btn-primary:hover {
  transform: translateY(-3px) !important;
  color: var(--indigo) !important;
  background: linear-gradient(180deg, #FFFFFF 0%, #EEF2FF 100%) !important;
  box-shadow: 0 0 0 8px rgba(255,255,255,.12), 0 24px 50px -14px rgba(59,91,255,.9), inset 0 -2px 0 rgba(10,22,40,.06) !important;
}
.cta-wrapper .btn-cta:hover::after, .cta-card .cta-btn:hover::after, .cta-card .btn-primary:hover::after, .partnership-card .btn-primary:hover::after { animation: adinCtaReflexo .8s ease forwards; }
@keyframes adinCtaReflexo { to { left: 130%; } }
.cta-wrapper .btn-cta i, .cta-card .cta-btn i, .cta-card .btn-primary i, .partnership-card .btn-primary i { transition: transform .35s; }
.cta-wrapper .btn-cta:hover .fa-arrow-right, .cta-card .cta-btn:hover .fa-arrow-right, .cta-card .btn-primary:hover .fa-arrow-right, .partnership-card .btn-primary:hover .fa-arrow-right { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
  .cta-card::before, .cta-wrapper::before, .cta-card::after, .cta-wrapper::after, .cta-card .cta-orb,
  .partnership-card::before, .partnership-card .partnership-orb { animation: none !important; }
}

/* ==========================================================================
   HERO VIVO (10/11) — camada animada nos topos sem vídeo (js/hero-vivo.js)
   Orbes de luz flutuando, brilho girando e partículas subindo, no padrão dos cards azuis.
   ========================================================================== */
@keyframes ahvOrbe1 { 0%,100% { transform: translate(0,0) scale(1) } 33% { transform: translate(9vw,-6vh) scale(1.18) } 66% { transform: translate(-5vw,7vh) scale(.92) } }
@keyframes ahvOrbe2 { 0%,100% { transform: translate(0,0) scale(1) } 40% { transform: translate(-10vw,5vh) scale(1.12) } 75% { transform: translate(4vw,-8vh) scale(.95) } }
@keyframes ahvOrbe3 { 0%,100% { transform: translate(-50%,0) scale(1) } 50% { transform: translate(-42%,-10vh) scale(1.2) } }
@keyframes ahvGiro { to { transform: rotate(360deg) } }
@keyframes ahvSobe { 0% { transform: translateY(0); opacity: 0 } 12% { opacity: var(--o, .7) } 85% { opacity: var(--o, .7) } 100% { transform: translateY(-110vh) translateX(30px); opacity: 0 } }

.adin-hero-vivo { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.ahv-orbe { position: absolute; border-radius: 50%; filter: blur(60px); will-change: transform; }
.ahv-orbe-1 { width: 46vmax; height: 46vmax; top: -18%; left: -10%; animation: ahvOrbe1 22s ease-in-out infinite !important; }
.ahv-orbe-2 { width: 40vmax; height: 40vmax; bottom: -22%; right: -8%; animation: ahvOrbe2 26s ease-in-out -6s infinite !important; }
.ahv-orbe-3 { width: 30vmax; height: 30vmax; top: 30%; left: 50%; animation: ahvOrbe3 19s ease-in-out -3s infinite !important; }
.ahv-giro { position: absolute; inset: -40%; filter: blur(40px); animation: ahvGiro 40s linear infinite !important; }
.ahv-ponto { position: absolute; bottom: -12px; width: var(--s, 4px); height: var(--s, 4px); border-radius: 50%; animation: ahvSobe var(--t, 18s) linear var(--d, 0s) infinite !important; }

/* hero escuro: luz azul, dourada e verde-água mesclada */
.adin-hero-vivo--escuro { mix-blend-mode: screen; }
.adin-hero-vivo--escuro .ahv-orbe-1 { background: radial-gradient(circle, rgba(59,91,255,.55), transparent 65%); }
.adin-hero-vivo--escuro .ahv-orbe-2 { background: radial-gradient(circle, rgba(212,175,158,.38), transparent 65%); }
.adin-hero-vivo--escuro .ahv-orbe-3 { background: radial-gradient(circle, rgba(63,211,198,.26), transparent 65%); }
.adin-hero-vivo--escuro .ahv-giro { background: conic-gradient(from 0deg, transparent 0deg, rgba(59,91,255,.14) 90deg, rgba(212,175,158,.1) 180deg, rgba(63,211,198,.08) 270deg, transparent 360deg); }
.adin-hero-vivo--escuro .ahv-ponto { background: rgba(255,255,255,.75); box-shadow: 0 0 10px rgba(159,180,255,.9); --o: .6; }

/* hero claro: tons suaves que não brigam com o texto escuro */
.adin-hero-vivo--claro .ahv-orbe-1 { background: radial-gradient(circle, rgba(59,91,255,.34), transparent 65%); }
.adin-hero-vivo--claro .ahv-orbe-2 { background: radial-gradient(circle, rgba(212,175,158,.4), transparent 65%); }
.adin-hero-vivo--claro .ahv-orbe-3 { background: radial-gradient(circle, rgba(63,211,198,.26), transparent 65%); }
.adin-hero-vivo--claro .ahv-giro { background: conic-gradient(from 0deg, transparent 0deg, rgba(59,91,255,.07) 90deg, rgba(212,175,158,.06) 180deg, rgba(63,211,198,.05) 270deg, transparent 360deg); }
.adin-hero-vivo--claro .ahv-ponto { background: rgba(59,91,255,.6); box-shadow: 0 0 10px rgba(59,91,255,.5); --o: .7; }

@media (max-width: 640px) { .ahv-ponto:nth-child(n+10) { display: none; } .ahv-orbe { filter: blur(44px); } }
@media (prefers-reduced-motion: reduce) {
  .ahv-orbe, .ahv-giro { animation: none !important; }
  .ahv-ponto { display: none; }
}

/* ==========================================================================
   SEM FONTE SERIFADA ITÁLICA (decisão do Jonathas, 11/11): destaque nos títulos usa
   a mesma fonte do título, em negrito; a cor/degradê de cada destaque continua.
   ========================================================================== */
.font-serif { font-family: inherit !important; }
:is(h1, h2, h3, h4, blockquote, .hero-sub) :is(em, i:not([class*="fa-"]), .italic),
:is(h1, h2, h3, h4) .font-serif, .font-serif.italic { font-style: normal !important; font-family: inherit !important; }
:is(h1, h2, h3, h4) :is(em, .italic, .font-serif) { font-weight: 700; }
:is(h1, h2, h3, h4), :is(h1, h2, h3, h4) * { font-style: normal !important; }
