/* ==========================================================
   Portal Monagas — Cambios 9
   Capa UX neón institucional: navegación, foco y profundidad.
   ========================================================== */
:root{
  --neon-blue:#1378b9;
  --neon-cyan:#74c1eb;
  --neon-green:#48b987;
  --neon-blue-rgb:19,120,185;
  --neon-cyan-rgb:116,193,235;
  --neon-green-rgb:72,185,135;
  --neon-ease:cubic-bezier(.16,1,.3,1);
}

/* Progreso de navegación vertical */
.portal-scroll-progress{
  position:fixed;
  inset:0 0 auto 0;
  height:3px;
  z-index:22000;
  pointer-events:none;
  transform:scaleX(var(--portal-scroll-progress,0));
  transform-origin:left center;
  background:linear-gradient(90deg,var(--neon-blue),var(--neon-cyan),var(--neon-green));
  box-shadow:0 0 10px rgba(var(--neon-cyan-rgb),.72),0 0 20px rgba(var(--neon-blue-rgb),.34);
  transition:transform .08s linear;
}
html.portal-loading .portal-scroll-progress{opacity:0}

/* Aura del cursor: solo una capa transformada, sin repintar el layout */
.portal-cursor-aura{
  position:fixed;
  left:0;top:0;
  width:230px;height:230px;
  z-index:8;
  pointer-events:none;
  border-radius:50%;
  opacity:0;
  transform:translate3d(-999px,-999px,0);
  background:radial-gradient(circle,rgba(var(--neon-cyan-rgb),.14) 0,rgba(var(--neon-blue-rgb),.065) 34%,transparent 70%);
  transition:opacity .22s ease;
  will-change:transform;
}
body.portal-pointer-active .portal-cursor-aura{opacity:1}

/* Header: cristal limpio con energía en navegación */
.header{
  isolation:isolate;
}
.header::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;
  height:1px;
  pointer-events:none;
  opacity:.46;
  background:linear-gradient(90deg,transparent,rgba(var(--neon-cyan-rgb),.68),rgba(var(--neon-green-rgb),.42),transparent);
  box-shadow:0 0 12px rgba(var(--neon-cyan-rgb),.22);
}
.header.ux-scrolled{
  backdrop-filter:saturate(1.15) blur(14px);
  box-shadow:0 12px 36px rgba(7,34,55,.12),0 1px 0 rgba(var(--neon-cyan-rgb),.13)!important;
}
.nav-link{
  position:relative;
  overflow:visible;
}
.nav-link::after{
  content:"";
  position:absolute;
  left:18%;right:18%;bottom:5px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--neon-blue),var(--neon-cyan),var(--neon-green));
  box-shadow:0 0 10px rgba(var(--neon-cyan-rgb),.72);
  transform:scaleX(0);
  transform-origin:center;
  opacity:0;
  transition:transform .3s var(--neon-ease),opacity .2s ease;
}
.nav-link:hover::after,.nav-link:focus-visible::after,.nav-link.active::after{transform:scaleX(1);opacity:1}
.nav-link:hover i,.nav-link:focus-visible i,.nav-link.active i{
  filter:drop-shadow(0 0 7px rgba(var(--neon-cyan-rgb),.72));
}
.nav-link:hover,.nav-link:focus-visible{
  text-shadow:0 0 12px rgba(var(--neon-cyan-rgb),.34);
}

