/* Sala de pruebas UiX · estilos con el Design System Finix (ds-finix @ a08e1fa, marca banco-azteca).
   Tokens: finix/tokens.css (copia de packages/tokens/dist). Componentes de referencia, entre paréntesis en cada bloque.
   Regla del DS: siempre var(--finix-…); no hay hex sueltos salvo en la simulación de la app (nota en cada caso). */

@font-face { font-family: "Satoshi"; src: url("finix/fonts/Satoshi-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Satoshi"; src: url("finix/fonts/Satoshi-Medium.woff2") format("woff2"); font-weight: 500 600; font-display: swap; }
@font-face { font-family: "Satoshi"; src: url("finix/fonts/Satoshi-Bold.woff2") format("woff2"); font-weight: 700; font-display: swap; }

/* Nivel 3 compartido · igual que packages/react/src/styles/base.css */
:root {
  --finix-focus-ring-color: var(--finix-color-primary-normal);
  --finix-focus-ring-width: 2px;
  --finix-focus-ring-offset: 2px;
  --finix-motion-duration: 150ms;
  --finix-gradient-angle: 100deg;
  --finix-control-gradient: linear-gradient(var(--finix-gradient-angle), var(--finix-color-button-gradient-strong) 0%, var(--finix-color-button-gradient-light) 100%);
  --finix-shadow-light: 2px 4px 12px 0 var(--finix-color-shadow-button-light);
  --finix-shadow-normal: 2px 8px 20px 0 var(--finix-color-shadow-button-normal);
  --finix-shadow-strong: 2px 8px 20px 0 var(--finix-color-shadow-button-strong);
  --finix-shadow-gray: 2px 4px 16px 0 var(--finix-color-shadow-gray);
  --finix-shadow-inner: inset 0 1px 3px 0 rgb(0 0 0 / 0.2);
  /* La sala es solo móvil: se fijan los radios móviles (en 1024 px el DS los lleva a 0). */
  --sala-radio-sm: 8px;
  --sala-radio-md: 16px;
  --sala-radio-lg: 24px;
  color-scheme: light;
}

* { box-sizing: border-box; }
html, body { margin: 0; background: var(--finix-color-fill-light); color: var(--finix-color-text-normal); }
body {
  font-family: var(--finix-font-body1-family); font-weight: 400;
  font-size: var(--finix-font-body1-size); line-height: var(--finix-font-body1-line-height);
  min-height: 100svh; display: flex; flex-direction: column; -webkit-text-size-adjust: 100%;
}

/* Barra superior (AppHeader · default) */
.barra { position: sticky; top: 0; z-index: 5; background: var(--finix-color-fill-white); padding: calc(var(--finix-size-12) + env(safe-area-inset-top)) var(--finix-size-16) var(--finix-size-12); box-shadow: var(--finix-shadow-light); }
.marca { display: flex; align-items: center; gap: var(--finix-size-8); padding-bottom: var(--finix-size-12); font-family: var(--finix-font-caption-family); font-weight: var(--finix-font-caption-weight); font-size: var(--finix-font-caption-size); line-height: var(--finix-font-caption-line-height); color: var(--finix-color-text-assistive); }
.marca b { color: var(--finix-color-primary-normal); }
.marca-punto { width: var(--finix-size-8); height: var(--finix-size-8); border-radius: var(--finix-radius-infinity); background: var(--finix-color-primary-light); }
.avance { height: var(--finix-size-8); border-radius: var(--finix-size-24); background: var(--finix-color-stroke-normal); overflow: hidden; }
.avance span { display: block; height: 100%; width: 0; min-width: var(--finix-size-8); border-radius: inherit; background: var(--finix-color-primary-normal); transition: width 400ms ease; }

.contenido { flex: 1; width: 100%; max-width: 560px; margin: 0 auto; padding: var(--finix-size-24) var(--finix-size-16) 128px; outline: none; }
.contenido h1 { margin: 0 0 var(--finix-size-12); font-family: var(--finix-font-h3-family); font-weight: var(--finix-font-h3-weight); font-size: var(--finix-font-h3-size); line-height: var(--finix-font-h3-line-height); }
.contenido h2 { margin: 0 0 var(--finix-size-8); font-family: var(--finix-font-subtitle1-family); font-weight: var(--finix-font-subtitle1-weight); font-size: var(--finix-font-subtitle1-size); line-height: var(--finix-font-subtitle1-line-height); }
.contenido p { margin: 0 0 var(--finix-size-12); color: var(--finix-color-text-alternative); }
.etiqueta-paso { display: inline-block; margin-bottom: var(--finix-size-12); padding: var(--finix-size-4) var(--finix-size-12); border-radius: var(--finix-size-4); background: var(--finix-color-fill-white); box-shadow: var(--finix-shadow-light); color: var(--finix-color-primary-normal); font-family: var(--finix-font-caption-family); font-weight: 700; font-size: var(--finix-font-caption-size); line-height: var(--finix-font-caption-line-height); }
.ayuda { margin: calc(var(--finix-size-4) * -1) 0 var(--finix-size-16); font-size: var(--finix-font-body2-size); line-height: var(--finix-font-body2-line-height); color: var(--finix-color-text-assistive) !important; }
/* Card · fill-white + Shadow-Light, radio 16 */
.caja { margin: var(--finix-size-16) 0; padding: var(--finix-size-16); border-radius: var(--sala-radio-md); background: var(--finix-color-fill-white); box-shadow: var(--finix-shadow-light); }
.caja p:last-child { margin-bottom: 0; }
.caja-tarea { border: var(--finix-stroke-m) solid var(--finix-color-stroke-color-normal); }
.caja-tarea p { color: var(--finix-color-text-normal); }

/* Opciones (SelectableCard + Radio/Checkbox) */
.opciones { display: grid; gap: var(--finix-size-12); margin-top: var(--finix-size-16); }
.opcion {
  display: flex; align-items: center; gap: var(--finix-size-12); width: 100%; min-height: 56px; padding: var(--finix-size-12) var(--finix-size-16);
  border: var(--finix-stroke-s) solid transparent; border-radius: var(--sala-radio-sm); background: var(--finix-color-fill-white); box-shadow: var(--finix-shadow-light);
  font: inherit; color: var(--finix-color-text-normal); text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
  transition: background-color var(--finix-motion-duration) ease, box-shadow var(--finix-motion-duration) ease;
}
.opcion:hover { box-shadow: var(--finix-shadow-normal); }
.opcion[aria-checked="true"] { background: linear-gradient(var(--finix-color-fill-primary-light), var(--finix-color-fill-primary-light)), var(--finix-color-fill-white); }
.opcion > span:last-child { flex: 1; min-width: 0; }
.opcion small { display: block; margin-top: var(--finix-size-2); font-size: var(--finix-font-body2-size); line-height: var(--finix-font-body2-line-height); color: var(--finix-color-text-assistive); }
/* Indicador a la derecha, como en SelectableCard */
.opcion .marca-op { order: 2; flex: 0 0 var(--finix-size-24); height: var(--finix-size-24); display: grid; place-items: center; border: var(--finix-stroke-m) solid var(--finix-color-stroke-strong); border-radius: var(--finix-radius-infinity); background: var(--finix-color-fill-white); }
.opcion[role="checkbox"] .marca-op { border-radius: var(--finix-size-4); }
.opcion[aria-checked="true"] .marca-op { border-color: var(--finix-color-primary-normal); }
.opcion[role="radio"][aria-checked="true"] .marca-op::after { content: ""; width: var(--finix-size-12); height: var(--finix-size-12); border-radius: var(--finix-radius-infinity); background: var(--finix-color-primary-normal); }
.opcion[role="checkbox"][aria-checked="true"] .marca-op { background: var(--finix-control-gradient); }
.opcion[role="checkbox"][aria-checked="true"] .marca-op::after { content: ""; width: 10px; height: 6px; border: 2px solid var(--finix-color-fill-white); border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }

/* Campo de «Otra»: pegado a su opción (TextField) */
.opciones .otro-campo { margin-top: calc(var(--finix-size-4) * -1); }
.opciones .otro-campo[hidden] { display: none; }

/* Escala (SegmentedControl) */
.escala { display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: var(--finix-size-8); margin-top: var(--finix-size-16); }
.escala button { min-height: 52px; border: 0; border-radius: var(--sala-radio-sm); background: var(--finix-color-fill-white); box-shadow: var(--finix-shadow-light); color: var(--finix-color-text-normal); font-family: var(--finix-font-subtitle2-family); font-weight: var(--finix-font-subtitle2-weight); font-size: var(--finix-font-subtitle2-size); cursor: pointer; }
.escala button[aria-checked="true"] { background: var(--finix-control-gradient); color: var(--finix-color-text-light); box-shadow: var(--finix-shadow-normal); }
.escala-polos { display: flex; justify-content: space-between; gap: var(--finix-size-12); margin-top: var(--finix-size-8); font-size: var(--finix-font-body2-size); line-height: var(--finix-font-body2-line-height); color: var(--finix-color-text-assistive); }
.escala-polos span:last-child { text-align: right; }
.escala-centro { margin-top: var(--finix-size-2); text-align: center; font-size: var(--finix-font-body2-size); line-height: var(--finix-font-body2-line-height); color: var(--finix-color-text-assistive); }

/* Campos de texto (TextField) */
textarea, input[type="text"] {
  display: block; width: 100%; margin-top: var(--finix-size-16); padding: var(--finix-size-12) var(--finix-size-16);
  border: var(--finix-stroke-s) solid var(--finix-color-stroke-strong); border-radius: var(--sala-radio-sm); background: var(--finix-color-fill-white);
  font: inherit; color: var(--finix-color-text-normal); resize: vertical;
}
input[type="text"] { min-height: var(--finix-button-height-md); }
textarea { min-height: 136px; }
textarea:hover, input[type="text"]:hover { box-shadow: var(--finix-shadow-light); }
textarea:focus, input[type="text"]:focus { outline: none; border-color: var(--finix-color-stroke-color-normal); box-shadow: var(--finix-shadow-light), inset 0 0 0 1px var(--finix-color-stroke-color-normal); }

.error { min-height: 1em; margin-top: var(--finix-size-12) !important; font-size: var(--finix-font-body2-size); line-height: var(--finix-font-body2-line-height); color: var(--finix-color-status-negative) !important; }

/* Pie con botón principal (Button · primary, full) */
.pie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 5; padding: var(--finix-size-24) var(--finix-size-16) calc(var(--finix-size-16) + env(safe-area-inset-bottom)); background: linear-gradient(transparent, var(--finix-color-fill-light) 30%); }
.pie[hidden] { display: none; }
.boton {
  display: flex; align-items: center; justify-content: center; width: 100%; max-width: 528px; height: var(--finix-button-height-md); margin: 0 auto; padding: 0 var(--finix-size-32);
  border: var(--finix-stroke-m) solid transparent; border-radius: var(--finix-radius-infinity); background: var(--finix-control-gradient); color: var(--finix-color-text-light); box-shadow: var(--finix-shadow-normal);
  font-family: var(--finix-font-button1-family); font-weight: var(--finix-font-button1-weight); font-size: var(--finix-font-button1-size); line-height: var(--finix-font-button1-line-height);
  cursor: pointer; -webkit-tap-highlight-color: transparent; transition: box-shadow var(--finix-motion-duration) ease;
}
.boton:hover:not(:disabled) { box-shadow: var(--finix-shadow-strong); }
.boton:disabled { background: var(--finix-color-fill-disabled); box-shadow: var(--finix-shadow-gray); cursor: not-allowed; }
/* Button · secondary */
.boton-sec { background: var(--finix-color-fill-light); color: var(--finix-color-primary-normal); border-color: var(--finix-color-primary-normal); box-shadow: var(--finix-shadow-light); }
.boton-sec:hover:not(:disabled) { box-shadow: var(--finix-shadow-normal); }
button:focus-visible, .opcion:focus-visible { outline: var(--finix-focus-ring-width) solid var(--finix-focus-ring-color); outline-offset: var(--finix-focus-ring-offset); }

