/* VEXUS Elementor Premium — v5.0
   Restauração 1:1 do padrão visual da versão React premium. */

/* ============================================================
   KEYFRAMES
============================================================ */
@keyframes vexusFloat {
  0%, 100% { transform: translateY(0) rotateX(0) rotateY(0); }
  50%      { transform: translateY(-16px) rotateX(1.2deg) rotateY(-1deg); }
}
@keyframes vexusPulse {
  0%, 100% { box-shadow: 0 0 30px -10px rgba(0,129,244,.7), 0 0 0 rgba(0,163,255,0); }
  50%      { box-shadow: 0 0 90px -12px rgba(0,163,255,1),   0 0 30px -6px rgba(0,163,255,.6); }
}
@keyframes vexusShimmer {
  0%   { background-position: -180% 0; }
  100% { background-position:  180% 0; }
}
@keyframes vexusTicker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes vexusDrift {
  0%   { transform: translate3d(0,0,0) scale(1);   opacity: 0; }
  10%  { opacity: .9; }
  100% { transform: translate3d(30px,-140vh,0) scale(1.4); opacity: 0; }
}
@keyframes vexusScanLine {
  0%   { transform: translateY(-120%); opacity: 0; }
  30%  { opacity: 1; }
  100% { transform: translateY(120%);  opacity: 0; }
}
@keyframes vexusChartDraw {
  0%   { stroke-dashoffset: 1200; }
  100% { stroke-dashoffset: 0; }
}
@keyframes vexusCandleRise {
  0%   { transform: scaleY(0);   transform-origin: bottom; opacity: 0; }
  100% { transform: scaleY(1);   transform-origin: bottom; opacity: 1; }
}
@keyframes vexusReveal {
  0%   { opacity: 0; transform: translateY(28px); }
  100% { opacity: 1; transform: translateY(0);    }
}
@keyframes vexusGlowSweep {
  0%, 100% { opacity: .5; }
  50%      { opacity: 1;  }
}
@keyframes vexusGridPan {
  0%   { background-position: 0 0, 0 0; }
  100% { background-position: 34px 34px, 34px 34px; }
}

/* ============================================================
   BASE
============================================================ */
.elementor-page,
.elementor-page body { background: #050505; color: #fff; }
.elementor-page * { -webkit-font-smoothing: antialiased; }
.elementor-page h1, .elementor-page h2, .elementor-page h3 {
  font-family: "Playfair Display", Georgia, serif !important;
  letter-spacing: -0.01em;
}
.elementor-page,
.elementor-page p,
.elementor-page li,
.elementor-page span { font-family: Inter, system-ui, -apple-system, sans-serif; }

/* ============================================================
   HEADER
============================================================ */
.vexus-elementor-header {
  position: fixed; top: 14px; left: 50%; z-index: 90;
  width: calc(100% - 32px); transform: translateX(-50%);
  border: 1px solid rgba(0,129,244,.24); border-radius: 18px;
  background: rgba(5,5,5,.72);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  box-shadow: 0 20px 80px -30px rgba(0,0,0,.85);
  transition: background .35s ease, border-color .35s ease, box-shadow .35s ease;
}
body.vexus-scrolled .vexus-elementor-header {
  background: rgba(5,5,5,.92);
  border-color: rgba(0,163,255,.42);
  box-shadow: 0 30px 100px -30px rgba(0,163,255,.35), 0 20px 80px -30px rgba(0,0,0,.9);
}
.elementor-editor-active .vexus-elementor-header,
.elementor-editor-active .vexus-elementor-footer {
  position: relative !important; top: auto; left: auto; width: 100%; transform: none;
}
.vexus-header-logo img { filter: brightness(1.15) drop-shadow(0 0 12px rgba(0,163,255,.35)); }
.vexus-header-nav .elementor-button { white-space: nowrap; }
.vexus-elementor-footer { border-top: 1px solid rgba(0,129,244,.16); }

/* ============================================================
   HERO + FUNDO TÉCNICO (grid + scan + partículas + glow)
============================================================ */
.vexus-hero,
.vexus-market-bg,
.vexus-section,
.vexus-offer-section { position: relative; overflow: hidden; }
.vexus-hero { min-height: 92vh; }

.vexus-hero::before,
.vexus-market-bg::before,
.vexus-section::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  opacity: .7;
  background-image:
    linear-gradient(rgba(0,129,244,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,129,244,.06) 1px, transparent 1px);
  background-size: 34px 34px, 34px 34px;
  -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 76%);
          mask-image: radial-gradient(ellipse at center, black 30%, transparent 76%);
  animation: vexusGridPan 22s linear infinite;
}
.vexus-hero::after,
.vexus-market-bg::after,
.vexus-offer-section::after {
  content: ""; position: absolute; left: 50%; top: -180px;
  width: min(980px, 90vw); height: 480px; pointer-events: none;
  transform: translateX(-50%); border-radius: 999px;
  background: rgba(0,129,244,.28); filter: blur(100px);
  animation: vexusGlowSweep 6s ease-in-out infinite;
}

