/* AgenteWsp · sitio público.
   Misma identidad que la app: lima eléctrico (equipo) + azul eléctrico (IA), neutros fríos,
   teselas bento planas y vidrio solo en lo que flota. Sin morados, terracota, crema ni serif. */

:root {
  color-scheme: light dark;

  --ink: oklch(0.18 0.012 265);

  /* Marca (lima) e IA (azul eléctrico) */
  --brand: oklch(0.9 0.21 125);
  --brand-50: oklch(0.98 0.021 125);
  --brand-100: oklch(0.955 0.042 125);
  --brand-300: oklch(0.86 0.147 125);
  --brand-500: oklch(0.69 0.21 125);
  --brand-700: oklch(0.49 0.1764 125);
  --ai: oklch(0.78 0.17 232);
  --ai-50: oklch(0.98 0.017 232);
  --ai-600: oklch(0.58 0.1615 232);
  --ai-900: oklch(0.34 0.0952 232);

  /* Superficies */
  --bg: oklch(0.965 0.005 265);
  --fg: var(--ink);
  --card: oklch(0.995 0.002 265);
  --muted: oklch(0.94 0.006 265);
  --muted-fg: oklch(0.46 0.015 265);
  --border: oklch(0.88 0.008 265);
  --brand-text: var(--brand-700);
  --ring: var(--ai-600);

  /* Tesela invertida: negra en claro, blanca en oscuro */
  --inverse: oklch(0.2 0.012 265);
  --inverse-fg: oklch(0.97 0.004 265);
  --inverse-muted: oklch(0.76 0.01 265);
  --inverse-edge: oklch(1 0 0 / 0.1);
  --inverse-accent: var(--brand);

  /* Las tres voces de la bandeja */
  --voice-contact: var(--card);
  --voice-contact-fg: var(--fg);
  --voice-human: oklch(0.93 0.1155 125);
  --voice-human-fg: var(--ink);
  --voice-ai: oklch(0.94 0.085 232);
  --voice-ai-fg: var(--ai-900);

  /* Teselas bento (siempre con tinta encima) */
  --tile-brand: var(--brand);
  --tile-sky: oklch(0.9 0.102 232);
  --tile-butter: oklch(0.95 0.15 100);
  --tile-mint: oklch(0.92 0.12 160);
  --tile-fg: var(--ink);

  /* Vidrio */
  --glass: oklch(1 0 0 / 0.58);
  --glass-strong: oklch(1 0 0 / 0.82);
  --glass-edge: oklch(0.25 0.02 265 / 0.1);

  --shadow-tile: 0 1px 2px oklch(0.2 0.02 265 / 0.04), 0 14px 32px -14px oklch(0.2 0.03 265 / 0.16);
  --shadow-float: 0 2px 6px oklch(0.2 0.02 265 / 0.06), 0 30px 64px -18px oklch(0.2 0.04 265 / 0.3);
  --shadow-button: inset 0 1px 0 oklch(1 0 0 / 0.5), 0 1px 2px oklch(0.3 0.08 125 / 0.3);

  --ambient:
    radial-gradient(52rem 34rem at 0% -4%, color-mix(in oklch, var(--brand) 30%, transparent), transparent 70%),
    radial-gradient(46rem 32rem at 104% 6%, color-mix(in oklch, oklch(0.86 0.119 232) 38%, transparent), transparent 70%),
    radial-gradient(56rem 38rem at 62% 112%, color-mix(in oklch, var(--brand) 16%, transparent), transparent 72%);

  --radius: 0.75rem;
  --font: "Onest", ui-sans-serif, system-ui, -apple-system, "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: oklch(0.15 0.008 265);
    --fg: oklch(0.97 0.004 265);
    --card: oklch(0.2 0.01 265);
    --muted: oklch(0.245 0.012 265);
    --muted-fg: oklch(0.74 0.012 265);
    --border: oklch(0.31 0.012 265);
    --brand-text: var(--brand-300);
    --ring: oklch(0.78 0.1564 232);

    --inverse: oklch(0.96 0.004 265);
    --inverse-fg: var(--ink);
    --inverse-muted: oklch(0.42 0.012 265);
    --inverse-edge: oklch(0.18 0.012 265 / 0.12);
    --inverse-accent: oklch(0.49 0.1764 125);

    --voice-contact: oklch(0.26 0.012 265);
    --voice-human: oklch(0.41 0.126 138);
    --voice-human-fg: var(--brand-50);
    --voice-ai: oklch(0.34 0.102 232);
    --voice-ai-fg: var(--ai-50);

    --glass: oklch(0.24 0.012 265 / 0.55);
    --glass-strong: oklch(0.2 0.012 265 / 0.78);
    --glass-edge: oklch(1 0 0 / 0.1);

    --shadow-tile: inset 0 1px 0 oklch(1 0 0 / 0.05), 0 18px 40px -16px oklch(0 0 0 / 0.65);
    --shadow-float: inset 0 1px 0 oklch(1 0 0 / 0.07), 0 36px 72px -20px oklch(0 0 0 / 0.75);

    --ambient:
      radial-gradient(52rem 34rem at 0% -4%, color-mix(in oklch, var(--brand) 14%, transparent), transparent 70%),
      radial-gradient(46rem 32rem at 104% 6%, color-mix(in oklch, var(--ai) 18%, transparent), transparent 70%),
      radial-gradient(56rem 38rem at 62% 112%, color-mix(in oklch, var(--brand) 8%, transparent), transparent 72%);
  }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font);
  font-size: 1.0625rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::before { content: ""; position: fixed; inset: 0; z-index: -1; background: var(--ambient); pointer-events: none; }
