/* landing.css — fileserver.locker / NAV — v2 redesign */

:root {
  /* Palette */
  --bg:    #F6F8FC;
  --surf:  #FFFFFF;
  --surf2: #EDF1F8;
  --surf3: #E2E9F4;
  --borde: #DDE5F0;
  --borde2:#C2D0E8;

  /* Text */
  --texto:  #0B1829;
  --texto2: #3F5373;
  --texto3: #7B90AC;

  /* Brand — navy deep */
  --pri:   #0A2463;
  --pri2:  #1650B8;
  --pri3:  #3473E8;
  --pri-s: rgba(20,80,184,0.08);
  --pri-g: linear-gradient(135deg, #0A2463 0%, #1E5BBF 100%);

  /* Accent — teal/chain */
  --aql:   #0097B2;
  --aql-s: rgba(0,151,178,0.10);

  /* States */
  --verde:   #0F9D6E;
  --verde-s: rgba(15,157,110,0.10);
  --ambar:   #C07918;
  --ambar-s: rgba(192,121,24,0.10);
  --rojo:    #B02B2B;
  --rojo-s:  rgba(176,43,43,0.10);
  --azul:    var(--aql);
  --azul-s:  var(--aql-s);

  /* Fonts */
  --disp: 'Plus Jakarta Sans','IBM Plex Sans',sans-serif;
  --sans: 'IBM Plex Sans',sans-serif;
  --mono: 'IBM Plex Mono',monospace;

  /* Shadows */
  --shd-sm: 0 2px 8px rgba(10,36,99,0.06);
  --shd-md: 0 8px 28px rgba(10,36,99,0.10);
  --shd-lg: 0 24px 56px rgba(10,36,99,0.15);
}

body.oscuro {
  --bg:    #060C18;
  --surf:  #0D1829;
  --surf2: #111F35;
  --surf3: #172440;
  --borde: rgba(88,128,220,0.14);
  --borde2:rgba(88,128,220,0.26);

  --texto:  #DCE8F8;
  --texto2: #7A9EC8;
  --texto3: #4A6A90;

  --pri:   #4A8FE8;
  --pri2:  #6AAAF5;
  --pri3:  #88BEF8;
  --pri-s: rgba(74,143,232,0.12);
  --pri-g: linear-gradient(135deg, #1A3A8A 0%, #2B60C8 100%);

  --aql:   #00C4E0;
  --aql-s: rgba(0,196,224,0.10);

  --verde:   #1DC98A;
  --verde-s: rgba(29,201,138,0.10);
  --ambar:   #E8940A;
  --ambar-s: rgba(232,148,10,0.10);
  --rojo:    #E05252;
  --rojo-s:  rgba(224,82,82,0.10);

  --shd-sm: 0 2px 8px rgba(0,0,0,0.30);
  --shd-md: 0 8px 28px rgba(0,0,0,0.40);
  --shd-lg: 0 24px 56px rgba(0,0,0,0.50);
}

/* === RESET & BASE === */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--sans);
  background:var(--bg);
  color:var(--texto);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .4s ease, color .4s ease;
}

/* === DECK === */
.deck { height:100vh; overflow-y:scroll; scroll-snap-type:y mandatory; }
.slide {
  min-height:100vh; scroll-snap-align:start;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  padding:96px 28px 64px; position:relative;
}
.slide-inner { width:100%; max-width:1060px; margin:0 auto; }

/* === NAVBAR === */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; gap:16px;
  padding:0 28px; height:58px;
  backdrop-filter:blur(16px) saturate(180%);
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  border-bottom:1px solid var(--borde);
  transition:background .4s;
}
.nav-logo { height:27px; width:auto; }
.nav-sp { flex:1; }
.nav-links { display:flex; gap:2px; align-items:center; }
.nav-links a {
  color:var(--texto2); text-decoration:none; font-size:13px; font-weight:500;
  padding:6px 12px; border-radius:8px; transition:all .15s;
}
.nav-links a:hover { color:var(--texto); background:var(--surf2); }
.nav-theme {
  background:none; border:1px solid var(--borde); border-radius:8px;
  width:34px; height:34px; cursor:pointer; color:var(--texto2);
  display:flex; align-items:center; justify-content:center; font-size:15px;
  transition:all .15s; margin-left:6px;
}
.nav-theme:hover { background:var(--surf2); color:var(--texto); border-color:var(--borde2); }
@media(max-width:720px) { .nav-links a { display:none; } }

/* === DOT NAV === */
.dots {
  position:fixed; right:20px; top:50%; transform:translateY(-50%);
  z-index:50; display:flex; flex-direction:column; gap:12px;
}
.dot {
  width:8px; height:8px; border-radius:50%; background:var(--borde2);
  border:none; cursor:pointer; transition:all .25s; padding:0;
}
.dot:hover { background:var(--texto3); transform:scale(1.3); }
.dot.act { background:var(--pri); transform:scale(1.5); box-shadow:0 0 0 3px var(--pri-s); }
@media(max-width:720px) { .dots { display:none; } }

/* === BUTTONS === */
.btn {
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font-family:var(--sans); font-size:14px; font-weight:600;
  padding:11px 22px; border-radius:10px; border:1.5px solid transparent;
  text-decoration:none; transition:all .18s; letter-spacing:.01em;
}
.btn-pri {
  background:var(--pri-g);
  color:#fff; border-color:transparent;
  box-shadow:0 4px 14px -4px rgba(10,36,99,0.35);
}
.btn-pri:hover {
  box-shadow:0 8px 22px -6px rgba(10,36,99,0.45);
  transform:translateY(-2px); filter:brightness(1.1);
}
.btn-gho {
  background:transparent; color:var(--texto); border-color:var(--borde2);
}
.btn-gho:hover { background:var(--surf2); border-color:var(--pri3); color:var(--pri); }

/* === HERO === */
#hero {
  background-image:
    radial-gradient(circle at 18% 55%, rgba(0,151,178,0.07) 0%, transparent 52%),
    radial-gradient(circle at 82% 18%, rgba(10,36,99,0.06) 0%, transparent 44%);
}
body.oscuro #hero {
  background-image:
    radial-gradient(circle at 18% 55%, rgba(0,196,224,0.07) 0%, transparent 52%),
    radial-gradient(circle at 82% 18%, rgba(74,143,232,0.08) 0%, transparent 44%);
}