/* Partículas azuis */
.vexus-hero > .e-con-inner::before,
.vexus-hero .vexus-hero-row::before {
  content: "";
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image:
    radial-gradient(2px 2px at 10% 90%, rgba(0,163,255,.9), transparent 60%),
    radial-gradient(2px 2px at 30% 80%, rgba(0,163,255,.8), transparent 60%),
    radial-gradient(1.5px 1.5px at 55% 95%, rgba(0,163,255,.85), transparent 60%),
    radial-gradient(2px 2px at 75% 85%, rgba(0,163,255,.7),  transparent 60%),
    radial-gradient(1.5px 1.5px at 90% 92%, rgba(0,163,255,.9),transparent 60%);
  animation: vexusDrift 14s linear infinite;
}

/* Scan-line vertical */
.vexus-market-bg .vexus-hero-row::after {
  content: ""; position: absolute; left: 20%; top: 0; bottom: 0; width: 1px;
  background: linear-gradient(180deg, transparent, rgba(0,163,255,.75), transparent);
  animation: vexusScanLine 7s ease-in-out infinite; pointer-events: none;
}

.vexus-hero-row { position: relative; z-index: 2; }
.vexus-hero-left { max-width: 660px; }

/* Kickers */
.vexus-kicker .elementor-heading-title,
.vexus-kicker {
  color: #00a3ff !important;
  letter-spacing: 3px !important;
  text-transform: uppercase;
  font-weight: 800 !important;
  font-size: 12px !important;
}

/* Mockup 3D */
.vexus-mockup img {
  border-radius: 22px;
  box-shadow:
    0 38px 110px -28px rgba(0,0,0,.98),
    0 0 120px -22px rgba(0,163,255,.85),
    inset 0 0 0 1px rgba(0,163,255,.25);
  animation: vexusFloat 7s ease-in-out infinite;
  transform-style: preserve-3d;
  will-change: transform;
}
.vexus-bundle img {
  filter:
    drop-shadow(0 38px 70px rgba(0,0,0,.75))
    drop-shadow(0 0 48px rgba(0,129,244,.35));
}

/* ============================================================
   CARDS PREMIUM (módulos, ferramentas, pilares)
============================================================ */
.vexus-card,
.vexus-module-card,
.vexus-offer-card,
.vexus-faq-card,
.vexus-tool-card,
.vexus-pillar-card {
  position: relative; overflow: hidden;
  border: 1px solid rgba(0,129,244,.24); border-radius: 20px;
  background:
    radial-gradient(circle at 20% 0%, rgba(0,163,255,.10), transparent 55%),
    linear-gradient(180deg, rgba(20,20,26,.94), rgba(8,8,12,.98));
  box-shadow:
    0 28px 76px -38px rgba(0,0,0,.98),
    inset 0 1px 0 rgba(255,255,255,.04);
  transition: transform .4s cubic-bezier(.2,.8,.2,1),
              border-color .35s ease,
              box-shadow .4s ease;
  min-height: 220px;
  padding: 26px;
  display: flex; flex-direction: column; gap: 14px;
}
.vexus-card::before,
.vexus-module-card::before,
.vexus-tool-card::before,
.vexus-pillar-card::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background:
    linear-gradient(135deg, rgba(0,163,255,.16), transparent 55%),
    radial-gradient(circle at 80% 100%, rgba(0,129,244,.18), transparent 50%);
  transition: opacity .4s ease;
}
.vexus-card::after,
.vexus-module-card::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,163,255,.7), transparent);
  opacity: .5; transition: opacity .4s ease;
}
.vexus-card:hover,
.vexus-module-card:hover,
.vexus-tool-card:hover,
.vexus-pillar-card:hover {
  transform: translateY(-8px) rotateX(1.5deg);
  border-color: rgba(0,163,255,.6);
  box-shadow:
    0 46px 100px -44px rgba(0,0,0,1),
    0 0 90px -24px rgba(0,163,255,.9),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.vexus-card:hover::before,
.vexus-module-card:hover::before,
.vexus-tool-card:hover::before,
.vexus-pillar-card:hover::before { opacity: 1; }
.vexus-card:hover::after,
.vexus-module-card:hover::after { opacity: 1; }

.vexus-offer-card {
  box-shadow:
    0 46px 120px -44px rgba(0,0,0,1),
    0 0 130px -28px rgba(0,163,255,.95),
    inset 0 1px 0 rgba(255,255,255,.06);
}

/* ============================================================
   TEXTOS: GRADIENT + LEGIBILIDADE
============================================================ */
.vexus-text-gradient .elementor-heading-title,
.vexus-text-gradient {
  background: linear-gradient(135deg, #ffffff 0%, #a8c8ff 58%, #00a3ff 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}
.elementor-widget-heading .elementor-heading-title { word-wrap: break-word; hyphens: none; }
.elementor-widget-text-editor p { color: rgba(255,255,255,.72); line-height: 1.7; }

/* ============================================================
   BOTÕES CTA — pulse + shimmer
============================================================ */
.vexus-button .elementor-button,
.vexus-cta .elementor-button {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0081f4, #00a3ff) !important;
  border: 1px solid rgba(0,163,255,.7) !important;
  box-shadow: 0 0 60px -18px rgba(0,163,255,.95);
  animation: vexusPulse 2.8s ease-in-out infinite;
  font-weight: 800 !important;
  letter-spacing: .3px;
}
.vexus-button .elementor-button::before,
.vexus-cta .elementor-button::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.32) 50%, transparent 70%);
  background-size: 220% 100%;
  animation: vexusShimmer 3s linear infinite;
  pointer-events: none;
}
.vexus-button .elementor-button-text,
.vexus-cta .elementor-button-text { position: relative; z-index: 1; }
.vexus-button .elementor-button:hover,
.vexus-cta .elementor-button:hover { transform: translateY(-2px); }