h1, h2, h3, p, ul, ol, figure, dl { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
img, svg { display: block; max-width: 100%; }
:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; border-radius: 0.5rem; }
.wrap { width: min(100% - 2rem, 72rem); margin-inline: auto; }
@media (min-width: 40rem) { .wrap { width: min(100% - 4rem, 72rem); } }
.skip {
  position: absolute; left: 1rem; top: -4rem; z-index: 50;
  padding: 0.6rem 1rem; border-radius: 0.75rem;
  background: var(--inverse); color: var(--inverse-fg); text-decoration: none; font-weight: 600;
}
.skip:focus { top: 1rem; }

/* ---------- Tipografía por roles ---------- */
.display { font-size: clamp(2.5rem, 1.55rem + 4.6vw, 4.9rem); font-weight: 640; letter-spacing: -0.035em; line-height: 1.02; text-wrap: balance; }
.title { font-size: clamp(1.8rem, 1.3rem + 2.1vw, 2.9rem); font-weight: 620; letter-spacing: -0.028em; line-height: 1.08; text-wrap: balance; }
.heading { font-size: 1.3rem; font-weight: 600; letter-spacing: -0.012em; line-height: 1.2; }
.lead { font-size: clamp(1.08rem, 1rem + 0.45vw, 1.3rem); line-height: 1.5; color: var(--muted-fg); text-wrap: pretty; max-width: 38rem; }
.eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; font-weight: 600; color: var(--brand-text); letter-spacing: 0.005em; }
.eyebrow::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--brand-500); }
.numeral { font-size: clamp(3.4rem, 2.4rem + 3.6vw, 5.2rem); font-weight: 300; letter-spacing: -0.045em; line-height: 0.95; font-variant-numeric: tabular-nums; }
.small { font-size: 0.9rem; color: var(--muted-fg); }
.mark { text-decoration: underline; text-decoration-color: var(--brand); text-decoration-thickness: 0.11em; text-underline-offset: 0.1em; text-decoration-skip-ink: none; }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 2.9rem; padding: 0.7rem 1.35rem; border-radius: 999px;
  font: inherit; font-size: 1rem; font-weight: 600; text-decoration: none; letter-spacing: -0.005em;
  border: 1px solid transparent; cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--brand); color: var(--ink); box-shadow: var(--shadow-button); }
.btn-ghost { background: var(--glass); color: var(--fg); border-color: var(--glass-edge); -webkit-backdrop-filter: blur(22px) saturate(1.7); backdrop-filter: blur(22px) saturate(1.7); }
.btn-sm { min-height: 2.4rem; padding: 0.45rem 1rem; font-size: 0.95rem; }

