/* ==========================================================
   Tu Agente Global — sitio público
   Tokens de marca: cambiar acá impacta en todo el sitio
   ========================================================== */
/* Layout: landing de una columna con bandas a todo el ancho y contenido en container de 1160px */
/* Paleta tomada del logo: marino #102850 (confianza) y turquesa #2AB3AD (conexión y protección).
   Para botones y enlaces se usa un turquesa profundo que sí da contraste con texto blanco;
   el naranja queda solo para alertas y destacados. */
:root {
  --ink: #13294f;          /* texto principal: marino */
  --ink-2: #34496f;
  --muted: #5a6a82;
  --paper: #f4f7fb;        /* fondo: blanco azulado */
  --card: #ffffff;
  --card-2: #f8fafd;
  --nav-bg: rgba(244, 247, 251, .9);
  --line: #dbe3ee;
  --brand: #0e7c77;        /* turquesa profundo: botones y enlaces */
  --brand-2: #0a6764;      /* turquesa oscuro: etiquetas, checks y hover */
  --brand-soft: #dcf2f0;   /* turquesa claro: fondos de íconos */
  --on-brand: #ffffff;
  --teal: #2ab3ad;         /* turquesa del logo: destacados sobre fondo oscuro */
  --accent: #f28a24;       /* naranja: alertas y "Diferencial" */
  --accent-soft: #fdeedd;
  --accent-ink: #9a4c05;
  --danger: #c93a3a;
  --danger-soft: #fbe5e5;
  --night: #102850;        /* marino del logo: bandas oscuras */
  --on-night: #e7eef8;
  --on-night-muted: #a9b8cf;
  --whatsapp: #1f9d55;
  --radius: 14px;
  --shadow: 0 1px 2px rgba(16, 40, 80, .06), 0 12px 32px -12px rgba(16, 40, 80, .2);
  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Manrope", system-ui, sans-serif;
  --max: 1160px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink: #e7eef8; --ink-2: #c2cfe2; --muted: #93a3bb; --paper: #08142b; --card: #0f1f3d; --card-2: #132546;
    --nav-bg: rgba(8, 20, 43, .9); --line: #213558; --brand: #4fcfc6; --brand-2: #3fd6cc; --brand-soft: #0f3a44;
    --on-brand: #04122a; --accent-soft: #3d2a12; --accent-ink: #f7b366; --danger: #f07a7a; --danger-soft: #3d1a1d;
    --night: #040c1d; color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --ink: #e7eef8; --ink-2: #c2cfe2; --muted: #93a3bb; --paper: #08142b; --card: #0f1f3d; --card-2: #132546;
  --nav-bg: rgba(8, 20, 43, .9); --line: #213558; --brand: #4fcfc6; --brand-2: #3fd6cc; --brand-soft: #0f3a44;
  --on-brand: #04122a; --accent-soft: #3d2a12; --accent-ink: #f7b366; --danger: #f07a7a; --danger-soft: #3d1a1d;
  --night: #040c1d; color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 10; background: var(--nav-bg); }
img, svg { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 600; line-height: 1.12; letter-spacing: -.015em; margin: 0 0 .5em; }
h1 { font-size: clamp(2.3rem, 5vw, 3.9rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }

.container { width: 100%; max-width: var(--max); margin: 0 auto; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
.section { padding: 96px 0; }
.section--tight { padding: 56px 0; }
.section--dark { background: var(--night); color: var(--on-night); }
.section--dark .eyebrow { color: var(--teal); }
.section--dark .lead { color: var(--on-night-muted); }
.eyebrow {
  display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--brand-2); margin-bottom: 14px;
}
.lead { font-size: 1.15rem; color: var(--muted); max-width: 640px; }
.center { text-align: center; }
.center .lead { margin-left: auto; margin-right: auto; }
.placeholder { outline: 1px dashed var(--accent); outline-offset: 3px; }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 22px; border-radius: 10px; font-weight: 700; font-size: .98rem;
  text-decoration: none; border: 1.5px solid transparent; cursor: pointer;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
  font-family: inherit;
}
.btn:hover { transform: translateY(-1px); }
.btn--primary { background: var(--brand); color: var(--on-brand); box-shadow: 0 6px 18px -6px rgba(14, 124, 119, .45); }
.btn--primary:hover { background: var(--brand-2); }
.btn--ghost { border-color: var(--line); background: var(--card); color: var(--ink); }
.btn--ghost:hover { border-color: var(--ink-2); }
.btn--whatsapp { background: var(--whatsapp); color: #fff; }
.btn--block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Nav ---------- */
.nav {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: var(--nav-bg);
  backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid transparent;
  transition: border-color .2s;
}
.nav.is-scrolled { border-bottom-color: var(--line); }
.nav__inner { display: flex; align-items: center; justify-content: space-between; height: 70px; gap: 20px; }
.logo { display: flex; align-items: center; gap: 10px; font-family: var(--font-body); font-weight: 800; font-size: 1.08rem; letter-spacing: .02em; text-transform: uppercase; text-decoration: none; color: var(--ink); }
.logo__text { display: flex; flex-direction: column; line-height: 1.05; }
.logo__tagline { font-size: .56rem; font-weight: 700; letter-spacing: .08em; color: var(--muted); margin-top: 3px; }
.section--dark .logo { color: inherit; }
@media (max-width: 600px) { .nav .logo__tagline { display: none; } }
.logo__mark { width: 62px; height: 62px; object-fit: contain; flex: none; filter: drop-shadow(0 4px 10px rgba(14, 124, 119, .22)); }
.nav .logo__mark { margin: -8px 0; }
:root[data-theme="dark"] .logo__mark { background: #fff; border-radius: 14px; padding: 3px; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .logo__mark { background: #fff; border-radius: 14px; padding: 3px; } }
.nav__links { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.nav__links a { text-decoration: none; font-weight: 600; font-size: .95rem; color: var(--ink-2); }
.nav__links a:hover { color: var(--brand); }
.nav__actions { display: flex; gap: 10px; align-items: center; }
.nav__login { font-weight: 600; text-decoration: none; font-size: .95rem; padding: 8px 10px; }
.nav__toggle { display: none; background: none; border: 0; padding: 8px; cursor: pointer; }

/* ---------- Hero ---------- */
.hero { padding: 64px 0 88px; position: relative; overflow: hidden; }
.hero::before {
  content: ""; position: absolute; inset: -20% -10% auto auto; width: 720px; height: 720px;
  background: radial-gradient(closest-side, rgba(42, 179, 173, .16), transparent); pointer-events: none;
}
.hero__grid { display: grid; grid-template-columns: 1.02fr 1fr; gap: 56px; align-items: center; }
.hero h1 em { font-style: italic; color: var(--brand); }
.pill {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 6px; border-radius: 99px;
  background: var(--card); border: 1px solid var(--line); font-size: .85rem; font-weight: 600; margin-bottom: 22px;
}
.pill b { background: var(--accent-soft); color: var(--accent-ink); padding: 2px 9px; border-radius: 99px; font-size: .75rem; }
.hero__trust { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 22px; font-size: .9rem; color: var(--muted); }
.hero__trust span::before { content: "✓ "; color: var(--brand-2); font-weight: 800; }

/* Mock del producto */
.mock { background: var(--card); border-radius: 18px; box-shadow: var(--shadow); border: 1px solid var(--line); overflow: hidden; position: relative; }
.mock__bar { display: flex; align-items: center; gap: 6px; padding: 12px 16px; border-bottom: 1px solid var(--line); background: var(--card-2); }
.mock__bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--line); }
.mock__bar span { margin-left: 12px; font-size: .78rem; color: var(--muted); }
.mock__body { padding: 20px; display: grid; gap: 16px; }
.kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.kpi { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.kpi small { display: block; color: var(--muted); font-size: .75rem; font-weight: 600; }
.kpi strong { font-family: var(--font-display); font-size: 1.55rem; }
.kpi em { font-style: normal; font-size: .72rem; font-weight: 700; color: var(--brand-2); }
.kpi--warn em { color: var(--accent-ink); }
.list { border: 1px solid var(--line); border-radius: 12px; }
.list__head { padding: 10px 14px; font-size: .8rem; font-weight: 700; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; }
.row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; font-size: .85rem; }
.row + .row { border-top: 1px solid var(--line); }
.avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font-weight: 800; font-size: .72rem; flex: none; }
.row__main { flex: 1; min-width: 0; }
.row__main b { display: block; font-size: .85rem; }
.row__main small { color: var(--muted); }
.tag { font-size: .7rem; font-weight: 700; padding: 3px 9px; border-radius: 99px; white-space: nowrap; }
.tag--ok { background: var(--brand-soft); color: var(--brand); }
.tag--warn { background: var(--accent-soft); color: var(--accent-ink); }
.tag--bad { background: var(--danger-soft); color: var(--danger); }
.toast {
  position: absolute; right: -8px; bottom: 26px; background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  box-shadow: var(--shadow); padding: 10px 14px; display: flex; gap: 10px; align-items: center; font-size: .8rem; max-width: 260px;
  animation: float 5s ease-in-out infinite;
}
.toast__icon { width: 30px; height: 30px; border-radius: 8px; background: var(--whatsapp); display: grid; place-items: center; flex: none; }
@keyframes float { 50% { transform: translateY(-6px); } }

/* ---------- Métricas ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.stat strong { font-family: var(--font-display); font-size: 2.3rem; display: block; color: var(--brand); }
.stat span { color: var(--muted); font-size: .92rem; }

/* ---------- Problema / solución ---------- */
.pains { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 44px; }
.pain { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; }
.pain__num { font-family: var(--font-display); font-size: 2rem; color: var(--danger); line-height: 1; margin-bottom: 10px; }
.pain p { color: var(--muted); font-size: .95rem; margin: 0; }

/* ---------- Módulos ---------- */
.features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 44px; }
.feature { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; position: relative; }
.feature__icon { width: 44px; height: 44px; border-radius: 11px; background: var(--brand-soft); display: grid; place-items: center; margin-bottom: 16px; color: var(--brand); }
.feature p { color: var(--muted); font-size: .95rem; margin: 0; }
.feature--new::after {
  content: "Diferencial"; position: absolute; top: 18px; right: 18px; font-size: .68rem; font-weight: 800;
  letter-spacing: .06em; text-transform: uppercase; background: var(--accent-soft); color: var(--accent-ink); padding: 3px 9px; border-radius: 99px;
}