/* Prueba de preferencia (SelectableCard · family) */
.preferencia { display: grid; grid-template-columns: 1fr 1fr; gap: var(--finix-size-12); margin-top: var(--finix-size-16); }
.pref-tarjeta { display: block; width: 100%; padding: var(--finix-size-8); border: var(--finix-stroke-m) solid transparent; border-radius: var(--sala-radio-md); background: var(--finix-color-fill-white); box-shadow: var(--finix-shadow-light); text-align: center; font: inherit; color: var(--finix-color-text-normal); cursor: pointer; }
.pref-tarjeta[aria-checked="true"] { border-color: var(--finix-color-stroke-color-normal); background: linear-gradient(var(--finix-color-fill-primary-light), var(--finix-color-fill-primary-light)), var(--finix-color-fill-white); box-shadow: var(--finix-shadow-normal); }
/* #0f2a20: fondo del video mientras carga, igual al verde del loader (simulación de terceros) */
.pref-tarjeta video, .pref-tarjeta img { display: block; width: 100%; aspect-ratio: 390 / 844; object-fit: cover; border-radius: var(--sala-radio-sm); background: #0f2a20; }
.pref-tarjeta span { display: block; padding: var(--finix-size-8) 0 var(--finix-size-4); font-family: var(--finix-font-subtitle2-family); font-weight: var(--finix-font-subtitle2-weight); font-size: var(--finix-font-body2-size); line-height: var(--finix-font-body2-line-height); }
.pref-nombre { display: block; padding-bottom: var(--finix-size-4); font-family: var(--finix-font-body2-family); font-size: var(--finix-font-body2-size); line-height: var(--finix-font-body2-line-height); color: var(--finix-color-text-alternative); }
.pref-ampliar { padding: var(--finix-size-8) var(--finix-size-4); border: 0; background: none; color: var(--finix-color-primary-normal); font-family: var(--finix-font-button2-family); font-weight: var(--finix-font-button2-weight); font-size: var(--finix-font-button2-size); text-decoration: underline; cursor: pointer; }
.visor { position: fixed; inset: 0; z-index: 30; display: grid; place-items: center; padding: var(--finix-size-16); background: color-mix(in srgb, var(--finix-color-neutral-950) 92%, transparent); }
.visor video { max-width: 100%; max-height: calc(100svh - 96px); border-radius: var(--sala-radio-md); }
.visor button { position: absolute; top: var(--finix-size-12); right: var(--finix-size-12); width: auto; }

/* Escenario del prototipo */
.escenario { position: fixed; inset: 0; z-index: 20; background: var(--finix-color-bancoazteca-green-950); }
.dispositivo { position: absolute; inset: 0; overflow: hidden; }
.pantallas, .pantallas > * { position: absolute; inset: 0; }

/* Pantallas anchas: el escenario se muestra dentro de un teléfono de 390 × 844, centrado y escalado (sala.js fija
   --escala), con el mismo fondo y sombra que el loader VF para que las tres pantallas se vean iguales. */
@media (min-width: 600px) {
  .escenario { background: var(--finix-color-fill-light); }
  .dispositivo {
    inset: auto; left: 50%; top: 50%; width: 390px; height: 844px;
    transform: translate(-50%, -50%) scale(var(--escala, 1)); transform-origin: center;
    border-radius: 30px; outline: 1px solid color-mix(in srgb, var(--finix-color-fill-white) 60%, transparent);
    box-shadow: 0 24px 80px var(--finix-color-shadow-light), var(--finix-shadow-gray);
    background: var(--finix-color-fill-white);
  }
  .dispositivo .hoja-tarea, .dispositivo .aviso-exito { padding-bottom: var(--finix-size-24); }
}
.pantallas iframe { display: block; width: 100%; height: 100%; border: 0; background: var(--finix-color-bancoazteca-green-800); }
/* Chip_navbar del AppHeader, en versión oscura para no confundirse con la app */
.pastilla-tarea { position: absolute; z-index: 3; left: var(--finix-size-8); top: calc(var(--finix-size-8) + env(safe-area-inset-top)); height: 28px; padding: 0 var(--finix-size-12); border: 0; border-radius: var(--finix-radius-infinity); background: color-mix(in srgb, var(--finix-color-neutral-950) 80%, transparent); color: var(--finix-color-fill-white); font-family: var(--finix-font-caption-family); font-weight: 700; font-size: var(--finix-font-caption-size); cursor: pointer; }
/* BottomSheet */
.hoja-tarea, .aviso-exito { position: absolute; z-index: 4; left: 0; right: 0; bottom: 0; padding: var(--finix-size-24) var(--finix-size-16) calc(var(--finix-size-16) + env(safe-area-inset-bottom)); border-radius: var(--sala-radio-lg) var(--sala-radio-lg) 0 0; background: var(--finix-color-fill-white); box-shadow: var(--finix-shadow-gray); }
.aviso-exito { z-index: 5; }
.hoja-tarea p, .aviso-exito p { margin: 0 0 var(--finix-size-16); color: var(--finix-color-text-normal); }
.hoja-titulo { font-family: var(--finix-font-subtitle1-family); font-weight: var(--finix-font-subtitle1-weight); font-size: var(--finix-font-subtitle1-size); line-height: var(--finix-font-subtitle1-line-height); }
.hoja-acciones { display: grid; gap: var(--finix-size-12); }

/* ---------- Pantallas de la PWA (patrón Screen de Finix: cabecera con gradiente + hoja blanca) ---------- */
.pwa { display: flex; flex-direction: column; overflow-y: auto; background: var(--finix-control-gradient); color: var(--finix-color-text-normal); font-family: var(--finix-font-body1-family); }
.pwa-cabecera { flex: none; padding: calc(var(--finix-size-48) + env(safe-area-inset-top)) var(--finix-size-24) var(--finix-size-32); color: var(--finix-color-text-light); }
/* AppHeader · Progress bar inverse: track fill-light, fill Primary-Light, fase en Subtitle-2 */
.pwa-progreso { display: flex; flex-direction: column; align-items: center; gap: var(--finix-size-12); margin-bottom: var(--finix-size-32); }
.pwa-progreso-pista { width: 100%; height: var(--finix-size-8); border-radius: var(--finix-size-24); background: var(--finix-color-fill-light); overflow: hidden; }
.pwa-progreso-pista span { display: block; height: 100%; border-radius: inherit; background: var(--finix-color-primary-light); }
.pwa-progreso-fase { font-family: var(--finix-font-subtitle2-family); font-weight: var(--finix-font-subtitle2-weight); font-size: var(--finix-font-subtitle2-size); line-height: var(--finix-font-subtitle2-line-height); }
.pwa-cabecera h2 { margin: 0 0 var(--finix-size-12); font-family: var(--finix-font-h2-family); font-weight: 700; font-size: var(--finix-font-h2-size); line-height: var(--finix-font-h2-line-height); }
.pwa-cabecera p { margin: 0; font-size: var(--finix-font-body1-size); line-height: var(--finix-font-body1-line-height); }
.pwa-hoja { flex: 1 0 auto; display: flex; flex-direction: column; gap: var(--finix-size-16); padding: var(--finix-size-24) var(--finix-size-24) calc(var(--finix-size-24) + env(safe-area-inset-bottom)); border-radius: var(--sala-radio-lg) var(--sala-radio-lg) 0 0; background: var(--finix-color-fill-light); }
/* SummaryCard · Master-CardDatospersonales */
.pwa-resumen { display: flex; flex-direction: column; gap: var(--finix-size-24); padding: var(--finix-size-24); border-radius: var(--finix-size-16); background: var(--finix-color-fill-white); box-shadow: var(--finix-shadow-light); }
.pwa-resumen h3 { margin: 0; font-family: var(--finix-font-subtitle2-family); font-weight: var(--finix-font-subtitle2-weight); font-size: var(--finix-font-subtitle2-size); line-height: var(--finix-font-subtitle2-line-height); }
.pwa-resumen dl { display: flex; flex-direction: column; gap: var(--finix-size-12); margin: 0; }
.pwa-resumen dl div { display: flex; flex-wrap: wrap; column-gap: var(--finix-size-8); font-weight: var(--finix-font-body1-weight); }
.pwa-resumen dt { color: var(--finix-color-text-assistive); }
.pwa-resumen dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.pwa-nota { margin: 0; text-align: center; font-family: var(--finix-font-caption-family); font-weight: var(--finix-font-caption-weight); font-size: var(--finix-font-caption-size); line-height: var(--finix-font-caption-line-height); color: var(--finix-color-text-assistive); }
/* El botón queda fijo abajo, como el «Continuar» de las pantallas de OU, para que no dependa del scroll. */
.pwa-acciones { position: sticky; bottom: 0; margin: auto calc(var(--finix-size-24) * -1) calc((var(--finix-size-24) + env(safe-area-inset-bottom)) * -1); padding: var(--finix-size-24) var(--finix-size-24) calc(var(--finix-size-16) + env(safe-area-inset-bottom)); background: linear-gradient(transparent, var(--finix-color-fill-light) 35%); }
.pwa-acciones .boton { max-width: none; }
/* Oferta (Card de monto) */
.pwa-oferta { padding: var(--finix-size-24); border: var(--finix-stroke-m) solid var(--finix-color-stroke-color-normal); border-radius: var(--finix-size-16); background: var(--finix-color-fill-white); box-shadow: var(--finix-shadow-light); text-align: center; }
.pwa-oferta p { margin: 0; color: var(--finix-color-text-alternative); }
.pwa-oferta strong { display: block; margin: var(--finix-size-8) 0; color: var(--finix-color-primary-normal); font-family: var(--finix-font-h1-family); font-weight: var(--finix-font-h1-weight); font-size: var(--finix-font-h1-size); line-height: var(--finix-font-h1-line-height); }

/* Oferta · diseño OU 2.0 «te podemos prestar hasta» (CardMontos = SelectableCard · offer) */
/* El fondo de .pwa ya es el gradiente: así las esquinas redondeadas de la hoja muestran verde detrás. */
.oferta-arte { position: relative; flex: none; display: flex; flex-direction: column; align-items: center; padding: calc(var(--finix-size-24) + env(safe-area-inset-top)) var(--finix-size-24) var(--sala-radio-lg); }
/* Logo blanco con la máscara del loader VF (mismo recurso de marca) */
.oferta-logo { width: 176px; height: 24px; background: var(--finix-color-fill-white); -webkit-mask: url("finix/logo-banco-azteca-mask.png") center / contain no-repeat; mask: url("finix/logo-banco-azteca-mask.png") center / contain no-repeat; }
/* Figma: componente «OUOF001 Efectivo:oferta01», 250 × 250 en un marco de 360 (≈ 69 % del ancho) */
.oferta-ilustracion { display: block; width: 69%; max-width: 280px; aspect-ratio: 1; height: auto; margin: var(--finix-size-16) 0 calc(var(--finix-size-8) * -1); object-fit: contain; }
.oferta-ilustracion-respaldo { display: grid; place-items: center; width: 168px; height: 168px; margin: var(--finix-size-32) 0 var(--finix-size-48); border-radius: var(--finix-radius-infinity); background: color-mix(in srgb, var(--finix-color-fill-white) 92%, transparent); box-shadow: var(--finix-shadow-strong); }
.oferta-ilustracion-respaldo img { width: 108px; height: auto; }
.oferta-hoja { position: relative; z-index: 1; margin-top: calc(var(--sala-radio-lg) * -1); align-items: center; text-align: center; gap: var(--finix-size-12); }
.oferta-titulo { margin: var(--finix-size-8) 0 0; font-family: var(--finix-font-h3-family); font-weight: 700; font-size: 30px; line-height: 38px; color: var(--finix-color-text-normal); }
.oferta-verde { color: var(--finix-color-primary-normal); }
.oferta-sub { margin: var(--finix-size-4) 0 0; font-family: var(--finix-font-subtitle2-family); font-weight: var(--finix-font-subtitle2-weight); font-size: var(--finix-font-subtitle2-size); line-height: var(--finix-font-subtitle2-line-height); color: var(--finix-color-primary-normal); }
.oferta-o { margin: 0; font-family: var(--finix-font-body1-family); font-weight: 600; color: var(--finix-color-text-normal); }
.oferta-carrusel { display: flex; gap: var(--finix-size-12); align-self: stretch; margin: 0 calc(var(--finix-size-24) * -1); padding: var(--finix-size-4) var(--finix-size-24) var(--finix-size-12); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--finix-size-24); scrollbar-width: none; }
.oferta-carrusel::-webkit-scrollbar { display: none; }
.oferta-producto { flex: 0 0 86%; scroll-snap-align: start; display: flex; align-items: center; gap: var(--finix-size-16); min-height: 84px; padding: var(--finix-size-8) var(--finix-size-16); border: var(--finix-stroke-m) solid var(--finix-color-stroke-color-normal); border-radius: var(--finix-size-16); background: var(--finix-color-fill-white); text-align: left; }
.oferta-producto img { width: 56px; height: 56px; flex: none; }
.oferta-producto b { display: block; font-family: var(--finix-font-subtitle1-family); font-weight: 700; font-size: var(--finix-font-subtitle1-size); line-height: var(--finix-font-subtitle1-line-height); color: var(--finix-color-text-normal); }
.oferta-producto b span, .oferta-familia { font-family: var(--finix-font-subtitle2-family); font-weight: var(--finix-font-subtitle2-weight); font-size: var(--finix-font-subtitle2-size); color: var(--finix-color-text-assistive); }
.oferta-acciones { align-self: stretch; margin-top: auto; padding-top: var(--finix-size-8); }
.oferta-acciones .boton { max-width: none; }
.oferta-legal { margin: var(--finix-size-8) 0 0; font-family: var(--finix-font-legal-family); font-size: var(--finix-font-caption-size); line-height: var(--finix-font-caption-line-height); color: var(--finix-color-text-assistive); }

.cargando { display: grid; place-items: center; min-height: 40vh; color: var(--finix-color-text-assistive); }

@media (prefers-reduced-motion: reduce) { .avance span, .opcion, .boton { transition: none; } }