/* ---------- Navegación (vidrio: flota) ---------- */
.nav-shell { position: sticky; top: 0.75rem; z-index: 20; padding-top: 0.75rem; }
.nav {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 0.5rem 0.55rem 0.5rem 1rem; border-radius: 999px;
  background: var(--glass-strong); border: 1px solid var(--glass-edge); box-shadow: var(--shadow-float);
  -webkit-backdrop-filter: blur(22px) saturate(1.7); backdrop-filter: blur(22px) saturate(1.7);
}
.brand { display: inline-flex; align-items: center; gap: 0.6rem; font-weight: 650; letter-spacing: -0.02em; text-decoration: none; font-size: 1.1rem; }
.brand-mark { width: 1.9rem; height: 1.9rem; flex: none; }
.brand-mark rect, .brand-mark circle { fill: var(--brand); }
.brand-mark path { fill: var(--ink); }
.nav-links { display: none; gap: 0.25rem; }
.nav-links a { padding: 0.45rem 0.85rem; border-radius: 999px; text-decoration: none; font-size: 0.95rem; font-weight: 500; color: var(--muted-fg); transition: background 0.15s ease, color 0.15s ease; }
.nav-links a:hover { background: var(--muted); color: var(--fg); }
@media (min-width: 52rem) { .nav-links { display: flex; } }

/* ---------- Hero ---------- */
.hero { padding-block: clamp(2.5rem, 6vw, 5.5rem) clamp(2.5rem, 5vw, 4.5rem); }
.hero-grid { display: grid; gap: clamp(2.5rem, 6vw, 4.5rem); grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); align-items: center; }
@media (max-width: 56rem) { .hero-grid { grid-template-columns: minmax(0, 1fr); } }
.hero-copy { display: grid; gap: 1.5rem; justify-items: start; }
.actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.hero-note { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; font-size: 0.9rem; color: var(--muted-fg); }
.hero-note li { display: inline-flex; align-items: center; gap: 0.45rem; }
.hero-note svg { width: 1rem; height: 1rem; color: var(--brand-text); }

/* Escenario del chat: formas planas detrás para que el vidrio tenga algo que desenfocar */
.stage { position: relative; isolation: isolate; padding: 1.25rem 0.5rem 0; }
.stage::before { content: ""; position: absolute; z-index: -1; top: 0; right: 0; width: min(46%, 11rem); aspect-ratio: 1; border-radius: 50%; background: var(--brand); }
.stage::after { content: ""; position: absolute; z-index: -1; bottom: 2.75rem; left: 0; width: min(34%, 8rem); aspect-ratio: 1; border-radius: 2rem; background: var(--tile-sky); transform: rotate(-9deg); }
.chat {
  width: min(100%, 26rem); margin-inline: auto; overflow: hidden;
  border-radius: 1.8rem; background: var(--glass-strong); border: 1px solid var(--glass-edge); box-shadow: var(--shadow-float);
  -webkit-backdrop-filter: blur(22px) saturate(1.7); backdrop-filter: blur(22px) saturate(1.7);
}
.chat-head { display: flex; align-items: center; gap: 0.75rem; padding: 0.9rem 1rem; border-bottom: 1px solid var(--glass-edge); }
.avatar { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: none; border-radius: 50%; background: var(--tile-mint); color: var(--tile-fg); font-weight: 650; font-size: 0.9rem; }
.chat-head strong { display: block; font-size: 0.98rem; line-height: 1.2; letter-spacing: -0.01em; }
.chat-head small { display: block; font-size: 0.78rem; color: var(--muted-fg); }
.status { margin-left: auto; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.25rem 0.6rem; border-radius: 999px; background: var(--voice-ai); color: var(--voice-ai-fg); font-size: 0.72rem; font-weight: 600; white-space: nowrap; }
.status i { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--ai); }
.msgs { display: grid; gap: 0.7rem; padding: 1rem; }
.msg { display: grid; gap: 0.25rem; max-width: 88%; }
.msg p { padding: 0.65rem 0.9rem; font-size: 0.95rem; line-height: 1.4; }
.msg.in { justify-self: start; }
.msg.in p { background: var(--voice-contact); color: var(--voice-contact-fg); border-radius: 1.2rem 1.2rem 1.2rem 0.26rem; box-shadow: var(--shadow-tile); }
.msg.ai, .msg.team { justify-self: end; }
.msg.ai p { background: var(--voice-ai); color: var(--voice-ai-fg); border-radius: 1.2rem 1.2rem 0.26rem 1.2rem; }
.msg.team p { background: var(--voice-human); color: var(--voice-human-fg); border-radius: 1.2rem 1.2rem 0.26rem 1.2rem; }
.who { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.72rem; font-weight: 600; color: var(--muted-fg); }
.msg.ai .who, .msg.team .who { justify-self: end; }
.who svg { width: 0.85rem; height: 0.85rem; }
.event { justify-self: center; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.3rem 0.75rem; border-radius: 999px; background: var(--muted); color: var(--muted-fg); font-size: 0.75rem; font-weight: 600; }
.event svg { width: 0.9rem; height: 0.9rem; }
.composer { margin: 0 1rem 1rem; padding: 0.7rem 1rem; border-radius: 999px; background: var(--glass); border: 1px solid var(--glass-edge); color: var(--muted-fg); font-size: 0.9rem; display: flex; justify-content: space-between; }
.stage figcaption { margin-top: 1.25rem; text-align: center; }