/* ---------- Comparativa ---------- */
.compare { width: 100%; border-collapse: collapse; margin-top: 40px; background: rgba(255, 255, 255, .03); border-radius: var(--radius); overflow: hidden; }
.compare th, .compare td { padding: 15px 18px; text-align: left; border-bottom: 1px solid rgba(255, 255, 255, .08); font-size: .95rem; }
.compare thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--on-night-muted); }
.compare td:not(:first-child), .compare th:not(:first-child) { text-align: center; }
.compare .us { background: rgba(42, 179, 173, .14); color: #fff; font-weight: 700; }
.yes { color: var(--teal); font-weight: 800; }
.no { color: #6b778a; }
.compare-wrap { overflow-x: auto; }

/* ---------- Segmentos ---------- */
.segments { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 44px; }
.segment { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; display: flex; flex-direction: column; }
.segment small { color: var(--brand-2); font-weight: 700; font-size: .8rem; }
.segment ul { list-style: none; padding: 0; margin: 14px 0 22px; flex: 1; }
.segment li { padding: 6px 0 6px 26px; position: relative; font-size: .95rem; }
.segment li::before { content: "✓"; position: absolute; left: 0; color: var(--brand-2); font-weight: 800; }

/* ---------- Pasos ---------- */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 44px; counter-reset: step; }
.step { border-top: 2px solid var(--ink); padding-top: 20px; }
.step::before { counter-increment: step; content: "0" counter(step); font-family: var(--font-display); font-size: 1rem; color: var(--brand-2); font-weight: 700; display: block; margin-bottom: 10px; }
.step p { color: var(--muted); font-size: .95rem; }

/* ---------- Precios ---------- */
.billing { display: inline-flex; background: var(--card); border: 1px solid var(--line); border-radius: 99px; padding: 4px; margin-top: 10px; }
.billing button { border: 0; background: none; padding: 9px 18px; border-radius: 99px; font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; color: var(--muted); }
.billing button.is-active { background: var(--night); color: var(--on-night); }
.billing small { color: var(--brand-2); font-weight: 800; }
.billing button.is-active small { color: var(--teal); }
.plans { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 40px; align-items: stretch; }
.plan { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px 22px; display: flex; flex-direction: column; position: relative; }
.plan--featured { border: 2px solid var(--brand); box-shadow: var(--shadow); }
.plan__badge { position: absolute; top: -13px; left: 22px; background: var(--brand); color: var(--on-brand); font-size: .72rem; font-weight: 800; padding: 4px 12px; border-radius: 99px; letter-spacing: .04em; }
.plan h3 { margin-bottom: 4px; }
.plan__for { color: var(--muted); font-size: .88rem; min-height: 44px; }
.plan__price { font-family: var(--font-display); font-size: 2.3rem; font-weight: 600; margin: 10px 0 0; }
.plan__price small { font-family: var(--font-body); font-size: .85rem; color: var(--muted); font-weight: 600; }
.plan__note { font-size: .8rem; color: var(--muted); min-height: 22px; margin-bottom: 16px; }
.plan ul { list-style: none; padding: 0; margin: 18px 0 0; font-size: .9rem; }
.plan li { padding: 5px 0 5px 24px; position: relative; }
.plan li::before { content: "✓"; position: absolute; left: 0; color: var(--brand-2); font-weight: 800; }
.plans__foot { text-align: center; color: var(--muted); font-size: .92rem; margin-top: 24px; }

/* ---------- Testimonios ---------- */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 44px; }
.quote { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; margin: 0; }
.quote blockquote { margin: 0 0 18px; font-family: var(--font-display); font-size: 1.12rem; line-height: 1.45; }
.quote figcaption { display: flex; gap: 12px; align-items: center; font-size: .88rem; }
.quote figcaption small { display: block; color: var(--muted); }

/* ---------- FAQ ---------- */
.faq { max-width: 800px; margin: 40px auto 0; }
.faq details { border-bottom: 1px solid var(--line); padding: 4px 0; }
.faq summary { cursor: pointer; list-style: none; padding: 18px 40px 18px 0; font-weight: 700; font-size: 1.05rem; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 6px; top: 14px; font-size: 1.5rem; font-weight: 400; color: var(--brand); transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--muted); padding-right: 40px; }

/* ---------- CTA final ---------- */
.cta { background: var(--brand); color: var(--on-brand); border-radius: 24px; padding: 64px 40px; text-align: center; position: relative; overflow: hidden; }
.cta::before { content: ""; position: absolute; inset: auto -120px -200px auto; width: 460px; height: 460px; border-radius: 50%; border: 60px solid rgba(255, 255, 255, .06); }
.cta p { color: var(--on-brand); opacity: .82; max-width: 560px; margin: 0 auto 28px; }
.cta .btn--primary { background: var(--on-brand); color: var(--brand); }
.cta .btn--ghost { background: transparent; color: var(--on-brand); border-color: currentColor; }
.cta .btn-row { justify-content: center; }

/* ---------- Footer ---------- */
.footer { padding: 64px 0 32px; font-size: .92rem; color: var(--muted); }
.footer__grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 32px; }
.footer h4 { color: var(--ink); font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 12px; }
.footer ul { list-style: none; padding: 0; margin: 0; }
.footer li { padding: 4px 0; }
.footer a { text-decoration: none; }
.footer a:hover { color: var(--brand); }
.footer__bottom { border-top: 1px solid var(--line); margin-top: 44px; padding-top: 22px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }

/* Botón flotante WhatsApp */
.wa-float { position: fixed; right: calc(20px + env(safe-area-inset-right, 0px)); bottom: calc(20px + env(safe-area-inset-bottom, 0px)); width: 56px; height: 56px; border-radius: 50%; background: var(--whatsapp); display: grid; place-items: center; box-shadow: var(--shadow); z-index: 60; }