/* ============================================================
   TICKER FINANCEIRO — loop infinito Bloomberg-style
============================================================ */
.vexus-ticker {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #090b10, #05060a) !important;
  border-top: 1px solid rgba(0,129,244,.28) !important;
  border-bottom: 1px solid rgba(0,129,244,.28) !important;
  padding: 14px 0 !important;
  -webkit-mask-image: linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
}
.vexus-ticker .elementor-widget-text-editor,
.vexus-ticker .vexus-ticker-text {
  white-space: nowrap !important;
  display: inline-block !important;
  width: max-content !important;
  animation: vexusTicker 55s linear infinite;
  will-change: transform;
  color: #d7e8ff !important;
  font-family: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace !important;
  font-size: 13px !important;
  letter-spacing: .8px;
}
.vexus-ticker:hover .vexus-ticker-text { animation-play-state: paused; }
.vexus-ticker .elementor-widget-container { overflow: visible !important; }
@media (max-width: 767px) {
  .vexus-ticker .vexus-ticker-text { animation-duration: 75s; font-size: 12px !important; }
}

/* ============================================================
   GRÁFICOS / DASHBOARDS decorativos
============================================================ */
.vexus-chart-card .elementor-widget-container {
  min-height: 180px;
  border: 1px solid rgba(0,129,244,.24);
  border-radius: 16px;
  background-image:
    linear-gradient(rgba(0,129,244,.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,129,244,.09) 1px, transparent 1px),
    linear-gradient(135deg, rgba(0,163,255,.20), transparent 56%);
  background-size: 40px 40px, 40px 40px, auto;
  position: relative; overflow: hidden;
}
.vexus-chart-card .elementor-widget-container::after {
  content: ""; position: absolute; left: 8%; right: 8%; bottom: 22%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #00a3ff, #0081f4, #00a3ff, transparent);
  filter: drop-shadow(0 0 8px rgba(0,163,255,.9));
  box-shadow: 0 0 24px rgba(0,163,255,.7);
  transform-origin: left center;
  animation: vexusChartDraw 2.6s ease-out forwards;
  clip-path: polygon(0 60%, 10% 40%, 22% 58%, 35% 30%, 50% 46%, 65% 18%, 80% 36%, 100% 6%,
                     100% 100%, 0 100%);
}