.hero { display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
@media(max-width:860px) {
  .hero { grid-template-columns:1fr; text-align:center; }
  .hero-art { display:none; }
}

.hero h1 {
  font-family:var(--disp);
  font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.06; font-weight:800; letter-spacing:-.03em;
}
.hero h1 .hl {
  background:linear-gradient(135deg, var(--pri) 0%, var(--aql) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero .sub {
  margin-top:22px; font-size:clamp(.98rem,2vw,1.18rem);
  color:var(--texto2); line-height:1.65; max-width:500px;
}
@media(max-width:860px) { .hero .sub { margin-left:auto; margin-right:auto; } }

.hero .cta { margin-top:36px; display:flex; gap:12px; flex-wrap:wrap; }
@media(max-width:860px) { .hero .cta { justify-content:center; } }

/* Trust badges */
.hero-trust {
  margin-top:38px; display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
@media(max-width:860px) { .hero-trust { justify-content:center; } }
.ht-label {
  font-size:10.5px; color:var(--texto3); font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; white-space:nowrap;
}
.ht-badges { display:flex; gap:8px; flex-wrap:wrap; }
.ht-badge {
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:10.5px; color:var(--texto3);
  border:1px solid var(--borde); border-radius:7px; padding:4px 10px;
  background:var(--surf); transition:border-color .15s, color .15s;
}
.ht-badge:hover { border-color:var(--aql); color:var(--aql); }
.ht-badge i { font-size:13px; color:var(--aql); }

/* Hero art */
.hero-art { display:flex; align-items:center; justify-content:center; }
.morph { position:relative; width:280px; height:350px; }
.morph::before {
  content:""; position:absolute;
  width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle, rgba(0,151,178,0.15) 0%, transparent 70%);
  top:50%; left:50%; transform:translate(-50%,-50%); z-index:0;
  animation:glowpulse 4s ease-in-out infinite;
}
@keyframes glowpulse { 0%,100%{opacity:1} 50%{opacity:.5} }

.morph-card {
  position:absolute; inset:0; border-radius:22px;
  background:var(--surf); border:1px solid var(--borde);
  box-shadow:var(--shd-lg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
  overflow:hidden; z-index:1;
}
.morph-card::before {
  content:""; position:absolute; inset:0;
  background:linear-gradient(150deg, rgba(10,36,99,0.03) 0%, rgba(0,151,178,0.05) 100%);
}
.morph-card::after {
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--pri) 0%, var(--aql) 100%);
}

.morph-ico { font-size:58px; color:var(--pri); position:relative; z-index:1; }
.morph-lbl {
  font-family:var(--mono); font-size:11px; color:var(--texto2);
  position:relative; z-index:1; letter-spacing:.06em;
  background:var(--surf2); padding:4px 12px; border-radius:7px; border:1px solid var(--borde);
}
.morph-hash {
  position:absolute; bottom:58px; left:50%; transform:translateX(-50%);
  font-family:var(--mono); font-size:9px; color:var(--texto3);
  z-index:2; letter-spacing:.04em; white-space:nowrap;
  background:var(--surf2); border:1px solid var(--borde);
  padding:3px 10px; border-radius:6px;
}
.morph-chain {
  position:absolute; top:16px; left:16px;
  font-family:var(--mono); font-size:10px; color:var(--aql);
  z-index:2; display:flex; align-items:center; gap:5px;
  background:var(--aql-s); border:1px solid rgba(0,151,178,0.25);
  border-radius:7px; padding:3px 9px;
}
.morph-seal {
  position:absolute; bottom:18px; right:18px;
  width:52px; height:52px; border-radius:50%;
  background:linear-gradient(135deg, var(--verde), #0BB87A);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px;
  box-shadow:0 8px 20px -6px var(--verde);
  animation:sealpop 3s ease-in-out infinite; z-index:2;
}
@keyframes sealpop { 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }

/* === SECTION HEADERS === */
.s-eyebrow {
  font-family:var(--mono); font-size:11px; color:var(--aql);
  letter-spacing:.14em; text-transform:uppercase; margin-bottom:16px;
  display:inline-flex; align-items:center; gap:10px;
}
.s-eyebrow::before {
  content:""; width:22px; height:2px; background:var(--aql);
  border-radius:1px; display:inline-block; flex-shrink:0;
}
.s-title {
  font-family:var(--disp);
  font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800;
  line-height:1.1; letter-spacing:-.025em;
}
.s-lead {
  margin-top:20px; font-size:clamp(.98rem,2vw,1.12rem);
  color:var(--texto2); line-height:1.65; max-width:680px;
}

/* === PROBLEMA === */
.prob-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; }
@media(max-width:760px) { .prob-grid { grid-template-columns:1fr; } }

.prob-card {
  background:var(--surf); border:1px solid var(--borde); border-radius:16px;
  padding:28px 24px; transition:transform .2s, box-shadow .2s;
  position:relative; overflow:hidden;
}
.prob-card::before {
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--ambar-s) 0%, var(--ambar) 100%);
}
.prob-card:hover { transform:translateY(-5px); box-shadow:var(--shd-md); }
.prob-ico { font-size:28px; color:var(--ambar); margin-bottom:16px; display:block; }
.prob-card h3 { font-family:var(--disp); font-size:1.08rem; font-weight:700; margin-bottom:10px; }
.prob-card p { color:var(--texto2); font-size:.91rem; line-height:1.55; }

.prob-note {
  margin-top:36px; padding:18px 24px; border-radius:14px;
  background:var(--rojo-s); border:1px solid rgba(176,43,43,0.22);
  color:var(--texto); font-size:1rem; line-height:1.6; max-width:760px;
  display:flex; align-items:flex-start; gap:14px;
}
.prob-note-ico { font-size:21px; color:var(--rojo); flex-shrink:0; margin-top:2px; }
.prob-note span b { color:var(--rojo); }

/* === SOLUCIÓN === */
.sol-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:44px; }
@media(max-width:760px) { .sol-grid { grid-template-columns:1fr; } }

.pillar {
  background:var(--surf); border:1px solid var(--borde); border-radius:18px;
  padding:32px 30px; position:relative; overflow:hidden;
  transition:box-shadow .2s, transform .2s;
}
.pillar:hover { box-shadow:var(--shd-md); transform:translateY(-3px); }
.pillar::after { content:""; position:absolute; top:0; left:0; right:0; height:3px; }
.pillar.p-pdf::after  { background:linear-gradient(90deg, var(--verde), #0BB87A); }
.pillar.p-chain::after { background:linear-gradient(90deg, var(--aql), var(--pri3)); }
.pillar-ico { font-size:32px; margin-bottom:18px; display:block; }
.pillar.p-pdf .pillar-ico   { color:var(--verde); }
.pillar.p-chain .pillar-ico { color:var(--aql); }
.pillar h3 { font-family:var(--disp); font-size:1.22rem; font-weight:700; margin-bottom:18px; }
.pillar ul { list-style:none; display:flex; flex-direction:column; gap:13px; }
.pillar li {
  display:flex; align-items:flex-start; gap:10px;
  font-size:.92rem; color:var(--texto2); line-height:1.45;
}
.pillar li i { color:var(--verde); font-size:17px; flex-shrink:0; margin-top:1px; }
.pillar.p-chain li i { color:var(--aql); }
.pillar code {
  font-family:var(--mono); font-size:.82em;
  background:var(--surf2); padding:2px 7px; border-radius:5px;
  color:var(--pri); border:1px solid var(--borde);
}

.sol-kicker {
  margin-top:32px; padding:26px 32px; border-radius:16px; text-align:center;
  background:var(--pri-g); color:#fff;
  font-family:var(--disp); font-size:clamp(1.05rem,2.3vw,1.4rem);
  font-weight:600; line-height:1.4;
  box-shadow:0 20px 44px -20px rgba(10,36,99,0.40);
}
.sol-kicker b { font-weight:800; }
.sol-kicker small {
  display:block; margin-top:10px; font-size:.68em; opacity:.8;
  font-weight:400; font-family:var(--mono); letter-spacing:.07em;
}

/* === SIMULADOR === */
.sim-head {
  display:flex; align-items:center; justify-content:space-between;
  gap:18px; flex-wrap:wrap; margin-bottom:8px;
}
.sim-wrap {
  margin-top:28px; background:var(--surf); border:1px solid var(--borde);
  border-radius:18px; padding:28px;
  display:grid; grid-template-columns:1fr 290px; gap:28px;
  box-shadow:var(--shd-sm);
}
@media(max-width:820px) { .sim-wrap { grid-template-columns:1fr; } }

.sim-tl { position:relative; padding-left:4px; }
.sim-line {
  position:absolute; left:19px; top:18px; bottom:18px;
  width:2px; background:var(--borde2); border-radius:2px;
}
.sim-step {
  position:relative; display:flex; gap:18px;
  align-items:flex-start; padding-bottom:22px;
  opacity:.22; transition:opacity .4s ease;
}
.sim-step:last-child { padding-bottom:0; }
.sim-step.on { opacity:1; }

.sim-dot {
  flex-shrink:0; width:38px; height:38px; border-radius:50%;
  background:var(--borde2); display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:16px;
  border:3px solid var(--surf); box-shadow:0 0 0 1px var(--borde);
  transition:all .4s; z-index:1;
}
.sim-step.on.c-v .sim-dot {
  background:var(--verde);
  box-shadow:0 0 0 1px rgba(15,157,110,0.3), 0 4px 14px -4px var(--verde);
}
.sim-step.on.c-a .sim-dot {
  background:var(--ambar);
  box-shadow:0 0 0 1px rgba(192,121,24,0.3), 0 4px 14px -4px var(--ambar);
}
.sim-step.cur .sim-dot { animation:simpulse 1s ease-in-out infinite; }
@keyframes simpulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.14)} }

.sim-card {
  flex:1; min-width:0; background:var(--surf);
  border:1px solid var(--borde); border-left:3px solid var(--borde2);
  border-radius:11px; padding:12px 16px; transition:border-color .4s;
}
.sim-step.on.c-v .sim-card { border-left-color:var(--verde); }
.sim-step.on.c-a .sim-card { border-left-color:var(--ambar); }
.sim-card .t { font-size:.92rem; font-weight:500; line-height:1.4; }
.sim-card .m { margin-top:7px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }

