/* ============================================================
   Neurafy, sistema de diseño (complementa Tailwind)
   ============================================================ */
:root{
  --violet:#672B74; --violet-soft:#7C3AED;
  --indigo:#4F46E5; --indigo-soft:#6366F1; --ink:#0B1120;
  --grad:linear-gradient(120deg,#7C3AED 0%,#4F46E5 55%,#22D3EE 110%);
}
html{ scroll-behavior:smooth; }
body{ font-family:'Work Sans',system-ui,sans-serif; color:#0B1120; cursor:default; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,.font-head{ font-family:'Montserrat',system-ui,sans-serif; letter-spacing:-.01em; }

/* ---- Reglas de cursor ---- */
a,button,[role="button"],summary,label[for],.clickable{ cursor:pointer; }
input,textarea,select{ cursor:text; }
input[type="submit"],input[type="button"],input[type="checkbox"],input[type="radio"]{ cursor:pointer; }
p,span,h1,h2,h3,h4,li{ cursor:default; }

/* ---- Marca ---- */
.grad-text{ background:var(--grad); background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:shimmer 8s linear infinite; }
@keyframes shimmer{ to{ background-position:200% center; } }
.grad-bg{ background:linear-gradient(120deg,#7C3AED,#4F46E5 60%,#6366F1); }
.rule{ height:2px; width:34px; background:var(--grad); border-radius:2px; display:inline-block; }

/* ---- Iconos ---- */
.lucide{ width:20px; height:20px; stroke-width:1.75; }
.ico-grad{ width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:#fff;
           background:linear-gradient(135deg,var(--c1),var(--c2)); box-shadow:0 10px 22px -8px var(--c2); }
.ico-grad .lucide{ width:22px;height:22px; }
.ico-box{ width:44px;height:44px;display:grid;place-items:center;border-radius:11px;background:#F8FAFC;border:1px solid #E2E8F0;color:#4F46E5;transition:.3s; }
.mega-item:hover .ico-box{ border-color:#6366F1; }

/* ---- Cards: levitación + tilt 3D ---- */
.float{ animation:floaty 6.5s ease-in-out infinite; }
@keyframes floaty{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-9px) } }
.tilt{ position:relative; overflow:hidden; transform-style:preserve-3d; will-change:transform;
       transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease; }
.tilt:hover{ box-shadow:0 28px 60px -22px var(--glow,rgba(79,70,229,.5)); }
.depth{ transform:translateZ(30px); }
.depth-sm{ transform:translateZ(16px); }

/* ---- Fondo técnico + movimiento ---- */
.techgrid{ background-image:linear-gradient(#0f172a08 1px,transparent 1px),linear-gradient(90deg,#0f172a08 1px,transparent 1px); background-size:28px 28px; }
.aurora{ position:absolute; filter:blur(80px); opacity:.5; border-radius:9999px; pointer-events:none; }
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1;transform:none;transition:none} .float{animation:none} html{scroll-behavior:auto} }

/* ---- Mega menús ---- */
.nav-trigger[aria-expanded="true"]{ color:#0B1120; }
.nav-trigger[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.chev{ transition:transform .25s ease; }
.mega{ opacity:0; visibility:hidden; transform:translateY(8px); transition:.22s cubic-bezier(.2,.7,.2,1); z-index:60; }
.mega.open{ opacity:1; visibility:visible; transform:none; }
.mega-item{ transition:background .2s ease; }
.mega-item:hover{ background:#F8FAFC; }

/* ---- Hero generativo ---- */
#hero .vignette{ background:
    linear-gradient(90deg, rgba(11,17,32,.86) 0%, rgba(11,17,32,.45) 40%, rgba(11,17,32,0) 70%),
    radial-gradient(130% 120% at 50% 50%, transparent 55%, rgba(11,17,32,.5) 100%); }
.glass{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(8px); }

/* ---- Marquee de logos (clientes / partners): se desplaza a la izquierda ---- */
.logo-marquee{ position:relative; overflow:hidden; }
.logo-track{ display:flex; flex-wrap:nowrap; align-items:center; gap:2.6rem; width:max-content; animation:logoscroll 55s linear infinite; }
.logo-marquee:hover .logo-track{ animation-play-state:paused; }
.logo-track img{ height:auto; width:auto; max-height:24px; max-width:92px; flex:0 0 auto; opacity:.6; filter:grayscale(1) brightness(1.4); transition:opacity .3s ease; }
.logo-track img:hover{ opacity:.95; }
@keyframes logoscroll{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }
@media (prefers-reduced-motion:reduce){ .logo-track{ animation-duration:110s } }

/* ---- Tipografía de artículo (noticias) ---- */
.prose-neurafy{ color:#334155; line-height:1.75; }
.prose-neurafy h2{ font-family:'Montserrat',sans-serif; font-weight:800; color:#0B1120; font-size:1.6rem; margin:2rem 0 .75rem; }
.prose-neurafy h3{ font-family:'Montserrat',sans-serif; font-weight:700; color:#0B1120; font-size:1.25rem; margin:1.5rem 0 .5rem; }
.prose-neurafy p{ margin:0 0 1.1rem; }
.prose-neurafy ul{ margin:0 0 1.1rem 1.1rem; list-style:disc; }
.prose-neurafy li{ margin:.3rem 0; }
.prose-neurafy a{ color:#4F46E5; text-decoration:underline; text-underline-offset:2px; }
/* Imágenes del cuerpo: centradas SIEMPRE por defecto */
.prose-neurafy img{ display:block; margin:1.5rem auto; max-width:100%; height:auto; border-radius:1rem; }
.prose-neurafy figure{ margin:1.5rem auto; text-align:center; }
.prose-neurafy figure img{ margin:0 auto; }
.prose-neurafy figcaption{ text-align:center; font-size:.85rem; color:#64748B; margin-top:.5rem; }
/* Si una imagen va dentro de un párrafo, también queda centrada */
.prose-neurafy p:has(> img){ text-align:center; }