/* Controles y botones: legibilidad + energía */
.btn,.card-link,.chat-suggestion,.top-link{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.btn-primary,.header-access,.chat-suggestion:hover,.chat-suggestion:focus-visible{
  box-shadow:0 10px 26px rgba(var(--neon-blue-rgb),.20),0 0 0 1px rgba(var(--neon-cyan-rgb),.10);
}
.btn-primary:hover,.btn-primary:focus-visible,.header-access:hover,.header-access:focus-visible{
  color:#fff!important;
  box-shadow:0 14px 34px rgba(var(--neon-blue-rgb),.28),0 0 22px rgba(var(--neon-cyan-rgb),.25),0 0 0 1px rgba(var(--neon-cyan-rgb),.32)!important;
  text-shadow:0 0 10px rgba(255,255,255,.28);
}
.neon-ripple{
  position:absolute;
  width:14px;height:14px;
  margin:-7px 0 0 -7px;
  border-radius:50%;
  pointer-events:none;
  z-index:-1;
  background:radial-gradient(circle,rgba(255,255,255,.66) 0,rgba(var(--neon-cyan-rgb),.40) 34%,transparent 70%);
  transform:scale(0);
  animation:neonRipple .72s var(--neon-ease) forwards;
}
@keyframes neonRipple{
  0%{opacity:.75;transform:scale(0)}
  70%{opacity:.30}
  100%{opacity:0;transform:scale(18)}
}

/* Tarjetas: elevación + glow + tilt mínimo. Se conservan dimensiones y colores. */
.neon-tilt{
  --neon-rx:0deg;
  --neon-ry:0deg;
  --neon-depth:0px;
  backface-visibility:hidden;
  transform-style:preserve-3d;
}
.neon-tilt:hover{
  transform:perspective(920px) translateY(-10px) scale(1.012) rotateX(var(--neon-rx)) rotateY(var(--neon-ry))!important;
  box-shadow:0 30px 68px rgba(7,41,68,.19),0 0 34px rgba(var(--neon-blue-rgb),.19),0 0 52px rgba(var(--neon-cyan-rgb),.12),0 0 0 1px rgba(var(--neon-cyan-rgb),.24)!important;
}
.neon-tilt:focus-within{
  box-shadow:0 20px 50px rgba(7,41,68,.15),0 0 30px rgba(var(--neon-cyan-rgb),.18),0 0 0 2px rgba(var(--neon-cyan-rgb),.25)!important;
}
.neon-tilt .icon,.neon-tilt .portal-icon,.neon-tilt .direction-future-icon{
  transform:translateZ(0);
}
.neon-tilt:hover .icon,.neon-tilt:hover .portal-icon,.neon-tilt:hover .direction-future-icon{
  filter:drop-shadow(0 0 11px rgba(var(--neon-cyan-rgb),.38));
}

/* Flash contextual cuando una sección entra en viewport */
.neon-section-sweep{
  position:absolute;
  left:4%;right:4%;top:0;
  height:1px;
  z-index:9;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(90deg,transparent,var(--neon-cyan),var(--neon-green),transparent);
  box-shadow:0 0 12px rgba(var(--neon-cyan-rgb),.65),0 0 26px rgba(var(--neon-blue-rgb),.28);
  animation:neonSectionSweep .86s var(--neon-ease) forwards;
}
@keyframes neonSectionSweep{
  0%{opacity:0;transform:scaleX(.08) translateY(0)}
  35%{opacity:.88}
  100%{opacity:0;transform:scaleX(1) translateY(7px)}
}

/* Formularios: foco inequívoco, accesible y tecnológico */
input,select,textarea{
  transition:border-color .22s ease,box-shadow .22s ease,background-color .22s ease!important;
}
input:focus,select:focus,textarea:focus{
  border-color:rgba(var(--neon-blue-rgb),.72)!important;
  box-shadow:0 0 0 3px rgba(var(--neon-cyan-rgb),.16),0 0 18px rgba(var(--neon-cyan-rgb),.12)!important;
}
input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,.nav-link:focus-visible,.card-link:focus-visible,.chat-suggestion:focus-visible{
  outline:2px solid rgba(var(--neon-cyan-rgb),.66)!important;
  outline-offset:3px!important;
}

/* Modal de búsqueda */
.search-panel{
  position:relative;
  overflow:hidden;
}
.search-panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(var(--neon-cyan-rgb),.15),inset 0 0 26px rgba(var(--neon-cyan-rgb),.045);
}
.search-modal.open .search-panel{animation:neonPanelIn .34s var(--neon-ease) both}
@keyframes neonPanelIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}