.sim-badge {
  font-family:var(--mono); font-size:9px; font-weight:700;
  padding:3px 9px; border-radius:20px; letter-spacing:.04em;
}
.sim-badge.in  { background:var(--verde-s); color:var(--verde); }
.sim-badge.out { background:var(--ambar-s); color:var(--ambar); }
.sim-tag {
  font-family:var(--mono); font-size:9px; padding:3px 9px; border-radius:20px;
  background:var(--aql-s); color:var(--aql);
  display:inline-flex; align-items:center; gap:4px;
}

.sim-panel {
  background:var(--surf2); border-radius:14px; padding:22px;
  align-self:start; border:1px solid var(--borde);
}
.sim-panel h4 {
  font-size:.74rem; text-transform:uppercase; letter-spacing:.1em;
  color:var(--texto3); margin-bottom:16px; font-weight:600;
}
.sim-row {
  display:flex; justify-content:space-between; gap:10px;
  padding:10px 0; border-bottom:1px solid var(--borde); font-size:.84rem;
}
.sim-row .k { color:var(--texto3); }
.sim-row .v { font-family:var(--mono); color:var(--texto); text-align:right; word-break:break-all; }
.sim-state {
  margin-top:16px; padding:14px; border-radius:11px; text-align:center;
  font-family:var(--mono); font-weight:700; font-size:.86rem;
  transition:all .4s; letter-spacing:.05em;
}
.sim-state.in  { background:var(--verde-s); color:var(--verde); border:1px solid rgba(15,157,110,0.2); }
.sim-state.out { background:var(--ambar-s); color:var(--ambar); border:1px solid rgba(192,121,24,0.2); }