/* Animación de entrada */
.reveal { animation: rise .6s ease both; }
@keyframes rise { from { transform: translateY(12px); } }
@media (prefers-reduced-motion: reduce) {
  .reveal { animation: none; }
  .toast { animation: none; }
  html { scroll-behavior: auto; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1020px) {
  .plans { grid-template-columns: repeat(2, 1fr); }
  .pains { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 880px) {
  .hero__grid { grid-template-columns: 1fr; gap: 44px; }
  .features, .segments, .quotes, .steps { grid-template-columns: 1fr; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .nav__links, .nav__login { display: none; }
  .nav__toggle { display: block; }
  .nav.is-open .nav__links {
    display: flex; flex-direction: column; position: absolute; top: 70px; left: 0; right: 0;
    background: var(--paper); padding: 20px; border-bottom: 1px solid var(--line); gap: 16px;
  }
  .section { padding: 72px 0; }
  .toast { right: 8px; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .container { padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
  .plans, .pains { grid-template-columns: 1fr; }
  .kpis { grid-template-columns: 1fr 1fr; }
  .kpis .kpi:last-child { grid-column: span 2; }
  .nav__actions .btn { padding: 10px 14px; font-size: .88rem; }
  .cta { padding: 48px 22px; }
  .footer__grid { grid-template-columns: 1fr; }
}

/* ==========================================================
   Secciones v2: día del productor, pilares, vista del asegurado,
   mudanza de cartera y calculadora de plan
   ========================================================== */

/* Un día con el sistema: línea de tiempo horizontal */
.day { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 48px; position: relative; }
.day::before { content: ""; position: absolute; left: 0; right: 0; top: 15px; height: 2px; background: var(--line); }
.moment { padding-right: 20px; position: relative; min-width: 0; }
.moment__dot { width: 32px; height: 32px; border-radius: 50%; background: var(--card); border: 2px solid var(--brand); display: grid; place-items: center; position: relative; margin-bottom: 18px; }
.moment__dot::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--brand); }
.moment time { display: block; font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; color: var(--brand); font-variant-numeric: tabular-nums; }
.moment h3 { font-size: 1.05rem; margin: 6px 0; font-family: var(--font-body); font-weight: 800; letter-spacing: 0; }
.moment p { color: var(--muted); font-size: .92rem; margin: 0; }
.moment--alert .moment__dot { border-color: var(--accent); }
.moment--alert .moment__dot::after { background: var(--accent); }
.moment--alert time { color: var(--accent-ink); }

/* Pilares: capacidades agrupadas en cuatro columnas */
.pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 48px; border-top: 2px solid var(--ink); }
.pillar { padding: 24px 22px 8px 0; min-width: 0; }
.pillar + .pillar { padding-left: 22px; border-left: 1px solid var(--line); }
.pillar__head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.pillar__head .feature__icon { margin: 0; width: 38px; height: 38px; }
.pillar h3 { margin: 0; font-size: 1.2rem; }
.pillar ul { list-style: none; margin: 0; padding: 0; }
.pillar li { padding: 10px 0; border-bottom: 1px dashed var(--line); font-size: .93rem; }
.pillar li:last-child { border-bottom: 0; }
.pillar li b { display: block; font-size: .95rem; }
.pillar li span { color: var(--muted); }
.new-chip { display: inline-block; margin-left: 6px; font-size: .64rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: var(--accent-soft); color: var(--accent-ink); padding: 2px 7px; border-radius: 99px; vertical-align: 2px; }

/* Vista del asegurado: teléfono con chat */
.client { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.client__copy { min-width: 0; }
.client__list { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 16px; }
.client__list li { display: flex; gap: 14px; }
.client__list b { display: block; }
.client__list span { color: var(--on-night-muted); font-size: .95rem; }
.client__list .feature__icon { margin: 0; flex: none; width: 38px; height: 38px; background: rgba(42, 179, 173, .14); color: var(--teal); }
.phone { width: 300px; max-width: 100%; margin: 0 auto; background: var(--card); border-radius: 34px; padding: 12px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .5); border: 1px solid var(--line); }
.phone__screen { background: var(--paper); border-radius: 24px; overflow: hidden; }
.phone__head { background: var(--whatsapp); color: #fff; padding: 14px 16px; display: flex; align-items: center; gap: 10px; font-size: .85rem; }
.phone__head .avatar { background: rgba(255, 255, 255, .2); color: #fff; }
.phone__head small { display: block; opacity: .85; font-size: .72rem; }
.chat { padding: 16px 12px; display: grid; gap: 10px; font-size: .82rem; color: var(--ink); }
.bubble { background: var(--card); border-radius: 12px 12px 12px 4px; padding: 10px 12px; max-width: 88%; box-shadow: 0 1px 1px rgba(16, 40, 80, .08); }
.bubble--me { justify-self: end; background: var(--brand-soft); border-radius: 12px 12px 4px 12px; }
.bubble small { display: block; text-align: right; color: var(--muted); font-size: .66rem; margin-top: 4px; }
.bubble__doc { display: flex; align-items: center; gap: 8px; background: var(--card-2); border: 1px solid var(--line); border-radius: 8px; padding: 8px; margin-top: 8px; font-weight: 700; }
.bubble__doc span { width: 26px; height: 30px; border-radius: 4px; background: var(--danger); color: #fff; font-size: .55rem; display: grid; place-items: center; font-weight: 800; flex: none; }

/* Mudanza de cartera */
.move { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; }
.move > div { min-width: 0; }
.move__card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 28px; box-shadow: var(--shadow); margin: 0; }
.move__row { display: grid; grid-template-columns: 110px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
.move__row:last-child { border-bottom: 0; }
.move__row dt { font-weight: 800; color: var(--brand-2); font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; padding-top: 2px; }
.move__row dd { margin: 0; color: var(--ink-2); }
.move__formats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.move__formats span { font-size: .8rem; font-weight: 700; padding: 6px 12px; border-radius: 8px; background: var(--card); border: 1px solid var(--line); }

/* Calculadora de plan */
.calc { display: grid; grid-template-columns: 1fr 1fr; margin-top: 44px; background: var(--card); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; box-shadow: var(--shadow); }
.calc__inputs { padding: 36px; display: grid; gap: 30px; align-content: start; min-width: 0; }
.calc__field label { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-weight: 700; margin-bottom: 12px; }
.calc__field output { font-family: var(--font-display); font-size: 1.6rem; color: var(--brand); font-variant-numeric: tabular-nums; }
.calc__field input[type="range"] { width: 100%; accent-color: var(--brand); height: 28px; }
.calc__scale { display: flex; justify-content: space-between; font-size: .75rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.calc__result { background: var(--night); color: var(--on-night); padding: 36px; display: flex; flex-direction: column; min-width: 0; }
.calc__result > small { color: var(--teal); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-size: .75rem; }
.calc__result h3 { font-size: 2rem; margin: 8px 0 4px; color: var(--on-night); }
.calc__price { font-family: var(--font-display); font-size: 2.6rem; font-weight: 600; font-variant-numeric: tabular-nums; margin: 0; }
.calc__price span { font-family: var(--font-body); font-size: .9rem; color: var(--on-night-muted); font-weight: 600; }
.calc__note { color: var(--on-night-muted); font-size: .85rem; min-height: 1.4em; margin: 0; }
.calc__result ul { list-style: none; padding: 0; margin: 18px 0 26px; flex: 1; }
.calc__result li { padding: 5px 0 5px 24px; position: relative; font-size: .93rem; }
.calc__result li::before { content: "✓"; position: absolute; left: 0; color: var(--teal); font-weight: 800; }
.calc__result .btn--primary { background: var(--teal); color: var(--night); box-shadow: none; }
.plan-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.plan-strip div, .plan-strip a { text-decoration: none; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; background: var(--card); font-size: .85rem; color: var(--muted); }
.plan-strip b { display: block; color: var(--ink); font-size: .95rem; }
.plan-strip .is-current { border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }

@media (max-width: 1020px) {
  .day { grid-template-columns: 1fr; gap: 26px; }
  .day::before { left: 15px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
  .moment { display: grid; grid-template-columns: 32px 1fr; column-gap: 18px; padding-right: 0; }
  .moment__dot { margin: 0; grid-row: span 3; }
  .pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pillar:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 880px) {
  .client, .move { grid-template-columns: 1fr; gap: 40px; }
  .calc { grid-template-columns: 1fr; }
  .plan-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .pillars { grid-template-columns: 1fr; }
  .pillar + .pillar { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .calc__inputs, .calc__result { padding: 26px 20px; }
  .move__row { grid-template-columns: 1fr; gap: 4px; }
}

/* ==========================================================
   Páginas legales: índice lateral fijo + texto de lectura
   ========================================================== */
.legal-head { padding: 56px 0 40px; border-bottom: 1px solid var(--line); background: var(--card); }
.legal-head h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 10px; text-wrap: balance; }
.legal-head p { color: var(--muted); margin: 0; max-width: 680px; }
.legal-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 18px; font-size: .88rem; color: var(--muted); }
.legal-meta b { color: var(--ink); }
.legal-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.legal-tabs a { text-decoration: none; font-weight: 700; font-size: .88rem; padding: 8px 14px; border-radius: 99px; border: 1.5px solid var(--line); background: var(--paper); }
.legal-tabs a[aria-current="page"] { background: var(--night); border-color: var(--night); color: var(--on-night); }
.draft { display: flex; gap: 10px; align-items: flex-start; background: var(--accent-soft); color: var(--accent-ink); border-radius: 12px; padding: 12px 16px; font-size: .88rem; font-weight: 600; margin-top: 22px; max-width: 760px; }
.legal { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 56px; padding-block: 48px 80px; align-items: start; }
.legal-toc { position: sticky; top: calc(90px + env(safe-area-inset-top, 0px)); font-size: .88rem; }
.legal-toc p { font-weight: 800; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-2); margin: 0 0 10px; }
.legal-toc ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; counter-reset: toc; }
.legal-toc li { counter-increment: toc; }
.legal-toc a { display: block; text-decoration: none; color: var(--muted); padding: 5px 0 5px 12px; border-left: 2px solid var(--line); }
.legal-toc a::before { content: counter(toc) ". "; }
.legal-toc a:hover { color: var(--brand); border-left-color: var(--brand); }
.legal-body { max-width: 720px; min-width: 0; counter-reset: sec; }
.legal-body section { padding-bottom: 12px; scroll-margin-top: 90px; }
.legal-body h2 { font-size: 1.45rem; margin: 30px 0 12px; counter-increment: sec; }
.legal-body h2::before { content: counter(sec) ". "; color: var(--brand-2); }
.legal-body section:first-child h2 { margin-top: 0; }
.legal-body h3 { font-family: var(--font-body); font-size: 1rem; font-weight: 800; margin: 20px 0 8px; letter-spacing: 0; }
.legal-body p, .legal-body li { color: var(--ink-2); }
.legal-body ul { padding-left: 22px; margin: 0 0 1em; display: grid; gap: 6px; }
.legal-body table { width: 100%; border-collapse: collapse; margin: 6px 0 18px; font-size: .92rem; }
.legal-body th, .legal-body td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.legal-body th { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.legal-body .table-wrap { overflow-x: auto; }
.legal-body .fill { background: var(--accent-soft); color: var(--accent-ink); padding: 1px 6px; border-radius: 4px; font-weight: 700; }
.legal-body .callout { background: var(--brand-soft); border-radius: 12px; padding: 16px 18px; margin: 8px 0 18px; }
.legal-body .callout p:last-child { margin-bottom: 0; }
@media (max-width: 880px) {
  .legal { grid-template-columns: 1fr; gap: 28px; padding-block: 32px 64px; }
  .legal-toc { position: static; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; }
}

/* ==========================================================
   Video demostrativo: recorrido animado del sistema en 5 capítulos.
   Sin reproducir, cada escena muestra su estado final.
   ========================================================== */
.demo { margin-top: 40px; }
.demo__screen { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); overflow: hidden; }
.demo__bar { display: flex; align-items: center; gap: 6px; padding: 11px 16px; border-bottom: 1px solid var(--line); background: var(--card-2); font-size: .78rem; color: var(--muted); }
.demo__bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--line); }
.demo__bar span:first-of-type { margin-left: 10px; }
.demo__badge { margin-left: auto; font-weight: 800; font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; background: var(--accent-soft); color: var(--accent-ink); padding: 3px 9px; border-radius: 99px; }
.demo__app { display: grid; grid-template-columns: 190px minmax(0, 1fr); }
.demo__side { background: var(--night); color: var(--on-night-muted); padding: 18px 12px; display: grid; gap: 4px; align-content: start; font-size: .82rem; }
.demo__side b { color: var(--on-night); font-family: var(--font-display); font-size: .95rem; padding: 0 10px 14px; }
.demo__side span { padding: 8px 10px; border-radius: 8px; transition: background .3s, color .3s; }
.demo__side span[aria-current="true"] { background: rgba(42, 179, 173, .16); color: var(--teal); font-weight: 700; }
.demo__stage { position: relative; aspect-ratio: 16 / 9.4; min-height: 360px; background: var(--paper); }
.dscene { position: absolute; inset: 0; padding: 26px; display: flex; flex-direction: column; gap: 16px; opacity: 0; visibility: hidden; transition: opacity .35s; overflow: hidden; }
.dscene.is-active { opacity: 1; visibility: visible; }
.dscene h4 { margin: 0; font-family: var(--font-body); font-size: 1.05rem; font-weight: 800; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dscene__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 22px; flex: 1; min-height: 0; }
.dcard { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 16px; min-width: 0; }
.dchip { font-size: .68rem; font-weight: 800; padding: 3px 9px; border-radius: 99px; background: var(--brand-soft); color: var(--brand-2); letter-spacing: .02em; }
.dtoast { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); background: var(--night); color: var(--on-night); padding: 10px 18px; border-radius: 99px; font-size: .84rem; font-weight: 700; white-space: nowrap; box-shadow: var(--shadow); display: flex; gap: 8px; align-items: center; max-width: calc(100% - 32px); overflow: hidden; text-overflow: ellipsis; }
.dtoast::before { content: "✓"; color: var(--teal); font-weight: 900; }

/* Escena 1: PDF + formulario */
.dpdf { position: relative; display: flex; flex-direction: column; gap: 9px; overflow: hidden; }
.dpdf__head { display: flex; justify-content: space-between; align-items: center; font-size: .72rem; font-weight: 800; letter-spacing: .08em; color: var(--muted); }
.dpdf__head span { background: var(--danger); color: #fff; padding: 2px 6px; border-radius: 4px; font-size: .6rem; }
.dpdf i { display: block; height: 8px; border-radius: 4px; background: var(--line); }
.dpdf i.w60 { width: 60%; } .dpdf i.w80 { width: 80%; } .dpdf i.w45 { width: 45%; } .dpdf i.w70 { width: 70%; }
.dpdf__scan { position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--teal); box-shadow: 0 0 14px var(--teal); opacity: 0; }
.dform { display: grid; gap: 9px; align-content: start; }
.dfield { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; align-items: center; font-size: .84rem; }
.dfield small { color: var(--muted); font-weight: 600; }
.dfield span { border: 1.5px solid var(--line); border-radius: 8px; padding: 6px 10px; background: var(--card); font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dbtn { justify-self: start; margin-top: 4px; background: var(--brand); color: var(--on-brand); font-weight: 800; font-size: .82rem; padding: 9px 16px; border-radius: 9px; }

/* Escena 2: panel */
.dkpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.dkpi small { display: block; color: var(--muted); font-size: .74rem; font-weight: 700; }
.dkpi strong { font-family: var(--font-display); font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.dkpi--warn strong { color: var(--accent-ink); }
.drows { display: grid; gap: 8px; }
.drow { display: flex; align-items: center; gap: 12px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; font-size: .84rem; min-width: 0; }
.drow > div { flex: 1; min-width: 0; }
.drow b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.drow small { color: var(--muted); }

/* Escena 3: WhatsApp */
.dphone { background: var(--card); border: 1px solid var(--line); border-radius: 22px; padding: 8px; display: flex; flex-direction: column; min-height: 0; }
.dphone__head { background: var(--whatsapp); color: #fff; border-radius: 16px 16px 0 0; padding: 9px 12px; font-size: .78rem; font-weight: 700; }
.dchat { background: var(--paper); flex: 1; border-radius: 0 0 16px 16px; padding: 12px 10px; display: flex; flex-direction: column; gap: 8px; font-size: .76rem; overflow: hidden; }
.dbub { background: var(--card); border-radius: 10px 10px 10px 3px; padding: 7px 10px; max-width: 86%; box-shadow: 0 1px 1px rgba(16, 40, 80, .08); }
.dbub--me { align-self: flex-end; background: var(--brand-soft); border-radius: 10px 10px 3px 10px; }
.dtyping { align-self: flex-end; background: var(--brand-soft); border-radius: 10px; padding: 7px 12px; display: flex; gap: 4px; opacity: 0; height: 0; padding-block: 0; overflow: hidden; }
.dtyping i { width: 6px; height: 6px; border-radius: 50%; background: var(--muted); }
.dtemplate { display: grid; gap: 10px; align-content: start; }
.dtemplate p { margin: 0; font-size: .84rem; color: var(--ink-2); }
.dtemplate code { font-family: inherit; background: var(--brand-soft); color: var(--brand-2); padding: 0 4px; border-radius: 4px; font-weight: 700; }
.dstatus { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: .84rem; font-weight: 700; }

/* Escena 4: cobro de cuota */
.dsteps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 6px 0 4px; }
.dstep { font-size: .78rem; font-weight: 700; color: var(--muted); }
.dstep i { display: block; height: 6px; border-radius: 6px; background: var(--line); margin-bottom: 8px; position: relative; overflow: hidden; }
.dstep i::after { content: ""; position: absolute; inset: 0; background: var(--brand-2); transform-origin: left; }
.dstep.is-done { color: var(--ink); }
.dmeta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; font-size: .82rem; }
.dmeta small { display: block; color: var(--muted); font-weight: 600; }
.dmeta b { font-variant-numeric: tabular-nums; }

/* Escena 5: comisiones */
.dbars { display: grid; gap: 14px; }
.dbar { display: grid; grid-template-columns: 110px minmax(0, 1fr) 90px; gap: 12px; align-items: center; font-size: .82rem; }
.dbar__tracks { display: grid; gap: 4px; }
.dbar__tracks i { display: block; height: 10px; border-radius: 5px; transform-origin: left; }
.dbar__tracks .exp { background: var(--line); }
.dbar__tracks .paid { background: var(--brand); }
.dbar__tracks .paid.short { background: var(--accent); }
.dbar b { text-align: right; font-variant-numeric: tabular-nums; }
.dlegend { display: flex; gap: 16px; font-size: .75rem; color: var(--muted); font-weight: 600; }
.dlegend span::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: var(--line); }
.dlegend span:nth-child(2)::before { background: var(--brand); }
.dalert { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--accent-soft); color: var(--accent-ink); border-radius: 12px; padding: 12px 16px; font-weight: 800; font-size: .9rem; flex-wrap: wrap; }
.dalert span { background: var(--card); color: var(--ink); padding: 6px 12px; border-radius: 8px; font-size: .78rem; }

