/* Economía Familiar Sana · dirección B «Escenario» · partes 1 (el marco), 2 (apertura), 3 (diagnóstico), 4 (la trampa y la regla de oro), 5 (ahorra primero), 6 (el crédito), 7 (tu plan) y 8 (repaso de todo). */

@font-face { font-family: "Poppins"; font-weight: 600; font-style: normal; font-display: swap; src: url("/fuentes/poppins-latin-600.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 700; font-style: normal; font-display: swap; src: url("/fuentes/poppins-latin-700.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 800; font-style: normal; font-display: swap; src: url("/fuentes/poppins-latin-800.woff2") format("woff2"); }
@font-face { font-family: "Nunito"; font-weight: 200 1000; font-style: normal; font-display: swap; src: url("/fuentes/nunito-latin-wght.woff2") format("woff2"); }
@font-face { font-family: "Nunito"; font-weight: 200 1000; font-style: italic; font-display: swap; src: url("/fuentes/nunito-latin-wght-italic.woff2") format("woff2"); }

:root {
  --stage: #111111;        /* base-cod-gray-100 */
  --stage-2: #292929;      /* base-cod-gray-90: líneas */
  --on-stage: #FCFCFC;     /* base-white */
  --on-stage-2: #ECE9EC;   /* bon-jour-100 */
  --lilac: #A8A5EE;        /* royal-blue-50 */
  --apricot: #F9AB80;      /* apricot-100 */
  --rose: #F45BC1;         /* rose-100 */
  --blue: #554FE0;         /* royal-blue-100 */
  --ink: #111111;
  --ink-80: #404040;       /* base-cod-gray-80: texto secundario, progreso vacío */
  --white: #FFFFFF;
  --tint-rose: #FBECF6;    /* rose-10 */
  --tint-blue: #EBEBF9;    /* royal-blue-10 */
  --tint-apricot: #FCF4F0; /* apricot-10 */
  --line: rgba(17,17,17,.14); /* divisoria fina sobre las tintes claras */
  --placeholder: #6B6B6B;  /* 5,33:1 sobre blanco */

  --display: "Poppins", system-ui, sans-serif;
  --body: "Nunito", system-ui, sans-serif;

  /* Escala de texto: 14 / 16 / 18 / 20 para lectura; títulos fluidos. */
  --t-14: 14px; --t-16: 16px; --t-18: 18px; --t-20: 20px;
  --t-h1: clamp(40px, 10vw, 60px);
  --t-h2: clamp(32px, 8vw, 44px);
  --t-card: clamp(24px, 5.5vw, 32px);
  --t-no: 96px;

  --r: 28px;
  --gutter: 16px;
  --bar-h: 52px;
}

* { box-sizing: border-box; margin: 0; }
html { scroll-padding-top: calc(var(--bar-h) + 16px); scroll-padding-bottom: 16px; -webkit-text-size-adjust: 100%; }
body { background: var(--stage); color: var(--on-stage); font: 400 var(--t-18)/1.55 var(--body); }
a { color: inherit; text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--apricot); outline-offset: 3px; }
.card :focus-visible { outline-color: var(--blue); }
.card.solid :focus-visible { outline-color: var(--white); }
.card.loud-rose :focus-visible, .card.loud-apricot :focus-visible { outline-color: var(--ink); }
.bar a, .pie a { border-radius: 4px; }
.bar a:hover, .pie a:hover { color: var(--apricot); }

/* Barra fija: una sola fila en todos los anchos. */
.bar { position: sticky; top: 0; z-index: 2; min-height: var(--bar-h); background: var(--stage); border-bottom: 1px solid var(--stage-2);
  display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 0 var(--gutter);
  font-size: var(--t-16); color: var(--on-stage-2); }
.bar a { min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
.bar .track { height: 4px; border-radius: 4px; background: var(--ink-80); overflow: hidden; visibility: hidden; }
.js .bar .track { visibility: visible; }
.bar .track span { display: block; width: 12.5%; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--blue), var(--rose), var(--apricot)); }
.bar .where { white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 599px) { .bar .where .long { display: none; } }