/* === VERIFY === */
.vf-drop {
  margin-top:36px; border:2px dashed var(--borde2); border-radius:18px;
  padding:52px 28px; text-align:center; cursor:pointer;
  transition:all .22s; background:var(--surf);
  max-width:540px; margin-left:auto; margin-right:auto;
}
.vf-drop:hover, .vf-drop.drag {
  border-color:var(--pri3); background:var(--pri-s);
  box-shadow:0 0 0 4px var(--pri-s);
}
.vf-drop i { font-size:44px; color:var(--pri); margin-bottom:14px; display:block; }
.vf-drop .big  { font-family:var(--disp); font-size:1.05rem; font-weight:600; }
.vf-drop .small { font-size:.84rem; color:var(--texto3); margin-top:8px; }
.vf-result { max-width:540px; margin:24px auto 0; display:none; }
.vf-result.show { display:block; animation:fadeup .4s ease; }
@keyframes fadeup { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

.vf-check {
  display:flex; align-items:center; gap:12px;
  padding:14px 18px; background:var(--surf); border:1px solid var(--borde);
  border-radius:11px; margin-bottom:10px;
}
.vf-check i { font-size:22px; flex-shrink:0; }
.vf-check.ok i { color:var(--verde); }
.vf-check.no i { color:var(--texto3); }
.vf-check .vt { font-weight:600; font-size:.92rem; }
.vf-check .vd { font-size:.8rem; color:var(--texto3); font-family:var(--mono); word-break:break-all; }

/* === CONTACTO === */
.ct-grid {
  display:grid; grid-template-columns:1.1fr .9fr; gap:52px;
  margin-top:44px; align-items:start;
}
@media(max-width:760px) { .ct-grid { grid-template-columns:1fr; gap:36px; } }

.ct-form { display:flex; flex-direction:column; gap:16px; }
.ct-field label {
  display:block; font-size:.79rem; color:var(--texto2);
  margin-bottom:7px; font-weight:600; letter-spacing:.02em;
}
.ct-field input, .ct-field textarea {
  width:100%; background:var(--surf); border:1.5px solid var(--borde);
  border-radius:11px; padding:12px 15px; font-family:var(--sans);
  font-size:.93rem; color:var(--texto); outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.ct-field input:focus, .ct-field textarea:focus {
  border-color:var(--pri3); box-shadow:0 0 0 3px var(--pri-s);
}
.ct-field textarea { resize:vertical; min-height:94px; }
.ct-hp { position:absolute; left:-9999px; opacity:0; height:0; width:0; overflow:hidden; }
.ct-msg { padding:13px 18px; border-radius:11px; font-size:.9rem; display:none; }
.ct-msg.show { display:block; }
.ct-msg.ok  { background:var(--verde-s); color:var(--verde); border:1px solid rgba(15,157,110,0.25); }
.ct-msg.err { background:var(--rojo-s);  color:var(--rojo);  border:1px solid rgba(176,43,43,0.25); }

.ct-info { display:flex; flex-direction:column; gap:0; }
.ct-info h3 { font-family:var(--disp); font-size:1.1rem; font-weight:700; margin-bottom:20px; }
.ct-line {
  display:flex; align-items:center; gap:14px;
  color:var(--texto2); font-size:.92rem;
  padding:12px 0; border-bottom:1px solid var(--borde);
}
.ct-line:last-child { border:none; padding-bottom:0; }
.ct-line i { font-size:18px; color:var(--pri); flex-shrink:0; width:22px; }
.ct-line a { color:var(--texto2); text-decoration:none; transition:color .15s; }
.ct-line a:hover { color:var(--pri); }

.foot {
  margin-top:52px; padding-top:24px; border-top:1px solid var(--borde);
  text-align:center; color:var(--texto3); font-size:.8rem;
  display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
}
.foot-dot { width:3px; height:3px; border-radius:50%; background:var(--borde2); flex-shrink:0; }

/* === REVEAL === */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .65s ease,transform .65s ease; }
.reveal.in { opacity:1; transform:none; }

/* === FAQ === */
.faq-grid {
  margin-top:36px;
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
}
@media(max-width:760px) { .faq-grid { grid-template-columns:1fr; } }

.faq-item {
  background:var(--surf); border:1px solid var(--borde); border-radius:14px;
  overflow:hidden; transition:border-color .2s, box-shadow .2s;
}
.faq-item[open] { border-color:var(--borde2); box-shadow:var(--shd-sm); }

.faq-q {
  list-style:none; display:flex; align-items:flex-start;
  justify-content:space-between; gap:14px;
  padding:15px 18px; cursor:pointer;
  font-weight:600; font-size:.92rem; line-height:1.4;
  transition:background .15s;
}
.faq-q::-webkit-details-marker { display:none; }
.faq-q::marker { display:none; }
.faq-q:hover { background:var(--surf2); }
.faq-item[open] .faq-q { color:var(--pri); border-bottom:1px solid var(--borde); }

.faq-ico {
  flex-shrink:0; font-size:16px; color:var(--texto3); margin-top:1px;
  transition:transform .25s ease;
}
.faq-item[open] .faq-ico { transform:rotate(180deg); color:var(--pri); }

.faq-a {
  padding:14px 18px 16px; color:var(--texto2);
  font-size:.9rem; line-height:1.65;
}
.faq-a code {
  font-family:var(--mono); font-size:.82em;
  background:var(--surf2); padding:2px 7px; border-radius:5px;
  color:var(--pri); border:1px solid var(--borde);
}
.faq-a strong { color:var(--texto); font-weight:600; }

/* ══════════════════════════════════════════════════════════════
   NSIM — Simulador interactivo de bóveda (sección #sim)
══════════════════════════════════════════════════════════════ */
.nsim-wrap{border:1px solid var(--borde);border-radius:14px;overflow:hidden;margin-top:24px;box-shadow:var(--shd-md);background:var(--surf)}
.nsim-tabs{display:flex;background:var(--surf2);border-bottom:1px solid var(--borde)}
.nsim-tab{flex:1;padding:11px 8px;border:none;background:none;cursor:pointer;font-size:12px;font-weight:600;color:var(--texto3);font-family:var(--sans);border-bottom:2.5px solid transparent;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s}
.nsim-tab i{font-size:15px}
.nsim-tab:hover{color:var(--texto);background:var(--surf3)}
.nsim-tab.on{color:var(--pri);border-bottom-color:var(--aql);background:var(--surf)}
.nsim-pane{display:none}.nsim-pane.on{display:block}
.nsim-stage{position:relative;overflow:hidden;background:var(--bg);background-image:radial-gradient(circle at 15% 50%,rgba(0,151,178,.07) 0%,transparent 52%),radial-gradient(circle at 85% 25%,rgba(10,36,99,.06) 0%,transparent 44%)}
.nsim-msg{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:25;pointer-events:none;opacity:0;transition:opacity .35s;white-space:nowrap;font-family:var(--disp);font-size:14px;font-weight:700;padding:9px 20px;border-radius:10px;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 16px rgba(0,0,0,.16);color:#fff;text-align:center;line-height:1.4}
.nsim-msg.show{opacity:1}
.nsim-msg.info{background:rgba(10,36,99,.90)}
.nsim-msg.ok{background:rgba(10,100,70,.92)}
.nsim-msg.err{background:rgba(140,20,20,.92)}
.nsim-msg.warn{background:rgba(130,70,5,.92)}
.nsim-msg.teal{background:rgba(0,90,115,.92)}
.nsim-msg.navy{background:rgba(5,20,65,.95)}
.nsdoc{position:absolute;width:66px;height:84px;border-radius:7px;background:var(--surf);border:1.5px solid var(--borde);overflow:hidden;box-shadow:var(--shd-sm);opacity:0;z-index:15;transition:left .55s ease,top .42s ease,opacity .4s,transform .5s,border-color .3s}
.nsdoc .ndh{height:19px;display:flex;align-items:center;padding:0 5px;gap:3px;background:var(--pri-g)}
.nsdoc .ndh.tl{background:linear-gradient(135deg,var(--aql) 0%,#005F80 100%)}
.nsdoc .ndh span{color:rgba(255,255,255,.85);font-size:6px;font-family:var(--mono);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:48px}
.nsdoc .ndl{height:2.5px;background:var(--surf2);border-radius:1.5px;margin-bottom:3.5px}
.nsdoc .ndov{position:absolute;inset:0;display:none;align-items:center;justify-content:center;flex-direction:column;gap:1px;text-align:center;padding:4px}
.nsim-strip{background:var(--surf);border-top:1px solid var(--borde);padding:9px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px}
.nsim-ctrs{display:flex;align-items:center}
.nsim-ctr{text-align:center;padding:0 10px}
.nsim-cl{font-size:7.5px;color:var(--texto3);font-family:var(--mono);letter-spacing:.07em;display:block;margin-bottom:2px;text-transform:uppercase}
.nsim-cv{font-size:20px;font-weight:700;font-family:var(--mono);line-height:1}
.nsim-sep{width:1px;height:32px;background:var(--borde)}
.nsim-lbl{font-size:10px;color:var(--texto3);font-family:var(--mono);flex:1;text-align:center;padding:0 6px}
.nsim-pbtn{padding:7px 14px;border:1.5px solid var(--borde2);border-radius:8px;cursor:pointer;font-size:11.5px;font-weight:600;background:var(--surf);color:var(--texto2);font-family:var(--sans);transition:all .15s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.nsim-pbtn:hover{background:var(--surf2);color:var(--pri);border-color:var(--aql)}
.nsim-pbtn.paused{background:var(--pri-g);color:#fff;border-color:transparent}
.nsim-attrs{display:none;padding:12px 18px;background:var(--surf);border-top:1px solid var(--borde)}
.nsar{display:flex;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--surf2);font-size:11.5px}
.nsar:last-child{border:none}
.nsar .nck{color:var(--verde);font-size:13px;flex-shrink:0}
.nsar .nak{color:var(--texto3);min-width:118px;font-family:var(--mono);font-size:10.5px}
.nsar .nav{color:var(--texto);font-family:var(--mono);font-size:10.5px}
.nsac{margin-top:10px;padding:9px 12px;background:var(--aql-s);border:1px solid rgba(0,151,178,.22);border-radius:8px;font-size:11.5px;color:var(--pri);line-height:1.5}
@keyframes nsimShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px)}40%{transform:translateX(9px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
@keyframes nsimPop{0%{transform:scale(0);opacity:0}65%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}


.nsim-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:rgba(10,36,99,.88);z-index:30}
.nsov-desc{font-size:11px;color:rgba(220,232,248,.8);font-family:var(--mono);text-align:center;line-height:1.72;max-width:340px}
.nsov-btn{padding:11px 22px;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:700;background:#fff;color:var(--pri);font-family:var(--sans);display:inline-flex;align-items:center;gap:8px;transition:all .2s;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.nsov-btn:hover{background:var(--surf2);transform:translateY(-1px)}

* landing.css — fileserver.locker / NAV — v2 redesign */

:root {
  /* Palette */
  --bg:    #F6F8FC;
  --surf:  #FFFFFF;
  --surf2: #EDF1F8;
  --surf3: #E2E9F4;
  --borde: #DDE5F0;
  --borde2:#C2D0E8;

  /* Text */
  --texto:  #0B1829;
  --texto2: #3F5373;
  --texto3: #7B90AC;

  /* Brand — navy deep */
  --pri:   #0A2463;
  --pri2:  #1650B8;
  --pri3:  #3473E8;
  --pri-s: rgba(20,80,184,0.08);
  --pri-g: linear-gradient(135deg, #0A2463 0%, #1E5BBF 100%);

  /* Accent — teal/chain */
  --aql:   #0097B2;
  --aql-s: rgba(0,151,178,0.10);

  /* States */
  --verde:   #0F9D6E;
  --verde-s: rgba(15,157,110,0.10);
  --ambar:   #C07918;
  --ambar-s: rgba(192,121,24,0.10);
  --rojo:    #B02B2B;
  --rojo-s:  rgba(176,43,43,0.10);
  --azul:    var(--aql);
  --azul-s:  var(--aql-s);

  /* Fonts */
  --disp: 'Plus Jakarta Sans','IBM Plex Sans',sans-serif;
  --sans: 'IBM Plex Sans',sans-serif;
  --mono: 'IBM Plex Mono',monospace;

  /* Shadows */
  --shd-sm: 0 2px 8px rgba(10,36,99,0.06);
  --shd-md: 0 8px 28px rgba(10,36,99,0.10);
  --shd-lg: 0 24px 56px rgba(10,36,99,0.15);
}

body.oscuro {
  --bg:    #060C18;
  --surf:  #0D1829;
  --surf2: #111F35;
  --surf3: #172440;
  --borde: rgba(88,128,220,0.14);
  --borde2:rgba(88,128,220,0.26);

  --texto:  #DCE8F8;
  --texto2: #7A9EC8;
  --texto3: #4A6A90;

  --pri:   #4A8FE8;
  --pri2:  #6AAAF5;
  --pri3:  #88BEF8;
  --pri-s: rgba(74,143,232,0.12);
  --pri-g: linear-gradient(135deg, #1A3A8A 0%, #2B60C8 100%);

  --aql:   #00C4E0;
  --aql-s: rgba(0,196,224,0.10);

  --verde:   #1DC98A;
  --verde-s: rgba(29,201,138,0.10);
  --ambar:   #E8940A;
  --ambar-s: rgba(232,148,10,0.10);
  --rojo:    #E05252;
  --rojo-s:  rgba(224,82,82,0.10);

  --shd-sm: 0 2px 8px rgba(0,0,0,0.30);
  --shd-md: 0 8px 28px rgba(0,0,0,0.40);
  --shd-lg: 0 24px 56px rgba(0,0,0,0.50);
}

/* === RESET & BASE === */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--sans);
  background:var(--bg);
  color:var(--texto);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .4s ease, color .4s ease;
}

/* === DECK === */
.deck { height:100vh; overflow-y:scroll; scroll-snap-type:y mandatory; }
.slide {
  min-height:100vh; scroll-snap-align:start;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  padding:96px 28px 64px; position:relative;
}
.slide-inner { width:100%; max-width:1060px; margin:0 auto; }

/* === NAVBAR === */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; gap:16px;
  padding:0 28px; height:58px;
  backdrop-filter:blur(16px) saturate(180%);
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  border-bottom:1px solid var(--borde);
  transition:background .4s;
}
.nav-logo { height:27px; width:auto; }
.nav-sp { flex:1; }
.nav-links { display:flex; gap:2px; align-items:center; }
.nav-links a {
  color:var(--texto2); text-decoration:none; font-size:13px; font-weight:500;
  padding:6px 12px; border-radius:8px; transition:all .15s;
}
.nav-links a:hover { color:var(--texto); background:var(--surf2); }
.nav-theme {
  background:none; border:1px solid var(--borde); border-radius:8px;
  width:34px; height:34px; cursor:pointer; color:var(--texto2);
  display:flex; align-items:center; justify-content:center; font-size:15px;
  transition:all .15s; margin-left:6px;
}
.nav-theme:hover { background:var(--surf2); color:var(--texto); border-color:var(--borde2); }
@media(max-width:720px) { .nav-links a { display:none; } }

/* === DOT NAV === */
.dots {
  position:fixed; right:20px; top:50%; transform:translateY(-50%);
  z-index:50; display:flex; flex-direction:column; gap:12px;
}
.dot {
  width:8px; height:8px; border-radius:50%; background:var(--borde2);
  border:none; cursor:pointer; transition:all .25s; padding:0;
}
.dot:hover { background:var(--texto3); transform:scale(1.3); }
.dot.act { background:var(--pri); transform:scale(1.5); box-shadow:0 0 0 3px var(--pri-s); }
@media(max-width:720px) { .dots { display:none; } }

/* === BUTTONS === */
.btn {
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font-family:var(--sans); font-size:14px; font-weight:600;
  padding:11px 22px; border-radius:10px; border:1.5px solid transparent;
  text-decoration:none; transition:all .18s; letter-spacing:.01em;
}
.btn-pri {
  background:var(--pri-g);
  color:#fff; border-color:transparent;
  box-shadow:0 4px 14px -4px rgba(10,36,99,0.35);
}
.btn-pri:hover {
  box-shadow:0 8px 22px -6px rgba(10,36,99,0.45);
  transform:translateY(-2px); filter:brightness(1.1);
}
.btn-gho {
  background:transparent; color:var(--texto); border-color:var(--borde2);
}
.btn-gho:hover { background:var(--surf2); border-color:var(--pri3); color:var(--pri); }

/* === HERO === */
#hero {
  background-image:
    radial-gradient(circle at 18% 55%, rgba(0,151,178,0.07) 0%, transparent 52%),
    radial-gradient(circle at 82% 18%, rgba(10,36,99,0.06) 0%, transparent 44%);
}
body.oscuro #hero {
  background-image:
    radial-gradient(circle at 18% 55%, rgba(0,196,224,0.07) 0%, transparent 52%),
    radial-gradient(circle at 82% 18%, rgba(74,143,232,0.08) 0%, transparent 44%);
}

.hero { display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
@media(max-width:860px) {
  .hero { grid-template-columns:1fr; text-align:center; }
  .hero-art { display:none; }
}

.hero h1 {
  font-family:var(--disp);
  font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.06; font-weight:800; letter-spacing:-.03em;
}
.hero h1 .hl {
  background:linear-gradient(135deg, var(--pri) 0%, var(--aql) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero .sub {
  margin-top:22px; font-size:clamp(.98rem,2vw,1.18rem);
  color:var(--texto2); line-height:1.65; max-width:500px;
}
@media(max-width:860px) { .hero .sub { margin-left:auto; margin-right:auto; } }

.hero .cta { margin-top:36px; display:flex; gap:12px; flex-wrap:wrap; }
@media(max-width:860px) { .hero .cta { justify-content:center; } }

/* Trust badges */
.hero-trust {
  margin-top:38px; display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
@media(max-width:860px) { .hero-trust { justify-content:center; } }
.ht-label {
  font-size:10.5px; color:var(--texto3); font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; white-space:nowrap;
}
.ht-badges { display:flex; gap:8px; flex-wrap:wrap; }
.ht-badge {
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:10.5px; color:var(--texto3);
  border:1px solid var(--borde); border-radius:7px; padding:4px 10px;
  background:var(--surf); transition:border-color .15s, color .15s;
}
.ht-badge:hover { border-color:var(--aql); color:var(--aql); }
.ht-badge i { font-size:13px; color:var(--aql); }

/* Hero art */
.hero-art { display:flex; align-items:center; justify-content:center; }
.morph { position:relative; width:280px; height:350px; }
.morph::before {
  content:""; position:absolute;
  width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle, rgba(0,151,178,0.15) 0%, transparent 70%);
  top:50%; left:50%; transform:translate(-50%,-50%); z-index:0;
  animation:glowpulse 4s ease-in-out infinite;
}
@keyframes glowpulse { 0%,100%{opacity:1} 50%{opacity:.5} }

.morph-card {
  position:absolute; inset:0; border-radius:22px;
  background:var(--surf); border:1px solid var(--borde);
  box-shadow:var(--shd-lg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
  overflow:hidden; z-index:1;
}
.morph-card::before {
  content:""; position:absolute; inset:0;
  background:linear-gradient(150deg, rgba(10,36,99,0.03) 0%, rgba(0,151,178,0.05) 100%);
}
.morph-card::after {
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--pri) 0%, var(--aql) 100%);
}

.morph-ico { font-size:58px; color:var(--pri); position:relative; z-index:1; }
.morph-lbl {
  font-family:var(--mono); font-size:11px; color:var(--texto2);
  position:relative; z-index:1; letter-spacing:.06em;
  background:var(--surf2); padding:4px 12px; border-radius:7px; border:1px solid var(--borde);
}
.morph-hash {
  position:absolute; bottom:58px; left:50%; transform:translateX(-50%);
  font-family:var(--mono); font-size:9px; color:var(--texto3);
  z-index:2; letter-spacing:.04em; white-space:nowrap;
  background:var(--surf2); border:1px solid var(--borde);
  padding:3px 10px; border-radius:6px;
}
.morph-chain {
  position:absolute; top:16px; left:16px;
  font-family:var(--mono); font-size:10px; color:var(--aql);
  z-index:2; display:flex; align-items:center; gap:5px;
  background:var(--aql-s); border:1px solid rgba(0,151,178,0.25);
  border-radius:7px; padding:3px 9px;
}
.morph-seal {
  position:absolute; bottom:18px; right:18px;
  width:52px; height:52px; border-radius:50%;
  background:linear-gradient(135deg, var(--verde), #0BB87A);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px;
  box-shadow:0 8px 20px -6px var(--verde);
  animation:sealpop 3s ease-in-out infinite; z-index:2;
}
@keyframes sealpop { 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }

/* === SECTION HEADERS === */
.s-eyebrow {
  font-family:var(--mono); font-size:11px; color:var(--aql);
  letter-spacing:.14em; text-transform:uppercase; margin-bottom:16px;
  display:inline-flex; align-items:center; gap:10px;
}
.s-eyebrow::before {
  content:""; width:22px; height:2px; background:var(--aql);
  border-radius:1px; display:inline-block; flex-shrink:0;
}
.s-title {
  font-family:var(--disp);
  font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800;
  line-height:1.1; letter-spacing:-.025em;
}
.s-lead {
  margin-top:20px; font-size:clamp(.98rem,2vw,1.12rem);
  color:var(--texto2); line-height:1.65; max-width:680px;
}

/* === PROBLEMA === */
.prob-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; }
@media(max-width:760px) { .prob-grid { grid-template-columns:1fr; } }

.prob-card {
  background:var(--surf); border:1px solid var(--borde); border-radius:16px;
  padding:28px 24px; transition:transform .2s, box-shadow .2s;
  position:relative; overflow:hidden;
}
.prob-card::before {
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--ambar-s) 0%, var(--ambar) 100%);
}
.prob-card:hover { transform:translateY(-5px); box-shadow:var(--shd-md); }
.prob-ico { font-size:28px; color:var(--ambar); margin-bottom:16px; display:block; }
.prob-card h3 { font-family:var(--disp); font-size:1.08rem; font-weight:700; margin-bottom:10px; }
.prob-card p { color:var(--texto2); font-size:.91rem; line-height:1.55; }

.prob-note {
  margin-top:36px; padding:18px 24px; border-radius:14px;
  background:var(--rojo-s); border:1px solid rgba(176,43,43,0.22);
  color:var(--texto); font-size:1rem; line-height:1.6; max-width:760px;
  display:flex; align-items:flex-start; gap:14px;
}
.prob-note-ico { font-size:21px; color:var(--rojo); flex-shrink:0; margin-top:2px; }
.prob-note span b { color:var(--rojo); }

/* === SOLUCIÓN === */
.sol-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:44px; }
@media(max-width:760px) { .sol-grid { grid-template-columns:1fr; } }

.pillar {
  background:var(--surf); border:1px solid var(--borde); border-radius:18px;
  padding:32px 30px; position:relative; overflow:hidden;
  transition:box-shadow .2s, transform .2s;
}
.pillar:hover { box-shadow:var(--shd-md); transform:translateY(-3px); }
.pillar::after { content:""; position:absolute; top:0; left:0; right:0; height:3px; }
.pillar.p-pdf::after  { background:linear-gradient(90deg, var(--verde), #0BB87A); }
.pillar.p-chain::after { background:linear-gradient(90deg, var(--aql), var(--pri3)); }
.pillar-ico { font-size:32px; margin-bottom:18px; display:block; }
.pillar.p-pdf .pillar-ico   { color:var(--verde); }
.pillar.p-chain .pillar-ico { color:var(--aql); }
.pillar h3 { font-family:var(--disp); font-size:1.22rem; font-weight:700; margin-bottom:18px; }
.pillar ul { list-style:none; display:flex; flex-direction:column; gap:13px; }
.pillar li {
  display:flex; align-items:flex-start; gap:10px;
  font-size:.92rem; color:var(--texto2); line-height:1.45;
}
.pillar li i { color:var(--verde); font-size:17px; flex-shrink:0; margin-top:1px; }
.pillar.p-chain li i { color:var(--aql); }
.pillar code {
  font-family:var(--mono); font-size:.82em;
  background:var(--surf2); padding:2px 7px; border-radius:5px;
  color:var(--pri); border:1px solid var(--borde);
}

.sol-kicker {
  margin-top:32px; padding:26px 32px; border-radius:16px; text-align:center;
  background:var(--pri-g); color:#fff;
  font-family:var(--disp); font-size:clamp(1.05rem,2.3vw,1.4rem);
  font-weight:600; line-height:1.4;
  box-shadow:0 20px 44px -20px rgba(10,36,99,0.40);
}
.sol-kicker b { font-weight:800; }
.sol-kicker small {
  display:block; margin-top:10px; font-size:.68em; opacity:.8;
  font-weight:400; font-family:var(--mono); letter-spacing:.07em;
}

/* === SIMULADOR === */
.sim-head {
  display:flex; align-items:center; justify-content:space-between;
  gap:18px; flex-wrap:wrap; margin-bottom:8px;
}
.sim-wrap {
  margin-top:28px; background:var(--surf); border:1px solid var(--borde);
  border-radius:18px; padding:28px;
  display:grid; grid-template-columns:1fr 290px; gap:28px;
  box-shadow:var(--shd-sm);
}
@media(max-width:820px) { .sim-wrap { grid-template-columns:1fr; } }

.sim-tl { position:relative; padding-left:4px; }
.sim-line {
  position:absolute; left:19px; top:18px; bottom:18px;
  width:2px; background:var(--borde2); border-radius:2px;
}
.sim-step {
  position:relative; display:flex; gap:18px;
  align-items:flex-start; padding-bottom:22px;
  opacity:.22; transition:opacity .4s ease;
}
.sim-step:last-child { padding-bottom:0; }
.sim-step.on { opacity:1; }

.sim-dot {
  flex-shrink:0; width:38px; height:38px; border-radius:50%;
  background:var(--borde2); display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:16px;
  border:3px solid var(--surf); box-shadow:0 0 0 1px var(--borde);
  transition:all .4s; z-index:1;
}
.sim-step.on.c-v .sim-dot {
  background:var(--verde);
  box-shadow:0 0 0 1px rgba(15,157,110,0.3), 0 4px 14px -4px var(--verde);
}
.sim-step.on.c-a .sim-dot {
  background:var(--ambar);
  box-shadow:0 0 0 1px rgba(192,121,24,0.3), 0 4px 14px -4px var(--ambar);
}
.sim-step.cur .sim-dot { animation:simpulse 1s ease-in-out infinite; }
@keyframes simpulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.14)} }