/* Controles */
.demo__controls { display: flex; align-items: center; gap: 14px; margin-top: 16px; }
.demo__play { flex: none; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--brand); color: var(--on-brand); display: grid; place-items: center; cursor: pointer; box-shadow: 0 6px 18px -6px rgba(14, 124, 119, .45); }
.demo__play [hidden] { display: none; }
.demo__play:focus-visible, .demo__chap:focus-visible { outline: 3px solid var(--brand-soft); outline-offset: 2px; }
.demo__chapters { flex: 1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; min-width: 0; }
.demo__chap { all: unset; cursor: pointer; display: grid; gap: 7px; font-size: .74rem; font-weight: 700; color: var(--muted); min-width: 0; }
.demo__chap span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.demo__track { height: 5px; border-radius: 5px; background: var(--line); overflow: hidden; }
.demo__fill { display: block; height: 100%; width: 0; background: var(--brand); }
.demo__chap[aria-current="true"] { color: var(--brand); }
.demo__time { flex: none; font-size: .8rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.demo__caption { margin-top: 14px; min-height: 3.4em; }
.demo__caption b { font-size: 1.05rem; }
.demo__caption p { margin: 2px 0 0; color: var(--muted); }

/* Animaciones: solo mientras se reproduce la escena activa */
.demo.is-playing .dscene.is-active .a-fade { animation: dFade .5s ease both; animation-delay: var(--d, 0s); }
.demo.is-playing .dscene.is-active .a-pop { animation: dPop .45s cubic-bezier(.2, 1.4, .4, 1) both; animation-delay: var(--d, 0s); }
.demo.is-playing .dscene.is-active .a-slide { animation: dSlide .5s ease both; animation-delay: var(--d, 0s); }
.demo.is-playing .dscene.is-active .a-drop { animation: dDrop .7s cubic-bezier(.2, 1.2, .4, 1) both; animation-delay: var(--d, 0s); }
.demo.is-playing .dscene.is-active .a-grow { animation: dGrow .9s ease both; animation-delay: var(--d, 0s); }
.demo.is-playing .dscene.is-active .a-pulse { animation: dPulse .8s ease both; animation-delay: var(--d, 0s); }
.demo.is-playing .dscene.is-active .dpdf__scan { animation: dScan 1.4s ease-in-out .6s 1 both; }
.demo.is-playing .dscene.is-active .dtyping { animation: dTyping 1.3s ease both; animation-delay: var(--d, 0s); }
.demo.is-playing .dscene.is-active .dtyping i { animation: dDot .9s ease-in-out infinite; }
.demo.is-playing .dscene.is-active .dtyping i:nth-child(2) { animation-delay: .15s; }
.demo.is-playing .dscene.is-active .dtyping i:nth-child(3) { animation-delay: .3s; }
.demo.is-playing .dscene.is-active .dstep i::after { animation: dGrow .8s ease both; animation-delay: var(--d, 0s); }
.demo:not(.is-playing) .dstep i::after, .dstep i::after { transform: scaleX(1); }
.demo.is-paused .dscene * , .demo.is-paused .dscene *::after { animation-play-state: paused !important; }
@keyframes dFade { from { opacity: 0; transform: translateY(8px); } }
@keyframes dPop { from { opacity: 0; transform: scale(.85); } }
.dtoast.a-pop { animation-name: dToast !important; }
@keyframes dToast { from { opacity: 0; transform: translate(-50%, 12px); } }
@keyframes dSlide { from { opacity: 0; transform: translateX(-16px); } }
@keyframes dDrop { from { opacity: 0; transform: translateY(-30px) rotate(-4deg); } }
@keyframes dGrow { from { transform: scaleX(0); } }
@keyframes dPulse { 0% { opacity: 0; } 40% { opacity: 1; box-shadow: 0 0 0 0 rgba(14, 124, 119, .5); } 100% { box-shadow: 0 0 0 12px rgba(14, 124, 119, 0); } }
@keyframes dScan { 0% { top: 0; opacity: 1; } 100% { top: 100%; opacity: 0; } }
@keyframes dTyping { 0% { opacity: 0; height: 0; padding-block: 0; } 15%, 80% { opacity: 1; height: 24px; padding-block: 7px; } 100% { opacity: 0; height: 0; padding-block: 0; } }
@keyframes dDot { 50% { transform: translateY(-3px); opacity: .5; } }

@media (max-width: 880px) {
  .demo__app { grid-template-columns: 1fr; }
  .demo__side { display: none; }
  .demo__stage { aspect-ratio: auto; min-height: 470px; }
  .dscene { padding: 18px; }
  .dscene__grid { grid-template-columns: 1fr; gap: 14px; }
  .dpdf { display: none; }
  .dtemplate { display: none; }
}
@media (max-width: 560px) {
  .dkpis { grid-template-columns: 1fr 1fr; }
  .dkpis .dkpi:last-child { display: none; }
  .dmeta { grid-template-columns: 1fr 1fr; }
  .dbar { grid-template-columns: 84px minmax(0, 1fr) 64px; }
  .dfield { grid-template-columns: 88px minmax(0, 1fr); }
  .demo__time { display: none; }
  .dtemplate { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .demo .dscene * , .demo .dscene *::after { animation: none !important; }
  .dscene { transition: none; }
}

/* ==========================================================
   Identidad v3: menú flotante en píldora, portada tipográfica con
   cinta de movimientos, video con capítulos, FAQ en dos columnas
   y cierre en forma de pase de prueba.
   ========================================================== */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Menú flotante */
.nav { background: transparent; backdrop-filter: none; border-bottom: 0; padding: 12px max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px)); }
.nav.is-scrolled { border-bottom-color: transparent; }
.nav .nav__inner { max-width: calc(var(--max) - 40px); height: 70px; padding-left: 20px; padding-right: 8px; background: var(--nav-bg); backdrop-filter: saturate(160%) blur(12px); border: 1px solid var(--line); border-radius: 99px; transition: box-shadow .2s; }
.nav.is-scrolled .nav__inner { box-shadow: var(--shadow); }
.nav .btn { border-radius: 99px; }
body::before { background: var(--paper); }
@media (max-width: 880px) {
  .nav.is-open .nav__links { top: 82px; left: max(16px, env(safe-area-inset-left, 0px)); right: max(16px, env(safe-area-inset-right, 0px)); background: var(--card); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); }
}