/* Velas decorativas (candlesticks) — aplica em .vexus-candles */
.vexus-candles { position: relative; }
.vexus-candles::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .35;
  background-image:
    linear-gradient(#00a3ff, #00a3ff), linear-gradient(#00a3ff, #00a3ff),
    linear-gradient(#ff5b7c, #ff5b7c), linear-gradient(#00a3ff, #00a3ff),
    linear-gradient(#ff5b7c, #ff5b7c), linear-gradient(#00a3ff, #00a3ff),
    linear-gradient(#00a3ff, #00a3ff);
  background-repeat: no-repeat;
  background-size:
    6px 60px, 6px 40px, 6px 70px, 6px 50px, 6px 80px, 6px 45px, 6px 65px;
  background-position:
    6%  75%, 18% 80%, 30% 70%, 42% 78%, 55% 65%, 68% 78%, 82% 72%;
  animation: vexusCandleRise 1.4s ease-out both;
}

/* ============================================================
   REVEAL (scroll)
============================================================ */
.vexus-reveal { opacity: 1; }
body.vexus-js:not(.elementor-editor-active) .vexus-reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1);
  will-change: opacity, transform;
}
body.vexus-js:not(.elementor-editor-active) .vexus-reveal.vexus-in {
  opacity: 1; transform: translateY(0);
}

/* Auto-reveal para todos os cards e mockups quando body.vexus-js estiver ativo */
body.vexus-js:not(.elementor-editor-active) .vexus-card,
body.vexus-js:not(.elementor-editor-active) .vexus-module-card,
body.vexus-js:not(.elementor-editor-active) .vexus-tool-card,
body.vexus-js:not(.elementor-editor-active) .vexus-pillar-card,
body.vexus-js:not(.elementor-editor-active) .vexus-offer-card,
body.vexus-js:not(.elementor-editor-active) .vexus-section-copy,
body.vexus-js:not(.elementor-editor-active) .vexus-mockup,
body.vexus-js:not(.elementor-editor-active) .vexus-bundle {
  opacity: 0; transform: translateY(28px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1);
}
body.vexus-js:not(.elementor-editor-active) .vexus-card.vexus-in,
body.vexus-js:not(.elementor-editor-active) .vexus-module-card.vexus-in,
body.vexus-js:not(.elementor-editor-active) .vexus-tool-card.vexus-in,
body.vexus-js:not(.elementor-editor-active) .vexus-pillar-card.vexus-in,
body.vexus-js:not(.elementor-editor-active) .vexus-offer-card.vexus-in,
body.vexus-js:not(.elementor-editor-active) .vexus-section-copy.vexus-in,
body.vexus-js:not(.elementor-editor-active) .vexus-mockup.vexus-in,
body.vexus-js:not(.elementor-editor-active) .vexus-bundle.vexus-in {
  opacity: 1; transform: translateY(0);
}

/* ============================================================
   ACCORDION FAQ
============================================================ */
.elementor-widget-accordion .elementor-accordion-item {
  border: 1px solid rgba(0,129,244,.24) !important;
  border-radius: 16px; overflow: hidden; margin-bottom: 12px;
  background: linear-gradient(180deg, rgba(20,20,26,.94), rgba(8,8,12,.98)) !important;
  transition: border-color .3s ease, box-shadow .3s ease;
}
.elementor-widget-accordion .elementor-accordion-item:hover {
  border-color: rgba(0,163,255,.55) !important;
  box-shadow: 0 20px 60px -30px rgba(0,163,255,.6);
}
.elementor-widget-accordion .elementor-tab-title { border: 0 !important; color: #fff !important; font-weight: 700 !important; }
.elementor-widget-accordion .elementor-tab-title.elementor-active { color: #00a3ff !important; }
.elementor-widget-accordion .elementor-tab-content {
  border-top: 1px solid rgba(0,129,244,.18) !important;
  color: rgba(255,255,255,.72) !important;
}

/* ============================================================
   SEÇÕES / TÍTULOS
============================================================ */
.vexus-section-copy { max-width: 760px; margin-inline: auto; text-align: center; }
.vexus-section { padding-block: clamp(70px, 9vw, 130px); }

/* ============================================================
   RESPONSIVIDADE
============================================================ */
@media (max-width: 1024px) {
  .vexus-elementor-header {
    position: relative; top: auto; left: auto; width: 100%; transform: none;
    border-radius: 0;
  }
  .vexus-header-nav { display: none !important; }
  .vexus-hero { min-height: auto; }
  .vexus-hero-row { flex-direction: column !important; }
}
@media (max-width: 767px) {
  .vexus-card, .vexus-module-card, .vexus-offer-card,
  .vexus-tool-card, .vexus-pillar-card { border-radius: 16px; min-height: auto; }
  .vexus-mockup img { border-radius: 16px; }
  .vexus-hero { padding-top: 100px !important; }
}

/* ============================================================
   ACESSIBILIDADE
============================================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }
  .vexus-ticker .vexus-ticker-text { animation: none !important; transform: none !important; }
}