.sim-card {
  flex:1; min-width:0; background:var(--surf);
  border:1px solid var(--borde); border-left:3px solid var(--borde2);
  border-radius:11px; padding:12px 16px; transition:border-color .4s;
}
.sim-step.on.c-v .sim-card { border-left-color:var(--verde); }
.sim-step.on.c-a .sim-card { border-left-color:var(--ambar); }
.sim-card .t { font-size:.92rem; font-weight:500; line-height:1.4; }
.sim-card .m { margin-top:7px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }

.sim-badge {
  font-family:var(--mono); font-size:9px; font-weight:700;
  padding:3px 9px; border-radius:20px; letter-spacing:.04em;
}
.sim-badge.in  { background:var(--verde-s); color:var(--verde); }
.sim-badge.out { background:var(--ambar-s); color:var(--ambar); }
.sim-tag {
  font-family:var(--mono); font-size:9px; padding:3px 9px; border-radius:20px;
  background:var(--aql-s); color:var(--aql);
  display:inline-flex; align-items:center; gap:4px;
}

.sim-panel {
  background:var(--surf2); border-radius:14px; padding:22px;
  align-self:start; border:1px solid var(--borde);
}
.sim-panel h4 {
  font-size:.74rem; text-transform:uppercase; letter-spacing:.1em;
  color:var(--texto3); margin-bottom:16px; font-weight:600;
}
.sim-row {
  display:flex; justify-content:space-between; gap:10px;
  padding:10px 0; border-bottom:1px solid var(--borde); font-size:.84rem;
}
.sim-row .k { color:var(--texto3); }
.sim-row .v { font-family:var(--mono); color:var(--texto); text-align:right; word-break:break-all; }
.sim-state {
  margin-top:16px; padding:14px; border-radius:11px; text-align:center;
  font-family:var(--mono); font-weight:700; font-size:.86rem;
  transition:all .4s; letter-spacing:.05em;
}
.sim-state.in  { background:var(--verde-s); color:var(--verde); border:1px solid rgba(15,157,110,0.2); }
.sim-state.out { background:var(--ambar-s); color:var(--ambar); border:1px solid rgba(192,121,24,0.2); }