/* Pasos */
main { max-width: 760px; margin: 0 auto; padding: 0 var(--gutter); }
.paso { padding: 48px 0 24px; }
.paso + .paso { margin-top: 32px; }
.big-no { display: none; font: 800 var(--t-no)/1 var(--display); color: var(--lilac); letter-spacing: -.02em; }
.beat-no { font: 700 var(--t-14)/1.3 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--apricot); }
h1, h2, h3 { font-family: var(--display); font-weight: 800; letter-spacing: -.025em; text-wrap: balance; }
.rail h1 { font-size: var(--t-h1); line-height: 1.04; margin-top: 12px; }
.rail h2 { font-size: var(--t-h2); line-height: 1.08; margin-top: 12px; }

/* Tarjeta */
.cards { margin-top: 24px; }
.card { border-radius: var(--r); padding: 26px 22px; color: var(--ink); }
.card + .card { margin-top: 20px; }
.card.rose { background: var(--tint-rose); }
.card.blue { background: var(--tint-blue); }
.card.apricot { background: var(--tint-apricot); }
.card.loud-rose { background: var(--rose); }
.card.loud-apricot { background: var(--apricot); }
.card.solid { background: var(--blue); color: var(--white); }
.card-t { font-size: var(--t-card); line-height: 1.12; }
.card > * + * { margin-top: 12px; }
.muted { color: var(--ink-80); }
.loud-rose .muted, .loud-apricot .muted { color: var(--ink); }
.pill { display: inline-block; font: 700 var(--t-14)/1 var(--display); letter-spacing: .12em; text-transform: uppercase;
  color: var(--blue); background: var(--white); border-radius: 999px; padding: 8px 12px; }
.btn { display: inline-flex; align-items: center; min-height: 52px; padding: 0 28px; border-radius: 999px; border: 0;
  background: var(--blue); color: var(--white); font: 600 var(--t-18)/1 var(--display); text-decoration: none; cursor: pointer; }
.btn:hover { filter: brightness(.9); }
.card > .cta { margin-top: 22px; }
.credit { font-size: var(--t-16); color: var(--ink-80); }
.card > .credit { margin-top: 20px; }

