/* =====================================================================
   INFRANOVA con NIUXER · página «Tu negocio»
   La página se abre al bajar como la Λ del logo: cada capa es más ancha y su título más grande.
   Lo que se queda fijo o aparece al bajar va bajo .neg-vivo: sin JavaScript o con «reducir
   movimiento» se ve todo en orden.
   ===================================================================== */

.neg {
  overflow-x: clip;
  --f-gorda: 'Archivo', var(--f-titulo);
  --magenta: #d926a9; --morado: #8b5cf6;
  --grad: linear-gradient(100deg, #4d96f7, #8b5cf6 55%, #d926a9);
  --grad-fondo: linear-gradient(100deg, #2c6ae4, #7340e0 55%, #b01d92); /* más hondo: aguanta letra blanca */
  --borde: linear-gradient(135deg, rgba(77, 150, 247, .65), rgba(139, 92, 246, .28) 50%, rgba(217, 38, 169, .6));
}
.neg-lienzo { position: relative; overflow-x: clip; }
.neg-paredes { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
.neg-paredes path { fill: none; stroke-width: 2; stroke-linecap: round; }
.neg-paredes .izq { stroke: url(#negIzq); }
.neg-paredes .der { stroke: url(#negDer); }
.neg-paredes .halo { stroke-width: 10; opacity: .12; }

/* ---------- cabecera propia ---------- */
.neg-cab .env { justify-content: space-between; }
.neg-cab.con-fondo { background: rgba(5, 10, 20, .94); -webkit-backdrop-filter: none; backdrop-filter: none; } /* sin desenfoque: aquí detrás todo se mueve */
.neg-marcas { display: flex; align-items: center; gap: 14px; min-width: 0; color: var(--tinta-3); }
.neg-marcas span { font-size: 15px; }
.neg-nx img { width: 84px; height: auto; }

/* ---------- títulos: crecen capa a capa ---------- */
.ntit { position: relative; font-family: var(--f-gorda); font-stretch: 112%; font-weight: 700; font-size: var(--t, 34px); line-height: 1.04; letter-spacing: -.032em; text-wrap: balance; }
.ntxt { margin: 16px 0 0; max-width: 62ch; font-size: clamp(16px, 1.2vw, 18px); line-height: 1.6; color: var(--tinta-2); text-wrap: pretty; }
.npie { margin: 16px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--tinta-3); }
.npie a { color: var(--tinta-2); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- capas: cada una más ancha que la anterior ---------- */
.ncapa { position: relative; z-index: 1; padding: clamp(70px, 9vw, 130px) 0; }
.ncapa-in { position: relative; width: min(var(--w), calc(100% - 40px)); margin: 0 auto; }
.c1 { --w: max(460px, 34vw); --t: clamp(25px, 2vw, 31px); padding-top: clamp(40px, 5vw, 70px); }
.c2 { --w: max(680px, 50vw); --t: clamp(26px, 2.5vw, 37px); }
.c3 { --w: max(880px, 64vw); --t: clamp(27px, 3vw, 44px); }
.c4 { --w: max(1040px, 78vw); --t: clamp(28px, 3.5vw, 52px); padding-bottom: 0; }
.c5 { --w: max(1180px, 90vw); --t: clamp(29px, 4vw, 60px); padding-bottom: clamp(60px, 7vw, 100px); }
.c6 { --w: 100vw; --t: clamp(30px, 4.7vw, 74px); }
.c6 .ncapa-in { width: calc(100% - clamp(40px, 8vw, 150px)); }
.c6::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: clamp(420px, 44vw, 600px); background: linear-gradient(rgba(5, 10, 20, .22), rgba(5, 10, 20, .6) 50%, var(--noche) 92%), url(../img/negocio/seda-2.webp) center / cover; pointer-events: none; }
.c7 { --w: 100vw; --t: clamp(28px, 3.5vw, 52px); padding-bottom: 0; }
.c7 .ncapa-in { width: calc(100% - clamp(40px, 8vw, 150px)); }

/* ---------- ventana del navegador y móvil ---------- */
.nven { position: relative; margin: 0; border-radius: 14px; overflow: hidden; border: 1px solid transparent; background: linear-gradient(var(--noche-3), var(--noche-3)) padding-box, var(--borde) border-box; box-shadow: 0 30px 70px -40px rgba(0, 0, 0, .95); }
.nven-barra { display: flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; background: var(--noche-2); border-bottom: 1px solid var(--linea); }
.nven-barra i { width: 8px; height: 8px; border-radius: 50%; background: var(--linea-2); }
.nven-vista { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--noche-3); }
.nven-vista img { position: absolute; top: 0; left: 0; width: 100%; height: auto; max-width: none; }
.nven[data-web] .nven-vista img { opacity: 0; transition: opacity .5s var(--suave); will-change: transform; }
.nven[data-web] .nven-vista img.ver { opacity: 1; }
.nmov { position: relative; aspect-ratio: 9 / 16; border-radius: 20px; border: 3px solid transparent; background: linear-gradient(var(--noche-3), var(--noche-3)) padding-box, var(--grad) border-box; overflow: hidden; box-shadow: 0 24px 60px -30px rgba(0, 0, 0, .95); }
.nmov video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- portada ---------- */
.npor { position: relative; z-index: 1; }
.npor-fijo {
  position: relative; min-height: 100vh; min-height: 100svh; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); align-items: center;
  gap: clamp(30px, 5vw, 80px); padding: calc(var(--cab) + 20px) max(24px, calc((100% - 1240px) / 2)) 40px; overflow: hidden;
}
.npor-a h1 { font: 800 clamp(34px, 5vw, 78px)/1 var(--f-gorda); font-stretch: 125%; letter-spacing: -.04em; text-wrap: balance; }
.npor-a p { margin: 20px 0 0; font-size: clamp(17px, 1.5vw, 21px); color: var(--tinta-2); }
.npor-punta { position: relative; transform-origin: center; }
.npor-punta .nven { width: 92%; }
.npor-luz { position: absolute; inset: -22% -16% -26% -12%; z-index: -1; background: url(../img/negocio/seda-luz.webp) center / 100% 100%; opacity: .7; pointer-events: none; }
.npor-punta .nven-vista { aspect-ratio: 16 / 10.4; }
.npor-punta .nmov { position: absolute; right: 0; bottom: -8%; width: 27%; border-radius: 16px; }
.npor-b { margin-top: 30px; text-align: center; grid-column: 1 / -1; }
.npor-num { margin: 0; font: 800 clamp(84px, min(10vw, 16vh), 196px)/.95 var(--f-gorda); font-stretch: 125%; letter-spacing: -.05em; color: #fff;
  background: url(../img/negocio/seda-1.webp) 72% 30% / 260% auto; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.npor-f { margin: 10px auto 0; max-width: 34ch; font-size: clamp(15.5px, 1.25vw, 19px); line-height: 1.45; color: var(--tinta-2); text-wrap: balance; }

.neg-vivo .npor { height: 270vh; height: 270svh; }
.neg-vivo .npor-fijo { position: sticky; top: 0; height: 100vh; height: 100svh; min-height: 0; }
.neg-vivo .npor-punta { will-change: transform; }
.neg-vivo .npor-a { will-change: transform, opacity; }
.neg-vivo .npor-b { position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: 0; padding: 0 20px 4vh; display: grid; align-content: end; pointer-events: none; opacity: 0; will-change: transform, opacity; }

/* ---------- vídeo y web ---------- */
.nreels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 26px; }
.c1 .nven { margin-top: 14px; }

/* ---------- SEO y GEO ---------- */
.nbusca { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 14px; margin-top: 28px; }
.nbusca-g, .nbusca-ia { border: 1px solid transparent; background: linear-gradient(var(--noche-2), var(--noche-2)) padding-box, var(--borde) border-box; border-radius: 18px; padding: 18px; box-shadow: 0 30px 70px -45px rgba(139, 92, 246, .55); }
.nbusca-caja { display: flex; align-items: center; gap: 10px; min-height: 42px; padding: 0 14px; border-radius: 999px; background: var(--noche-3); color: var(--tinta-2); font-size: 14.5px; }
.nbusca-caja svg { width: 16px; height: 16px; flex: none; }
.nbusca-lista { position: relative; margin-top: 12px; height: 276px; }
.nfila { position: absolute; left: 0; right: 0; top: 0; height: 46px; display: grid; align-content: center; gap: 7px; padding: 0 12px; border-radius: 10px; background: rgba(150, 185, 255, .05); will-change: transform; }
.nfila i { display: block; height: 7px; border-radius: 4px; background: rgba(150, 185, 255, .16); }
.nfila i:nth-child(1) { width: 58%; background: rgba(150, 185, 255, .26); }
.nfila i:nth-child(2) { width: 84%; }
.nfila:nth-child(2) i:nth-child(1) { width: 44%; }
.nfila:nth-child(3) i:nth-child(1) { width: 66%; }
.nfila:nth-child(4) i:nth-child(1) { width: 38%; }
.nfila:nth-child(5) i:nth-child(1) { width: 52%; }
.nfila-tu { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--grad-fondo); color: #fff; z-index: 1; font-size: 14.5px; box-shadow: 0 12px 30px -12px rgba(176, 29, 146, .7); }
.nfila-tu b { font-weight: 700; }
.nfila-tu span { font-size: 13px; }
.nfila-tu em { font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; }
.nbusca-ia { display: flex; flex-direction: column; gap: 12px; }
.nbusca-q { align-self: flex-end; margin: 0; max-width: 92%; padding: 10px 14px; border-radius: 14px 14px 4px 14px; background: var(--noche-3); font-size: 14.5px; line-height: 1.4; color: var(--tinta); }
.nbusca-r { margin: 0; font-size: clamp(15.5px, 1.25vw, 18px); line-height: 1.55; color: var(--tinta-2); }
.nbusca-r b { color: #fff; font-weight: 600; }
.nbusca-r span { transition: opacity .3s; }
.neg-vivo .nbusca-r span { opacity: .14; }
.neg-vivo .nbusca-r span.ver { opacity: 1; }

/* ---------- programa ---------- */
.nprog { position: relative; margin-top: clamp(30px, 4vw, 54px); padding: 3% 0; }
.nsuelto { position: absolute; left: var(--x); top: var(--y); z-index: 2; padding: 9px 14px; border-radius: 10px; background: var(--noche-3); border: 1px solid var(--linea-2); font-size: 13.5px; color: var(--tinta-2); white-space: nowrap; will-change: transform, opacity; pointer-events: none; }
.npanel { position: relative; z-index: 1; display: grid; grid-template-columns: 158px minmax(0, 1fr); min-height: 300px; border-radius: 18px; overflow: hidden; border: 1px solid transparent; background: linear-gradient(var(--noche-2), var(--noche-2)) padding-box, var(--borde) border-box; box-shadow: 0 40px 90px -50px rgba(77, 150, 247, .6); }
.npanel-menu { display: grid; align-content: start; gap: 4px; padding: 14px 10px; background: rgba(150, 185, 255, .035); border-right: 1px solid var(--linea); }
.npanel-menu button { min-height: 42px; padding: 0 12px; border-radius: 10px; text-align: left; font-size: 14.5px; color: var(--tinta-2); transition: background .2s, color .2s; }
.npanel-menu button:hover { color: #fff; }
.npanel-menu button[aria-selected="true"] { background: var(--grad-fondo); color: #fff; font-weight: 600; }
.npanel-cuerpo { padding: 12px 18px; min-width: 0; }
.nreg-f { display: grid; grid-template-columns: 1.15fr 1.15fr 1fr; gap: 12px; align-items: center; min-height: 54px; font-size: 14.5px; color: var(--tinta-2); }
.nreg-f + .nreg-f { border-top: 1px solid var(--linea); }
.nreg-f b { font-weight: 600; color: var(--tinta); }
.nreg-cab { min-height: 36px; font-size: 12.5px; color: var(--tinta-3); }
.nreg-f.aviso b, .nreg-f.aviso span { color: #f3a6dd; }

/* ---------- mapa de automatizaciones ---------- */
.nmapa { position: relative; margin-top: 24px; }
.nmapa-fijo { position: relative; padding: 20px 0 30px; }
.nmapa-esc { position: relative; width: min(var(--w), calc(100% - 32px)); height: 640px; margin: 0 auto; }
.nmapa-esc canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.nnodo { position: absolute; z-index: 1; width: 112px; margin-left: -56px; margin-top: -34px; display: grid; justify-items: center; gap: 7px; text-align: center; transition: opacity .35s var(--suave), transform .45s var(--muelle); }
.neg-vivo .nnodo { opacity: 0; transform: scale(.72); }
.neg-vivo .nnodo.on { opacity: 1; transform: none; }
.nnodo-t { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; background: var(--noche-3); border: 1px solid var(--azul); color: var(--azul-claro); }
.nnodo-t svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.nnodo.hub .nnodo-t { width: 70px; height: 70px; border-radius: 18px; background: var(--grad-fondo); color: #fff; border-color: transparent; box-shadow: 0 14px 34px -12px rgba(139, 92, 246, .8); }
.nnodo.o2 .nnodo-t { border-color: var(--magenta); color: #f3a6dd; }
.nnodo.hub .nnodo-t svg { width: 32px; height: 32px; }
.nnodo b { font: 600 12.5px/1.2 var(--f-titulo); color: var(--tinta); }
.nnodo small { position: absolute; top: 100%; left: 50%; width: 170px; margin: 4px 0 0 -85px; padding: 7px 10px; border-radius: 8px; background: var(--noche-4); font-size: 12.5px; line-height: 1.35; color: var(--tinta); opacity: 0; transform: translateY(-4px); transition: opacity .2s, transform .2s; pointer-events: none; z-index: 3; }
@media (hover: hover) and (pointer: fine) { .nnodo:hover small { opacity: 1; transform: none; } }
.nmapa-giro { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; text-align: center; padding: 20px; opacity: 0; visibility: hidden; background: radial-gradient(ellipse at center, rgba(5, 10, 20, .96) 30%, rgba(5, 10, 20, .5) 75%, transparent); }
.nmapa-giro h3 { font: 800 clamp(28px, 4vw, 58px)/1.04 var(--f-gorda); font-stretch: 118%; letter-spacing: -.035em; }
.nmapa-giro p { margin: 14px 0 0; font-size: clamp(18px, 2vw, 26px); color: var(--tinta-2); }
.nmapa-giro p b { color: #fff; font-weight: 700; }
.nmapa-cierre { margin: 16px auto 0; padding: 0 20px; text-align: center; font: 500 clamp(17px, 1.7vw, 24px)/1.3 var(--f-titulo); color: var(--tinta); }
.neg-vivo .nmapa { height: 340vh; height: 340svh; }
.neg-vivo .nmapa-fijo { position: sticky; top: 0; height: 100vh; height: 100svh; padding: 24px 0 18px; display: flex; flex-direction: column; justify-content: center; }
.neg-vivo .nmapa-esc { height: auto; flex: 1 1 auto; min-height: 0; }
.neg-vivo .nmapa-cierre { opacity: 0; min-height: 1.4em; flex: none; }

/* ---------- auditoría ---------- */
.ndatos { position: relative; margin-top: 26px; }
.ndatos-fijo { position: relative; padding: 10px 0 0; }
.ndatos-pista { display: grid; gap: 50px; width: min(var(--w), calc(100% - 40px)); margin: 0 auto; }
.ndato { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 5vw, 90px); align-items: center; min-width: 0; }
.ndato h3 { font: 700 clamp(23px, 2.3vw, 36px)/1.1 var(--f-gorda); font-stretch: 110%; letter-spacing: -.028em; text-wrap: balance; }
.ndato p { margin: 16px 0 0; max-width: 46ch; color: var(--tinta-2); font-size: clamp(16px, 1.25vw, 19px); line-height: 1.55; }
.ndato-graf { position: relative; margin: 0; height: clamp(300px, 58vh, 520px); min-width: 0; }
.ndato-graf svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; font: 400 13px var(--f-texto); }
.ndatos-pie { display: flex; align-items: center; gap: 16px; width: min(var(--w), calc(100% - 40px)); margin: 26px auto 0; font-size: 13.5px; color: var(--tinta-3); }
.ndatos-pie b { color: var(--tinta); font-weight: 600; font-variant-numeric: tabular-nums; }
.ndatos-raya { flex: 1; height: 2px; border-radius: 2px; overflow: hidden; }
.ndatos-raya i { display: block; height: 100%; background: var(--azul); transform-origin: left; transform: scaleX(1); }
.g-rej { stroke: var(--linea); stroke-width: 1; }
.g-eje { fill: var(--tinta-3); font-size: 12.5px; }
.g-eti { fill: var(--tinta); font-size: 13.5px; font-weight: 500; }
.g-eti-s { fill: var(--tinta-2); font-size: 13px; }
.g-num { fill: #fff; font: 300 56px var(--f-titulo); letter-spacing: -.02em; }
.g-azul { fill: none; stroke: var(--azul); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.g-blanca { fill: none; stroke: #dfe5f0; stroke-width: 2; stroke-dasharray: 6 6; }
.g-area { fill: rgba(77, 150, 247, .13); }
.g-punto { fill: var(--azul); stroke: var(--noche); stroke-width: 2.5; }
.g-barra { fill: var(--azul); }
.nhit { fill: transparent; }
.neg-vivo .g-traza { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.1s var(--suave); }
.neg-vivo .activo .g-traza { stroke-dashoffset: 0; }
.neg-vivo .g-aparece { opacity: 0; transition: opacity .5s var(--suave) .45s; }
.neg-vivo .activo .g-aparece { opacity: 1; }
.neg-vivo .g-barra { transform: scaleX(.04); transform-box: fill-box; transform-origin: left; transition: transform .8s var(--suave); transition-delay: calc(var(--i, 0) * 70ms); }
.neg-vivo .activo .g-barra { transform: none; }
.ntip { position: absolute; z-index: 5; left: 0; top: 0; padding: 8px 11px; border-radius: 8px; background: var(--noche-4); border: 1px solid var(--linea-2); font-size: 13px; line-height: 1.4; color: var(--tinta); white-space: nowrap; pointer-events: none; }
.ntip b { display: block; font-weight: 600; }

.neg-vivo .ndatos { height: 330vh; height: 330svh; }
.neg-vivo .ndatos-fijo { position: sticky; top: 0; height: 100vh; height: 100svh; display: flex; flex-direction: column; justify-content: center; padding: 20px 0; overflow: hidden; }
.neg-vivo .ndatos-pista { display: grid; gap: 0; }
.neg-vivo .ndato { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .45s var(--suave), transform .45s var(--suave), visibility 0s .45s; }
.neg-vivo .ndato.activo { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.neg-vivo .ndatos-raya { background: var(--linea); }
.neg-vivo .ndatos-raya i { transform: scaleX(0); }

.nhall { margin-top: clamp(50px, 6vw, 90px); }
.nhall h3 { font: 500 clamp(19px, 1.7vw, 25px)/1.25 var(--f-titulo); }
.nhall ul { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(30px, 5vw, 80px); }
.nhall li { padding: 16px 0; border-top: 1px solid var(--linea); font-size: clamp(17px, 1.45vw, 21px); line-height: 1.35; color: var(--tinta); font-weight: 500; font-family: var(--f-gorda); }
.nhall li::before { content: ''; display: block; width: 30px; height: 3px; margin-bottom: 12px; border-radius: 2px; background: var(--grad); }
.nhall .ntxt { margin-top: 24px; }

/* ---------- tu camino ---------- */
.ncam { display: grid; grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); grid-template-rows: auto auto auto; gap: 22px clamp(30px, 4vw, 70px); margin-top: clamp(30px, 4vw, 50px); }
.ncam-mandos { grid-column: 1; grid-row: 1; display: grid; gap: 20px; align-content: start; }
.ncam-mandos label { display: grid; gap: 6px; font-size: 14.5px; color: var(--tinta-2); line-height: 1.35; }
.ncam-mandos label span { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; }
.ncam-mandos output { flex: none; font: 600 18px var(--f-titulo); color: #fff; font-variant-numeric: tabular-nums; }
.nreg { -webkit-appearance: none; appearance: none; width: 100%; height: 32px; margin: 0; background: none; cursor: pointer; --v: 50%; touch-action: pan-y; }
.nreg::-webkit-slider-runnable-track { height: 4px; border-radius: 2px; background: linear-gradient(to right, var(--azul) var(--v), rgba(150, 185, 255, .22) var(--v)); }
.nreg::-webkit-slider-thumb { -webkit-appearance: none; width: 24px; height: 24px; margin-top: -10px; border-radius: 50%; background: #eaf0fb; border: 0; box-shadow: 0 2px 10px rgba(0, 0, 0, .6); }
.nreg::-moz-range-track { height: 4px; border-radius: 2px; background: rgba(150, 185, 255, .22); }
.nreg::-moz-range-progress { height: 4px; border-radius: 2px; background: var(--azul); }
.nreg::-moz-range-thumb { width: 24px; height: 24px; border-radius: 50%; background: #eaf0fb; border: 0; }
.ncam-res { grid-column: 1; grid-row: 2; }
.ncam-et { margin: 0; font-size: 15px; line-height: 1.4; color: var(--tinta-2); }
.ncam-num { margin: 8px 0 0; font: 800 clamp(40px, 4vw, 62px)/1 var(--f-gorda); font-stretch: 118%; letter-spacing: -.04em; color: #fff; font-variant-numeric: tabular-nums; }
.ncam-ran { margin: 10px 0 18px; font-size: 14px; line-height: 1.45; color: var(--tinta-2); }
.ncam-graf { position: relative; grid-column: 2; grid-row: 1 / span 2; margin: 0; min-height: 460px; display: flex; flex-direction: column; min-width: 0; }
.ncam-graf canvas { flex: 1; width: 100%; min-height: 0; display: block; touch-action: pan-y; }
.ncam-ley { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 12px; font-size: 13px; color: var(--tinta-2); }
.ncam-ley span:last-child { color: var(--tinta-3); }
.ley-igual::before, .ley-mejor::before { content: ''; display: inline-block; vertical-align: middle; width: 22px; margin-right: 8px; border-top: 2px dashed #dfe5f0; }
.ley-mejor::before { border-top: 3px solid var(--azul); }
.ncam-nota { grid-column: 1 / -1; margin: 0; max-width: 80ch; }

/* ---------- servidores: el suelo de todo ---------- */
.nsrv { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: clamp(40px, 5vw, 70px); padding: 6px; background: var(--noche-2); border-top: 1px solid var(--linea-2); }

/* ---------- cierre ---------- */
.ncierre { position: relative; z-index: 1; padding: clamp(70px, 9vw, 130px) 0 clamp(50px, 6vw, 80px); }
.ncierre-in { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(30px, 6vw, 100px); align-items: center; width: min(1240px, calc(100% - 40px)); margin: 0 auto; --t: clamp(28px, 3.4vw, 50px); }
.ntri { position: relative; aspect-ratio: 1 / .86; min-width: 0; }
.ntri svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; font: 500 13.5px var(--f-texto); }
.ntri .capa { transition: opacity .6s var(--suave); transition-delay: calc(var(--i) * 110ms); }
.neg-vivo .ntri:not(.dentro) .capa { opacity: 0; }
.ntri text { fill: var(--tinta); }
.ntri line { stroke: var(--linea-2); stroke-width: 1; }

/* ---------- colaboración: lo último de la página ---------- */
.neg-colab { display: flex; align-items: center; justify-content: space-between; gap: 18px 30px; flex-wrap: wrap; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--linea); }
.neg-colab p { display: flex; align-items: center; gap: 12px; margin: 0; max-width: none; flex-wrap: wrap; color: var(--tinta-2); font-size: 14px; }
.neg-colab p span { margin-right: 4px; }
.neg-colab p img { width: 118px; height: auto; }
.neg-colab p img:last-child { width: 62px; }
.neg-colab p i { font-style: normal; color: var(--tinta-3); }
.neg-colab-web { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- móvil ---------- */
@media (max-width: 1040px) {
  .ncam { grid-template-columns: minmax(0, 1fr); }
  .ncam-mandos, .ncam-res, .ncam-graf, .ncam-nota { grid-column: 1; grid-row: auto; }
  .ncam-graf { min-height: 360px; order: 1; }
  .ncam-mandos { order: 0; }
  .ncam-res { order: 2; }
  .ncam-nota { order: 3; }
  .ncierre-in { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .neg-cab-wa { display: none; }
  .neg-marcas { gap: 9px; }
  .neg-marcas .logo { width: 118px; }
  .neg-nx img { width: 60px; }
  .npor-fijo { grid-template-columns: minmax(0, 1fr); align-content: start; align-items: start; gap: 30px; padding-top: calc(var(--cab) + 26px); }
  .npor-punta .nmov { width: 30%; bottom: -14%; }
  .neg-vivo .npor-b { padding-bottom: 92px; }
  .c1 { --w: 86vw; }
  .c2 { --w: 92vw; }
  .c3, .c4, .c5 { --w: 100vw; }
  .ncapa-in { width: min(var(--w), calc(100% - 32px)); }
  .nreels { gap: 8px; }
  .nmov { border-radius: 13px; border-width: 3px; }
  .nbusca { grid-template-columns: minmax(0, 1fr); }
  .nprog { padding: 56px 0; }
  .nsuelto { font-size: 12.5px; padding: 7px 10px; }
  .nsuelto:nth-of-type(1) { left: 0; top: 0; }
  .nsuelto:nth-of-type(2) { left: auto; right: 0; top: 0; }
  .nsuelto:nth-of-type(3) { left: 0; top: 14px; display: none; }
  .nsuelto:nth-of-type(4) { left: auto; right: 0; top: auto; bottom: 0; }
  .nsuelto:nth-of-type(5) { left: 0; top: auto; bottom: 0; }
  .nsuelto:nth-of-type(6) { display: none; }
  .npanel { grid-template-columns: minmax(0, 1fr); }
  .npanel-menu { display: flex; overflow-x: auto; gap: 4px; padding: 8px; border-right: 0; border-bottom: 1px solid var(--linea); scrollbar-width: none; }
  .npanel-menu button { flex: 1 0 auto; min-height: 40px; text-align: center; }
  .npanel-cuerpo { padding: 6px 12px 10px; }
  .nreg-f { font-size: 13px; gap: 8px; min-height: 58px; line-height: 1.3; }
  .nnodo { width: 76px; margin-left: -38px; margin-top: -26px; gap: 5px; }
  .nnodo-t { width: 40px; height: 40px; border-radius: 11px; }
  .nnodo-t svg { width: 19px; height: 19px; }
  .nnodo.hub .nnodo-t { width: 52px; height: 52px; border-radius: 14px; }
  .nnodo.hub .nnodo-t svg { width: 24px; height: 24px; }
  .nnodo b { font-size: 10.5px; }
  .nnodo small { display: none; }
  .nmapa-esc { height: 620px; }
  .ndato { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .ndato-graf { height: 300px; }
  .neg-vivo .ndatos-fijo { justify-content: flex-start; padding-top: calc(var(--cab) + 6px); }
  .neg-vivo .ndatos-pista { display: flex; gap: 16px; width: max-content; margin: 0; padding: 0 16px; will-change: transform; }
  .neg-vivo .ndato { grid-area: auto; width: calc(100vw - 32px); opacity: 1; visibility: visible; transform: none; transition: none; flex: none; }
  .ndatos-pie { width: calc(100% - 32px); margin-top: 14px; }
  .nhall ul { grid-template-columns: minmax(0, 1fr); }
  .nsrv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsrv > :nth-child(n+5) { display: none; }
  .flotante { right: 14px; bottom: 14px; }
}
@media (prefers-reduced-transparency: reduce) { .nmapa-giro { background: var(--noche); } }