/* Portada */
.hero2 { padding: 48px 0 40px; position: relative; overflow: hidden; }
.hero2::before { content: ""; position: absolute; left: 50%; top: -240px; width: 1100px; height: 620px; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(14, 124, 119, .12), transparent); pointer-events: none; }
.hero2__top { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero2__title { font-size: clamp(2.5rem, 6vw, 4.6rem); line-height: 1.04; letter-spacing: -.03em; max-width: 15ch; margin: 0 0 24px; text-wrap: balance; }
.hero2__title em { font-style: italic; color: var(--brand); background: linear-gradient(transparent 68%, var(--accent-soft) 68%, var(--accent-soft) 94%, transparent 94%); padding: 0 .06em; }
.hero2 .lead { margin-inline: auto; }
.hero2 .btn-row { justify-content: center; margin-top: 8px; }
.hero2 .btn { border-radius: 99px; }
.hero2 .hero__trust { justify-content: center; }

/* Cinta de movimientos */
.ticker { position: relative; margin-top: 40px; display: grid; gap: 12px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.ticker__row { display: flex; overflow: hidden; }
.ticker__track { list-style: none; margin: 0; padding: 0 12px 0 0; display: flex; gap: 12px; flex: none; animation: tick 50s linear infinite; }
.ticker__row--rev .ticker__track { animation-direction: reverse; animation-duration: 58s; }
.ticker:hover .ticker__track { animation-play-state: paused; }
@keyframes tick { to { transform: translateX(-100%); } }
.evt { display: flex; align-items: center; gap: 8px; white-space: nowrap; background: var(--card); border: 1px solid var(--line); border-radius: 99px; padding: 10px 18px; font-size: .9rem; color: var(--muted); }
.evt b { color: var(--ink); }
.evt i { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.evt--ok { background: var(--brand-2); }
.evt--warn { background: var(--accent); }
.evt--info { background: var(--brand); }
.evt--wa { background: var(--whatsapp); }

/* Video con capítulos a la izquierda */
.demo__layout { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 28px; align-items: stretch; }
.demo__panel { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.demo .demo__chapters { display: grid; grid-template-columns: 1fr; gap: 6px; }
.demo .demo__chap { display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: 12px; row-gap: 10px; padding: 14px 16px; border-radius: 14px; border: 1px solid transparent; color: var(--ink); transition: background .2s, border-color .2s; }
.demo .demo__chap:hover { background: var(--card); }
.demo .demo__chap[aria-current="true"] { background: var(--card); border-color: var(--line); box-shadow: var(--shadow); color: var(--ink); }
.demo__num { font-family: var(--font-display); font-weight: 600; font-size: 1.1rem; color: var(--muted); font-variant-numeric: tabular-nums; line-height: 1.3; }
.demo__chap[aria-current="true"] .demo__num { color: var(--brand); }
.demo__ctext { min-width: 0; }
.demo__ctext b { display: block; font-size: .98rem; }
.demo__ctext small { display: none; color: var(--muted); font-size: .85rem; font-weight: 500; margin-top: 4px; line-height: 1.45; }
.demo__chap[aria-current="true"] .demo__ctext small { display: block; }
.demo .demo__chap .demo__track { grid-column: 2; height: 4px; }
.demo .demo__controls { margin-top: auto; display: flex; align-items: center; gap: 14px; padding: 0 16px; }
.demo__screen { border-radius: 22px; }
.demo__stage { border-radius: 22px; }

/* Preguntas frecuentes en dos columnas */
.faq2 { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; align-items: start; }
.faq2__aside { position: sticky; top: calc(100px + env(safe-area-inset-top, 0px)); }
.faq2__aside .lead { font-size: 1.05rem; }
.faq2__aside .btn { border-radius: 99px; }
.faq2 .faq { margin: 0; max-width: none; border-top: 2px solid var(--ink); }

/* Cierre: pase de prueba */
.ticket { display: grid; grid-template-columns: minmax(0, 1fr) 240px; background: var(--brand); color: var(--on-brand); border-radius: 22px; position: relative; overflow: hidden; }
.ticket__main { padding: 52px 48px; min-width: 0; }
.ticket__label { display: inline-block; font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; opacity: .8; margin-bottom: 14px; }
.ticket h2 { color: var(--on-brand); }
.ticket p { opacity: .88; max-width: 540px; margin-bottom: 26px; }
.ticket .btn { border-radius: 99px; }
.ticket .btn--primary { background: var(--on-brand); color: var(--brand); box-shadow: none; }
.ticket .btn--ghost { background: transparent; color: var(--on-brand); border-color: currentColor; }
.ticket__stub { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; text-align: center; padding: 32px 20px; border-left: 2px dashed color-mix(in srgb, var(--on-brand) 45%, transparent); background: rgba(0, 0, 0, .08); }
.ticket__stub::before, .ticket__stub::after { content: ""; position: absolute; left: -15px; width: 28px; height: 28px; border-radius: 50%; background: var(--paper); }
.ticket__stub::before { top: -14px; }
.ticket__stub::after { bottom: -14px; }
.ticket__stub strong { font-family: var(--font-display); font-size: 5.2rem; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; }
.ticket__stub span { font-weight: 800; text-transform: uppercase; letter-spacing: .22em; font-size: .85rem; margin-bottom: 10px; }
.ticket__stub small { opacity: .85; font-size: .78rem; font-weight: 600; }

@media (max-width: 880px) {
  .demo__layout { grid-template-columns: 1fr; gap: 18px; }
  .demo__screen { order: -1; }
  .demo .demo__chapters { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(140px, 1fr); overflow-x: auto; padding-bottom: 4px; }
  .demo .demo__chap { padding: 10px 12px; grid-template-columns: 26px minmax(0, 1fr); }
  .demo .demo__chap[aria-current="true"] .demo__ctext small { display: none; }
  .demo .demo__controls { padding: 0; }
  .faq2 { grid-template-columns: 1fr; gap: 28px; }
  .faq2__aside { position: static; }
  .ticket { grid-template-columns: 1fr; }
  .ticket__main { padding: 40px 24px; }
  .ticket__stub { border-left: 0; border-top: 2px dashed color-mix(in srgb, var(--on-brand) 45%, transparent); flex-direction: row; flex-wrap: wrap; gap: 6px 10px; padding: 22px; }
  .ticket__stub strong { font-size: 3rem; }
  .ticket__stub span { margin: 0; }
  .ticket__stub::before { top: -14px; left: -14px; }
  .ticket__stub::after { top: -14px; bottom: auto; left: auto; right: -14px; }
}
@media (prefers-reduced-motion: reduce) {
  .ticker__track { animation: none; }
}

/* ==========================================================
   Identidad v3 aplicada al resto de la página: botones y etiquetas
   en cápsula, palabra clave resaltada en cada título, secciones
   oscuras como paneles redondeados y líneas punteadas de "boleto".
   ========================================================== */
.btn { border-radius: 99px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border: 1px solid var(--line); border-radius: 99px; background: var(--card); font-size: .72rem; letter-spacing: .12em; }
.eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.section--dark .eyebrow { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); color: var(--teal); }
.section h2 em { font-style: italic; color: var(--brand); background: linear-gradient(transparent 68%, var(--accent-soft) 68%, var(--accent-soft) 94%, transparent 94%); padding: 0 .05em; }
.feature__icon { border-radius: 99px; }

/* Secciones oscuras como paneles redondeados */
.section--dark { background: transparent; color: inherit; padding: 32px max(16px, env(safe-area-inset-right, 0px)) 32px max(16px, env(safe-area-inset-left, 0px)); }
.section--dark > .container { background: var(--night); color: var(--on-night); border-radius: 32px; padding: 72px 56px; }
.section--dark h2 em { color: var(--teal); background: linear-gradient(transparent 68%, rgba(42, 179, 173, .22) 68%, rgba(42, 179, 173, .22) 94%, transparent 94%); }

/* Línea de tiempo: horas en cápsula sobre una línea punteada */
.day::before { top: 19px; height: 2px; background: repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 14px); }
.moment__dot { display: none; }
.moment time { display: inline-block; position: relative; font-size: 1.1rem; padding: 5px 14px; border-radius: 99px; background: var(--card); border: 1.5px solid var(--brand); margin-bottom: 14px; }
.moment--alert time { border-color: var(--accent); background: var(--accent-soft); }

/* Cuatro frentes como tarjetas */
.pillars { border-top: 0; gap: 16px; }
.pillars .pillar { background: var(--card); border: 1px solid var(--line); border-radius: 24px; padding: 24px 22px 10px; }

/* Mudanza */
.move__card { border-radius: 24px; }
.move__row { border-bottom-style: dashed; }
.move__row dt { justify-self: start; align-self: start; background: var(--brand-soft); border-radius: 99px; padding: 4px 12px; white-space: nowrap; }
.move__formats span { border-radius: 99px; padding: 7px 14px; }

/* Calculadora */
.calc { border-radius: 28px; }
.plan-strip div, .plan-strip a { border-radius: 18px; }
.plan-strip .is-current { background: var(--night); border-color: var(--night); color: var(--on-night-muted); box-shadow: none; }
.plan-strip .is-current b { color: var(--on-night); }

/* Pie de página con la frase de marca */
.footer__claim { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.6rem); font-weight: 600; line-height: 1.05; letter-spacing: -.03em; color: var(--ink); margin: 0 0 40px; padding-bottom: 32px; border-bottom: 1px dashed var(--line); text-wrap: balance; }
.footer__claim em { font-style: italic; color: var(--brand); }

@media (max-width: 1020px) {
  .day::before { display: none; }
  .moment { display: block; }
}
@media (max-width: 880px) {
  .section--dark > .container { padding: 48px 22px; border-radius: 24px; }
}

/* ==========================================================
   Contenido v4: tu realidad, calculadora de fuga, promesas y principios
   ========================================================== */
/* Tu realidad: problema local → cómo se resuelve */
.reality { list-style: none; margin: 44px 0 0; padding: 0; display: grid; gap: 14px; }
.reality__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: var(--card); border: 1px solid var(--line); border-radius: 24px; overflow: hidden; }
.reality__problem, .reality__fix { padding: 24px 28px; min-width: 0; }
.reality__fix { background: var(--brand-soft); border-left: 2px dashed var(--line); display: flex; flex-direction: column; justify-content: center; }
.reality__problem h3 { margin: 10px 0 6px; font-size: 1.3rem; }
.reality__problem p, .reality__fix p { margin: 0; color: var(--ink-2); }
.reality__fix p { font-weight: 600; margin-top: 10px; }
.reality__tag { display: inline-block; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 4px 10px; border-radius: 99px; background: var(--accent-soft); color: var(--accent-ink); align-self: flex-start; }
.reality__tag--fix { background: var(--card); color: var(--brand-2); }

/* Calculadora de fuga de comisiones */
.leak__total { font-family: var(--font-display); font-size: clamp(2.6rem, 6vw, 3.6rem); font-weight: 600; line-height: 1.05; margin: 10px 0 6px; font-variant-numeric: tabular-nums; color: var(--on-night); }
.leak__disclaimer { font-size: .76rem; color: var(--on-night-muted); margin: 12px 0 0; text-align: center; }

/* Promesas al asegurado */
.promises { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 64px; align-items: center; }
.promises__copy { min-width: 0; }
.promises__list { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 0; }
.promises__list li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 22px 0; border-top: 1px dashed var(--line); }
.promises__list li:last-child { border-bottom: 1px dashed var(--line); }
.promises__num { font-family: var(--font-display); font-size: 1.6rem; font-weight: 600; color: var(--brand); font-variant-numeric: tabular-nums; line-height: 1.2; }
.promises__list h3 { margin: 0 0 6px; font-size: 1.35rem; font-style: italic; }
.promises__list p { margin: 0; color: var(--muted); }

/* Principios */
.beliefs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 40px; }
.belief { border: 1px solid rgba(255, 255, 255, .12); border-radius: 22px; padding: 26px 28px; background: rgba(255, 255, 255, .04); }
.belief h3 { color: var(--on-night); font-size: 1.4rem; margin-bottom: 8px; }
.belief p { margin: 0; color: var(--on-night-muted); }

@media (max-width: 880px) {
  .reality__row { grid-template-columns: 1fr; }
  .reality__fix { border-left: 0; border-top: 2px dashed var(--line); }
  .reality__problem, .reality__fix { padding: 20px 22px; }
  .promises { grid-template-columns: 1fr; gap: 40px; }
  .beliefs { grid-template-columns: 1fr; }
}

/* ==========================================================
   Contenido v5: conversión (más llamados a crear cuenta)
   ========================================================== */