/* === VERIFY === */
.vf-drop {
  margin-top:36px; border:2px dashed var(--borde2); border-radius:18px;
  padding:52px 28px; text-align:center; cursor:pointer;
  transition:all .22s; background:var(--surf);
  max-width:540px; margin-left:auto; margin-right:auto;
}
.vf-drop:hover, .vf-drop.drag {
  border-color:var(--pri3); background:var(--pri-s);
  box-shadow:0 0 0 4px var(--pri-s);
}
.vf-drop i { font-size:44px; color:var(--pri); margin-bottom:14px; display:block; }
.vf-drop .big  { font-family:var(--disp); font-size:1.05rem; font-weight:600; }
.vf-drop .small { font-size:.84rem; color:var(--texto3); margin-top:8px; }
.vf-result { max-width:540px; margin:24px auto 0; display:none; }
.vf-result.show { display:block; animation:fadeup .4s ease; }
@keyframes fadeup { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

.vf-check {
  display:flex; align-items:center; gap:12px;
  padding:14px 18px; background:var(--surf); border:1px solid var(--borde);
  border-radius:11px; margin-bottom:10px;
}
.vf-check i { font-size:22px; flex-shrink:0; }
.vf-check.ok i { color:var(--verde); }
.vf-check.no i { color:var(--texto3); }
.vf-check .vt { font-weight:600; font-size:.92rem; }
.vf-check .vd { font-size:.8rem; color:var(--texto3); font-family:var(--mono); word-break:break-all; }

/* === CONTACTO === */
.ct-grid {
  display:grid; grid-template-columns:1.1fr .9fr; gap:52px;
  margin-top:44px; align-items:start;
}
@media(max-width:760px) { .ct-grid { grid-template-columns:1fr; gap:36px; } }

.ct-form { display:flex; flex-direction:column; gap:16px; }
.ct-field label {
  display:block; font-size:.79rem; color:var(--texto2);
  margin-bottom:7px; font-weight:600; letter-spacing:.02em;
}
.ct-field input, .ct-field textarea {
  width:100%; background:var(--surf); border:1.5px solid var(--borde);
  border-radius:11px; padding:12px 15px; font-family:var(--sans);
  font-size:.93rem; color:var(--texto); outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.ct-field input:focus, .ct-field textarea:focus {
  border-color:var(--pri3); box-shadow:0 0 0 3px var(--pri-s);
}
.ct-field textarea { resize:vertical; min-height:94px; }
.ct-hp { position:absolute; left:-9999px; opacity:0; height:0; width:0; overflow:hidden; }
.ct-msg { padding:13px 18px; border-radius:11px; font-size:.9rem; display:none; }
.ct-msg.show { display:block; }
.ct-msg.ok  { background:var(--verde-s); color:var(--verde); border:1px solid rgba(15,157,110,0.25); }
.ct-msg.err { background:var(--rojo-s);  color:var(--rojo);  border:1px solid rgba(176,43,43,0.25); }

.ct-info { display:flex; flex-direction:column; gap:0; }
.ct-info h3 { font-family:var(--disp); font-size:1.1rem; font-weight:700; margin-bottom:20px; }
.ct-line {
  display:flex; align-items:center; gap:14px;
  color:var(--texto2); font-size:.92rem;
  padding:12px 0; border-bottom:1px solid var(--borde);
}
.ct-line:last-child { border:none; padding-bottom:0; }
.ct-line i { font-size:18px; color:var(--pri); flex-shrink:0; width:22px; }
.ct-line a { color:var(--texto2); text-decoration:none; transition:color .15s; }
.ct-line a:hover { color:var(--pri); }

.foot {
  margin-top:52px; padding-top:24px; border-top:1px solid var(--borde);
  text-align:center; color:var(--texto3); font-size:.8rem;
  display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
}
.foot-dot { width:3px; height:3px; border-radius:50%; background:var(--borde2); flex-shrink:0; }

/* === REVEAL === */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .65s ease,transform .65s ease; }
.reveal.in { opacity:1; transform:none; }

/* === FAQ === */
.faq-grid {
  margin-top:36px;
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
}
@media(max-width:760px) { .faq-grid { grid-template-columns:1fr; } }

.faq-item {
  background:var(--surf); border:1px solid var(--borde); border-radius:14px;
  overflow:hidden; transition:border-color .2s, box-shadow .2s;
}
.faq-item[open] { border-color:var(--borde2); box-shadow:var(--shd-sm); }

.faq-q {
  list-style:none; display:flex; align-items:flex-start;
  justify-content:space-between; gap:14px;
  padding:15px 18px; cursor:pointer;
  font-weight:600; font-size:.92rem; line-height:1.4;
  transition:background .15s;
}
.faq-q::-webkit-details-marker { display:none; }
.faq-q::marker { display:none; }
.faq-q:hover { background:var(--surf2); }
.faq-item[open] .faq-q { color:var(--pri); border-bottom:1px solid var(--borde); }

.faq-ico {
  flex-shrink:0; font-size:16px; color:var(--texto3); margin-top:1px;
  transition:transform .25s ease;
}
.faq-item[open] .faq-ico { transform:rotate(180deg); color:var(--pri); }

.faq-a {
  padding:14px 18px 16px; color:var(--texto2);
  font-size:.9rem; line-height:1.65;
}
.faq-a code {
  font-family:var(--mono); font-size:.82em;
  background:var(--surf2); padding:2px 7px; border-radius:5px;
  color:var(--pri); border:1px solid var(--borde);
}
.faq-a strong { color:var(--texto); font-weight:600; }

/* ══════════════════════════════════════════════════════════════
   NSIM — Simulador interactivo de bóveda (sección #sim)
══════════════════════════════════════════════════════════════ */
.nsim-wrap{border:1px solid var(--borde);border-radius:14px;overflow:hidden;margin-top:24px;box-shadow:var(--shd-md);background:var(--surf)}
.nsim-tabs{display:flex;background:var(--surf2);border-bottom:1px solid var(--borde)}
.nsim-tab{flex:1;padding:11px 8px;border:none;background:none;cursor:pointer;font-size:12px;font-weight:600;color:var(--texto3);font-family:var(--sans);border-bottom:2.5px solid transparent;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s}
.nsim-tab i{font-size:15px}
.nsim-tab:hover{color:var(--texto);background:var(--surf3)}
.nsim-tab.on{color:var(--pri);border-bottom-color:var(--aql);background:var(--surf)}
.nsim-pane{display:none}.nsim-pane.on{display:block}
.nsim-stage{position:relative;overflow:hidden;background:var(--bg);background-image:radial-gradient(circle at 15% 50%,rgba(0,151,178,.07) 0%,transparent 52%),radial-gradient(circle at 85% 25%,rgba(10,36,99,.06) 0%,transparent 44%)}
.nsim-msg{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:25;pointer-events:none;opacity:0;transition:opacity .35s;white-space:nowrap;font-family:var(--disp);font-size:14px;font-weight:700;padding:9px 20px;border-radius:10px;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 16px rgba(0,0,0,.16);color:#fff;text-align:center;line-height:1.4}
.nsim-msg.show{opacity:1}
.nsim-msg.info{background:rgba(10,36,99,.90)}
.nsim-msg.ok{background:rgba(10,100,70,.92)}
.nsim-msg.err{background:rgba(140,20,20,.92)}
.nsim-msg.warn{background:rgba(130,70,5,.92)}
.nsim-msg.teal{background:rgba(0,90,115,.92)}
.nsim-msg.navy{background:rgba(5,20,65,.95)}
.nsdoc{position:absolute;width:66px;height:84px;border-radius:7px;background:var(--surf);border:1.5px solid var(--borde);overflow:hidden;box-shadow:var(--shd-sm);opacity:0;z-index:15;transition:left .55s ease,top .42s ease,opacity .4s,transform .5s,border-color .3s}
.nsdoc .ndh{height:19px;display:flex;align-items:center;padding:0 5px;gap:3px;background:var(--pri-g)}
.nsdoc .ndh.tl{background:linear-gradient(135deg,var(--aql) 0%,#005F80 100%)}
.nsdoc .ndh span{color:rgba(255,255,255,.85);font-size:6px;font-family:var(--mono);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:48px}
.nsdoc .ndl{height:2.5px;background:var(--surf2);border-radius:1.5px;margin-bottom:3.5px}
.nsdoc .ndov{position:absolute;inset:0;display:none;align-items:center;justify-content:center;flex-direction:column;gap:1px;text-align:center;padding:4px}
.nsim-strip{background:var(--surf);border-top:1px solid var(--borde);padding:9px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px}
.nsim-ctrs{display:flex;align-items:center}
.nsim-ctr{text-align:center;padding:0 10px}
.nsim-cl{font-size:7.5px;color:var(--texto3);font-family:var(--mono);letter-spacing:.07em;display:block;margin-bottom:2px;text-transform:uppercase}
.nsim-cv{font-size:20px;font-weight:700;font-family:var(--mono);line-height:1}
.nsim-sep{width:1px;height:32px;background:var(--borde)}
.nsim-lbl{font-size:10px;color:var(--texto3);font-family:var(--mono);flex:1;text-align:center;padding:0 6px}
.nsim-pbtn{padding:7px 14px;border:1.5px solid var(--borde2);border-radius:8px;cursor:pointer;font-size:11.5px;font-weight:600;background:var(--surf);color:var(--texto2);font-family:var(--sans);transition:all .15s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.nsim-pbtn:hover{background:var(--surf2);color:var(--pri);border-color:var(--aql)}
.nsim-pbtn.paused{background:var(--pri-g);color:#fff;border-color:transparent}
.nsim-attrs{display:none;padding:12px 18px;background:var(--surf);border-top:1px solid var(--borde)}
.nsar{display:flex;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--surf2);font-size:11.5px}
.nsar:last-child{border:none}
.nsar .nck{color:var(--verde);font-size:13px;flex-shrink:0}
.nsar .nak{color:var(--texto3);min-width:118px;font-family:var(--mono);font-size:10.5px}
.nsar .nav{color:var(--texto);font-family:var(--mono);font-size:10.5px}
.nsac{margin-top:10px;padding:9px 12px;background:var(--aql-s);border:1px solid rgba(0,151,178,.22);border-radius:8px;font-size:11.5px;color:var(--pri);line-height:1.5}
@keyframes nsimShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px)}40%{transform:translateX(9px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
@keyframes nsimPop{0%{transform:scale(0);opacity:0}65%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}


.nsim-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:rgba(10,36,99,.88);z-index:30}
.nsov-desc{font-size:11px;color:rgba(220,232,248,.8);font-family:var(--mono);text-align:center;line-height:1.72;max-width:340px}
.nsov-btn{padding:11px 22px;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:700;background:#fff;color:var(--pri);font-family:var(--sans);display:inline-flex;align-items:center;gap:8px;transition:all .2s;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.nsov-btn:hover{background:var(--surf2);transform:translateY(-1px)}

/* ══════════════════════════════════════════════════
   NVAULT — Hero visual: PDF autocontenido en bóveda
══════════════════════════════════════════════════ */


/* Anillos de proteccion criptografica */




@keyframes nvring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}

/* Rueda SVG de bóveda */


/* Tarjeta principal */




/* Badge on-chain */


/* PDF interior */


/* PDF header */





/* Capas de seguridad (proof rows) */






/* Autocontenido badge */



/* Hash */


/* Seal */


/* Floating badges */

.nvb-aes{
  top:28px;right:-8px;
  color:var(--pri);border-color:rgba(10,36,99,.2);
  animation:nvfloat 5s ease-in-out infinite;
}
.nvb-x509{
  bottom:36px;left:-8px;
  color:var(--ambar);border-color:rgba(192,121,24,.25);
  background:var(--ambar-s);
  animation:nvfloat 5s ease-in-out infinite 2.5s;
}
@keyframes nvfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* Responsive */
@media(max-width:820px){}

/* ══════════════════════════════════════════════════
   NV2 — Hero: PDF protegido dentro de bóveda real
   Diseño tipo caja fuerte: exterior navy, PDF adentro
══════════════════════════════════════════════════ */

/* NSIM overlays */
.nsim-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:rgba(10,36,99,.88);z-index:30}
.nsov-desc{font-size:11px;color:rgba(220,232,248,.8);font-family:var(--mono);text-align:center;line-height:1.72;max-width:340px}
.nsov-btn{padding:11px 22px;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:700;background:#fff;color:var(--pri);font-family:var(--sans);display:inline-flex;align-items:center;gap:8px;transition:all .2s;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.nsov-btn:hover{background:var(--surf2);transform:translateY(-1px)}

/* Contenedor general */
.hero-art{display:flex;align-items:center;justify-content:center;}
.nv2{
  display:flex;align-items:stretch;
  max-width:268px;width:268px;
  filter:drop-shadow(0 24px 48px rgba(10,36,99,.22));
  position:relative;
}

/* Cuerpo exterior de la bóveda */
.nv2-outer{
  flex:1;border-radius:16px 0 0 16px;
  background:linear-gradient(160deg,#0c2872 0%,#0A2463 100%);
  border:1.5px solid #1E4A9A;
  border-right:none;
  overflow:hidden;
  display:flex;flex-direction:column;
}

/* Header: cerradura y nombre */
.nv2-hdr{
  display:flex;align-items:center;gap:10px;
  padding:13px 15px;
  background:linear-gradient(135deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.05) 100%);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.nv2-lock-ico{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:rgba(0,151,178,.15);border:1px solid rgba(0,151,178,.3);
  display:flex;align-items:center;justify-content:center;
  font-size:17px;color:#0097B2;
}
.nv2-title{
  display:block;font-family:var(--disp);font-size:11.5px;
  font-weight:700;color:#fff;line-height:1.3;
}
.nv2-sub{
  display:block;font-family:var(--mono);font-size:8px;
  color:rgba(255,255,255,.45);letter-spacing:.04em;margin-top:1px;
}
.nv2-pulse{
  margin-left:auto;flex-shrink:0;
  display:flex;align-items:center;gap:5px;
  font-family:var(--mono);font-size:8.5px;color:#0F9D6E;
}
.nv2-dot{
  width:7px;height:7px;border-radius:50%;
  background:#0F9D6E;flex-shrink:0;
  animation:sealpop 2.5s ease-in-out infinite;
}

/* Interior de la bóveda */
.nv2-interior{
  flex:1;padding:11px 12px;
  background:rgba(255,255,255,.04);
  display:flex;align-items:center;
}

/* PDF card dentro de la bóveda */
.nv2-pdf{
  width:100%;border-radius:10px;
  background:#fff;overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 6px 20px rgba(0,0,0,.35);
}
.nv2-pdf-hdr{
  display:flex;align-items:center;gap:7px;
  padding:9px 12px;
  background:var(--pri-g);
}
.nv2-pdf-ico{font-size:15px;color:rgba(255,255,255,.9);}
.nv2-pdf-name{
  font-family:var(--mono);font-size:10px;
  color:rgba(255,255,255,.85);flex:1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.nv2-pdf-state{
  font-family:var(--mono);font-size:7.5px;font-weight:600;
  color:var(--verde);background:rgba(15,157,110,.2);
  border:1px solid rgba(15,157,110,.35);
  border-radius:20px;padding:2px 7px;white-space:nowrap;
}

/* Filas de pruebas de seguridad */
.nv2-proof{
  display:flex;align-items:center;gap:9px;
  padding:7px 11px;border-bottom:1px solid var(--borde);
}
.nv2-proof-last{border-bottom:none;}
.nv2-chk{
  width:20px;height:20px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;color:#fff;font-weight:700;
}
.nv2-proof b{
  display:block;font-size:11px;font-weight:600;
  color:var(--texto);font-family:var(--mono);line-height:1.2;
}
.nv2-proof span{
  display:block;font-size:9px;color:var(--texto3);line-height:1.2;
}

/* Badge autocontenido */
.nv2-auto{
  display:flex;align-items:center;gap:6px;
  padding:7px 11px;font-size:9.5px;
  color:var(--aql);background:var(--aql-s);
  border-top:1px solid rgba(0,151,178,.12);
  font-family:var(--mono);
}
.nv2-auto i{font-size:13px;}

/* Footer: hash + cadena blockchain */
.nv2-foot{
  padding:9px 14px;
  background:rgba(0,0,0,.2);
  border-top:1px solid rgba(255,255,255,.06);
}
.nv2-chain{
  display:flex;align-items:center;gap:0;margin-bottom:5px;
}
.nv2-chain span{
  display:inline-block;width:18px;height:10px;
  border:1.2px solid rgba(0,151,178,.5);border-radius:5px;
  margin-right:-4px;background:transparent;
}
.nv2-chain em{
  font-style:normal;font-family:var(--mono);font-size:8px;
  color:#0097B2;margin-left:10px;
}
.nv2-hash{
  font-family:var(--mono);font-size:8.5px;color:rgba(255,255,255,.4);
  letter-spacing:.03em;
}

/* Panel lateral de pernos (puerta de bóveda) */
.nv2-bolts{
  width:22px;
  background:linear-gradient(180deg,#071848 0%,#0A2463 100%);
  border:1.5px solid #1E4A9A;border-left:none;
  border-radius:0 10px 10px 0;
  display:flex;flex-direction:column;
  justify-content:space-around;align-items:center;
  padding:18px 0;
}
.nv2-bolt{
  width:14px;height:14px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#3473E8,#1650B8);
  border:1.5px solid #4A88F8;
  box-shadow:0 2px 6px rgba(0,0,0,.4);
}

/* Responsive */
@media(max-width:820px){
  .hero-art{padding-right:0;}
  .nv2{max-width:240px;width:240px;}
}

/* Botón Acceso en el nav */
.nav-acceso {
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 16px; border-radius:8px;
  background:var(--pri); color:#fff !important;
  font-size:13px; font-weight:600; text-decoration:none;
  font-family:var(--sans); transition:all .18s;
  margin-left:8px; white-space:nowrap;
  border:1.5px solid var(--pri);
}
.nav-acceso:hover {
  background:var(--pri2); border-color:var(--pri2);
  transform:translateY(-1px); box-shadow:0 4px 12px rgba(10,36,99,.25);
}