/* Asistente: presencia viva pero sin animaciones pesadas */
.chat-btn{
  box-shadow:0 16px 34px rgba(7,48,78,.20),0 0 22px rgba(var(--neon-cyan-rgb),.18)!important;
}
.chat-btn::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:inherit;
  border:1px solid rgba(var(--neon-cyan-rgb),.34);
  opacity:0;
  pointer-events:none;
}
.chat-btn:hover::after,.chat-btn:focus-visible::after{animation:neonRing .75s var(--neon-ease) both}
@keyframes neonRing{0%{opacity:.72;transform:scale(.92)}100%{opacity:0;transform:scale(1.16)}}
.chat-window.open{
  box-shadow:0 24px 60px rgba(6,37,61,.24),0 0 32px rgba(var(--neon-cyan-rgb),.13)!important;
}

/* Footer: línea energética coherente con partículas */
footer::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:1px;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--neon-blue),var(--neon-cyan),var(--neon-green),transparent);
  box-shadow:0 0 14px rgba(var(--neon-cyan-rgb),.34);
}
footer a:hover,footer a:focus-visible{
  text-shadow:0 0 11px rgba(var(--neon-cyan-rgb),.32);
}

/* Loader: energía contenida y separación visual conservada */
.portal-loader-core{
  box-shadow:0 0 0 8px rgba(var(--neon-cyan-rgb),.08),0 0 32px rgba(var(--neon-cyan-rgb),.24),0 24px 64px rgba(var(--neon-blue-rgb),.25)!important;
}
.portal-loader-track span{
  box-shadow:0 0 12px rgba(var(--neon-cyan-rgb),.70);
}
.portal-loader-copy strong{text-shadow:0 0 12px rgba(var(--neon-cyan-rgb),.16)}

/* Móvil: menos perspectiva y sin aura de cursor */
@media(max-width:900px),(hover:none),(pointer:coarse){
  .portal-cursor-aura{display:none!important}
  .neon-tilt:hover{transform:translateY(-6px) scale(1.006)!important}
  .portal-scroll-progress{height:2px}
}

/* Alto contraste no depende del glow para comunicar estados */
body.contraste .portal-cursor-aura{display:none!important}
body.contraste .neon-tilt:hover{box-shadow:0 0 0 2px currentColor!important}

@media(prefers-reduced-motion:reduce){
  .portal-cursor-aura,.neon-section-sweep{display:none!important}
  .neon-tilt:hover{transform:none!important}
  .portal-scroll-progress{transition:none!important}
  .neon-ripple{display:none!important}
}

/* Barrido luminoso del loader: visible solo durante los 2 s de transición. */
.portal-loader::after{
  content:"";
  position:absolute;
  left:8%;right:8%;top:16%;
  height:1px;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(90deg,transparent,var(--neon-cyan),var(--neon-green),transparent);
  box-shadow:0 0 14px rgba(var(--neon-cyan-rgb),.55);
  animation:loaderNeonScan 1.45s var(--neon-ease) infinite;
}
@keyframes loaderNeonScan{
  0%{opacity:0;transform:translateY(-18px) scaleX(.35)}
  20%{opacity:.70}
  72%{opacity:.34}
  100%{opacity:0;transform:translateY(68vh) scaleX(1)}
}
.portal-loader-orbit{box-shadow:0 0 12px rgba(var(--neon-cyan-rgb),.18)}
.portal-loader-orbit.orbit-b{box-shadow:0 0 18px rgba(var(--neon-green-rgb),.12)}

/* Entrada de cada página al finalizar el loader. */
body.portal-neon-ready #contenido{
  animation:neonPageIn .48s var(--neon-ease) both;
}
body.portal-neon-ready .header{
  animation:neonHeaderIn .36s var(--neon-ease) both;
}
@keyframes neonPageIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}
@keyframes neonHeaderIn{
  from{opacity:.35;transform:translateY(-7px)}
  to{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  body.portal-neon-ready #contenido,body.portal-neon-ready .header{animation:none!important}
}
