/* ===== Agencia TJA · estilos compartidos (páginas interiores) ===== */
html { scroll-behavior: smooth; }
body { background:#0A0A0F; }

.reveal { opacity:0; transform: translateY(34px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity:1; transform:none; }

.grad-text { background: linear-gradient(135deg,#8B5CF6,#3B82F6 60%,#00F0FF); -webkit-background-clip:text; background-clip:text; color:transparent; }
.grad-cta  { background: linear-gradient(135deg,#8B5CF6,#3B82F6); }
.grad-cta:hover { box-shadow:0 0 34px -4px rgba(139,92,246,.8); transform: translateY(-2px); }

.glass { background: rgba(255,255,255,0.035); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border:1px solid rgba(255,255,255,0.08); }
.glass-hover { transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.glass-hover:hover { transform: translateY(-8px); border-color: rgba(139,92,246,.6); box-shadow: 0 18px 50px -18px rgba(139,92,246,.55); }

.blob { position:absolute; border-radius:9999px; filter: blur(90px); opacity:.45; animation: float 14s ease-in-out infinite; }
@keyframes float { 0%,100%{ transform: translate(0,0) scale(1);} 50%{ transform: translate(30px,-40px) scale(1.12);} }

.dotgrid { background-image: radial-gradient(rgba(139,92,246,.18) 1px, transparent 1px); background-size: 28px 28px; }

#progress { position:fixed; top:0; left:0; height:3px; width:0; z-index:60; background:linear-gradient(90deg,#8B5CF6,#00F0FF); }

.faq-body { max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq-item.open .faq-body { max-height:320px; }
.faq-item.open .faq-icon { transform: rotate(45deg); }

nav.scrolled { background: rgba(10,10,15,.8); backdrop-filter: blur(12px); border-bottom:1px solid rgba(255,255,255,.07); }

.icon-glow { box-shadow: 0 0 22px -4px rgba(0,240,255,.55); }
::selection { background: rgba(139,92,246,.4); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .blob{ animation:none; }
}

/* ===== Vídeo de servicio (bucle) ===== */
.video-loop { width:100%; height:100%; object-fit:cover; display:block; }
.video-frame { position:relative; border-radius:1.5rem; overflow:hidden; border:1px solid rgba(255,255,255,.08); background:#14141C; aspect-ratio:16/9; }
.video-badge { position:absolute; top:1rem; left:1rem; z-index:2; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; background:rgba(10,10,15,.7); backdrop-filter:blur(6px); padding:.4em .8em; border-radius:.5rem; border:1px solid rgba(255,255,255,.1); }
/* El vídeo se ve por defecto; el placeholder solo aparece si el archivo falta (lo activa el JS con display:grid). */
.video-placeholder { display:none; place-items:center; height:100%; text-align:center; color:#A1A1AA; gap:.6rem; padding:2rem; position:absolute; inset:0; background:#14141C; }
.video-placeholder .em { font-size:2.4rem; }
