/* ==========================================================================
   NexusWeb · Portada rediseñada (home-nx.css)
   Archivo independiente: solo se carga cuando index.php define $nxHome.
   No modifica estilos.css ni afecta a las páginas interiores.
   Paleta: azul #0C2254 · dorado #C89A3C · dorado claro #E3BC6A
   ========================================================================== */
body.nx-home{margin:0;padding-top:0 !important;background:#06122e;color:#F4F6FB;font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.nx-home .nx-page,body.nx-home .nx-page *,body.nx-home .nx-page *::before,body.nx-home .nx-page *::after{box-sizing:border-box}
.nx-page a{color:#E3BC6A;text-decoration:none}
.nx-page a:hover{color:#ffffff}
.nx-page h1,.nx-page h2,.nx-page h3,.nx-page p{color:inherit;font-family:inherit;text-transform:none}
.nx-page img,.nx-page video,.nx-page svg{max-width:100%}
.nx-page [id]{scroll-margin-top:96px}
.nx-page section{background:transparent;color:inherit;padding-left:0;padding-right:0}
.nx-hero{margin-top:-94px;padding-top:94px}
.nx-page button{font-family:inherit}
.nx-page details>summary{list-style:none}
.nx-page details>summary::-webkit-details-marker{display:none}
.svc[hidden]{display:none !important}
.nx-chip{font-family:'DM Sans',sans-serif;font-weight:700;font-size:14px;padding:10px 18px;border-radius:999px;cursor:pointer;background:transparent;color:#DCE3F2;border:1px solid rgba(255,255,255,.28);transition:background .2s,color .2s}
.nx-chip:hover{border-color:#C89A3C}
.nx-chip.is-on{background:#C89A3C;color:#0B1630;border-color:#C89A3C}
.nx-faq details{border-bottom:1px solid rgba(255,255,255,.14);padding:4px 0}
.nx-faq summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 4px;font-family:'Sora',sans-serif;font-weight:700;font-size:18px;color:#F4F6FB}
.nx-faq summary::after{content:'+';color:#E3BC6A;font-size:26px;line-height:1;flex:0 0 auto}
.nx-faq details[open] summary::after{content:'–'}
.nx-faq details p{padding:0 4px 20px;margin:0;font-size:16px;line-height:1.65;color:#C9D3E8}
.nx-form input,.nx-form textarea{width:100%;border:1px solid #CBD3E6;border-radius:12px;padding:14px 16px;font-family:'DM Sans',sans-serif;font-size:16px;color:#0B1630;background:#ffffff;outline:none}
.nx-form input:focus,.nx-form textarea:focus{border-color:#C89A3C;box-shadow:0 0 0 3px rgba(200,154,60,.25)}
.nx-alert{max-width:760px;margin:24px auto 0;padding:14px 18px;border-radius:14px;font-weight:500}
.nx-alert--ok{background:rgba(70,211,154,.14);color:#46d39a;border:1px solid rgba(70,211,154,.4)}
.nx-alert--err{background:rgba(255,107,107,.14);color:#ff9b9b;border:1px solid rgba(255,107,107,.4)}
.nx-nav-wrap{position:sticky;top:0;z-index:1030}
.nx-ghost{font-family:'DM Sans',sans-serif;cursor:pointer;background:transparent;color:#ffffff;font-weight:700;border:1px solid rgba(255,255,255,.4)}
.nx-ghost:hover{border-color:#E3BC6A}
/* Nexo en la portada: dos videos (reposo y saludo) dentro del disco */
.e-core video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.1);transform-origin:50% 58%;transition:opacity .3s ease}
.e-core{cursor:pointer}
.e-core .nexo-v-greet{opacity:0}
.e-core.is-greeting .nexo-v-greet{opacity:1}
.ico{width:26px;height:26px;fill:none;stroke:#E3BC6A;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.svc{transition:transform .25s ease,border-color .25s ease,background .25s ease}
.svc:hover{transform:translateY(-6px);border-color:#C89A3C !important;background:rgba(200,154,60,.08) !important}
.rub{transition:transform .25s ease,border-color .25s ease}
.rub:hover{transform:translateY(-4px);border-color:#C89A3C !important}
@keyframes nxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes nxPulse{0%,100%{opacity:1}50%{opacity:.35}}
.nx-float{animation:nxFloat 6s ease-in-out infinite}
.nx-float2{animation:nxFloat 7.5s ease-in-out infinite}
.nx-dot{animation:nxPulse 1.8s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.nx-float,.nx-float2,.nx-dot{animation:none}}
@keyframes eSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes eCounter{from{transform:rotate(var(--a)) translateX(var(--R,250px)) rotate(calc(-1 * var(--a)))}to{transform:rotate(calc(var(--a) + 360deg)) translateX(var(--R,250px)) rotate(calc(-1 * var(--a) - 360deg))}}
@keyframes ePulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes eGlow{0%,100%{box-shadow:0 0 0 3px #C89A3C,0 0 0 14px rgba(200,154,60,.16),0 0 90px rgba(200,154,60,.25)}50%{box-shadow:0 0 0 3px #E3BC6A,0 0 0 24px rgba(200,154,60,.08),0 0 130px rgba(200,154,60,.4)}}
.e-orbit{position:absolute;left:50%;top:50%;width:0;height:0}
.e-badge{position:absolute;left:0;top:0;margin:calc(var(--BH,48px)/-2) 0 0 calc(var(--BW,140px)/-2);width:var(--BW,140px);animation:eCounter 40s linear infinite}
.e-ring{animation:eSpin 60s linear infinite}
.e-core{animation:eGlow 4s ease-in-out infinite}
.e-dot{animation:ePulse 1.8s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.e-badge,.e-ring,.e-core,.e-dot{animation:none}.e-badge{transform:rotate(var(--a)) translateX(var(--R,250px)) rotate(calc(-1 * var(--a)))}}

@keyframes fDraw{0%{stroke-dashoffset:900}60%,100%{stroke-dashoffset:0}}
@keyframes fRun{from{stroke-dashoffset:0}to{stroke-dashoffset:-60}}
@keyframes fMsg{0%{opacity:0;transform:translateY(10px)}8%{opacity:1;transform:translateY(0)}92%{opacity:1}100%{opacity:0}}
@keyframes fFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes fPulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes fBar{0%{width:10%}50%{width:78%}100%{width:10%}}
.f-line{stroke-dasharray:900;animation:fDraw 6s ease-in-out infinite}
.f-flow{stroke-dasharray:8 14;animation:fRun 1.2s linear infinite}
.f-m1{animation:fMsg 12s infinite;animation-delay:0s;opacity:0}
.f-m2{animation:fMsg 12s infinite;animation-delay:2.2s;opacity:0}
.f-m3{animation:fMsg 12s infinite;animation-delay:4.4s;opacity:0}
.f-m4{animation:fMsg 12s infinite;animation-delay:6.6s;opacity:0}
.f-fl1{animation:fFloat 6s ease-in-out infinite}
.f-fl2{animation:fFloat 7s ease-in-out infinite;animation-delay:1s}
.f-fl3{animation:fFloat 5.5s ease-in-out infinite;animation-delay:2s}
.f-dot{animation:fPulse 1.8s ease-in-out infinite}
.f-bar{animation:fBar 5s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.f-line,.f-flow,.f-m1,.f-m2,.f-m3,.f-m4,.f-fl1,.f-fl2,.f-fl3,.f-dot,.f-bar{animation:none}.f-line{stroke-dashoffset:0}.f-m1,.f-m2,.f-m3,.f-m4{opacity:1}}

.nx-burger{display:none}
.nx-burger summary::-webkit-details-marker{display:none}
@media (max-width:760px){.nx-links{display:none !important}.nx-burger{display:block}}
@media (max-width:680px){
:root{--PP:28px 16px}
.e-stage{--R:132px;--BW:90px;--BH:34px;--BF:11.5px;--C:156px;margin:0 auto}
.f-stage{height:auto !important;display:flex;flex-direction:column;align-items:center;gap:18px;margin:0 !important}
.f-stage>*{position:static !important;max-width:100%;box-sizing:border-box}
.f-stage>svg{display:none}
.f-stage>.f-fl1{width:100% !important;max-width:340px}
.f-stage>.f-fl2{width:236px !important}
.f-stage>.f-fl3{width:100% !important;max-width:300px}
}
@media (max-width:380px){
.e-stage{--R:118px;--BW:82px;--BH:32px;--BF:10.5px;--C:136px}
}

/* ---------- Widget del asistente: texto oscuro sobre panel claro + altura en móvil ---------- */
body.nx-home .nexus-assistant-panel{color:#0B1630}
body.nx-home .nexus-assistant-panel__title,
body.nx-home .nexus-assistant-message--assistant,
body.nx-home .nexus-assistant-message--assistant p{color:#0B1630}
@media (max-width:640px){
  body.nx-home .nexus-assistant-panel:not([hidden]){max-height:min(76vh,600px);display:flex;flex-direction:column;overflow:hidden}
  body.nx-home .nexus-assistant-panel__body{flex:1 1 auto;min-height:0;overflow-y:auto}
  body.nx-home .nexo-greeter{height:84px}
}

/* ---------- Saludo de Nexo en el chat: disco redondo con aro dorado ---------- */
body.nx-home .nexo-greeter{width:132px;height:132px;margin:.25rem auto .9rem;border-radius:50%;box-shadow:0 0 0 3px #C89A3C,0 0 0 8px rgba(200,154,60,.18)}
body.nx-home .nexo-greeter video{transform:scale(1.15);transform-origin:50% 55%;object-position:50% 40%}
@media (max-width:640px){
  body.nx-home .nexo-greeter{width:104px;height:104px;flex:0 0 auto}
}