/* Parte 2 · Apertura */
.whisper { color: var(--lilac); font-style: italic; margin-top: 14px; max-width: 42ch; }
.excusas, .para { list-style: none; padding: 0; }
.excusas li { font: 600 var(--t-20)/1.3 var(--display); text-wrap: balance; }
.excusas li + li { margin-top: 8px; }
.loud-rose .card-t { font-size: clamp(26px, 8vw, 44px); line-height: 1.05; }
.card > .remate { margin-top: 24px; padding-top: 16px; border-top: 2px solid var(--ink); font: 800 var(--t-20)/1.3 var(--display); text-wrap: balance; }
.para li + li { margin-top: 10px; }
.cita { margin: 40px 0 0; font: 700 var(--t-card)/1.2 var(--display); letter-spacing: -.01em; text-wrap: balance; }
.cita em { font-style: normal; color: var(--rose); }
.puente { margin-top: 16px; }
/* 1280x800: «Empezar» entero en la primera pantalla. */
@media (min-width: 900px) { #paso-1 { padding-top: 16px; } #paso-1 .card { padding-block: 26px; } #paso-1 .card + .card { margin-top: 16px; } }

/* Pie */
.pie { max-width: 760px; margin: 72px auto 0; padding: 32px var(--gutter) 48px; border-top: 1px solid var(--stage-2);
  color: var(--on-stage-2); font-size: var(--t-16); display: grid; gap: 24px; }
.pie p + p, .pie p + ul { margin-top: 8px; }
.pie-credito { font-weight: 700; color: var(--on-stage); }
.libros { padding-left: 1.2em; }
.libros li + li { margin-top: 4px; }
.pie a { min-height: 44px; display: inline-flex; align-items: center; }

@media (min-width: 900px) {
  :root { --gutter: 48px; }
  main, .pie { max-width: 1184px; }
  .paso { display: grid; grid-template-columns: 380px 1fr; gap: 0 64px; padding-top: 72px; }
  .paso + .paso { margin-top: 48px; }
  .rail { position: sticky; top: calc(var(--bar-h) + 40px); align-self: start; }
  .big-no { display: block; margin-bottom: 12px; }
  .cards { margin-top: 0; }
  .card { padding: 36px 40px; }
  .card + .card { margin-top: 24px; }
  .pie { grid-template-columns: 2fr 1fr; gap: 64px; }
}

/* Movimiento: entrada lenta. economia-familiar.js marca .is-hidden solo en tarjetas que aún están debajo de la pantalla
   y pone el retraso de cada una. Sin JavaScript, o con movimiento reducido, nada se oculta. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .card.is-hidden { opacity: 0; transform: translateY(24px); }
  .card.is-shown { transition: opacity 600ms cubic-bezier(.2,.7,.2,1), transform 600ms cubic-bezier(.2,.7,.2,1); }
  .bar .track span { transition: width 300ms ease-out; }
  .excusas li { animation: excusa 600ms cubic-bezier(.2,.7,.2,1) both; }
  .excusas li:nth-child(2) { animation-delay: 150ms; }
  .excusas li:nth-child(3) { animation-delay: 300ms; }
  .excusas li:nth-child(4) { animation-delay: 450ms; }
  .excusas li:nth-child(5) { animation-delay: 600ms; }
  @keyframes excusa { from { opacity: 0; transform: translateY(12px); } }
}
@media print {
  .bar { position: static; }
  .card.is-hidden { opacity: 1; transform: none; }
}

/* Parte 3 · Diagnóstico */
.paso:focus { outline: none; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.senales fieldset { border: 0; padding: 0; min-width: 0; }
.senales legend { padding: 0; font-weight: 600; text-wrap: pretty; }
.checks { list-style: none; padding: 0; margin-top: 12px; }
.checks li + li { border-top: 1px solid var(--line); }
.checks label { display: flex; gap: 14px; align-items: flex-start; min-height: 52px; padding: 13px 0; cursor: pointer; line-height: 1.4; }
.checks input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--blue); cursor: pointer; }
.bandas { margin-top: 20px; padding-top: 16px; border-top: 2px solid var(--ink); font-size: var(--t-16); text-wrap: pretty; }
.bandas .cta { margin-top: 22px; }
.bandas ul { padding-left: 1.2em; margin-top: 8px; }
.bandas li + li { margin-top: 6px; }
.bandas p + p { margin-top: 8px; }
.js .bandas { display: none; }
.res-n { font: 800 var(--t-card)/1.1 var(--display); letter-spacing: -.02em; }
.res-n .n { display: inline-block; margin-right: .08em; font-size: clamp(72px, 20vw, 104px); line-height: 1; color: var(--blue); font-variant-numeric: tabular-nums; }
.card > .res-v { margin-top: 16px; font: 700 var(--t-20)/1.3 var(--display); text-wrap: balance; }
.card > .res-s { margin-top: 10px; }
@media (prefers-reduced-motion: no-preference) {
  .res-n .n.pop { animation: pop 450ms cubic-bezier(.2,.7,.2,1); }
  @keyframes pop { from { opacity: 0; transform: translateY(10px) scale(.92); } }
}

/* Parte 4 · La trampa (paso 4) y la regla de oro (paso 5) */
.rail .sub { color: var(--on-stage-2); font-size: var(--t-20); margin-top: 16px; max-width: 40ch; text-wrap: pretty; }
.rail h2 em { font-style: normal; color: var(--apricot); }
.quote { margin-top: 40px; font: 700 var(--t-card)/1.25 var(--display); letter-spacing: -.01em; color: var(--on-stage); text-wrap: balance; }
.quote em { font-style: normal; color: var(--rose); }

/* Tarjetas que se voltean. Sin JavaScript: las dos caras, una debajo de la otra. */
.trampas { list-style: none; padding: 0; display: grid; gap: 16px; }
.trampas .card { padding: 0; margin: 0; }
.cara { display: block; border-radius: var(--r); padding: 24px 22px; }
.frente { background: var(--tint-apricot); }
.dorso { background: var(--tint-blue); }
.trampa .dorso { margin-top: 8px; }
.chico { display: block; font-size: var(--t-16); color: var(--ink-80); }
.grande { display: block; font: 700 var(--t-20)/1.2 var(--display); }
.chico + .grande { margin-top: 2px; }
.grande + .chico { margin-top: 6px; }
.cambio { display: block; font-size: var(--t-16); color: var(--ink-80); }
html:not(.js) .cambio { display: none; }
.costo { display: block; margin-top: 10px; font: 700 var(--t-20)/1.3 var(--display); text-wrap: balance; }

.flip { display: grid; width: 100%; height: 100%; padding: 0; border: 0; border-radius: var(--r); background: none; color: inherit;
  font: inherit; text-align: left; cursor: pointer; transform-style: preserve-3d; }
