    /* ─── TOKENS ─── */
    :root {
      --bg:       #FDFCFC;   /* eggshell — body background */
      --surface:  #FFFFFF;   /* pure white — cards */
      --n50:  #F2F2F2;
      --n100: #E5E5E5;
      --n200: #DCDCDC;
      --n300: #BDBDBD;
      --n400: #949494;
      --n500: #767676;
      --n600: #6E6E6E;
      --n700: #525252;
      --n800: #464646;
      --n900: #3D3D3D;
      --n950: #1C1C1C;
      --black: #000;
      --blue:  #1E6FD9;
      --green: #16A34A;
      --blue-l:  #3B8FF0;
      --green-l: #22C55E;
      --font: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
      --ease-slow: cubic-bezier(0.31, 0.325, 0, 0.92);
      --nav-h: 56px;         /* inner nav pill height */
      --nav-top: 14px;       /* gap from viewport top */
      --section-px: clamp(1.25rem, 4vw, 3.5rem);
      --container: min(100%, 81.5rem);
    }

    /* ─── RESET ─── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
    body {
      font-family: var(--font);
      background: var(--bg);
      color: var(--black);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      overflow-x: hidden;
    }
    img, svg { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }
    button { font-family: var(--font); cursor: pointer; background: none; border: none; }
    ul, ol { list-style: none; }
    input, textarea, select { font-family: var(--font); }

    /* ─── SKIP LINK ─── */
    .skip {
      position: absolute; top: -48px; left: 0;
      background: var(--black); color: #fff;
      padding: 8px 16px; font-size: 14px; font-weight: 600;
      z-index: 9999; border-radius: 0 0 8px 0; transition: top .2s;
    }
    .skip:focus { top: 0; }

    /* ─── LAYOUT ─── */
    .container { max-width: var(--container); margin: 0 auto; padding: 0 var(--section-px); }
    .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; }

    section { padding: 7rem 0; }

    /* ─── FLOATING NAV (LIQUID GLASS) ─── */
    #header {
      position: fixed;
      top: var(--nav-top);
      left: 50%;
      transform: translateX(-50%);
      width: calc(100% - 2.5rem);
      max-width: 1100px;
      z-index: 200;
      /* Liquid Glass */
      background: rgba(255, 255, 255, 0.48);
      backdrop-filter: blur(40px) saturate(200%) brightness(1.04);
      -webkit-backdrop-filter: blur(40px) saturate(200%) brightness(1.04);
      border-radius: 9999px;
      box-shadow:
        /* Specular top highlight */
        inset 0 1px 0 rgba(255,255,255,0.95),
        /* Bottom inner edge */
        inset 0 -1px 0 rgba(0,0,0,0.06),
        /* Left convex highlight */
        inset 1px 0 0 rgba(255,255,255,0.4),
        /* Outer luminous ring */
        0 0 0 0.5px rgba(255,255,255,0.7),
        /* Subtle dark outer outline */
        0 0 0 1px rgba(0,0,0,0.06),
        /* Close shadow */
        0 2px 4px rgba(0,0,0,0.04),
        /* Mid shadow */
        0 8px 28px rgba(0,0,0,0.06),
        /* Far ambient shadow */
        0 24px 64px rgba(0,0,0,0.05);
      transition: box-shadow .45s cubic-bezier(0.2, 0, 0, 1),
                  background .45s cubic-bezier(0.2, 0, 0, 1);
      isolation: isolate;
    }
    /* Glass refraction shimmer */
    #header::before {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: inherit;
      background: linear-gradient(
        155deg,
        rgba(255,255,255,0.55) 0%,
        rgba(255,255,255,0.22) 18%,
        rgba(255,255,255,0.04) 42%,
        rgba(255,255,255,0) 58%,
        rgba(255,255,255,0.04) 80%,
        rgba(255,255,255,0.1) 100%
      );
      pointer-events: none;
      z-index: -1;
    }
    #header.scrolled {
      background: rgba(255, 255, 255, 0.70);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.98),
        inset 0 -1px 0 rgba(0,0,0,0.07),
        inset 1px 0 0 rgba(255,255,255,0.5),
        0 0 0 0.5px rgba(255,255,255,0.75),
        0 0 0 1px rgba(0,0,0,0.07),
        0 2px 8px rgba(0,0,0,0.06),
        0 12px 40px rgba(0,0,0,0.09),
        0 32px 80px rgba(0,0,0,0.07);
    }
    .nav {
      height: var(--nav-h);
      display: flex; align-items: center;
      justify-content: space-between; gap: 1rem;
      padding: 0 1.5rem;
    }
    .nav-logo {
      display: flex; align-items: center; gap: 9px;
      /* Mismo estilo tipográfico que los títulos (.t-h1) */
      font-size: 1.0625rem; font-weight: 300; letter-spacing: -0.03em;
      color: var(--black);
    }
    .nav-logo-mark {
      width: 26px; height: 26px; border-radius: 7px;
      background: var(--black);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .nav-links { display: flex; align-items: center; gap: 2px; }
    .nav-links a {
      padding: 6px 12px; border-radius: 9999px;
      font-size: .875rem; font-weight: 500; color: var(--n600);
      transition: color .2s, background .2s;
    }
    .nav-links a:hover { color: var(--black); background: var(--n50); }
    .nav-links a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 4px; }
    .nav-right { display: flex; align-items: center; gap: 8px; }
    .nav-ghost {
      height: 2.125rem; padding: 0 1rem; border-radius: 9999px;
      font-size: .875rem; font-weight: 500; color: var(--n600);
      box-shadow: inset 0 0 0 1px rgba(0,0,0,.12);
      transition: background .2s, color .2s;
    }
    .nav-ghost:hover { background: var(--n50); color: var(--black); }
    .nav-primary {
      height: 2.125rem; padding: 0 1rem; border-radius: 9999px;
      font-size: .875rem; font-weight: 600;
      background: var(--black); color: #fff;
      transition: background .2s;
    }
    .nav-primary:hover { background: var(--n900); }

    /* Mobile toggle */
    .nav-toggle { display: none; flex-direction: column; gap: 5px; padding: 6px; margin-right: -.25rem; }
    .nav-toggle span { display: block; width: 18px; height: 1.5px; background: var(--black); border-radius: 2px; transition: transform .3s, opacity .3s; }
    .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

    .nav-mobile {
      display: none; position: fixed;
      inset: calc(var(--nav-top) + var(--nav-h) + 8px) 1.25rem auto;
      background: var(--surface);
      border-radius: 20px;
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.92),
        inset 0 -1px 0 rgba(0,0,0,0.05),
        0 0 0 1px rgba(0,0,0,0.06),
        0 4px 12px rgba(0,0,0,0.07),
        0 16px 48px rgba(0,0,0,0.12);
      flex-direction: column; padding: 1rem;
      z-index: 199; gap: 2px;
    }
    .nav-mobile.open { display: flex; }
    .nav-mobile a { font-size: 1rem; font-weight: 500; padding: 10px 16px; color: var(--n700); border-radius: 12px; transition: color .2s, background .2s; }
    .nav-mobile a:hover { color: var(--black); background: var(--n50); }
    .nav-mobile-cta { margin-top: 8px; padding: 10px 16px; border-radius: 12px; background: var(--black); color: #fff; font-size: 1rem; font-weight: 600; text-align: center; transition: background .2s; }
    .nav-mobile-cta:hover { background: var(--n900); }

    /* ─── TYPOGRAPHY ─── */
    .t-display {
      font-size: clamp(2.75rem, 7vw, 5.5rem);
      font-weight: 700; line-height: .96; letter-spacing: -0.04em;
    }
    .t-h1 {
      font-size: clamp(2rem, 4.5vw, 3.75rem);
      font-weight: 300; line-height: 1.05; letter-spacing: -0.03em;
    }
    .t-sub {
      font-size: clamp(1rem, 1.5vw, 1.125rem);
      font-weight: 400; line-height: 1.65; color: var(--n600);
    }
    .t-label {
      font-size: .6875rem; font-weight: 700;
      letter-spacing: .1em; text-transform: uppercase; color: var(--n500);
    }

    /* ─── BUTTONS ─── */
    .btn {
      display: inline-flex; align-items: center; gap: 8px;
      height: 2.75rem; padding: 0 1.25rem;
      border-radius: 9999px;
      font-size: .9375rem; font-weight: 600;
      transition: background .25s var(--ease-slow), color .25s, transform .25s, box-shadow .25s;
      white-space: nowrap; cursor: pointer;
    }
    .btn:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
    .btn:active { transform: scale(.98); }
    .btn-dark  { background: var(--black); color: #fff; }
    .btn-dark:hover  { background: var(--n900); }
    .btn-ghost { background: transparent; color: var(--n600); box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
    .btn-ghost:hover { background: var(--n50); color: var(--black); }
    .btn-lg { height: 3rem; padding: 0 1.5rem; font-size: 1rem; }

    /* Botón de demo: negro, letras en degradado y borde degradado que gira suavemente */
    @property --demo-angle {
      syntax: '<angle>';
      initial-value: 135deg;
      inherits: false;
    }
    .btn-demo,
    .btn-demo:hover {
      border: 1.5px solid transparent;
      background:
        linear-gradient(var(--black), var(--black)) padding-box,
        conic-gradient(from var(--demo-angle, 135deg), #BFA8D4, #EF7E7E, #F4A055, #BFA8D4) border-box;
    }
    .btn-demo {
      animation: demo-border-spin 7s linear infinite;
      transition: box-shadow .3s, transform .25s;
    }
    .btn-demo:hover { box-shadow: 0 4px 20px rgba(239,126,126,.3); }
    .btn-demo-label { color: #fff; }
    @keyframes demo-border-spin {
      to { --demo-angle: 495deg; }
    }

    /* ─── CARDS ─── */
    .card {
      border-radius: 1.5rem;
      background: var(--surface);
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);
    }
    .card-hover { transition: box-shadow .25s, transform .25s; }
    .card-hover:hover {
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.12), 0 8px 28px rgba(0,0,0,.09);
      transform: translateY(-2px);
    }

    /* ─── SECTION HEADER ─── */
    .sh { margin-bottom: 4rem; }
    .sh.center { text-align: center; }
    .sh.center .sh-sub { margin: 0 auto; }
    .sh-eyebrow {
      display: inline-flex; align-items: center; gap: 8px;
      margin-bottom: 1.25rem; color: var(--n500);
    }
    .sh-eyebrow-line { width: 20px; height: 1px; background: var(--n300); }
    .sh-title { margin-bottom: 1rem; }
    .sh-sub { max-width: 520px; }

    /* ─── HERO ─── */
    #hero {
      padding-top: calc(var(--nav-top) + var(--nav-h) + .25rem);
      padding-bottom: 0;
      text-align: center;
      position: relative; overflow: hidden;
    }
    /* Very subtle radial hint of color */
    #hero::before {
      content: '';
      position: absolute; top: 0; left: 50%; transform: translateX(-50%);
      width: 1000px; height: 500px;
      background: radial-gradient(ellipse at 50% 0%, rgba(30,111,217,.06) 0%, transparent 65%);
      pointer-events: none;
    }
    /* Puntitos grises que se desvanecen, como en la sección de solicitar información */
    #hero::after {
      content: '';
      position: absolute; inset: 0;
      background-image: radial-gradient(circle, rgba(0,0,0,.16) 1px, transparent 1.5px);
      background-size: 26px 26px;
      -webkit-mask-image: radial-gradient(60% 65% at 50% 22%, #000 0%, rgba(0,0,0,.45) 45%, transparent 78%);
      mask-image: radial-gradient(60% 65% at 50% 22%, #000 0%, rgba(0,0,0,.45) 45%, transparent 78%);
      pointer-events: none;
    }
    /* El hero ocupa exactamente la primera pantalla: el bloque queda anclado al borde
       inferior del viewport y la franja de compliance cae por debajo del fold */
    #hero > .container {
      display: flex; flex-direction: column;
      min-height: min(calc(100svh - var(--nav-top) - var(--nav-h) - .5rem), 1000px);
    }
    .hero-inner { position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1 0 auto; }
    .hero-inner > .ch-explorer { margin-top: auto; }
    .hero-badge {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 5px 14px 5px 8px; border-radius: 9999px;
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.1);
      background: var(--surface);
      font-size: .8125rem; font-weight: 500; color: var(--n600);
      margin-bottom: 2.5rem;
      animation: fade-up .7s .1s both;
    }
    .hero-badge-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--green-l);
      animation: badge-pulse 2.5s ease-in-out infinite;
    }
    @keyframes badge-pulse {
      0%,100% { box-shadow: 0 0 0 0 rgba(34,197,94,.5); }
      50%      { box-shadow: 0 0 0 5px rgba(34,197,94,0); }
    }
    .hero-h1 {
      font-size: clamp(2.625rem, 4.2vw, 3.5rem);
      font-weight: 300; line-height: 1.08; letter-spacing: -0.025em;
      max-width: 860px; margin: auto auto .875rem;
      color: var(--black);
    }
    .hero-h1 .muted { color: var(--n400); }
    .hero-gradient {
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .reveal-word {
      display: inline-block; opacity: 0;
      animation: text-reveal-word .8s var(--ease-slow) forwards;
    }
    @keyframes text-reveal-word {
      0%   { opacity:0; transform: scaleY(.95) scaleX(.92); filter: blur(10px); }
      40%  { transform: scaleY(1) scaleX(1); }
      60%  { filter: blur(0); }
      100% { transform: scaleY(1) scaleX(1); filter: blur(0); opacity:1; }
    }
    .hero-sub {
      font-size: clamp(.9375rem, 1.1vw, 1rem);
      font-weight: 300; letter-spacing: 0;
      color: var(--n600); max-width: 680px; margin: 0 auto .875rem;
      line-height: 1.5; animation: fade-up .7s .5s both;
    }
    .hero-sub strong { color: var(--n800); font-weight: 500; }
    .hero-role-pill {
      display: inline-flex; align-items: center; gap: 10px;
      margin: 0 auto 1.5rem;
      padding: 9px 20px;
      border-radius: 9999px;
      background: var(--surface);
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.1), 0 8px 24px rgba(0,0,0,.05);
    }
    .hero-role-dot {
      width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
      background: linear-gradient(135deg, #EF7E7E 0%, #F4A055 100%);
      animation: role-pulse 2.5s ease-in-out infinite;
    }
    @keyframes role-pulse {
      0%,100% { box-shadow: 0 0 0 0 rgba(239,126,126,.5); }
      50%      { box-shadow: 0 0 0 5px rgba(239,126,126,0); }
    }
    .hero-role {
      /* Altura fija: al escribir/borrar no salta la pill */
      display: inline-block;
      min-height: 1.35em;
      font-size: clamp(.9375rem, 1.1vw, 1.0625rem);
      font-weight: 600;
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      white-space: nowrap;
    }
    .hero-role::after {
      content: '';
      display: inline-block;
      width: 2px; height: 1.05em;
      margin-left: 3px;
      vertical-align: -0.18em;
      background: #EF7E7E;
      animation: caret-blink 1.1s steps(2, start) infinite;
    }
    @keyframes caret-blink {
      0%, 100% { opacity: 1; }
      50%      { opacity: 0; }
    }
    .hero-ctas {
      display: flex; align-items: center; justify-content: center;
      gap: 10px; flex-wrap: wrap; margin-bottom: 4.5rem;
      animation: fade-up .7s .65s both;
    }
    @keyframes fade-up {
      from { opacity:0; transform: translateY(14px); }
      to   { opacity:1; transform: none; }
    }
    /* Dashboard */
    .hero-dash-wrap {
      max-width: 960px; margin: 0 auto;
      animation: fade-up .9s .8s both;
    }
    .hero-dash {
      background: var(--n950);
      box-shadow: inset 0 0 0 .5px rgba(255,255,255,.09), 0 24px 80px rgba(0,0,0,.12);
      border-radius: 1.5rem 1.5rem 0 0;
      padding: 24px 24px 0;
      overflow: hidden;
    }
    .dash-dots { display: flex; gap: 6px; margin-bottom: 18px; }
    .dash-dot { width: 10px; height: 10px; border-radius: 50%; }
    .dash-dot:nth-child(1) { background: #FF5F57; }
    .dash-dot:nth-child(2) { background: #FFBD2E; }
    .dash-dot:nth-child(3) { background: #28CA42; }
    .dash-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
    .dash-card {
      background: rgba(255,255,255,.04);
      box-shadow: inset 0 0 0 .5px rgba(255,255,255,.08);
      border-radius: 10px; padding: 16px;
    }
    .dash-card-icon { font-size: 16px; margin-bottom: 8px; }
    .dash-card-label {
      font-size: 9px; font-weight: 700; letter-spacing: .08em;
      text-transform: uppercase; color: rgba(255,255,255,.35); margin-bottom: 6px;
    }
    .dash-card-val {
      font-size: 1.25rem; font-weight: 800; letter-spacing: -0.03em;
      color: rgba(255,255,255,.9); filter: blur(5px); user-select: none;
    }
    .dash-card-change {
      font-size: 10px; font-weight: 500; color: var(--green-l);
      margin-top: 4px; filter: blur(3px);
    }
    /* Channel explorer dentro del hero: el texto del hero va centrado, el explorador no */
    #hero .ch-explorer {
      text-align: left;
      scroll-margin-top: calc(var(--nav-top) + var(--nav-h) + 1rem);
    }
    /* Trust strip */
    .hero-trust {
      background: var(--surface);
      border-top: 1px solid rgba(0,0,0,.06);
      margin-top: 4.5rem;
      padding: 1rem var(--section-px);
      display: flex; align-items: center; justify-content: center;
      gap: 2rem; flex-wrap: wrap;
    }
    .hero-trust span {
      font-size: .8125rem; font-weight: 500; color: var(--n500);
      display: flex; align-items: center; gap: 6px;
    }
    .hero-trust span::before { content: '✓'; color: var(--green); font-size: 10px; font-weight: 700; }

    /* ─── PROBLEM ─── */
    /* Dos caminos sin salida: tono gris apagado, connotación negativa */
    .problem-cards {
      display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem;
      max-width: 860px; margin: 0 auto;
    }
    .problem-card {
      display: flex; flex-direction: column; align-items: center;
      padding: 2.75rem 2.25rem; text-align: center;
      border-radius: 1.5rem;
      background: var(--n50);
      box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
    }
    .problem-card-icon {
      display: flex; align-items: center; justify-content: center;
      width: 58px; height: 58px; border-radius: 50%;
      background: var(--surface);
      box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
      color: var(--n400);
      margin-bottom: 1.25rem;
    }
    .problem-card-tag {
      display: inline-flex; align-items: center; gap: 6px;
      font-size: .6875rem; font-weight: 700;
      text-transform: uppercase; letter-spacing: .08em;
      color: var(--n400); margin-bottom: .875rem;
    }
    .problem-card-x { color: #C25E5E; font-size: .8125rem; }
    .problem-card-text {
      font-size: clamp(1.125rem, 1.6vw, 1.375rem);
      font-weight: 300; letter-spacing: -0.02em; line-height: 1.35;
      color: var(--n600); max-width: 360px;
    }
    .problem-card-text strong { font-weight: 700; color: var(--n800); }

    /* ─── SOLUCIÓN: curva de crecimiento dibujada con el scroll ─── */
    #producto { position: relative; overflow: hidden; }
    .sol-chart {
      position: absolute; left: 0; right: 0; bottom: 0;
      width: 100%; height: auto;
      pointer-events: none;
    }
    .sol-content { position: relative; z-index: 1; padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
    .sol-stats {
      display: grid; grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 2.5rem 2rem; max-width: 600px;
    }
    .sol-stat { border-left: 1px solid rgba(0,0,0,.14); padding-left: 1.375rem; }
    .sol-stat-val {
      font-size: clamp(1.625rem, 2.6vw, 2.25rem);
      font-weight: 600; letter-spacing: -0.025em; line-height: 1.1;
      margin-bottom: .4375rem;
      width: fit-content;
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .sol-stat-label { font-size: .9375rem; color: var(--n600); line-height: 1.4; }
    .sol-cta { margin-top: 3.5rem; }

    /* ─── TABLE (light) ─── */
    .table-wrap {
      overflow-x: auto; border-radius: 1.5rem;
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);
      background: var(--surface);
    }
    table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
    th, td { padding: 1rem 1.5rem; text-align: left; border-bottom: 1px solid rgba(0,0,0,.06); }
    tr:last-child td { border-bottom: none; }
    thead th {
      font-size: .6875rem; font-weight: 700; text-transform: uppercase;
      letter-spacing: .08em; padding-block: 1.25rem; color: var(--n400);
    }
    thead th:last-child { color: var(--green); }
    tbody tr { transition: background .15s; }
    tbody tr:hover { background: var(--n50); }
    td:first-child { font-weight: 600; width: 150px; color: var(--n700); }
    td:nth-child(2) { color: var(--n400); }
    td:last-child { color: var(--black); font-weight: 500; }
    .chk { color: var(--green); margin-right: 6px; }

    /* ─── HOW IT WORKS ─── */
    .steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 2.5rem; position: relative; }
    .steps::before {
      content: ''; position: absolute; top: 34px;
      left: 20%; right: 20%;
      height: 1px; background: var(--n200); z-index: 0;
    }
    .step { position: relative; z-index: 1; text-align: center; }
    .step-num {
      width: 68px; height: 68px; border-radius: 50%;
      border: 1.5px solid transparent;
      background:
        linear-gradient(var(--surface), var(--surface)) padding-box,
        linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%) border-box;
      box-shadow: 0 2px 12px rgba(239,126,126,.18);
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 1.5rem;
      font-size: 1.375rem; font-weight: 700;
    }
    .step-title { font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.02em; margin-bottom: .625rem; }
    .step-body { font-size: .9375rem; color: var(--n600); line-height: 1.65; }
    .step-body code {
      font-size: .8125rem; background: var(--n100); border-radius: 5px;
      padding: 1px 6px; font-family: 'SF Mono','Fira Code',monospace; color: var(--n800);
    }
    /* ─── CÓMO LO HACEMOS: mapa de visibilidad ─── */
    #como-lo-hacemos { position: relative; overflow: hidden; }
    .map-bg {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      pointer-events: none;
      -webkit-mask-image: linear-gradient(to bottom, #000 62%, transparent 84%);
      mask-image: linear-gradient(to bottom, #000 62%, transparent 84%);
    }
    .map-content { position: relative; z-index: 1; }
    .map-stage { height: clamp(320px, 36vw, 470px); }
    .map-points {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 1.25rem;
    }
    .map-point {
      background: rgba(255,255,255,.72);
      backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
      border-radius: 1.25rem; padding: 1.875rem 1.5rem;
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.08), 0 2px 10px rgba(0,0,0,.05);
      text-align: center;
      transition: transform .25s var(--ease-slow), box-shadow .25s;
    }
    .map-point:hover {
      transform: translateY(-4px);
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.08), 0 12px 28px rgba(0,0,0,.09);
    }
    .map-point-visual {
      height: 70px;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 1.125rem;
    }
    .map-point-visual svg { height: 100%; width: auto; max-width: 100%; font-family: var(--font); }
    .map-point-text { font-size: .9375rem; color: var(--n600); line-height: 1.55; }
    .map-point-text strong { color: var(--n800); font-weight: 600; }
    .map-point-tags {
      display: flex; flex-wrap: wrap; gap: .375rem;
      justify-content: center; margin-top: .625rem;
    }
    .map-point-tag {
      font-size: .6875rem; font-weight: 600; color: var(--n600);
      background: var(--n50); border-radius: 9999px; padding: .1875rem .625rem;
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.06);
    }
    .map-pulse {
      fill: none; stroke: #EF7E7E; stroke-width: 2; opacity: 0;
      transform-box: fill-box; transform-origin: center;
      animation: map-pulse 3s ease-out infinite;
    }
    .map-pulse-2 { animation-delay: 1.5s; }
    @keyframes map-pulse {
      0%       { transform: scale(.35); opacity: .5; }
      80%,100% { transform: scale(2); opacity: 0; }
    }
    @media (prefers-reduced-motion: reduce) {
      .map-pulse { animation: none; }
    }

    /* ─── CHANNEL EXPLORER ─── */
    .ch-explorer {
      background: var(--surface);
      border-radius: 1.75rem;
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);
      overflow: hidden;
    }
    .ch-explorer-header {
      padding: .625rem 1.75rem .5rem;
      border-bottom: 1px solid rgba(0,0,0,.06);
    }
    .ch-explorer-title {
      font-size: clamp(1.125rem, 1.8vw, 1.375rem);
      font-weight: 300; letter-spacing: -0.025em;
      color: var(--black); line-height: 1.2;
    }
    .ch-panels { display: grid; min-height: 380px; }
    /* Todos los paneles ocupan la misma celda: el bloque mide siempre lo que el panel más alto */
    .ch-panel { grid-area: 1 / 1; display: flex; visibility: hidden; padding: 1.5rem 2.5rem; gap: 2.5rem; align-items: center; }
    .ch-panel.active { visibility: visible; }
    .ch-mock {
      flex: 1 1 55%; background: var(--n950); border-radius: 1.25rem;
      padding: 1.5rem; min-height: 280px;
      box-shadow: inset 0 0 0 .5px rgba(255,255,255,.07); overflow: hidden;
    }
    .ch-info { flex: 0 1 300px; }
    .ch-info-icon { font-size: 2rem; margin-bottom: .875rem; }
    .ch-info-title { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.03em; margin-bottom: .625rem; }
    .ch-info-lead { font-size: .9375rem; font-weight: 600; color: var(--n800); line-height: 1.55; margin-bottom: .625rem; }
    .ch-info-desc { font-size: .9375rem; color: var(--n600); line-height: 1.65; margin-bottom: 1.25rem; }
    .ch-info-feats { display: flex; flex-direction: column; gap: 7px; }
    .ch-info-feat { display: flex; align-items: flex-start; gap: 8px; font-size: .875rem; color: var(--n700); }
    .ch-info-feat::before { content: '✓'; color: var(--green); font-weight: 700; flex-shrink: 0; font-size: .75rem; margin-top: 2px; }
    .ch-explorer-footer {
      border-bottom: 1px solid rgba(0,0,0,.06);
      padding: .625rem 1rem;
      display: flex; align-items: center; gap: 8px;
      overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
    }
    .ch-explorer-footer::-webkit-scrollbar { display: none; }
    /* Centrado con márgenes auto: centra las pestañas cuando sobra espacio y, a diferencia
       de justify-content center, no corta el inicio cuando desbordan y se scrollean (móvil) */
    .ch-tab:first-child { margin-left: auto; }
    .ch-tab:last-child { margin-right: auto; }
    .ch-tab {
      padding: 7px 16px; font-size: .875rem; font-weight: 500;
      color: var(--n600); border-radius: 9999px; white-space: nowrap;
      background: var(--n50);
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);
      transition: color .2s, background .2s, box-shadow .2s;
    }
    .ch-tab:hover { color: var(--black); background: var(--n100); }
    .ch-tab.active {
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      color: #fff; font-weight: 600;
      box-shadow: 0 2px 10px rgba(239,126,126,.35);
    }
    /* Pista de scroll en la barra de pestañas: flechas + degradado cuando hay overflow (móvil) */
    .ch-footer-wrap { position: relative; }
    .ch-footer-wrap::before,
    .ch-footer-wrap::after {
      content: '';
      position: absolute; top: 1px; bottom: 0; width: 52px;
      pointer-events: none; opacity: 0; transition: opacity .25s;
    }
    .ch-footer-wrap::before {
      left: 0;
      background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 20'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23BFA8D4'/%3E%3Cstop offset='.5' stop-color='%23EF7E7E'/%3E%3Cstop offset='1' stop-color='%23F4A055'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M10 2 3 10l7 8' fill='none' stroke='url(%23g)' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat 12px center / 11px 18px,
        linear-gradient(to right, var(--surface) 30%, rgba(255,255,255,0));
    }
    .ch-footer-wrap::after {
      right: 0;
      background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 20'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23BFA8D4'/%3E%3Cstop offset='.5' stop-color='%23EF7E7E'/%3E%3Cstop offset='1' stop-color='%23F4A055'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M2 2l7 8-7 8' fill='none' stroke='url(%23g)' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center / 11px 18px,
        linear-gradient(to left, var(--surface) 30%, rgba(255,255,255,0));
    }
    .ch-footer-wrap.scroll-start::before { opacity: 1; }
    .ch-footer-wrap.scroll-end::after { opacity: 1; }
    .mock-label { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.35); }
    .mock-val { font-size: .8125rem; font-weight: 600; color: rgba(255,255,255,.8); }
    .mock-line { border-radius: 4px; background: rgba(255,255,255,.1); }
    .mock-text-tag {
      display: inline-block; padding: 2px 8px; border-radius: 4px;
      font-size: 10px; font-weight: 600;
      background: rgba(30,111,217,.25); color: rgba(91,172,255,.9);
    }

    /* ─── PRICING ─── */
    .billing-toggle {
      display: flex; justify-content: center; gap: 4px;
      width: fit-content; margin: 0 auto 2.5rem;
      background: var(--n50); border-radius: 9999px; padding: 4px;
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.06);
    }
    .billing-opt {
      display: flex; align-items: center; gap: 7px;
      border: none; background: transparent; cursor: pointer;
      font-family: var(--font); font-size: .875rem; font-weight: 600; color: var(--n600);
      padding: .5rem 1.25rem; border-radius: 9999px;
      transition: background .2s, color .2s, box-shadow .2s;
    }
    .billing-opt:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
    .billing-opt.active {
      background: var(--surface); color: var(--black);
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.06), 0 1px 4px rgba(0,0,0,.08);
    }
    .billing-save {
      font-size: .6875rem; font-weight: 700; padding: 1px 7px; border-radius: 9999px;
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      color: rgba(20,18,24,.85);
    }
    .plans { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.25rem; max-width: 920px; margin: 0 auto; }
    /* Por debajo no caben los roles del typewriter en una línea: una sola columna */
    @media (max-width: 1000px) {
      .plans { grid-template-columns: 1fr; max-width: 480px; }
    }
    .plan { position: relative; display: flex; flex-direction: column; padding: 2.5rem 2.25rem; border-radius: 1.75rem; }
    .plan .btn { width: 100%; justify-content: center; margin-top: auto; }
    .plan-name { font-size: 1.625rem; font-weight: 700; letter-spacing: -0.02em; color: var(--black); margin-bottom: 1.25rem; }
    .plan-price { font-size: 2.75rem; font-weight: 800; letter-spacing: -0.04em; line-height: 1; margin-bottom: .375rem; color: var(--black); }
    .plan-price-per { font-size: .8125rem; color: var(--n500); margin-bottom: 1.25rem; }
    .plan-desc { font-size: .875rem; color: var(--n600); line-height: 1.6; margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(0,0,0,.07); }
    .plan-feats { flex: 1; display: flex; flex-direction: column; gap: 8px; margin-bottom: 1.5rem; }
    .plan-feat { display: flex; align-items: flex-start; gap: 9px; font-size: .875rem; color: var(--n700); }
    .plan-feat::before {
      content: '+';
      font-weight: 700; flex-shrink: 0; font-size: 1rem; line-height: 1.2;
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .plan-feat-tag {
      margin-left: 8px; flex-shrink: 0;
      font-size: .625rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
      padding: 2px 9px; border-radius: 9999px;
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      color: #fff;
    }
    .plan-role {
      font-weight: 600; white-space: nowrap;
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .plan-role::after {
      content: '';
      display: inline-block;
      width: 2px; height: 1em;
      margin-left: 2px;
      vertical-align: -0.15em;
      background: #EF7E7E;
      animation: caret-blink 1.1s steps(2, start) infinite;
    }
    .plan-badge {
      position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      color: rgba(20,18,24,.85);
      font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
      padding: 4px 12px; border-radius: 9999px; white-space: nowrap;
      box-shadow: 0 2px 8px rgba(0,0,0,.12);
    }
    /* Tarjeta alargada del CRM: add-on en negro, ocupa el ancho de las dos columnas */
    .crm-card {
      grid-column: 1 / -1; flex-direction: row; align-items: flex-start;
      gap: 3rem; padding: 1.75rem 2.25rem;
      background: var(--black);
    }
    .crm-main { flex-shrink: 0; max-width: 320px; }
    .crm-card .plan-name { font-size: 1.375rem; margin-bottom: .625rem; color: #fff; }
    .crm-price { font-size: 2rem; margin-bottom: .375rem; display: flex; align-items: baseline; gap: .5rem; color: #fff; }
    .crm-per { font-size: .8125rem; font-weight: 400; color: rgba(255,255,255,.5); letter-spacing: 0; }
    .crm-note { font-size: .8125rem; color: rgba(255,255,255,.55); line-height: 1.55; }
    .crm-note strong { color: #fff; font-weight: 800; font-size: .9375rem; }
    .crm-right { flex: 1; }
    .crm-sub { font-size: .9375rem; font-weight: 600; color: #fff; text-align: center; margin-bottom: 1rem; }
    .crm-feats {
      display: grid; grid-template-columns: repeat(2, max-content);
      justify-content: center; gap: 8px 3rem; margin-bottom: 0;
    }
    .crm-card .plan-feat { color: rgba(255,255,255,.78); }
    @media (max-width: 1000px) {
      .crm-card { flex-direction: column; align-items: stretch; gap: 1.5rem; }
      .crm-main { max-width: none; }
      .crm-feats { grid-template-columns: 1fr; justify-content: start; }
    }

    /* ─── FAQ ─── */
    .faq { max-width: 680px; margin: 0 auto; }
    .faq-item { border-bottom: 1px solid rgba(0,0,0,.08); }
    .faq-item:first-child { border-top: 1px solid rgba(0,0,0,.08); }
    .faq-q {
      width: 100%; text-align: left; padding: 1.375rem 0;
      font-size: .9375rem; font-weight: 600; color: var(--black);
      cursor: pointer; display: flex; justify-content: space-between; align-items: center;
      gap: 1rem; background: none; border: none; letter-spacing: -0.01em;
    }
    .faq-q:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
    .faq-ico {
      width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
      color: #fff;
      display: flex; align-items: center;
      justify-content: center; font-size: 14px; font-weight: 700;
      transition: transform .3s, filter .2s;
    }
    .faq-item.open .faq-ico { transform: rotate(45deg); filter: brightness(1.08); }
    .faq-a {
      max-height: 0; overflow: hidden;
      transition: max-height .4s ease, padding .3s ease;
      font-size: .9375rem; color: var(--n600); line-height: 1.7;
    }
    .faq-item.open .faq-a { max-height: 300px; padding-bottom: 1.375rem; }

    /* ─── DEMO FORM ─── */
    #demo { padding-bottom: 5rem; position: relative; overflow: hidden; }
    /* Fondo de puntitos grises que se desvanecen hacia los bordes */
    #demo::before {
      content: '';
      position: absolute; inset: 0;
      background-image: radial-gradient(circle, rgba(0,0,0,.16) 1px, transparent 1.5px);
      background-size: 26px 26px;
      /* Los puntos nacen en el formulario y se degradan hacia arriba y hacia los lados */
      -webkit-mask-image: radial-gradient(55% 75% at 50% 92%, #000 0%, rgba(0,0,0,.45) 40%, transparent 72%);
      mask-image: radial-gradient(55% 75% at 50% 92%, #000 0%, rgba(0,0,0,.45) 40%, transparent 72%);
      pointer-events: none;
    }
    .demo-wrap { max-width: 620px; margin: 0 auto; text-align: center; position: relative; z-index: 1; }
    .demo-form {
      position: relative;
      background: var(--surface); border-radius: 1.5rem;
      /* Halo degradado muy suave alrededor de la cajita */
      box-shadow:
        inset 0 0 0 .5px rgba(0,0,0,.08),
        -18px 8px 44px rgba(191,168,212,.28),
        0 14px 40px rgba(239,126,126,.22),
        18px 20px 44px rgba(244,160,85,.24);
      padding: 2.5rem; text-align: left; margin-top: 3rem;
    }
    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .875rem; }
    .form-group { display: flex; flex-direction: column; gap: 6px; margin-bottom: .875rem; }
    .form-label { font-size: .8125rem; font-weight: 600; color: var(--n700); }
    .req { color: var(--blue); margin-left: 2px; }
    .form-input, .form-select, .form-textarea {
      width: 100%; padding: .6875rem .875rem;
      background: var(--bg); box-shadow: inset 0 0 0 .5px rgba(0,0,0,.12);
      border: none; border-radius: 10px;
      font-size: .875rem; color: var(--black);
      transition: box-shadow .2s; outline: none; appearance: none;
    }
    .form-input::placeholder, .form-textarea::placeholder { color: var(--n400); }
    .form-input:focus, .form-select:focus, .form-textarea:focus {
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.2), 0 0 0 3px rgba(30,111,217,.12);
    }
    .form-select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23949494' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat; background-position: right 12px center;
      background-color: var(--bg);
      padding-right: 2rem; cursor: pointer;
    }
    .form-textarea { min-height: 90px; resize: vertical; }
    .form-check { display: flex; align-items: flex-start; gap: 10px; margin-top: 1.25rem; cursor: pointer; }
    .form-check input { width: 16px; height: 16px; accent-color: var(--blue); flex-shrink: 0; margin-top: 2px; cursor: pointer; }
    .form-check-label { font-size: .8125rem; color: var(--n600); line-height: 1.5; }
    .form-check-label a { color: var(--blue); text-decoration: underline; }
    .form-submit { width: 100%; justify-content: center; margin-top: 1.5rem; }
    .form-micro { text-align: center; margin-top: .875rem; font-size: .75rem; color: var(--n400); }
    #form-success { display: none; text-align: center; padding: 3rem 0; }
    #form-success .ok-icon { font-size: 3rem; margin-bottom: 1rem; }
    #form-success h3 { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; margin-bottom: .625rem; }
    #form-success p { color: var(--n600); font-size: .9375rem; }

    /* ─── FOOTER ─── */
    footer { padding: 2rem 0 2.5rem; color: var(--n600); }
    .footer-bar {
      display: flex; align-items: center; justify-content: space-between;
      gap: 2rem; flex-wrap: wrap;
      background: var(--surface);
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.08), 0 2px 10px rgba(0,0,0,.04);
      border-radius: 1.75rem;
      padding: 1.5rem 2rem;
    }
    .footer-bar-links {
      flex: 1 1 0;
      display: grid; grid-template-columns: repeat(2, max-content);
      gap: 8px 1.75rem;
    }
    .footer-bar-links a {
      position: relative; padding-right: 9px;
      font-size: .875rem; color: var(--n600); transition: color .2s;
    }
    .footer-bar-links a::after {
      content: '';
      position: absolute; top: 1px; right: 0;
      width: 4px; height: 4px; border-radius: 50%;
      background: linear-gradient(135deg, #BFA8D4 0%, #EF7E7E 50%, #F4A055 100%);
    }
    .footer-bar-links a:hover { color: var(--black); }
    .footer-bar-links a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 2px; }
    .footer-bar-social { display: flex; gap: 10px; }
    .footer-bar-social a {
      width: 40px; height: 40px; border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
      color: var(--n600);
      box-shadow: inset 0 0 0 .5px rgba(0,0,0,.1);
      transition: color .2s, background .2s;
    }
    .footer-bar-social a:hover { color: var(--black); background: var(--n50); }
    .footer-bar-social a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
    .footer-bar-meta { flex: 1 1 0; text-align: right; }
    .footer-bar-meta p { font-size: .8125rem; color: var(--n400); line-height: 1.6; }
    @media (max-width: 860px) {
      .footer-bar { flex-direction: column; align-items: center; text-align: center; gap: 1.25rem; padding: 2rem 1.5rem; }
      .footer-bar-links, .footer-bar-meta { flex: none; }
      .footer-bar-links { justify-content: center; }
      .footer-bar-meta { text-align: center; }
    }
    .footer-bottom {
      border-top: 1px solid rgba(0,0,0,.07); padding-top: 1.5rem;
      display: flex; justify-content: space-between; align-items: center;
      gap: 1rem; flex-wrap: wrap;
    }
    .footer-bottom p, .footer-legal { font-size: .8125rem; color: var(--n400); }

    /* ─── PÁGINA LEGAL ─── */
    .legal { padding: calc(var(--nav-h) + var(--nav-top) + 4rem) 0 5rem; }
    .legal-container { max-width: 48rem; margin: 0 auto; padding: 0 var(--section-px); }
    .legal-back { display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; color: var(--n600); margin-bottom: 2rem; transition: color .2s; }
    .legal-back:hover { color: var(--black); }
    .legal h1 { font-size: clamp(2rem, 5vw, 2.75rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; margin-bottom: .75rem; }
    .legal-updated { font-size: .8125rem; color: var(--n400); margin-bottom: 3rem; }
    .legal h2 { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; margin: 2.75rem 0 1rem; scroll-margin-top: calc(var(--nav-h) + var(--nav-top) + 1.5rem); }
    .legal h3 { font-size: 1rem; font-weight: 600; margin: 1.75rem 0 .625rem; }
    .legal p, .legal li { font-size: .9375rem; line-height: 1.75; color: var(--n700); }
    .legal p { margin-bottom: 1rem; }
    .legal ul { list-style: disc; padding-left: 1.5rem; margin-bottom: 1rem; }
    .legal li { margin-bottom: .5rem; }
    .legal a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
    .legal a:hover { color: var(--blue-l); }
    .legal strong { color: var(--n900); font-weight: 600; }
    .legal table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; font-size: .8125rem; }
    .legal th, .legal td { text-align: left; padding: .75rem .875rem; border: 1px solid rgba(0,0,0,.08); vertical-align: top; }
    .legal th { background: var(--n50); font-weight: 600; color: var(--n900); }
    .legal td { color: var(--n600); line-height: 1.55; }
    .legal-toc { background: var(--n50); border: 1px solid rgba(0,0,0,.06); border-radius: 1rem; padding: 1.5rem 1.75rem; margin-bottom: 3rem; }
    .legal-toc h2 { font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--n400); margin: 0 0 .875rem; }
    .legal-toc ol { list-style: none; display: grid; gap: .5rem; counter-reset: toc; }
    .legal-toc li { counter-increment: toc; font-size: .875rem; margin: 0; }
    .legal-toc li::before { content: counter(toc) ". "; color: var(--n400); font-weight: 600; }
    .legal-toc a { color: var(--n700); text-decoration: none; }
    .legal-toc a:hover { color: var(--blue); }

    /* ─── COOKIE BANNER ─── */
    .cookie-banner {
      position: fixed; left: 1rem; right: 1rem; bottom: 1rem;
      z-index: 9998; padding: 0;
      background: var(--surface);
      border: 1px solid rgba(0,0,0,.08);
      border-radius: 1.25rem;
      box-shadow: 0 18px 50px -12px rgba(0,0,0,.28);
      max-width: 64rem; margin: 0 auto;
      animation: cookie-in .45s var(--ease-slow) both;
    }
    .cookie-banner[hidden] { display: none; }
    @keyframes cookie-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
    .cookie-inner {
      display: flex; align-items: center; gap: 1.5rem;
      padding: 1.25rem 1.5rem; flex-wrap: wrap;
    }
    .cookie-text { flex: 1 1 22rem; min-width: 0; }
    .cookie-title { font-size: .9375rem; font-weight: 700; letter-spacing: -0.01em; margin-bottom: .25rem; color: var(--black); }
    .cookie-desc { font-size: .8125rem; line-height: 1.6; color: var(--n600); }
    .cookie-desc a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
    .cookie-desc a:hover { color: var(--blue-l); }
    .cookie-actions { display: flex; gap: .625rem; flex-shrink: 0; }
    .cookie-btn { height: 2.5rem; font-size: .875rem; }
    @media (max-width: 600px) {
      .cookie-inner { padding: 1.125rem 1.25rem; gap: 1rem; }
      .cookie-actions { width: 100%; }
      .cookie-btn { flex: 1; justify-content: center; }
    }

    /* ─── SCROLL REVEAL ─── */
    .rv { opacity:0; transform: translateY(22px); transition: opacity .65s cubic-bezier(0,0,.2,1), transform .65s cubic-bezier(0,0,.2,1); }
    .rv.vis { opacity:1; transform: none; }
    .rv-d1 { transition-delay: .1s; }
    .rv-d2 { transition-delay: .2s; }
    .rv-d3 { transition-delay: .3s; }

    /* ─── RESPONSIVE ─── */
    @media (max-width: 960px) {
      #header { width: calc(100% - 2rem); }
      .steps, .map-points { grid-template-columns: 1fr 1fr; }
      .map-bg {
        height: 720px;
        -webkit-mask-image: linear-gradient(to bottom, #000 65%, transparent 92%);
        mask-image: linear-gradient(to bottom, #000 65%, transparent 92%);
      }
      .ch-panel { flex-direction: column; padding: 2rem; gap: 2rem; }
      .steps::before { display: none; }
      .dash-grid { grid-template-columns: repeat(2,1fr); }
      .nav-links, .nav-ghost { display: none; }
      .nav-toggle { display: flex; }
    }
    @media (max-width: 600px) {
      :root { --nav-top: 10px; --nav-h: 50px; }
      section { padding: 5rem 0; }
      #header { width: calc(100% - 1.5rem); }
      .problem-cards, .steps, .map-points { grid-template-columns: 1fr; }
      /* En móvil: título y definición arriba, imagen abajo (rellena el alto sobrante), sin bullets */
      .ch-panel { padding: 1.25rem; gap: 1.25rem; flex-direction: column; align-items: stretch; }
      .ch-panel .ch-info { flex: 0 0 auto; }
      .ch-panel .ch-mock { order: 2; flex: 1 1 auto; min-height: 220px; }
      .ch-info-desc { margin-bottom: 0; }
      .ch-info-feats { display: none; }
      .form-row { grid-template-columns: 1fr; }
      .dash-grid { grid-template-columns: 1fr 1fr; }
      .map-bg {
        height: 580px;
        -webkit-mask-image: linear-gradient(to bottom, #000 68%, transparent 96%);
        mask-image: linear-gradient(to bottom, #000 68%, transparent 96%);
      }
      .map-stage { height: 260px; }
      #mapa-h2 br { display: none; }
      /* El rol del typewriter pasa a su propia línea fija: no hay saltos al escribir */
      .plan-feat-tw { flex-wrap: wrap; }
      .plan-feat-tw .plan-role { flex-basis: 100%; padding-left: 18px; min-height: 1.4em; }
      .hero-trust { gap: .75rem; justify-content: flex-start; flex-direction: column; align-items: flex-start; padding-left: 1.25rem; }
      .footer-bottom { flex-direction: column; text-align: center; }
    }
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
      .rv { opacity:1; transform: none; }
    }