.hero__micro { margin: 14px 0 0; font-size: .86rem; font-weight: 700; color: var(--muted); }
#modulos .feature h3 { font-size: 1.08rem; margin: 0 0 6px; }
.segment h3 { margin: 6px 0 0; font-size: 1.25rem; }
.segment__plan { margin: 0 0 14px; font-size: .92rem; color: var(--muted); }
.segment__plan b { color: var(--ink); font-variant-numeric: tabular-nums; }
.segment--featured { border: 2px solid var(--brand); box-shadow: 0 20px 40px -26px rgba(14, 124, 119, .55); }
.segment .btn { margin-top: auto; }
.assure { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.assure li { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 16px 18px 16px 46px; position: relative; font-size: .88rem; color: var(--muted); }
.assure li::before { content: "✓"; position: absolute; left: 18px; top: 15px; width: 18px; height: 18px; border-radius: 50%; background: var(--brand-soft); color: var(--brand-2); font-weight: 900; font-size: .72rem; display: grid; place-items: center; }
.assure b { display: block; color: var(--ink); font-size: .95rem; }
.faq2__aside .btn-row { margin-top: 4px; }
.mobile-cta { display: none; }
@media (max-width: 880px) {
  .assure { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .mobile-cta {
    display: flex; gap: 8px; position: fixed; z-index: 70; left: 0; right: 0; bottom: 0;
    padding: 10px max(16px, env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
    background: var(--nav-bg); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--line);
  }
  .mobile-cta .btn--primary { flex: 1; justify-content: center; }
  .mobile-cta .btn--whatsapp { flex: none; }
  .wa-float { display: none; }
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 560px) {
  .assure { grid-template-columns: 1fr; }
}

/* ==========================================================
   Diseño v6: vista del panel en la portada y "Tu realidad" en tarjetas
   ========================================================== */
.hero-app__wrap { position: relative; margin-top: 48px; }
.hero-app { position: relative; max-width: 1040px; margin: 0 auto; background: var(--card); border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 40px 80px -40px rgba(16, 40, 80, .45), 0 2px 6px rgba(16, 40, 80, .06); overflow: visible; }
.hero-app__bar { display: flex; align-items: center; gap: 7px; padding: 12px 16px; border-bottom: 1px solid var(--line); background: var(--card-2); border-radius: 22px 22px 0 0; }
.hero-app__bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--line); }
.hero-app__bar span { margin-left: 12px; font-size: .74rem; color: var(--muted); background: var(--card); border: 1px solid var(--line); border-radius: 99px; padding: 3px 14px; }
.hero-app__body { display: grid; grid-template-columns: 180px minmax(0, 1fr); text-align: left; }
.hero-app__side { display: flex; flex-direction: column; gap: 2px; padding: 18px 12px; border-right: 1px solid var(--line); background: var(--card-2); border-radius: 0 0 0 22px; font-size: .82rem; color: var(--muted); font-weight: 600; }
.hero-app__brand { font-family: var(--font-display); color: var(--ink); font-size: .95rem; padding: 0 10px 12px; }
.hero-app__side span { padding: 7px 10px; border-radius: 10px; }
.hero-app__side .is-on { background: var(--brand-soft); color: var(--brand); }
.hero-app__main { padding: 20px 22px 22px; min-width: 0; }
.hero-app__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 14px; }
.hero-app__head small { color: var(--muted); font-size: .76rem; font-weight: 600; }
.hero-app__head h3 { margin: 0; font-size: 1.35rem; }
.hero-app__rate { font-size: .76rem; color: var(--muted); background: var(--card-2); border: 1px solid var(--line); border-radius: 99px; padding: 5px 12px; white-space: nowrap; }
.hero-app__rate b { color: var(--ink); font-variant-numeric: tabular-nums; }
.hero-app__kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.hk { border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; min-width: 0; }
.hk small { display: block; font-size: .72rem; color: var(--muted); font-weight: 700; }
.hk strong { display: block; font-size: 1.02rem; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 4px; }
.hk span { font-size: .74rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.hk--ok { background: var(--brand-soft); border-color: transparent; }
.hk--warn { background: var(--accent-soft); border-color: transparent; }
.hk--warn strong { color: var(--accent-ink); }
.hero-app__table { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.ht { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.2fr) minmax(0, 1.1fr) auto; gap: 12px; align-items: center; padding: 10px 14px; border-top: 1px solid var(--line); font-size: .82rem; }
.ht--head { border-top: 0; background: var(--card-2); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); padding-block: 8px; }
.ht small { display: block; color: var(--muted); font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ht__who { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ht__who > span:last-child { min-width: 0; }
.ht__who b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ht .tag { display: inline-block; margin-bottom: 2px; }
.ht__amt b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ht__wa { display: inline-flex; align-items: center; gap: 5px; background: var(--whatsapp); color: #fff; font-weight: 700; font-size: .74rem; padding: 6px 11px; border-radius: 99px; white-space: nowrap; }
.hero-app__float { position: absolute; display: flex; align-items: center; gap: 12px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px; box-shadow: var(--shadow); text-align: left; font-size: .8rem; }
.hero-app__float b { display: block; }
.hero-app__float small { color: var(--muted); }
.hero-app__float .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--brand-2); box-shadow: 0 0 0 5px var(--brand-soft); flex: none; }
.hero-app__float--a { left: -32px; bottom: -30px; }
.hero-app__float--b { right: 48px; top: -26px; display: block; background: var(--night); color: var(--on-night); border-color: transparent; }
.hero-app__float--b small { color: var(--on-night-muted); }
.hero-app__note { margin: 46px 0 0; text-align: center; font-size: .76rem; color: var(--muted); }
@media (prefers-reduced-motion: no-preference) {
  .hero-app__float--a { animation: flotar 6s ease-in-out infinite; }
  .hero-app__float--b { animation: flotar 6s ease-in-out 1.5s infinite; }
  @keyframes flotar { 50% { transform: translateY(-8px); } }
}
@media (max-width: 1120px) {
  .hero-app__float--a { left: 12px; bottom: -30px; }
  .hero-app__float--b { right: 12px; top: -26px; }
}
@media (max-width: 880px) {
  .hero-app__body { grid-template-columns: 1fr; }
  .hero-app__side { display: none; }
  .hero-app__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ht { grid-template-columns: minmax(0, 1fr) auto; }
  .ht > span:nth-child(2), .ht--head { display: none; }
  .ht > span:nth-child(4) { grid-column: 1 / -1; }
  .ht__amt { text-align: right; }
  .hero-app__float--b { display: none; }
}
@media (max-width: 560px) {
  .hero-app__main { padding: 16px 14px; }
  .hero-app__head { flex-direction: column; align-items: flex-start; }
  .hero-app__float--a { position: static; margin: 12px; }
  .hero-app__bar span { display: none; }
}

/* "Tu realidad": tarjetas en dos columnas, con el problema arriba y la solución abajo */
.reality { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.reality__row { grid-template-columns: 1fr; }
.reality__fix { border-left: 0; border-top: 2px dashed var(--line); justify-content: flex-start; flex: 1; }
.reality__row { display: flex; flex-direction: column; }
@media (max-width: 880px) {
  .reality { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  /* En celular el llamado principal ya está en la barra fija de abajo */
  .nav__actions .btn--primary { display: none; }
  .logo { white-space: nowrap; }
  .logo__mark { width: 50px; height: 50px; }
  .ht > span:nth-child(4) { display: none; }
  .hk strong { font-size: .92rem; }
}

/* Video real del recorrido (se activa cuando existe video/recorrido.mp4) */
.real-video { margin: 40px 0 0; }
.real-video__frame { background: var(--night); border-radius: 24px; padding: 10px; box-shadow: 0 40px 80px -40px rgba(16, 40, 80, .5); }
.real-video video { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 16px; background: #000; }
.real-video figcaption { margin-top: 12px; text-align: center; font-size: .8rem; color: var(--muted); }

/* ==========================================================
   Agente: avatar que presenta el sistema (agente.js)
   ========================================================== */
.ag { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 48px; align-items: center; background: var(--card); border: 1px solid var(--line); border-radius: 32px; padding: 36px; box-shadow: var(--shadow); }
.ag__stage { position: relative; background: radial-gradient(circle at 50% 35%, #13336b, var(--night) 70%); border-radius: 26px; padding: 28px 24px 0; display: flex; flex-direction: column; align-items: center; overflow: hidden; min-height: 420px; justify-content: flex-end; }
.ag__nombre { position: absolute; left: 18px; top: 16px; color: #fff; font-family: var(--font-display); font-weight: 600; font-size: 1.3rem; line-height: 1.1; }
.ag__nombre small { display: block; font-family: var(--font-body); font-size: .72rem; font-weight: 600; color: var(--on-night-muted); }
.ag-avatar { width: 100%; max-width: 360px; height: auto; display: block; overflow: visible; }
.ag-cuello-piel { fill: #b3754e; }
.ag-camisa { fill: #fff; }
.ag-camisa--cuello { stroke: #dfe7f2; stroke-width: 1.5; stroke-linejoin: round; }
.ag-corbata { fill: #0e7c77; }
.ag-corbata__rayas { fill: none; stroke: #2ab3ad; stroke-width: 3; }
.ag-solapa { fill: #234f93; stroke: #0e2a55; stroke-width: 1.5; stroke-linejoin: round; }
.ag-bolsillo { fill: none; stroke: #0b2347; stroke-width: 3; stroke-linecap: round; }
.ag-panuelo { fill: #2ab3ad; }
.ag-pin { fill: #2ab3ad; }
.ag-piel { fill: #cd9067; }
.ag-pelo__raya { fill: none; stroke: #0f0a08; stroke-width: 3; stroke-linecap: round; opacity: .6; }
.ag-pelo__mecha { fill: #46332a; }
.ag-pelo__brillo { fill: none; stroke: rgba(255, 255, 255, .18); stroke-width: 5; stroke-linecap: round; }
.ag-ceja { fill: none; stroke: #2a1c16; stroke-width: 5; stroke-linecap: round; transition: transform .3s ease; }
.ag-ojos { transform-box: fill-box; transform-origin: center; animation: agParpadeo 5s infinite; }
.ag-ojo__blanco { fill: #fff; }
.ag-iris { fill: #4a2c1a; }
.ag-pupila { fill: #120a06; }
.ag-brillo { fill: #fff; }
.ag-nariz { fill: none; stroke: #a8683f; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.ag-mejilla { fill: #e0795c; opacity: .22; }
.ag-boca--cerrada { fill: none; stroke: #6b2f22; stroke-width: 4.5; stroke-linecap: round; }
.ag-boca--abierta { fill: #5a2219; opacity: 0; transform-box: fill-box; transform-origin: 50% 0; }
.ag-dientes { fill: #fff; }
.ag-manga { fill: none; stroke: #1a427f; stroke-width: 30; stroke-linecap: round; }
.ag-puno { fill: none; stroke: #fff; stroke-width: 10; stroke-linecap: round; }
.ag-dedo { fill: none; stroke: #cd9067; stroke-width: 9; stroke-linecap: round; }
.ag-brazo { transform-box: view-box; transform-origin: 238px 312px; transform: rotate(40deg); transition: transform .45s ease; }
.ag-cabeza { transform-box: view-box; transform-origin: 150px 220px; }
.ag-avatar.is-waving .ag-brazo { transform: rotate(0deg); animation: agSaludo .8s ease-in-out .3s 3 alternate; }
.ag-avatar.is-talking .ag-boca--cerrada { opacity: 0; }
.ag-avatar.is-talking .ag-boca--abierta { opacity: 1; animation: agHablar .24s ease-in-out infinite alternate; }
.ag-avatar.is-talking .ag-cabeza { animation: agAsentir 2.6s ease-in-out infinite; }
.ag-avatar.is-talking .ag-ceja { transform: translateY(-2px); }
@keyframes agParpadeo { 0%, 94%, 100% { transform: scaleY(1); } 97% { transform: scaleY(.1); } }
@keyframes agHablar { from { transform: scaleY(.3); } 55% { transform: scaleY(.95); } to { transform: scaleY(.55); } }
@keyframes agSaludo { from { transform: rotate(-6deg); } to { transform: rotate(10deg); } }
@keyframes agAsentir { 50% { transform: rotate(-2deg) translateY(1px); } }

.ag__panel { min-width: 0; }
.ag__panel h2 { margin: 14px 0 18px; }
.ag__burbuja { position: relative; background: var(--card-2); border: 1px solid var(--line); border-radius: 22px 22px 22px 6px; padding: 18px 22px; min-height: 96px; display: flex; align-items: center; }
.ag__burbuja p { margin: 0; font-size: 1.12rem; font-weight: 600; color: var(--ink); line-height: 1.5; }
.ag-card { display: flex; align-items: center; gap: 14px; margin-top: 14px; padding: 12px 16px; border-radius: 16px; background: var(--brand-soft); }
.ag-card__ico { width: 40px; height: 40px; border-radius: 12px; background: var(--card); display: grid; place-items: center; font-size: 1.2rem; flex: none; }
.ag-card b { display: block; }
.ag-card small { color: var(--ink-2); }
.ag-card.is-in { animation: agEntrar .45s ease both; }
@keyframes agEntrar { from { opacity: 0; transform: translateY(8px); } }
.ag__controles { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.ag__play .ag-ico-pausa, .ag__play.is-playing .ag-ico-play { display: none; }
.ag__play.is-playing .ag-ico-pausa { display: inline; }
.ag__sonido.is-off { color: var(--muted); }
.ag__sonido.is-off .ag-ondas { opacity: .2; }
.ag__puntos { display: flex; gap: 6px; margin-top: 18px; }
.ag__puntos button { flex: 1; height: 6px; border: 0; padding: 0; border-radius: 6px; background: var(--line); cursor: pointer; }
.ag__puntos button.is-done { background: var(--brand-2); }
.ag__puntos button.is-on { background: var(--brand); }
.ag__puntos button:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }
.ag__pie { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 22px; }
.ag__cta.is-lit { animation: agLlamar 1.2s ease-in-out 3; }
@keyframes agLlamar { 50% { box-shadow: 0 0 0 8px var(--brand-soft); } }
.ag__link { font-weight: 700; color: var(--brand); text-decoration: none; }
.ag__transcripcion { margin-top: 18px; font-size: .9rem; color: var(--muted); }
.ag__transcripcion summary { cursor: pointer; font-weight: 700; }
.ag__transcripcion ol { margin: 10px 0 0; padding-left: 20px; display: grid; gap: 4px; }
@media (max-width: 960px) {
  .ag { grid-template-columns: 1fr; gap: 28px; padding: 20px; border-radius: 26px; }
  .ag__stage { min-height: 0; padding-top: 56px; }
  .ag-avatar { max-width: 280px; }
}
@media (prefers-reduced-motion: reduce) {
  .ag-ojos, .ag-avatar.is-talking .ag-cabeza, .ag-avatar.is-waving .ag-brazo, .ag__cta.is-lit, .ag-card.is-in { animation: none; }
  .ag-avatar.is-talking .ag-boca--abierta { animation: none; transform: scaleY(.6); }
}
/* Con voz grabada, la boca sigue el volumen del audio (agente.js fija --boca) */
.ag-avatar.is-audio.is-talking .ag-boca--abierta { animation: none; transform: scaleY(var(--boca, .5)); transition: transform .06s linear; }

/* Plan a la medida: cuarta tarjeta de "Para quién es"; 2 columnas en tabletas */
.segment--medida { background: var(--night); border-color: var(--night); color: var(--on-night); }
.segment--medida h3 { color: var(--on-night); }
.segment--medida small { color: #2AB3AD; }
.segment--medida .segment__plan { color: var(--on-night-muted); }
.segment--medida .segment__plan b { color: var(--on-night); }
@media (max-width: 1100px) and (min-width: 881px) { .segments { grid-template-columns: repeat(2, 1fr); } }

/* Portada: captura real del panel */
.hero-app--real { padding: 0; max-width: 1180px; }
.hero-app--real + .hero-app__note { margin-top: 18px; }
.hero-app--real { overflow: hidden; }
.hero-app--real img { display: block; width: 100%; height: auto; }

/* ---------- Planes en escalera (sección "Tu oficina, tu tamaño") ---------- */
.escalera { list-style: none; padding: 0; margin: 48px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.escalon { display: flex; flex-direction: column; min-width: 0; }
.escalon__zona { height: 230px; display: flex; align-items: flex-end; padding: 0 10px; border-bottom: 3px solid var(--night); }
.escalon__barra { width: 100%; height: var(--alto); min-height: 74px; border-radius: 14px 14px 0 0; background: color-mix(in srgb, var(--brand-2) 22%, var(--card)); color: var(--night); display: flex; flex-direction: column; justify-content: flex-start; padding: 14px 16px; transform-origin: bottom; }
.escalon__barra b { font-family: var(--font-display); font-size: 1.9rem; line-height: 1; font-variant-numeric: tabular-nums; }
.escalon__barra span { font-size: .78rem; font-weight: 700; opacity: .75; margin-top: 4px; }
.escalon--destacado .escalon__barra { background: var(--brand); color: var(--on-brand); }
.escalon--medida .escalon__barra { background: var(--night); color: var(--on-night); background-image: repeating-linear-gradient(135deg, transparent 0 14px, rgba(255, 255, 255, .06) 14px 28px); }
.escalon__info { flex: 1; display: flex; flex-direction: column; padding: 22px 20px 4px; border-left: 1px solid var(--line); }
.escalon:first-child .escalon__info { border-left: 0; }
.escalon__info small { color: var(--brand-2); font-weight: 700; font-size: .8rem; }
.escalon__info h3 { margin: 6px 0 8px; font-size: 1.2rem; }
.escalon__precio { margin: 0 0 12px; font-size: .92rem; color: var(--muted); }
.escalon__precio b { font-family: var(--font-display); font-size: 1.35rem; color: var(--ink); font-variant-numeric: tabular-nums; }
.escalon__info ul { list-style: none; padding: 0; margin: 0 0 18px; flex: 1; }
.escalon__info li { padding: 5px 0 5px 18px; position: relative; font-size: .92rem; color: var(--ink-2); }
.escalon__info li::before { content: ""; position: absolute; left: 0; top: .85em; width: 7px; height: 7px; border-radius: 2px; background: var(--brand-2); }
.escalon__cta { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; color: var(--brand); text-decoration: none; padding: 8px 0; }
.escalon__cta:hover svg { transform: translateX(3px); }
.escalon__cta svg { transition: transform .2s; }
.escalon__cta--wa { color: var(--whatsapp); }
.escalon__btn { align-self: flex-start; border-radius: 99px; padding-left: 22px; padding-right: 22px; }
@media (prefers-reduced-motion: no-preference) {
  .escalon__barra { animation: subir .7s cubic-bezier(.2, .8, .2, 1) both; }
  .escalon:nth-child(2) .escalon__barra { animation-delay: .1s; }
  .escalon:nth-child(3) .escalon__barra { animation-delay: .2s; }
  .escalon:nth-child(4) .escalon__barra { animation-delay: .3s; }
  .escalera.is-waiting .escalon__barra { animation-play-state: paused; }
  @keyframes subir { from { transform: scaleY(.2); opacity: 0; } }
}
@media (max-width: 1100px) and (min-width: 881px) {
  .escalon__barra b { font-size: 1.5rem; }
  .escalon__info { padding: 20px 14px 4px; }
}
@media (max-width: 880px) {
  .escalera { grid-template-columns: 1fr; gap: 26px; }
  .escalon__zona { height: auto; padding: 0; border-bottom: 0; }
  .escalon__barra { width: calc(35% + var(--alto) * .65); height: auto; min-height: 0; border-radius: 0 14px 14px 0; flex-direction: row; align-items: baseline; gap: 8px; padding: 12px 16px; transform-origin: left; }
  .escalon__barra b { font-size: 1.5rem; }
  .escalon__info { border-left: 3px solid var(--night); padding: 14px 0 0 16px; }
  .escalon:first-child .escalon__info { border-left: 3px solid var(--night); }
  @keyframes subir { from { transform: scaleX(.3); opacity: 0; } }
}

/* ---------- Menú "isla" (portada): cápsula marina que se compacta al bajar ---------- */
.nav--isla { position: sticky; top: env(safe-area-inset-top, 0px); padding: 14px 16px 0; background: transparent; backdrop-filter: none; border: 0; display: flex; justify-content: center; pointer-events: none; }
.nav--isla.is-scrolled { border: 0; }
.isla { pointer-events: auto; position: relative; display: flex; align-items: center; gap: 4px; padding: 6px; border-radius: 99px; color: #fff;
  background: radial-gradient(120% 180% at 0% 0%, #1b3d73 0%, #0b1a36 55%, #07122a 100%);
  border: 1px solid rgba(255, 255, 255, .08);
  box-shadow: 0 18px 40px -18px rgba(7, 18, 42, .65), inset 0 1px 0 rgba(255, 255, 255, .08); }
.isla__logo { display: flex; align-items: center; gap: 10px; padding-right: 12px; text-decoration: none; color: #fff; font-weight: 800; letter-spacing: .01em; white-space: nowrap; }
.isla__logo img { width: 40px; height: 40px; object-fit: contain; background: #fff; border-radius: 50%; padding: 4px; flex: none; }
.isla__logo span { font-size: .98rem; }
.isla__plegable { display: flex; align-items: center; gap: 4px; max-width: 760px; opacity: 1; overflow: hidden; transition: max-width .55s cubic-bezier(.2, .8, .2, 1), opacity .35s; }
.isla__links { position: relative; display: flex; gap: 2px; list-style: none; margin: 0; padding: 0 8px; border-left: 1px solid rgba(255, 255, 255, .12); }
.isla__links a { position: relative; z-index: 1; display: block; padding: 10px 15px; border-radius: 99px; text-decoration: none; font-weight: 600; font-size: .92rem; color: rgba(255, 255, 255, .7); white-space: nowrap; transition: color .25s; }
.isla__links a:hover, .isla__links a.is-active { color: #fff; }
.isla__marca { position: absolute; z-index: 0; top: 0; bottom: 0; left: 0; width: 0; border-radius: 99px; background: rgba(42, 179, 173, .22); box-shadow: inset 0 0 0 1px rgba(42, 179, 173, .55), 0 0 18px rgba(42, 179, 173, .35); opacity: 0; transition: left .45s cubic-bezier(.2, .9, .2, 1.15), width .45s cubic-bezier(.2, .9, .2, 1.15), opacity .25s; }
.isla__login { padding: 10px 14px; color: rgba(255, 255, 255, .8); text-decoration: none; font-weight: 600; font-size: .92rem; white-space: nowrap; }
.isla__login:hover { color: #fff; }
.isla__actual { display: flex; align-items: center; gap: 8px; max-width: 0; opacity: 0; overflow: hidden; white-space: nowrap; font-weight: 700; font-size: .9rem; color: rgba(255, 255, 255, .85); transition: max-width .55s cubic-bezier(.2, .8, .2, 1), opacity .3s, padding .3s; }
.isla__actual i { width: 8px; height: 8px; border-radius: 50%; background: #2AB3AD; animation: latido 1.8s infinite; flex: none; }
@keyframes latido { 0% { box-shadow: 0 0 0 0 rgba(42, 179, 173, .6); } 70% { box-shadow: 0 0 0 8px rgba(42, 179, 173, 0); } 100% { box-shadow: 0 0 0 0 rgba(42, 179, 173, 0); } }
.isla__cta { display: inline-flex; align-items: center; gap: 8px; padding: 8px 8px 8px 18px; border-radius: 99px; background: #2AB3AD; color: #07122a; font-weight: 800; font-size: .92rem; text-decoration: none; white-space: nowrap; transition: transform .2s, box-shadow .2s; }
.isla__cta b { background: #07122a; color: #2AB3AD; border-radius: 99px; padding: 5px 10px; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.isla__cta:hover { transform: scale(1.04); box-shadow: 0 0 24px rgba(42, 179, 173, .55); }
.isla__progreso { position: absolute; left: 24px; right: 24px; bottom: 0; height: 2px; pointer-events: none; }
.isla__progreso::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: calc(var(--p, 0) * 100%); border-radius: 2px; background: linear-gradient(90deg, rgba(42, 179, 173, 0), #2AB3AD); box-shadow: 0 0 10px #2AB3AD; }
.nav--isla .nav__toggle { display: none; color: #fff; margin-left: 2px; }

/* Compacta: al bajar se pliega a logo + sección actual + botón; se abre al pasar el mouse o al subir */
.nav--isla.is-compacta:not(:hover):not(:focus-within) .isla__plegable { max-width: 0; opacity: 0; }
.nav--isla.is-compacta:not(:hover):not(:focus-within) .isla__actual { max-width: 220px; opacity: 1; padding: 0 14px 0 4px; }

@media (max-width: 1080px) {
  .nav--isla { padding: 10px 12px 0; }
  .isla { width: 100%; }
  .isla__plegable { display: none; }
  .nav--isla .isla__actual { max-width: 220px; opacity: 1; margin-right: auto; }
  .nav--isla .nav__toggle { display: block; }
  .nav--isla.is-open .isla__plegable { display: flex; position: fixed; top: calc(76px + env(safe-area-inset-top, 0px)); left: 12px; right: 12px; max-width: none; opacity: 1; flex-direction: column; align-items: stretch; padding: 12px; border-radius: 24px; background: #0b1a36; box-shadow: 0 24px 50px -20px rgba(7, 18, 42, .7); }
  .nav--isla.is-open .isla__links { display: flex; position: static; flex-direction: column; border: 0; padding: 0; background: none; box-shadow: none; border-radius: 0; gap: 2px; }
  .nav--isla.is-open .isla__login { padding: 14px 16px; }
  .nav--isla.is-open .isla__links a { padding: 14px 16px; font-size: 1rem; }
  .nav--isla.is-open .isla__links a.is-active { background: rgba(42, 179, 173, .2); }
  .nav--isla .isla__marca { display: none; }
}
@media (max-width: 560px) {
  .isla__logo span { display: none; }
  .isla__cta { padding: 7px 6px 7px 14px; font-size: .86rem; }
}
@media (prefers-reduced-motion: reduce) {
  .isla__plegable, .isla__actual, .isla__marca { transition: none; }
  .isla__actual i { animation: none; }
}

/* ---------- Avatar de Agente v2 (SVG): 30-35 años, semi formal, sin corbata, jovial ---------- */
.ag-avatar-wrap { position: relative; width: 100%; max-width: 360px; }
.ag-avatar--v2 .ag2-ceja { fill: none; stroke: #3a271c; stroke-width: 5.5; stroke-linecap: round; transition: transform .3s ease; }
/* La sonrisa con dientes reemplaza a la boca "cerrada" de trazo; al hablar se ve la boca abierta */
.ag-avatar--v2 .ag2-sonrisa { fill: initial; stroke: none; transition: opacity .15s; }
.ag-avatar--v2 .ag2-boca { fill: initial; transform-box: fill-box; transform-origin: 50% 0; }
.ag-avatar--v2.is-talking .ag2-sonrisa { opacity: 0; }
/* El brazo solo aparece para saludar */
.ag-avatar--v2 .ag-brazo { opacity: 0; transform: rotate(70deg); transition: transform .45s ease, opacity .3s; }
.ag-avatar--v2.is-waving .ag-brazo { opacity: 1; }
/* Globo de saludo y ondas de voz, hermanos del SVG */
.ag-hola { position: absolute; top: 12%; right: 2%; background: #fff; color: var(--night); font-weight: 800; font-size: .95rem; padding: 8px 14px; border-radius: 16px 16px 16px 4px; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .5); opacity: 0; transform: scale(.4) rotate(-8deg); transform-origin: 0 100%; transition: opacity .25s, transform .35s cubic-bezier(.2, 1.6, .4, 1); pointer-events: none; }
.ag-avatar.is-waving ~ .ag-hola { opacity: 1; transform: scale(1) rotate(-4deg); }
.ag-ondas-voz { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; gap: 4px; align-items: center; height: 26px; padding: 0 12px; border-radius: 99px; background: rgba(7, 18, 42, .7); opacity: 0; transition: opacity .3s; }
.ag-ondas-voz i { width: 4px; height: 30%; border-radius: 4px; background: #2AB3AD; }
.ag-avatar.is-talking ~ .ag-ondas-voz { opacity: 1; }
.ag-avatar.is-talking ~ .ag-ondas-voz i { animation: agOnda .9s ease-in-out infinite; }
.ag-ondas-voz i:nth-child(2) { animation-delay: -.2s !important; }
.ag-ondas-voz i:nth-child(3) { animation-delay: -.45s !important; }
.ag-ondas-voz i:nth-child(4) { animation-delay: -.1s !important; }
.ag-ondas-voz i:nth-child(5) { animation-delay: -.6s !important; }
@keyframes agOnda { 0%, 100% { height: 25%; } 50% { height: 85%; } }
@media (max-width: 960px) { .ag-avatar-wrap { max-width: 280px; } }
@media (prefers-reduced-motion: reduce) { .ag-avatar.is-talking ~ .ag-ondas-voz i { animation: none; } }

/* ---------- Agente sin cara: el ícono del logo animado con la voz ---------- */
.ag-avatar--logo { width: 100%; height: auto; display: block; overflow: visible; margin-bottom: 36px; }
.ag-avatar--logo .ag3-todo { transform-box: view-box; transform-origin: 150px 150px; animation: ag3Flotar 4.5s ease-in-out infinite; }
@keyframes ag3Flotar { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(-1.5deg); } }
.ag3-doc { transform-box: fill-box; transform-origin: 50% 50%; transition: transform .25s ease; }
.ag3-check { transform-box: fill-box; transform-origin: 50% 50%; transition: transform .2s ease; }
.ag3-brillo { transform-box: fill-box; transform-origin: 50% 50%; opacity: .6; transition: opacity .4s; }
.ag3-anillo { transform-box: fill-box; transform-origin: 50% 50%; opacity: 0; }

/* Hablando (voz del navegador): las hojas se abren y cierran, el check late y salen anillos */
.ag-avatar--logo.is-talking .ag3-doc--a { animation: ag3HojaA .34s ease-in-out infinite alternate; }
.ag-avatar--logo.is-talking .ag3-doc--b { animation: ag3HojaB .34s ease-in-out infinite alternate; }
.ag-avatar--logo.is-talking .ag3-check { animation: ag3Latido .34s ease-in-out infinite alternate; }
.ag-avatar--logo.is-talking .ag3-brillo { opacity: 1; }
.ag-avatar--logo.is-talking .ag3-anillo { animation: ag3Anillo 2.4s ease-out infinite; }
.ag-avatar--logo.is-talking .ag3-anillo:nth-child(2) { animation-delay: .8s; }
.ag-avatar--logo.is-talking .ag3-anillo:nth-child(3) { animation-delay: 1.6s; }
@keyframes ag3HojaA { from { transform: translate(0, 0); } to { transform: translate(-7px, 0) rotate(-3deg); } }
@keyframes ag3HojaB { from { transform: translate(0, 0); } to { transform: translate(7px, 0) rotate(3deg); } }
@keyframes ag3Latido { from { transform: scale(1); } to { transform: scale(1.12); } }
@keyframes ag3Anillo { from { transform: scale(.9); opacity: .7; } to { transform: scale(1.5); opacity: 0; } }

/* Con voz grabada: todo sigue el volumen real (agente.js fija --boca entre 0 y 1) */
.ag-avatar--logo.is-audio.is-talking .ag3-doc, .ag-avatar--logo.is-audio.is-talking .ag3-check { animation: none; transition: transform .07s linear; }
.ag-avatar--logo.is-audio.is-talking .ag3-doc--a { transform: translate(calc(var(--boca, .5) * -10px), 0) rotate(calc(var(--boca, .5) * -4deg)); }
.ag-avatar--logo.is-audio.is-talking .ag3-doc--b { transform: translate(calc(var(--boca, .5) * 10px), 0) rotate(calc(var(--boca, .5) * 4deg)); }
.ag-avatar--logo.is-audio.is-talking .ag3-check { transform: scale(calc(1 + var(--boca, .5) * .16)); }

/* Saludo final: el check da un salto */
.ag-avatar--logo.is-waving .ag3-check { animation: ag3Salto .7s cubic-bezier(.2, 1.6, .4, 1) 2; }
@keyframes ag3Salto { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.3) rotate(-12deg); } 100% { transform: scale(1) rotate(0); } }

@media (max-width: 960px) { .ag-avatar--logo { max-width: 240px; margin-bottom: 40px; } }
@media (prefers-reduced-motion: reduce) {
  .ag-avatar--logo .ag3-todo, .ag-avatar--logo.is-talking .ag3-doc, .ag-avatar--logo.is-talking .ag3-check,
  .ag-avatar--logo.is-talking .ag3-anillo, .ag-avatar--logo.is-waving .ag3-check { animation: none; }
}

/* ---------- Recorrido con pantallas reales ---------- */
.tour { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; margin-top: 36px; align-items: start; }
.tour__tabs { display: grid; gap: 8px; }
.tour__tab { position: relative; display: flex; gap: 14px; align-items: flex-start; text-align: left; padding: 16px 18px; border: 1px solid transparent; border-radius: 18px; background: none; font: inherit; color: var(--ink-2); cursor: pointer; overflow: hidden; transition: background .25s, border-color .25s, box-shadow .25s; }
.tour__tab:hover { background: var(--card); }
.tour__tab.is-on { background: var(--card); border-color: var(--line); box-shadow: var(--shadow); color: var(--ink); }
.tour__tab:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.tour__num { font-family: var(--font-display); font-weight: 600; color: var(--brand-2); font-size: 1rem; line-height: 1.5; }
.tour__txt b { display: block; font-size: 1rem; }
.tour__txt small { display: block; max-height: 0; opacity: 0; overflow: hidden; color: var(--muted); font-size: .86rem; line-height: 1.45; transition: max-height .35s ease, opacity .3s, margin .3s; }
.tour__tab.is-on .tour__txt small { max-height: 90px; opacity: 1; margin-top: 4px; }
.tour__barra { position: absolute; left: 18px; right: 18px; bottom: 8px; height: 3px; border-radius: 3px; background: var(--line); opacity: 0; }
.tour__tab.is-on .tour__barra { opacity: 1; }
.tour__barra::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 0; border-radius: 3px; background: var(--brand-2); }
.tour.is-playing .tour__tab.is-on .tour__barra::after { animation: tourAvance var(--tour-ms, 6500ms) linear forwards; }
.tour.is-paused .tour__tab.is-on .tour__barra::after { animation-play-state: paused; }
@keyframes tourAvance { to { width: 100%; } }
.tour__marco { position: relative; display: grid; border-radius: 18px; overflow: hidden; background: var(--card); border: 1px solid var(--line); box-shadow: 0 30px 60px -34px rgba(16, 40, 80, .45); }
.tour__img { grid-area: 1 / 1; width: 100%; height: auto; display: block; opacity: 0; transform: scale(1.02); transition: opacity .5s ease, transform .7s ease; }
.tour__img.is-on { opacity: 1; transform: none; }
.tour__nota { margin: 12px 0 0; text-align: center; font-size: .76rem; color: var(--muted); }
@media (max-width: 980px) {
  .tour { grid-template-columns: 1fr; gap: 16px; }
  .tour__tabs { display: flex; overflow-x: auto; gap: 8px; scroll-snap-type: x mandatory; padding-bottom: 4px; }
  .tour__tab { flex: none; scroll-snap-align: start; padding: 10px 14px 14px; border-color: var(--line); background: var(--card); }
  .tour__txt small { display: none; }
  .tour__barra { left: 14px; right: 14px; bottom: 5px; }
  .tour__marco { touch-action: pan-y; }
}
@media (prefers-reduced-motion: reduce) { .tour__img { transition: none; } .tour.is-playing .tour__tab.is-on .tour__barra::after { animation: none; width: 100%; } }

/* ---------- Portada: enlaces secundarios y notas sobre la captura ---------- */
.hero__enlaces { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; margin-top: 14px; }
.hero__enlace { background: none; border: 0; padding: 4px 2px; font: inherit; font-size: .92rem; font-weight: 700; color: var(--ink-2); text-decoration: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.hero__enlace:hover { color: var(--brand); }
.hero__enlace--fuerte { color: var(--brand); border-bottom: 2px solid color-mix(in srgb, var(--brand-2) 45%, transparent); }
.hero-app--real picture { display: block; }
.nota-pantalla { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, 0); display: inline-flex; align-items: center; gap: 8px; padding: 7px 13px 7px 10px; border-radius: 99px; background: var(--night); color: #fff; font-size: .8rem; font-weight: 700; white-space: nowrap; box-shadow: 0 10px 24px -10px rgba(7, 18, 42, .7); pointer-events: none; animation: notaEntra .5s cubic-bezier(.2, 1.4, .4, 1) both; }
.nota-pantalla:nth-of-type(2) { animation-delay: .15s; } .nota-pantalla:nth-of-type(3) { animation-delay: .3s; } .nota-pantalla:nth-of-type(4) { animation-delay: .45s; }
.nota-pantalla i { width: 8px; height: 8px; border-radius: 50%; background: #2AB3AD; box-shadow: 0 0 0 4px rgba(42, 179, 173, .3); flex: none; }
@keyframes notaEntra { from { opacity: 0; transform: translate(-50%, 8px) scale(.9); } }
@media (max-width: 900px) { .nota-pantalla { display: none; } }
@media (prefers-reduced-motion: reduce) { .nota-pantalla { animation: none; } }

/* ---------- Funciones: 6 visibles, el resto al tocar ---------- */
.features:not(.is-todas) .feature--extra { display: none; }

/* ---------- Tu realidad, resumida ---------- */
.reality__problem h3 { margin-bottom: 0; }

/* ---------- Agente en ventana ---------- */
.ag-dialogo { width: min(1080px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 28px; background: transparent; overflow: visible; }
.ag-dialogo::backdrop { background: rgba(7, 18, 42, .62); backdrop-filter: blur(4px); }
.ag-dialogo[open] { animation: agAbrir .35s cubic-bezier(.2, 1.2, .4, 1); }
@keyframes agAbrir { from { opacity: 0; transform: translateY(16px) scale(.97); } }
.ag-dialogo #agente { position: relative; max-height: calc(100vh - 32px); overflow: auto; border-radius: 28px; }
.ag-dialogo .ag { margin: 0; }
.ag-dialogo__cerrar { position: absolute; top: 14px; right: 14px; z-index: 3; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: var(--card); color: var(--ink); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.ag-dialogo__cerrar:hover { background: var(--card-2); }

/* ---------- Menú isla en páginas internas ---------- */
.isla__ayuda { padding: 0 14px 0 6px; color: rgba(255, 255, 255, .7); font-size: .9rem; font-weight: 600; white-space: nowrap; }
.isla__ayuda a { color: #2AB3AD; font-weight: 800; text-decoration: none; }
.isla__volver { display: inline-flex; align-items: center; padding: 10px 18px; border-radius: 99px; border: 1px solid rgba(255, 255, 255, .25); color: #fff; font-weight: 700; font-size: .92rem; text-decoration: none; white-space: nowrap; }
.isla__volver:hover { background: rgba(255, 255, 255, .08); }
.nav--registro .isla__actual { max-width: 220px; opacity: 1; padding: 0 12px 0 4px; }
@media (max-width: 1080px) { .nav--registro .isla__plegable { display: none; } }