.flip .cara { grid-area: 1 / 1; backface-visibility: hidden; -webkit-backface-visibility: hidden; position: relative; padding-right: 68px; }
.flip .dorso { margin-top: 0; transform: rotateY(180deg); }
.flip[aria-expanded="true"] { transform: rotateY(180deg); }
.flip[aria-expanded="false"] .dorso { visibility: hidden; }
.flip .cara::after { content: "↻"; position: absolute; right: 18px; top: 20px; width: 32px; height: 32px; border-radius: 50%;
  border: 2px solid var(--ink); display: grid; place-items: center; font: 700 18px/1 var(--display); }
.flip:hover .cara { filter: brightness(.97); }
.trampas .card :focus-visible { outline-color: var(--apricot); outline-offset: 4px; }

/* El reparto */
.kicker { font: 700 var(--t-14)/1.3 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-80); }
.card > .kicker + .card-t { margin-top: 6px; }
.reparto .field { margin-top: 20px; }
.field label { display: block; font: 600 var(--t-18)/1.3 var(--display); }
.help { font-size: var(--t-16); color: var(--ink-80); text-wrap: pretty; }
.field .help { margin: 2px 0 10px; }
input.num { width: 100%; min-height: 56px; border-radius: 16px; border: 2px solid var(--blue); background: var(--white); color: var(--ink);
  padding: 0 16px; font: 600 24px/1 var(--display); font-variant-numeric: tabular-nums; }
input::placeholder { color: var(--placeholder); font: italic 400 var(--t-20)/1 var(--body); }
@media (max-width: 359px) { input::placeholder { font-size: var(--t-14); } }
input.num[aria-invalid="true"] { border-color: var(--ink); border-width: 3px; }
.nota { margin-top: 10px; font-size: var(--t-16); color: var(--ink-80); }
.nota:empty { display: none; }
.nota.ojo { color: var(--ink); border-left: 4px solid var(--apricot); padding-left: 12px; }
.nota.mala { color: var(--ink); background: var(--white); border-left: 4px solid var(--rose); border-radius: 8px; padding: 10px 14px; font-weight: 600; }
.ejemplo { font-weight: 700; }
.js .ejemplo { display: none; }
.stack { display: flex; height: 22px; border-radius: 999px; overflow: hidden; margin: 22px 0 8px; gap: 3px; outline: 1.5px solid var(--ink); outline-offset: -1.5px; background: var(--white); }
.stack i { display: block; flex-basis: 0; min-width: 0; }
.c-need { background: var(--blue); } .c-want { background: var(--rose); } .c-save { background: var(--apricot); }
.sin-dato .stack i { opacity: .3; }
.slots { list-style: none; padding: 0; }
.slot { display: grid; grid-template-columns: 14px 1fr auto; gap: 2px 12px; align-items: center; padding: 14px 0 10px; border-top: 1px solid var(--lilac); }
.slot .dot { width: 14px; height: 14px; border-radius: 50%; box-shadow: 0 0 0 1.5px var(--ink); }
.slot .lbl { min-width: 0; font-weight: 700; line-height: 1.3; }
.slot .amt { font: 700 26px/1 var(--display); font-variant-numeric: tabular-nums; text-align: right; }
.sin-dato .slot .amt { color: var(--ink-80); font: 400 var(--t-16)/1.3 var(--body); }
.slot .pct { grid-column: 2 / -1; font-size: var(--t-16); color: var(--ink-80); line-height: 1.35; }
.slot .p { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.slot input[type=range] { grid-column: 1 / -1; width: 100%; height: 44px; margin: 0; cursor: pointer; background: none;
  -webkit-appearance: none; appearance: none; border-radius: 999px; outline-offset: 2px; }
.slot input[type=range]::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: var(--white); box-shadow: 0 0 0 1.5px var(--ink); }
.slot input[type=range]::-moz-range-track { height: 6px; border-radius: 999px; background: var(--white); box-shadow: 0 0 0 1.5px var(--ink); }
.slot input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; margin-top: -11px; border-radius: 50%;
  background: var(--blue); border: 3px solid var(--white); box-shadow: 0 0 0 1.5px var(--ink); }
