/* ==========================================================================
   Agente IA · propuesta
   Misma familia que la demo: tinta azul, cobalto y resaltador ámbar.
   La marca es una cuadrícula de 6 celdas que se llenan. Aquí se llenan
   con el avance de la lectura, con el calendario de ejemplo y con la lista
   de lo que se necesita para arrancar.
   ========================================================================== */

:root {
  --ink: #0e1630;
  --ink-2: #2d3659;
  --mute: #566080;
  --paper: #f1f3f9;
  --card: #ffffff;
  --line: #dbe0ee;
  --line-2: #e8ebf5;
  --brand: #2748f5;
  --brand-deep: #1b33c4;
  --brand-soft: #e3e8ff;
  --fill: #ffc933;
  --fill-soft: #fff1c2;
  --fill-ink: #4a3600;
  --fill-text: #ffdb6e;
  --ok: #0e7c57;
  --ok-soft: #d8f3e7;
  --warn: #a63a08;
  --warn-soft: #ffe6d6;

  --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

  --max: 1120px;
  --top: 64px;
  --dock: 66px;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--top) + 10px);
  overflow-x: clip;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.55;
  overflow-x: clip;
  padding-bottom: calc(var(--dock) + env(safe-area-inset-bottom, 0px));
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
b, strong { font-weight: 750; }

.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ico { width: 1.2em; height: 1.2em; flex: none; display: inline-block; vertical-align: -.2em; }
.print-only { display: none; }

:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; border-radius: 6px; }
.top :focus-visible,
.hero :focus-visible,
.demo :focus-visible,
.close :focus-visible,
.foot :focus-visible { outline-color: var(--fill); }

.shell { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }

.skip {
  position: fixed;
  left: -9999px;
  top: 12px;
  z-index: 200;
  padding: 10px 16px;
  background: var(--ink);
  color: #fff;
  border-radius: 10px;
}
.skip:focus { left: 12px; }

/* ---------- Marca: seis celdas ---------- */

.mark {
  display: grid;
  grid-template-columns: repeat(3, 11px);
  grid-template-rows: repeat(2, 11px);
  gap: 3px;
  flex: none;
}
.mark i {
  display: block;
  border-radius: 3.5px;
  background: rgba(255, 255, 255, .2);
  transition: background-color .5s ease;
}
.mark i.on { background: var(--fill); }

