/* Amplo — Brilho e movimento nos cartões (vale para os 26 modelos)
   Níveis: html[data-amplo-fx="suave"] e html[data-amplo-fx="premium"]. Nada aqui muda cor ou tamanho do texto do modelo. */
[data-amplo-fx] { --fx-ouro: #FFC93C; --fx-agua: #5EE2D3; --fx-dur: .7s; }

/* ---- capa: respiração lenta + varredura de luz ---- */
[data-amplo-fx] .amplo-capa { overflow: hidden; position: relative; isolation: isolate; }
[data-amplo-fx] .lang-hover-list, [data-amplo-fx] .lang-list .dropdown-menu { max-height: 70vh; overflow-y: auto; z-index: 1060; }
[data-amplo-fx] .amplo-capa > img, [data-amplo-fx] .amplo-capa > video { animation: amploRespira 18s ease-in-out infinite alternate; transform-origin: 50% 50%; will-change: transform; }
[data-amplo-fx] .amplo-capa .amplo-luz { position: absolute; inset: -20% -60%; pointer-events: none; z-index: 2;
  background: linear-gradient(100deg, transparent 38%, rgba(255,255,255,.14) 48%, rgba(255,255,255,.32) 50%, rgba(255,255,255,.14) 52%, transparent 62%);
  animation: amploVarre 7s cubic-bezier(.4,0,.2,1) infinite; }
@keyframes amploRespira { from { transform: scale(1) } to { transform: scale(1.07) } }
@keyframes amploVarre { 0%, 55% { transform: translateX(-70%) } 100% { transform: translateX(70%) } }

/* ---- foto: anel de luz girando ---- */
[data-amplo-fx] .amplo-anel { position: relative; display: inline-block; border-radius: 50%; line-height: 0; }
[data-amplo-fx] .amplo-anel::before { content: ""; position: absolute; inset: -4px; border-radius: 50%; z-index: -1;
  background: conic-gradient(from 0deg, var(--fx-ouro), var(--fx-agua), transparent 40%, var(--fx-ouro) 70%, var(--fx-agua));
  animation: amploGira 6s linear infinite; filter: blur(.4px); }
[data-amplo-fx] .amplo-anel::after { content: ""; position: absolute; inset: -14px; border-radius: 50%; z-index: -2; pointer-events: none;
  background: radial-gradient(circle, rgba(255,201,60,.35), rgba(94,226,211,.18) 45%, transparent 70%); animation: amploPulsa 3.2s ease-in-out infinite; }
[data-amplo-fx] .amplo-anel > img { position: relative; z-index: 1; }
@keyframes amploGira { to { transform: rotate(360deg) } }
@keyframes amploPulsa { 0%, 100% { opacity: .55; transform: scale(.96) } 50% { opacity: 1; transform: scale(1.06) } }

/* ---- entrada das seções (revela ao rolar) ---- */
[data-amplo-fx] .amplo-rev { opacity: 0; transform: translateY(18px); transition: opacity var(--fx-dur) ease, transform var(--fx-dur) cubic-bezier(.2,.7,.2,1); transition-delay: var(--fx-atraso, 0ms); will-change: opacity, transform; }
[data-amplo-fx] .amplo-rev.amplo-in { opacity: 1; transform: none; }
[data-amplo-fx] .amplo-rev.amplo-in.amplo-fim { transition: none; transform: none; will-change: auto; }

/* ---- botões: brilho passando + leve elevação ---- */
[data-amplo-fx] .amplo-btn { position: relative; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
[data-amplo-fx] .amplo-btn::after { content: ""; position: absolute; top: -50%; bottom: -50%; left: -30%; width: 30%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: skewX(-20deg); animation: amploBrilha 4.5s ease-in-out infinite; }
[data-amplo-fx] .amplo-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.25); }
@keyframes amploBrilha { 0%, 70% { left: -40% } 100% { left: 130% } }

/* ---- ícones de redes: vida no toque ---- */
[data-amplo-fx] .amplo-ico { transition: transform .3s cubic-bezier(.34,1.56,.64,1), filter .3s ease; }
[data-amplo-fx] .amplo-ico:hover { transform: translateY(-4px) scale(1.12); filter: drop-shadow(0 8px 14px rgba(255,201,60,.35)); }

/* ---- WhatsApp / botão fixo: pulso ---- */
[data-amplo-fx] .amplo-pulso { position: relative; }
[data-amplo-fx] .amplo-pulso::before { content: ""; position: absolute; inset: -6px; border-radius: inherit; border: 2px solid rgba(37,211,102,.7); animation: amploOnda 2.2s ease-out infinite; pointer-events: none; }
@keyframes amploOnda { 0% { transform: scale(.9); opacity: .9 } 100% { transform: scale(1.35); opacity: 0 } }

/* ---- cartões de produto/serviço: luz na borda ao passar ---- */
[data-amplo-fx] .amplo-card { transition: transform .35s ease, box-shadow .35s ease; }
[data-amplo-fx] .amplo-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0,0,0,.28), 0 0 0 1px rgba(255,201,60,.35); }

/* ---- PREMIUM: aurora ao fundo, poeira de luz e inclinação 3D ---- */
[data-amplo-fx="premium"] .amplo-aurora { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
[data-amplo-fx="premium"] .amplo-aurora i { position: absolute; width: 60vmax; height: 60vmax; border-radius: 50%; filter: blur(80px); opacity: .2; mix-blend-mode: screen; animation: amploFlutua 22s ease-in-out infinite alternate; }
[data-amplo-fx="premium"] .amplo-aurora i:nth-child(1) { background: #1FAF5B; top: -20vmax; left: -20vmax; }
[data-amplo-fx="premium"] .amplo-aurora i:nth-child(2) { background: #FFC93C; bottom: -25vmax; right: -15vmax; animation-delay: -8s; opacity: .14; }
[data-amplo-fx="premium"] .amplo-aurora i:nth-child(3) { background: #5EE2D3; top: 30vh; left: 40vw; width: 40vmax; height: 40vmax; animation-delay: -15s; opacity: .1; }
@keyframes amploFlutua { from { transform: translate(0,0) scale(1) } to { transform: translate(8vw, 6vh) scale(1.15) } }
[data-amplo-fx="premium"] .amplo-poeira { position: fixed; inset: 0; z-index: 1; pointer-events: none; }
[data-amplo-fx="premium"] .amplo-card { transform-style: preserve-3d; }
[data-amplo-fx="premium"] .amplo-card.amplo-tilt { transition: transform .08s linear, box-shadow .35s ease; }
[data-amplo-fx="premium"] .amplo-capa::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: radial-gradient(120% 80% at 50% 110%, rgba(0,0,0,.35), transparent 60%); }

/* ---- acessibilidade: quem pediu menos movimento, não recebe movimento ---- */
@media (prefers-reduced-motion: reduce) {
  [data-amplo-fx] *, [data-amplo-fx] *::before, [data-amplo-fx] *::after { animation: none !important; transition: none !important; }
  [data-amplo-fx] .amplo-rev { opacity: 1; transform: none; }
}