/* ---------- Secciones ---------- */
.section { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.section-head { display: grid; gap: 0.9rem; margin-bottom: clamp(1.75rem, 4vw, 3rem); justify-items: start; }

/* Pasos */
.steps { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); counter-reset: paso; }
@media (max-width: 52rem) { .steps { grid-template-columns: minmax(0, 1fr); } }
.step { display: grid; gap: 0.75rem; align-content: start; padding: clamp(1.25rem, 2.4vw, 1.75rem); border-radius: 1.5rem; background: var(--card); box-shadow: var(--shadow-tile); }
.step .numeral { color: var(--brand-text); font-size: clamp(2.8rem, 2.2rem + 2vw, 3.8rem); }
.step p { color: var(--muted-fg); }

/* Bento */
.bento { display: grid; gap: 1rem; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.tile {
  grid-column: span 2; position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 0.75rem;
  min-height: 15rem; padding: clamp(1.25rem, 2.4vw, 1.75rem); border-radius: 1.5rem; box-shadow: var(--shadow-tile);
  background: var(--card); color: var(--fg);
}
.tile p { color: inherit; opacity: 0.82; max-width: 34rem; }
.tile .heading { color: inherit; }
.span-3 { grid-column: span 3; }
.span-6 { grid-column: 1 / -1; }
.tile-brand { background: var(--tile-brand); color: var(--tile-fg); }
.tile-sky { background: var(--tile-sky); color: var(--tile-fg); }
.tile-butter { background: var(--tile-butter); color: var(--tile-fg); }
.tile-mint { background: var(--tile-mint); color: var(--tile-fg); }
.tile-inverse { background: var(--inverse); color: var(--inverse-fg); }
.tile-inverse p { opacity: 1; color: var(--inverse-muted); }
.tile-inverse .eyebrow, .cta .eyebrow { color: var(--inverse-accent); }
.cta .eyebrow::before { background: var(--inverse-accent); }
.icon-badge { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 1rem; background: oklch(1 0 0 / 0.6); color: var(--ink); }
.icon-badge svg { width: 1.5rem; height: 1.5rem; }
.push { margin-top: auto; }
.tile-agenda { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.75rem 2.5rem; min-height: 0; }
.tile-agenda p { color: var(--muted-fg); opacity: 1; }
.agenda-copy { flex: 1 1 16rem; display: grid; gap: 0.75rem; max-width: 24rem; }
.agenda-flow { flex: 2 1 30rem; display: grid; gap: 0.75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.agenda-flow li { display: grid; gap: 0.3rem; align-content: start; padding: 1rem; border-radius: 1.1rem; background: var(--muted); }
.agenda-flow strong { font-size: 1rem; font-weight: 620; letter-spacing: -0.01em; line-height: 1.25; }
.agenda-flow li > span:last-child { font-size: 0.88rem; line-height: 1.4; color: var(--muted-fg); }
.agenda-flow .icon-badge { width: 2.5rem; height: 2.5rem; border-radius: 0.85rem; margin-bottom: 0.4rem; background: var(--tile-brand); }
.agenda-flow li:nth-child(2) .icon-badge { background: var(--tile-sky); }
.agenda-flow li:nth-child(3) .icon-badge { background: var(--tile-butter); }
.agenda-flow li:nth-child(4) .icon-badge { background: var(--tile-mint); }
@media (max-width: 64rem) { .agenda-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 40rem) { .agenda-flow { grid-template-columns: minmax(0, 1fr); } }
.chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.chip { padding: 0.3rem 0.75rem; border-radius: 999px; font-size: 0.85rem; font-weight: 600; border: 1.5px solid oklch(0.18 0.012 265 / 0.55); color: var(--ink); }
.switch { display: inline-flex; padding: 0.25rem; border-radius: 999px; background: var(--inverse-edge); width: fit-content; }
.switch span { padding: 0.45rem 1rem; border-radius: 999px; font-size: 0.9rem; font-weight: 600; color: var(--inverse-muted); }
.switch .on { background: var(--brand); color: var(--ink); box-shadow: var(--shadow-button); }
.bubble-mini { padding: 0.65rem 0.9rem; border-radius: 1.2rem 1.2rem 1.2rem 0.26rem; background: oklch(1 0 0 / 0.55); color: var(--ink); font-size: 0.95rem; line-height: 1.4; width: fit-content; max-width: 100%; }
.stack { display: grid; gap: 0.4rem; width: fit-content; }
.stack span { padding: 0.35rem 0.8rem; border-radius: 0.8rem; background: oklch(1 0 0 / 0.6); font-size: 0.85rem; font-weight: 600; color: var(--ink); }
.stack span:nth-child(2) { margin-left: 0.9rem; }
.stack span:nth-child(3) { margin-left: 1.8rem; }
@media (max-width: 56rem) {
  .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tile, .span-3 { grid-column: span 1; }
  .tile.wide-md, .span-6 { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
  .bento { grid-template-columns: minmax(0, 1fr); }
  .tile, .span-3, .tile.wide-md { grid-column: 1 / -1; }
  .tile { min-height: 0; }
}

/* Preguntas */
.faq { display: grid; gap: 0.75rem; max-width: 52rem; }
.faq details { border-radius: 1.25rem; background: var(--card); box-shadow: var(--shadow-tile); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.35rem; font-weight: 600; font-size: 1.05rem; letter-spacing: -0.01em; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--muted) center / 0.8rem no-repeat; background-image: linear-gradient(var(--fg), var(--fg)), linear-gradient(var(--fg), var(--fg)); background-size: 0.7rem 2px, 2px 0.7rem; background-position: center; background-repeat: no-repeat; transition: transform 0.2s ease; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding: 0 1.35rem 1.25rem; color: var(--muted-fg); max-width: 44rem; }

/* Contacto */
.cta { display: grid; gap: 1.25rem; justify-items: start; padding: clamp(1.75rem, 5vw, 3.5rem); border-radius: 2rem; background: var(--inverse); color: var(--inverse-fg); box-shadow: var(--shadow-float); }
.cta .lead { color: var(--inverse-muted); }
.cta .btn-primary { font-size: 1.05rem; }

/* Pie */
.footer { padding-block: 2.5rem 3rem; color: var(--muted-fg); font-size: 0.92rem; }
.footer-grid { display: grid; gap: 1rem 2rem; grid-template-columns: 1fr auto; align-items: start; }
@media (max-width: 40rem) { .footer-grid { grid-template-columns: 1fr; } }
.footer a { color: var(--fg); }
.footer nav { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
.legal { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--border); font-size: 0.82rem; max-width: 52rem; }

/* ---------- Página de texto (privacidad) ---------- */
.doc { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(3rem, 7vw, 5rem); }
.doc-body { display: grid; gap: 2rem; max-width: 46rem; }
.doc-card { display: grid; gap: 1.75rem; padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: 1.75rem; background: var(--card); box-shadow: var(--shadow-tile); }
.doc h2 { font-size: 1.3rem; font-weight: 620; letter-spacing: -0.015em; margin-bottom: 0.5rem; }
.doc p, .doc li { color: var(--muted-fg); }
.doc ul { margin-top: 0.5rem; }
.doc ul + p { margin-top: 0.9rem; }
.doc li { padding-left: 1.1rem; position: relative; margin-top: 0.4rem; }
.doc li::before { content: ""; position: absolute; left: 0; top: 0.72em; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--brand-500); }
.doc strong { color: var(--fg); font-weight: 600; }
.doc a { color: var(--brand-text); font-weight: 600; }