.mini {
  display: inline-grid;
  grid-template-columns: repeat(3, 8px);
  grid-template-rows: repeat(2, 8px);
  gap: 2px;
  flex: none;
}
.mini i { display: block; border-radius: 2.5px; background: #cdd3e8; transition: background-color .4s ease; }
.mini--big { grid-template-columns: repeat(3, 12px); grid-template-rows: repeat(2, 12px); gap: 3px; }
.mini--big i { border-radius: 3.5px; }
.mini[data-n="1"] i:nth-child(-n+1),
.mini[data-n="2"] i:nth-child(-n+2),
.mini[data-n="3"] i:nth-child(-n+3),
.mini[data-n="4"] i:nth-child(-n+4),
.mini[data-n="5"] i:nth-child(-n+5),
.mini[data-n="6"] i:nth-child(-n+6) { background: var(--fill); box-shadow: inset 0 0 0 1px rgba(74, 54, 0, .28); }
.demo .mini i { background: rgba(255, 255, 255, .22); }
.demo .mini[data-n="4"] i:nth-child(-n+4) { background: var(--fill); box-shadow: none; }

/* ---------- Resaltador ---------- */

.hl {
  color: var(--ink);
  padding: .02em .16em;
  margin: 0 -.04em;
  white-space: nowrap;
  border-radius: .2em;
  background-image: linear-gradient(var(--fill), var(--fill));
  background-repeat: no-repeat;
  background-position: 0 50%;
  background-size: 100% 92%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  transition: background-size .75s cubic-bezier(.2, .7, .2, 1) .3s;
}
.js .hl { background-size: 0% 92%; }
.js .in .hl, .js .hl.in { background-size: 100% 92%; }

/* ---------- Botones ---------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 22px;
  border: 2px solid transparent;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.btn--fill { background: var(--fill); border-color: var(--fill); color: var(--ink); }
.btn--fill:hover { background: #ffd65c; border-color: #ffd65c; transform: translateY(-1px); }
.btn--ghost { border-color: rgba(255, 255, 255, .6); color: #fff; }
.btn--ghost:hover { background: rgba(255, 255, 255, .14); border-color: #fff; }
.btn--sm { min-height: 44px; padding: 0 16px; font-size: 14.5px; }
.top__cta { gap: 0; }
.btn--xl { min-height: 60px; padding: 0 30px; font-size: 18px; }

/* ---------- Barra superior ---------- */

.top {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--ink);
  color: #fff;
}
.top__in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: var(--top);
  padding-top: env(safe-area-inset-top, 0px);
}
.brand { display: flex; align-items: center; gap: 11px; min-width: 0; min-height: 44px; text-decoration: none; }
.brand__txt { min-width: 0; line-height: 1.15; }
.brand strong { display: block; font-size: 16px; font-weight: 800; letter-spacing: -.02em; }
.brand small { display: none; font-size: 11.5px; color: #b9c1de; }

/* Navegación de secciones: barra inferior en celular, píldoras arriba en escritorio */
.secnav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -6px 24px -10px rgba(14, 22, 48, .28);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.secnav a {
  position: relative;
  min-height: var(--dock);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 2px;
  color: var(--mute);
  font-size: 11.5px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: -.005em;
}
.secnav .cell {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 7px;
  background: var(--line-2);
  box-shadow: inset 0 0 0 2px var(--line);
  transition: background-color .25s ease, box-shadow .25s ease;
}
.secnav a.is-past .cell { background: var(--fill-soft); box-shadow: inset 0 0 0 2px #f1d682; }
.secnav a[aria-current="location"] { color: var(--ink); }
.secnav a[aria-current="location"] .cell { background: var(--fill); box-shadow: inset 0 0 0 2px var(--ink); }
.secnav a[aria-current="location"]::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 22%;
  right: 22%;
  height: 3px;
  border-radius: 0 0 4px 4px;
  background: var(--brand);
}

/* ---------- Portada ---------- */

.hero {
  position: relative;
  isolation: isolate;
  overflow: clip;
  background: var(--brand);
  color: #fff;
}
.hero::before, .close::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(255, 255, 255, .075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .075) 1px, transparent 1px);
  background-size: 88px 88px;
  -webkit-mask-image: radial-gradient(75% 95% at 88% 12%, #000, transparent 78%);
  mask-image: radial-gradient(75% 95% at 88% 12%, #000, transparent 78%);
}

.hero__grid {
  display: grid;
  gap: 40px;
  align-items: center;
  padding: 44px 0 44px;
}

.for__l {
  display: block;
  font: 600 12.5px/1 var(--mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fill-text);
}
.for__n {
  display: block;
  margin-top: 9px;
  font-size: clamp(22px, 3.6vw, 30px);
  font-weight: 750;
  line-height: 1.15;
  letter-spacing: -.02em;
  overflow-wrap: anywhere;
}

.hero h1 {
  margin: 24px 0 20px;
  font-size: clamp(36px, 7.8vw, 70px);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.034em;
  text-wrap: balance;
}
.lead {
  max-width: 52ch;
  font-size: clamp(17.5px, 2.1vw, 20px);
  line-height: 1.5;
  color: rgba(255, 255, 255, .93);
}
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
@media (max-width: 519px) { .hero__cta .btn { flex: 1 1 100%; } }

/* Calendario de ejemplo: la firma de la página */
.week {
  background: #fff;
  color: var(--ink);
  border-radius: 24px;
  padding: 20px;
  box-shadow: 0 34px 64px -30px rgba(6, 12, 60, .75), 0 0 0 1px rgba(14, 22, 48, .06);
}
.week__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.week__t { font: 700 12.5px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--mute); }
.tag {
  font: 700 11px/1 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--brand-soft);
  color: var(--brand-deep);
  padding: 6px 8px;
  border-radius: 6px;
}
.slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.slot {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
  min-height: 108px;
  padding: 11px 10px 12px;
  border: 2px dashed #c9d0e6;
  border-radius: 14px;
  color: var(--mute);
  transition: background-color .45s ease, border-color .45s ease, color .45s ease;
}
.slot__when { font: 700 10.5px/1.25 var(--mono); overflow-wrap: anywhere; }
.slot__who { display: none; font-size: 17px; font-weight: 800; letter-spacing: -.015em; line-height: 1.1; }
.slot__st { display: none; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; line-height: 1.1; }
.slot::after { content: "Libre"; font-size: 13.5px; font-weight: 650; color: #66719a; }

.slot[data-state="on"], .slot[data-state="ok"] { border-style: solid; }
.slot[data-state="on"]::after, .slot[data-state="ok"]::after { content: none; }
.slot[data-state="on"] .slot__who, .slot[data-state="ok"] .slot__who { display: block; }
.slot[data-state="on"] .slot__st, .slot[data-state="ok"] .slot__st { display: flex; }
.slot[data-state="on"] .slot__st::after { content: "Agendada"; }
.slot[data-state="ok"] .slot__st::after { content: "Confirmada"; }
.slot[data-state="on"] { background: var(--fill); border-color: var(--fill); color: var(--ink); }
.slot[data-state="ok"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.slot[data-state="ok"] .slot__when { color: #b9c1de; }
.slot[data-state="ok"] .slot__st { color: var(--fill); }
.slot[data-state="ok"] .slot__st::before {
  content: "";
  width: 13px;
  height: 13px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffc933' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.6 4.2 4.2L19 7.2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.slot.pop { animation: pop .55s ease; }
@keyframes pop { 0% { transform: scale(.94); } 55% { transform: scale(1.04); } 100% { transform: scale(1); } }

.week__legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 14px; font-size: 13px; color: var(--mute); }
.week__legend span { display: inline-flex; align-items: center; gap: 7px; }
.sw { width: 13px; height: 13px; border-radius: 4px; display: inline-block; }
.sw--libre { border: 2px dashed #b4bddb; }
.sw--on { background: var(--fill); }
.sw--ok { background: var(--ink); }

.hero__facts { border-top: 1px solid rgba(255, 255, 255, .24); background: rgba(6, 12, 70, .22); }
.facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.facts > div { padding: 16px 14px 16px 0; }
.facts > div:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .16); }
.facts dt {
  margin-bottom: 6px;
  font: 600 11.5px/1.2 var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .86);
}
.facts dd { font-size: 16px; font-weight: 700; line-height: 1.3; }

/* ---------- Secciones ---------- */

.sec { padding: 64px 0; }
.sec--paper { background: var(--paper); }
.sec--white { background: #fff; }
.sec--ink { background: var(--ink); color: #fff; }

.head { max-width: 760px; margin-bottom: 36px; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font: 700 12.5px/1.2 var(--mono);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--brand-deep);
}
.sec--ink .eyebrow { color: var(--fill); }
.eyebrow--light { color: var(--fill-text); }
h2 {
  margin: 14px 0 14px;
  font-size: clamp(30px, 5.2vw, 48px);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -.03em;
  text-wrap: balance;
}
.head p:not(.eyebrow) { font-size: 18px; color: var(--ink-2); max-width: 60ch; }
.sec--ink .head p:not(.eyebrow) { color: #cfd6ee; }
h3 { font-weight: 780; letter-spacing: -.02em; line-height: 1.2; }

/* 1. Problemas */

.probs { display: grid; gap: 16px; }
.prob {
  display: flex;
  flex-direction: column;
  padding: 16px 16px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
}
.prob h3 { margin: 20px 6px 6px; font-size: 21px; }
.prob p { margin: 0 6px; color: var(--ink-2); font-size: 16.5px; }

.spec {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  min-height: 118px;
  padding: 16px;
  border-radius: 14px;
  background: var(--line-2);
}
.spec--chat { background: #ebe6da; }
.bub {
  align-self: flex-start;
  max-width: 88%;
  padding: 9px 13px;
  background: #fff;
  border-radius: 4px 14px 14px 14px;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
  font-size: 15.5px;
  color: #1c2233;
}
.spec__meta { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 650; color: var(--mute); }
.spec__meta--warn { color: var(--warn); }
.spec--repeat { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; }
.pill {
  padding: 7px 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 14.5px;
  font-weight: 650;
}
.spec--slot { flex-direction: row; align-items: stretch; gap: 10px; }
.slotx {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 11px;
  border-radius: 12px;
  background: var(--warn-soft);
  border: 2px solid #f4c3a6;
}
.slotx b { font: 700 12px/1.2 var(--mono); color: var(--warn); white-space: nowrap; }
.slotx em { font-style: normal; font-size: 15px; font-weight: 800; color: var(--warn); }
.slotx--libre { background: transparent; border: 2px dashed #b4bddb; }
.slotx--libre b { color: var(--mute); }
.slotx--libre em { color: var(--mute); font-weight: 650; }
.spec--list { gap: 8px; }
.spec--list span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 14px;
  background: #fff;
  border-radius: 10px;
  font-size: 15px;
}
.spec--list b { font-weight: 700; }
.spec--list i { font: 800 20px/1 var(--mono); font-style: normal; color: var(--warn); }

/* 2. Qué incluye */

.tabs__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 22px; }
.tabs [role="tab"] {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 8px 12px 8px 8px;
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 14px;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.2;
  text-align: left;
  color: var(--ink);
  transition: background-color .18s ease, border-color .18s ease;
}
.tabs [role="tab"]:hover { border-color: var(--ink); }
.tabs__n {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 9px;
  background: var(--line-2);
  font: 700 14px/1 var(--mono);
  color: var(--ink-2);
}
.tabs [role="tab"][aria-selected="true"] { background: var(--fill); border-color: var(--fill); }
.tabs [role="tab"][aria-selected="true"] .tabs__n { background: var(--ink); color: var(--fill); }

.tp { display: grid; gap: 26px; }
.js .tp[hidden] { display: none; }
.js .tp:not([hidden]) { animation: rise .4s ease; }
.tp:focus-visible { outline-offset: 8px; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.stage {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 300px;
  padding: 22px 18px 38px;
  border-radius: 26px;
  background: var(--brand-soft);
  overflow: hidden;
}
.stage::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(39, 72, 245, .09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(39, 72, 245, .09) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(90% 90% at 50% 50%, #000, transparent 95%);
  mask-image: radial-gradient(90% 90% at 50% 50%, #000, transparent 95%);
}
.stage > * { position: relative; }

.frame {
  width: 100%;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 46px -22px rgba(14, 22, 48, .55), 0 0 0 1px rgba(14, 22, 48, .08);
}
.frame__bar { display: flex; align-items: center; gap: 10px; padding: 9px 12px; background: #e8ebf5; }
.frame__dots { display: inline-flex; gap: 5px; }
.frame__dots i { width: 9px; height: 9px; border-radius: 50%; background: #c1c8de; }
.frame__url {
  flex: 1;
  max-width: 250px;
  margin: 0 auto;
  padding: 6px 8px;
  border-radius: 7px;
  background: #fff;
  font: 12px/1 var(--mono);
  text-align: center;
  color: var(--ink-2);
}
.frame img { width: 100%; height: auto; }
.frame--dark { box-shadow: 0 24px 46px -22px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .1); }
.frame--dark .frame__bar { background: #1c2646; }
.frame--dark .frame__dots i { background: #4b567f; }
.frame--dark .frame__url { background: #0e1630; color: #aab4d6; }

.minip {
  position: absolute;
  right: 22px;
  bottom: 18px;
  width: 24%;
  min-width: 96px;
  border: 4px solid var(--ink);
  border-radius: 20px;
  background: var(--ink);
  box-shadow: 0 22px 36px -12px rgba(14, 22, 48, .6);
}

.stage--phones { display: flex; justify-content: center; align-items: flex-start; gap: 0; padding: 26px 16px 26px; min-height: 0; }
.ph { width: min(46%, 236px); flex: none; filter: drop-shadow(0 18px 22px rgba(14, 22, 48, .34)); }
.ph--b { margin-top: 30px; margin-left: -20px; }

.tp__k { font: 700 12px/1.2 var(--mono); letter-spacing: .13em; text-transform: uppercase; color: var(--brand-deep); }
.tp__txt h3 { margin: 8px 0 14px; font-size: clamp(26px, 3.4vw, 34px); letter-spacing: -.03em; }
.goal {
  margin-bottom: 18px;
  padding: 12px 16px;
  background: var(--fill-soft);
  border-left: 5px solid var(--fill);
  border-radius: 4px 12px 12px 4px;
  font-size: 16.5px;
  font-weight: 650;
  color: var(--fill-ink);
}
.ticks { display: grid; gap: 12px; }
.ticks li { position: relative; padding-left: 32px; font-size: 17px; line-height: 1.45; color: var(--ink-2); }
.ticks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  background: var(--ok-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e7c57' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.try {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin-top: 18px;
  border-bottom: 3px solid var(--fill);
  font-size: 16px;
  font-weight: 750;
  text-decoration: none;
  color: var(--ink);
}
.try:hover { border-bottom-color: var(--brand); color: var(--brand-deep); }

.also {
  margin-top: 44px;
  padding: 24px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 22px;
}
.also h3 { margin-bottom: 14px; font-size: 22px; }
.also__list { display: grid; gap: 10px 32px; }
.also__list li { position: relative; padding-left: 22px; font-size: 16.5px; color: var(--ink-2); }
.also__list li::before { content: ""; position: absolute; left: 0; top: .6em; width: 10px; height: 10px; border-radius: 3px; background: var(--fill); box-shadow: inset 0 0 0 1px rgba(74, 54, 0, .28); }

/* 3. Cómo funciona */

.path { display: grid; gap: 0; }
.step { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 16px; padding-bottom: 28px; }
.step:last-child { padding-bottom: 0; }
.step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 27px;
  top: 62px;
  bottom: 6px;
  border-left: 2px dashed #aeb9e6;
}
.step__ic {
  grid-row: 1 / span 3;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: var(--ink);
  color: var(--fill);
  font-size: 26px;
}
.step__n { font: 700 12px/1.2 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--brand-deep); padding-top: 2px; }
.step h3 { margin: 4px 0 4px; font-size: 22px; }
.step p { color: var(--ink-2); font-size: 16.5px; }
.human {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 36px;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  font-size: 16.5px;
  color: var(--ink-2);
}
.human .ico { font-size: 26px; color: var(--brand); }

/* 4. Demo */

.demo { position: relative; isolation: isolate; overflow: clip; }
.demo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
  background-size: 88px 88px;
  -webkit-mask-image: radial-gradient(70% 80% at 50% 0%, #000, transparent 80%);
  mask-image: radial-gradient(70% 80% at 50% 0%, #000, transparent 80%);
}
.demo__go { display: grid; justify-items: start; gap: 16px; margin-bottom: 44px; }
.demo__go .btn { width: 100%; }
.demo__try { max-width: 56ch; font-size: 16.5px; color: #cfd6ee; }
.demo__try b { color: var(--fill); }
.shots { display: grid; gap: 28px; align-items: end; }
.shot figcaption { margin-top: 12px; font: 600 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: #aab4d6; }
.shot--chat { display: grid; justify-items: center; }
.shot--chat .ph { width: min(62%, 220px); filter: drop-shadow(0 0 1.5px rgba(190, 200, 235, .95)) drop-shadow(0 18px 24px rgba(0, 0, 0, .5)); }
.shot--chat figcaption { justify-self: center; }
.demo__note { margin-top: 26px; font-size: 14.5px; color: #aab4d6; }

/* 5. Inversión */

.money { display: grid; gap: 20px; }
.money > .quote { display: flex; flex-direction: column; }
.money > .quote .line { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; }
.money__side { display: grid; gap: 20px; }
.quote {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: 0 24px 40px -30px rgba(14, 22, 48, .35);
}
.quote__top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  background: var(--ink);
  font: 600 12px/1.3 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #b9c1de;
}
.quote__top b { color: #fff; font-weight: 700; overflow-wrap: anywhere; }
.line { padding: 20px; border-bottom: 1px solid var(--line-2); }
.line__h { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.line__h b { font-size: 18px; letter-spacing: -.015em; line-height: 1.25; }
.v { font-size: 20px; font-weight: 800; letter-spacing: -.02em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.line small { display: block; margin-top: 6px; max-width: 54ch; font-size: 15px; line-height: 1.45; color: var(--mute); }
.total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 20px;
  background: var(--brand);
  color: #fff;
}
.total span { font: 700 12.5px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.total strong { font-size: clamp(34px, 6vw, 48px); font-weight: 800; letter-spacing: -.035em; line-height: 1; font-variant-numeric: tabular-nums; }
@media (max-width: 519px) { .total { flex-direction: column; align-items: flex-start; gap: 8px; } }
.quote__g { display: flex; align-items: center; gap: 10px; padding: 14px 20px; background: var(--ok-soft); font-size: 15.5px; font-weight: 650; color: #064d34; }

.card { padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 22px; }
.card h3 { margin-bottom: 14px; font-size: 22px; }
.card__k { display: block; margin-bottom: 6px; font: 700 11.5px/1.2 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--brand-deep); }
.card p { font-size: 16.5px; color: var(--ink-2); }
.card p + p { margin-top: 10px; }

.duo .card { display: flex; flex-direction: column; }
.card p.small { margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--line); font-size: 15.5px; }
.split { display: flex; gap: 3px; height: 50px; margin-bottom: 14px; border-radius: 12px; overflow: hidden; }
.split span { display: grid; place-items: center; min-width: 0; font-size: 14.5px; font-weight: 800; font-variant-numeric: tabular-nums; }
.split__a { background: var(--brand); color: #fff; }
.split__b { background: var(--fill); color: var(--ink); }
.plain { display: grid; gap: 10px; }
.plain li { position: relative; padding-left: 18px; font-size: 16.5px; color: var(--ink-2); }
.plain li::before { content: ""; position: absolute; left: 0; top: .72em; width: 8px; height: 2px; background: var(--mute); }
.plain b { color: var(--ink); }
.range { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; margin-bottom: 10px; }
.range strong { font-size: clamp(28px, 5vw, 34px); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; }
.range span { font-size: 15.5px; color: var(--mute); }

.duo { display: grid; gap: 20px; margin-top: 20px; }
.mods li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 4px 18px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--line);
  font-size: 16px;
  color: var(--ink-2);
}
.mods li:first-child { padding-top: 0; }
.mods li:last-child { padding-bottom: 0; border-bottom: 0; }
.mods b { white-space: nowrap; color: var(--ink); font-variant-numeric: tabular-nums; }

.nope { margin-top: 20px; padding: 22px; border: 2px dashed #bcc4de; border-radius: 22px; }
.nope h3 { margin-bottom: 14px; font-size: 22px; }
.nope__list { display: grid; gap: 10px; }
.nope__list li { display: flex; gap: 10px; align-items: flex-start; break-inside: avoid; font-size: 16.5px; color: var(--ink-2); }
.nope__list .ico { margin-top: .12em; color: var(--warn); }

/* 6. Cuándo arrancamos */

.weeks { display: grid; gap: 14px; }
.wk {
  position: relative;
  padding: 50px 20px 22px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 20px;
}
.wk::before {
  content: "";
  position: absolute;
  left: 20px;
  right: 20px;
  top: 20px;
  height: 8px;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--brand) var(--p), #d9dff2 var(--p));
}
.wk__n { font: 700 12px/1.2 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--brand-deep); }
.wk h3 { margin: 6px 0 6px; font-size: 21px; }
.wk p { font-size: 16px; color: var(--ink-2); }
.wk--live { background: var(--fill-soft); border-color: #f1d682; }
.wk--live::before { background: var(--ink); }
.wk--live .wk__n { color: var(--fill-ink); }
.wk__note { margin-top: 18px; font-size: 15px; color: var(--mute); }

.need { margin-top: 44px; padding: 22px; background: var(--paper); border: 1px solid var(--line); border-radius: 24px; }
.need__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; margin-bottom: 16px; }
.need h3 { font-size: 24px; }
.need__prog { display: flex; align-items: center; gap: 10px; color: var(--ink-2); font-size: 16px; }
.need__prog b { font-size: 22px; letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.ck { display: grid; gap: 10px; }
.ck label {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-height: 56px;
  padding: 14px 16px;
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 16px;
  font-size: 16.5px;
  line-height: 1.4;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease;
}
.ck label:hover { border-color: #aab4d6; }
.ck input {
  appearance: none;
  -webkit-appearance: none;
  flex: none;
  width: 26px;
  height: 26px;
  margin: 0;
  background: #fff;
  border: 2px solid #7f89ab;
  border-radius: 8px;
  cursor: pointer;
}
.ck input:checked {
  background: var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 16px no-repeat;
  border-color: var(--ok);
}
.ck input:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
.ck label:has(input:checked) { border-color: var(--ok); background: #f1fbf6; }
.ck label:has(input:checked) span { color: var(--mute); }
.need__hint { margin-top: 14px; font-size: 14.5px; color: var(--mute); }

/* Cierre */

.close { position: relative; isolation: isolate; overflow: clip; padding: 64px 0 72px; background: var(--brand); color: #fff; }
.close__grid { display: grid; gap: 40px; align-items: center; }
.close h2 { margin-top: 16px; }
.close__p { max-width: 52ch; margin-bottom: 28px; font-size: 19px; color: rgba(255, 255, 255, .94); }
.close__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.close__cta .btn--xl { flex: 0 1 auto; }
@media (max-width: 519px) { .close__cta .btn { flex: 1 1 100%; } }
.close__who { margin-top: 28px; font-size: 16.5px; color: rgba(255, 255, 255, .92); }
.close__who b { color: #fff; }
.close__art { justify-self: center; width: min(100%, 230px); }
.bigmark { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.bigmark i { aspect-ratio: 1; border-radius: 18px; background: var(--fill); transition: background-color .5s ease; }
.js .bigmark i { background: rgba(255, 255, 255, .2); }
.js .bigmark.on i { background: var(--fill); }
.bigmark i:nth-child(2) { transition-delay: .12s; }
.bigmark i:nth-child(3) { transition-delay: .24s; }
.bigmark i:nth-child(4) { transition-delay: .36s; }
.bigmark i:nth-child(5) { transition-delay: .48s; }
.bigmark i:nth-child(6) { transition-delay: .6s; }
.bigmark__t { margin-top: 16px; text-align: center; font: 700 13px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: rgba(255, 255, 255, .92); }

.foot { padding: 28px 0 30px; background: var(--ink); color: #aab4d6; font-size: 14px; line-height: 1.55; }
.foot p + p { margin-top: 8px; }

/* Las columnas de una sola pista no deben crecer más que la pantalla */
.probs, .path, .weeks, .ck, .tp, .money, .money__side, .duo, .shots, .also__list, .nope__list { grid-template-columns: minmax(0, 1fr); }

/* ---------- Entrada al hacer scroll ---------- */

.js .rv { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.js .rv.in { opacity: 1; transform: none; }

/* ---------- Pantallas más anchas ---------- */

@media (max-width: 359px) {
  .hero h1 { font-size: 31px; }
  .slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brand strong { white-space: nowrap; }
  .top__pre { display: none; }
  .top__end { display: inline-block; }
  .top__end::first-letter { text-transform: uppercase; }
}

@media (min-width: 520px) {
  .brand small { display: block; }
}

@media (min-width: 640px) {
  .weeks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .demo__go .btn { width: auto; }
}

@media (min-width: 760px) {
  body { font-size: 18px; }
  .sec { padding: 88px 0; }
  .head { margin-bottom: 44px; }
  .probs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .prob { padding: 18px 18px 28px; }
  .facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .facts > div { padding: 20px 20px; border-left: 1px solid rgba(255, 255, 255, .18); }
  .facts > div:nth-child(n+3) { border-top: 0; }
  .facts > div:first-child { padding-left: 0; border-left: 0; }
  .also { padding: 28px 30px; }
  .also__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nope__list { display: block; columns: 2; column-gap: 40px; }
  .nope__list li { margin-bottom: 10px; }
  .ck { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .need { padding: 28px 30px 24px; }
  .card, .nope { padding: 26px; }
  .line, .quote__top, .quote__g, .total { padding-left: 26px; padding-right: 26px; }
  .tabs__list {
    display: inline-flex;
    gap: 4px;
    padding: 6px;
    background: var(--ink);
    border-radius: 18px;
  }
  .tabs [role="tab"] { min-height: 52px; padding-right: 18px; border: 0; background: transparent; color: #d4dbf3; border-radius: 13px; }
  .tabs [role="tab"]:hover { background: rgba(255, 255, 255, .1); }
  .tabs [role="tab"] .tabs__n { background: rgba(255, 255, 255, .12); color: #fff; }
  .tabs [role="tab"][aria-selected="true"] { background: var(--fill); color: var(--ink); }
  .tabs [role="tab"][aria-selected="true"] .tabs__n { background: var(--ink); color: var(--fill); }
  .tabs [role="tab"]:focus-visible { outline-color: var(--fill); outline-offset: 2px; }
  .stage--phones { padding: 32px 24px 32px; }
}

@media (min-width: 900px) {
  .hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 56px; padding: 72px 0 64px; }
  .hero h1 { font-size: clamp(44px, 4.9vw, 68px); }
  .week { padding: 24px; }
  .slot__when { font-size: 11.5px; white-space: nowrap; }
  .slot { min-height: 124px; padding: 13px 12px 14px; }
  .slot__who { font-size: 19px; }
  .tp { grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr); gap: 44px; align-items: center; }
  .stage { min-height: 400px; }
  .stage--phones { min-height: 0; }
  .path { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
  .step { display: block; padding: 0 6px 0 0; }
  .step:not(:last-child)::after { left: 70px; right: -8px; top: 27px; bottom: auto; border-left: 0; border-top: 2px dashed #aeb9e6; }
  .step__ic { margin-bottom: 18px; }
  .step h3 { font-size: 21px; }
  .step p { font-size: 16px; }
  .demo__go { grid-template-columns: auto 1fr; align-items: center; gap: 12px 28px; justify-items: start; }
  .demo__try { margin: 0; }
  .shots { grid-template-columns: minmax(0, 1.5fr) minmax(0, .6fr) minmax(0, 1.25fr); gap: 28px; }
  .shot--chat .ph { width: 100%; }
  .money { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 28px; align-items: stretch; }
  .duo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 28px; align-items: stretch; }
  .nope { margin-top: 28px; }
  .close { padding: 88px 0 96px; }
  .close__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: 56px; }
  .close__art { width: min(100%, 260px); }
}

@media (min-width: 980px) {
  :root { --dock: 0px; }
  body { padding-bottom: 0; }
  .secnav {
    position: static;
    display: flex;
    gap: 2px;
    padding: 4px;
    background: rgba(255, 255, 255, .08);
    border: 0;
    border-radius: 16px;
    box-shadow: none;
  }
  .secnav a {
    min-height: 40px;
    flex-direction: row;
    gap: 8px;
    padding: 0 13px;
    border-radius: 12px;
    color: #d4dbf3;
    font-size: 14px;
  }
  .secnav a:hover { background: rgba(255, 255, 255, .1); }
  .secnav .cell { width: 11px; height: 11px; border-radius: 3.5px; background: rgba(255, 255, 255, .2); box-shadow: none; }
  .secnav a.is-past .cell { background: var(--fill); box-shadow: none; opacity: .55; }
  .secnav a[aria-current="location"] { background: var(--fill); color: var(--ink); }
  .secnav a[aria-current="location"] .cell { background: var(--ink); box-shadow: none; opacity: 1; }
  .secnav a[aria-current="location"]::before { content: none; }
  .secnav a:focus-visible { outline-color: var(--fill); outline-offset: 1px; }
}

@media (min-width: 980px) and (max-width: 1179px) { .brand small { display: none; } }

@media (min-width: 1040px) {
  .weeks { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- Movimiento reducido ---------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .rv { opacity: 1; transform: none; }
  .js .hl { background-size: 100% 92%; }
  .js .bigmark i { background: var(--fill); }
}

/* ---------- Impresión: guardar como PDF ---------- */

@page { size: A4 portrait; margin: 12mm; }

@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html { scroll-behavior: auto; scroll-padding-top: 0; }
  body { padding: 0; font-size: 12.5px; background: #fff; }
  .top, .secnav, .skip, .hero__cta, .try, .demo__go .btn, .close__cta, .need__hint, .tabs__list { display: none !important; }
  .print-only { display: block !important; }
  .js .rv { opacity: 1 !important; transform: none !important; }
  .js .hl { background-size: 100% 92% !important; }
  .js .tp[hidden] { display: grid !important; }
  .js .bigmark i { background: var(--fill) !important; }

  .sec { padding: 26px 0; }
  .sec--paper { background: #fff; }
  #hoy, #recorrido, #demo, #arranque { break-inside: avoid; }
  .head { margin-bottom: 20px; break-after: avoid; break-inside: avoid; }
  .hero { min-height: 262mm; display: flex; flex-direction: column; break-after: page; }
  .hero__grid { flex: 1; grid-template-columns: minmax(0, 1fr); align-content: center; gap: 30px; padding: 28px 0; }
  .hero h1 { font-size: 46px; }
  .week { max-width: 440px; }
  .slot { min-height: 104px; }
  .slot__when { font-size: 10.5px; white-space: nowrap; }
  h2 { font-size: 27px; break-after: avoid; }
  h3 { break-after: avoid; }
  .head p:not(.eyebrow) { font-size: 14px; }
  .lead { font-size: 15px; }

  .prob, .step, .wk, .card, .quote, .nope, .also, .need, .human, .tp, .shot, .ck li, .week, .line { break-inside: avoid; }
  .tp { gap: 18px; padding: 8px 0 22px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  .tp + .tp { border-top: 1px solid var(--line); padding-top: 22px; }
  .stage { min-height: 0; padding: 14px 14px 22px; }
  .stage--phones { padding: 16px 12px 16px; }
  .tp__txt h3 { font-size: 22px; margin: 4px 0 10px; }
  .ticks li { font-size: 13.5px; }
  .goal { font-size: 13.5px; padding: 8px 12px; }

  .probs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .path { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
  .step { display: block; padding: 0; }
  .step:not(:last-child)::after { left: 66px; right: -6px; top: 27px; bottom: auto; border-left: 0; border-top: 2px dashed #aeb9e6; }
  .step__ic { margin-bottom: 12px; }
  .step h3 { font-size: 16px; }
  .step p { font-size: 12.5px; }

  .demo { background: var(--paper) !important; color: var(--ink) !important; }
  .demo::before { display: none; }
  .sec--ink .head p:not(.eyebrow), .demo__try, .demo__note, .shot figcaption { color: var(--ink-2) !important; }
  .sec--ink .eyebrow { color: var(--brand-deep); }
  .demo h2 { color: var(--ink); }
  .demo .mini i { background: #cdd3e8; }
  .demo .mini[data-n="4"] i:nth-child(-n+4) { background: var(--fill); box-shadow: inset 0 0 0 1px rgba(74, 54, 0, .28); }
  .demo__go { display: block; margin-bottom: 20px; }
  .demo__url { font-size: 14px; font-weight: 700; margin-top: 8px; }
  .shots { grid-template-columns: minmax(0, 1.5fr) minmax(0, .6fr) minmax(0, 1.25fr); gap: 14px; }
  .shot--chat .ph { width: 100%; }

  .money { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .money__side { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
  .money > .quote .line { flex: none; }
  .duo { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .mods li { grid-template-columns: minmax(0, 1fr) auto; }
  .nope__list { columns: 2; }
  .weeks { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .wk { padding: 44px 14px 16px; }
  .wk p { font-size: 12.5px; }
  .wk h3 { font-size: 16px; }
  .ck { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ck label { font-size: 13px; padding: 10px 12px; min-height: 0; }

  .close { padding: 34px 0 40px; break-inside: avoid; }
  .close__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: 28px; }
  .close__art { width: 150px; }
  .foot { padding: 16px 0; }
}