.slot input[type=range]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--blue); border: 3px solid var(--white); box-shadow: 0 0 0 1.5px var(--ink); }
@media (max-width: 399px) {
  .slot { grid-template-columns: 14px 1fr; }
  .slot .amt { grid-column: 2; text-align: left; }
}
.card > .regla { margin-top: 16px; }
#ahorro-nota { margin-top: 12px; }
@media (min-width: 900px) {
  .trampas { grid-template-columns: 1fr 1fr; gap: 20px; }
  .cara { padding: 28px 28px 24px; }
  .flip .cara { padding-right: 28px; }
  .flip .cambio, .flip .chico:first-child { padding-right: 48px; }
}
@media (prefers-reduced-motion: no-preference) {
  .flip { transition: transform 600ms cubic-bezier(.2,.7,.2,1); }
  .flip[aria-expanded="false"] .dorso { transition: visibility 0s 300ms; }
  .stack i { transition: flex-grow 500ms cubic-bezier(.2,.7,.2,1); }
}

/* Parte 5 · Ahorra primero (paso 6) */
.card > .trucos-t { margin-top: 20px; font: 700 var(--t-20)/1.3 var(--display); }
.trucos { padding-left: 1.2em; margin-top: 8px; }
.trucos li + li { margin-top: 6px; }

/* Selector de dos botones (aria-pressed). Sin JavaScript no aparece y se ven los dos lados. */
.card > .lados { margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 999px;
  background: var(--white); box-shadow: inset 0 0 0 2px var(--blue); }
.lados[hidden] { display: none; }
.lados button { min-height: 48px; border: 0; border-radius: 999px; background: none; color: var(--blue); cursor: pointer;
  font: 600 var(--t-18)/1 var(--display); }
.lados button[aria-pressed="true"] { background: var(--blue); color: var(--white); }
.lados button:hover { background: var(--tint-blue); }
.lados button[aria-pressed="true"]:hover { filter: brightness(.9); background: var(--blue); }
/* El anillo va por dentro de la píldora para no fundirse con el borde del riel. */
.lados button:focus-visible { outline-offset: -6px; }
.lados button[aria-pressed="true"]:focus-visible { outline-color: var(--white); }
.card > .lado { margin-top: 16px; padding: 20px 20px 22px; border-radius: 20px; background: var(--white); }
.lado > * + * { margin-top: 6px; }
.lado-t { font: 700 var(--t-14)/1.3 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-80); }
.lado-n { font: 800 clamp(30px, 9vw, 44px)/1.08 var(--display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; text-wrap: balance; }
.lado-n .mes { color: var(--blue); }
.lado .ir { font-size: var(--t-16); color: var(--ink-80); }
.lado .ir a { font-weight: 700; color: var(--blue); white-space: nowrap; display: inline-block; padding: 11px 0; margin: -11px 0; }

/* La regla de las 24 horas */
.js .sin-js { display: none; }
.espera .field { margin-top: 20px; }
.espera .field label { margin-bottom: 10px; }
input.txt { width: 100%; min-height: 56px; border-radius: 16px; border: 2px solid var(--blue); background: var(--white); color: var(--ink);
  padding: 0 16px; font: 400 var(--t-20)/1 var(--body); }
input.txt[aria-invalid="true"] { border-color: var(--ink); border-width: 3px; }
.field .cta { margin-top: 16px; }
.card > .pausa { margin-top: 20px; padding: 22px 20px; border-radius: 20px; background: var(--white); }
.pausa-t { font: 800 clamp(30px, 9vw, 44px)/1.08 var(--display); letter-spacing: -.02em; color: var(--blue); }
.pausa-s { margin-top: 10px; overflow-wrap: anywhere; text-wrap: pretty; }
.pausa .cta { margin-top: 18px; }
.btn.claro { background: var(--white); color: var(--blue); box-shadow: inset 0 0 0 2px var(--blue); min-height: 48px; padding: 12px 22px; line-height: 1.2; text-align: center; }
@media (prefers-reduced-motion: no-preference) {
  .lado-n.pop { animation: pop 450ms cubic-bezier(.2,.7,.2,1); }
  .pausa:not([hidden]) { animation: pop 450ms cubic-bezier(.2,.7,.2,1); }
}

/* Parte 6 · El crédito (paso 7) */
.reglas { list-style: none; padding: 0; margin-top: 24px; max-width: 40ch; }
.reglas li { position: relative; padding: 12px 0 12px 26px; border-top: 1px solid var(--stage-2); color: var(--on-stage-2); text-wrap: pretty; }
.reglas li::before { content: ""; position: absolute; left: 2px; top: 22px; width: 10px; height: 10px; border-radius: 50%; background: var(--apricot); }

.card > .campos { margin-top: 20px; }
.campos .field + .field, .campos .field + .recortes { margin-top: 18px; }
.campos .field label { margin-bottom: 8px; }
.campos .field .help { margin: -4px 0 10px; }
.recortes { border: 0; padding: 0; min-width: 0; }
.recortes legend { padding: 0; font: 600 var(--t-18)/1.3 var(--display); text-wrap: balance; }
.recortes .field { margin-top: 12px; }
.recortes .field label { font: 400 var(--t-16)/1.3 var(--body); margin-bottom: 6px; }
.recortes input.num { min-height: 52px; font-size: 22px; }
@media (min-width: 600px) { .cuatro { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; align-items: end; } }

/* La cuenta: filas de etiqueta y monto, y la cifra que importa. */
.card > .cuenta { margin-top: 20px; padding: 20px 20px 22px; border-radius: 20px; background: var(--white); }
.filas div { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; align-items: baseline; padding: 10px 0; }
.filas div + div { border-top: 1px solid var(--tint-blue); }
.filas div:first-child { padding-top: 0; }
.filas dt { min-width: 0; line-height: 1.4; text-wrap: pretty; }
.filas dd { margin: 0; font: 700 var(--t-20)/1.3 var(--display); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.cuenta .cifra { margin-top: 14px; font: 800 clamp(30px, 9vw, 44px)/1.08 var(--display); letter-spacing: -.02em; color: var(--blue); font-variant-numeric: tabular-nums; text-wrap: balance; }
.cuenta .cuenta-s { margin-top: 8px; text-wrap: pretty; }
.cuenta.sin-dato .cuenta-s { margin-top: 0; color: var(--ink-80); font-size: var(--t-16); }
@media (max-width: 359px) {
  .cuenta .cifra { font-size: 24px; }
  .filas div { grid-template-columns: 1fr; }
  .filas dd { text-align: left; }
}

/* Los cinco pasos del Acelerador */
.cinco { list-style: none; padding: 0; margin-top: 16px; counter-reset: paso; }
.cinco li { counter-increment: paso; display: grid; grid-template-columns: 36px 1fr; gap: 14px; align-items: start; padding: 10px 0; text-wrap: pretty; }
.cinco li + li { border-top: 1px solid var(--line); }
.cinco li::before { content: counter(paso); width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center;
  background: var(--white); box-shadow: inset 0 0 0 2px var(--ink); font: 700 var(--t-16)/1 var(--display); margin-top: -4px; }

/* 1280x800: dos filas, como en el boceto: reglas | contado o crédito, y los cinco pasos | el acelerador. */
@media (min-width: 900px) {
  #paso-7 { grid-template-rows: auto auto; row-gap: 48px; }
  #paso-7 .cards { display: contents; }
  #paso-7 .rail { position: static; grid-row: 1; grid-column: 1; }
  #paso-7 .card { margin: 0; }
  #paso-7 .contado { grid-row: 1; grid-column: 2; align-self: start; }
  #paso-7 .pasos { grid-row: 2; grid-column: 1; align-self: start; padding: 32px 30px; }
  #paso-7 .acelerador { grid-row: 2; grid-column: 2; align-self: start; }
}
/* Fija solo si cabe entera: en pantallas bajas (1366x650, 1024x640) se desplaza con la página. */
@media (min-width: 900px) and (min-height: 740px) {
  #paso-7 .pasos { position: sticky; top: calc(var(--bar-h) + 40px); }
}

/* Parte 7 · Tu plan (paso 8) */
.semana .cinco li { font-weight: 600; }
.semana .cinco li + li { border-top-color: rgba(17,17,17,.18); }

/* Las tres metas: separadas por una línea albaricoque, sin cajas. */
.card > .campos .meta { border: 0; padding: 20px 0 0; margin: 20px 0 0; min-width: 0; border-top: 2px solid var(--apricot); }
.meta .field + .field, .meta .cuando { margin-top: 14px; }
.meta .field label, .cuando legend { margin-bottom: 8px; padding: 0; }
.cuando { border: 0; padding: 0; min-width: 0; }
.cuando legend { font: 600 var(--t-18)/1.3 var(--display); }
.dos { display: grid; grid-template-columns: minmax(0, 1fr) 96px; gap: 10px; }
@media (max-width: 359px) { .dos { grid-template-columns: minmax(0, 1fr) 90px; } .dos select { padding-left: 10px; } }
select { width: 100%; min-height: 56px; border-radius: 16px; border: 2px solid var(--blue); color: var(--ink); cursor: pointer;
  padding: 0 26px 0 12px; font: 400 var(--t-20)/1 var(--body); -webkit-appearance: none; appearance: none;
  background: var(--white) no-repeat; background-image: linear-gradient(45deg, transparent 50%, var(--blue) 50%), linear-gradient(135deg, var(--blue) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%; background-size: 6px 6px; text-overflow: ellipsis; }
select[aria-invalid="true"] { border-color: var(--ink); border-width: 3px; }
.meta .aparta { margin-top: 14px; min-height: 1.55em; font-size: var(--t-18); }
.aparta b { font: 800 var(--t-20)/1 var(--display); color: var(--blue); font-variant-numeric: tabular-nums; }
.aparta.falta { font-size: var(--t-16); color: var(--ink-80); }
.aparta .en { display: block; font-size: var(--t-16); color: var(--ink-80); }
.aparta .rango { display: block; }
@media (min-width: 600px) {
  .card > .campos .meta { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; align-items: end; }
  .meta .field + .field { margin-top: 0; }
  .meta .aparta { margin-top: 0; padding-bottom: 4px; min-height: 56px; }
}

/* El total, en azul intenso. */
.total-k { font: 600 var(--t-16)/1.3 var(--display); }
.card > .total-n { margin-top: 4px; font: 800 clamp(48px, 13vw, 88px)/1 var(--display); letter-spacing: -.03em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.total-n.largo { font-size: clamp(28px, 8vw, 56px); }
.total-n .u { font-size: var(--t-20); letter-spacing: 0; white-space: nowrap; }
/* Bajo 360 px «al mes» no cabe junto al total: va justo debajo, no flotando a media altura. */
@media (max-width: 359px) { .total-n .u { display: block; margin-top: 4px; line-height: 1.2; } }
.card > .total-a { margin-top: 14px; font-size: var(--t-16); text-wrap: pretty; }
.card > .total-b { margin-top: 6px; font-weight: 700; color: var(--tint-rose); text-wrap: pretty; }

/* Tus dos números */
.numeros .eq { margin-top: 22px; font: 700 var(--t-18)/1.3 var(--display); }
.numeros .field { margin-top: 12px; }
.numeros .field label { margin-bottom: 2px; }
.filas .resta { display: block; white-space: normal; font: 400 var(--t-16)/1.4 var(--body); color: var(--ink-80); font-variant-numeric: tabular-nums; }
.cuenta.sin-dato .filas dd { color: var(--ink-80); }

/* Envíame mi plan */
.btn.ancho { width: 100%; justify-content: center; }
.btn[aria-disabled="true"] { cursor: progress; }
.correo .field label { margin-bottom: 8px; }
.correo .pedir > * + * { margin-top: 14px; }
.card > .pedir { margin-top: 18px; }
.correo .uso { font-size: var(--t-14); line-height: 1.5; }
.card > .enviado { margin-top: 18px; padding: 22px 20px; border-radius: 20px; background: var(--white); }
.enviado:focus { outline: none; }
.enviado-t { font: 800 clamp(26px, 7vw, 36px)/1.1 var(--display); letter-spacing: -.02em; color: var(--blue); }
.enviado-s { margin-top: 8px; overflow-wrap: anywhere; text-wrap: pretty; }
.enviado-v { margin-top: 12px; font-weight: 700; text-wrap: pretty; }
.enviado .cta { margin-top: 16px; }

/* Los principios y el cierre, sobre el escenario. */
.principios { margin-top: 56px; }
.principios h3 { margin-top: 8px; font-size: var(--t-card); line-height: 1.12; }
.principios ol { list-style: none; padding: 0; margin-top: 16px; counter-reset: p; }
.principios li { counter-increment: p; display: grid; grid-template-columns: 28px 1fr; gap: 8px; padding: 12px 0; border-top: 1px solid var(--stage-2); color: var(--on-stage-2); }
.principios li::before { content: counter(p); font: 800 var(--t-18)/1.55 var(--display); color: var(--apricot); }
.cita.cierre { margin-top: 56px; font-size: clamp(34px, 9vw, 56px); line-height: 1.05; letter-spacing: -.025em; font-weight: 800; }
@media (prefers-reduced-motion: no-preference) {
  .enviado:not([hidden]) { animation: pop 450ms cubic-bezier(.2,.7,.2,1); }
}
