/* ══ Tokens y arranque ═════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════
   GELLVANE — la casa del canje
   ══════════════════════════════════════════════════════════════
   Ciruela profunda y lima. Los dos tonos salen de los únicos
   huecos que quedaban en el círculo: violeta 280°–290° y verde
   85°–120°, casi complementarios — que es lo que le va a una casa
   donde dos cosas se cruzan.

   La forma también se cruza: panel de esquina viva y botón en
   pastilla. Ninguna hermana mezcla las dos.
   ══════════════════════════════════════════════════════════════ */
:root{/* la escala de espaciado: los escalones que ya mandaban en la hoja */
  --e1:.4rem;
  --e2:.5rem;
  --e3:.6rem;
  --e4:.75rem;
  --e5:.9rem;
  --e6:1rem;
  --e7:1.25rem;
  --e8:1.5rem;
  --e9:2rem;
  --e10:2.5rem;
  --e11:3rem;
  --e12:4rem;
  /* — materia — */
  --base:#150C18;        /* ciruela profunda */
  --panel:#201523;
  --panel-2:#2B1E2F;
  --filete:#382A3C;
  --filete-2:#6F5775;    /* borde de control: 3.00:1, el mínimo que cumple */

  /* — tinta — */
  --tinta:#F3F1F3;       /* 17.02:1 */
  --tinta-2:#CAC1CD;     /* 10.95:1 */
  --apoyo:#A395A7;       /* 6.75:1 */

  /* — acento — */
  --lima:#94DA62;        /* 11.36:1 sobre el fondo */
  --lima-2:#263918;
  --lima-ink:#190C1D;

  /* — estados — */
  --ok:#94DA62;   --ok-2:#263918;
  --pausa:#E0B44A; --pausa-2:#3A2E12;
  --alto:#E8736B; --alto-2:#3A1A18;

  /* — tipografía — */
  --fd:"Gabarito","Work Sans",system-ui,sans-serif;
  --fs:"Work Sans",system-ui,-apple-system,"Segoe UI",sans-serif;

  /* — medidas — */
  --ancho:1120px;
  --gut:clamp(1.25rem,4vw,2.5rem);
  --ctrl:4px;            /* el panel, casi vivo */
  --pastilla:999px;      /* el botón, redondo entero */
  --t:.17s;
  --paso:.33s;}
*,*::before,*::after{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--base);color:var(--tinta);
  font-family:var(--fs);font-size:1rem;line-height:1.62;font-synthesis-weight:none}
@media (prefers-reduced-motion:reduce){
*{animation:none!important;transition:none!important}
}
body{--altura-barra:72px}
/* ── fin del panel ── */
/* ── el sistema de medidas ─────────────────────────────────────────
   El alto de los controles sale de un token, no del relleno: así el
   botón y el campo que van juntos miden lo mismo. Antes el mismo
   componente caía en alturas distintas según dónde estuviera. */
:root{--h-ctrl:44px;      /* botón y campo */
  --h-ctrl-lg:52px;   /* la variante grande */
  --h-ctrl-sm:32px;   /* la variante compacta */
  --e1:.35rem; --e2:.6rem; --e3:.9rem;
  --e4:1.25rem; --e5:1.75rem; --e6:2.5rem;}

/* ══ Base tipográfica ══════════════════════════════════════════════ */
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--fd);font-weight:700;line-height:1.08;
  letter-spacing:-.02em;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
h1{font-size:clamp(2rem,1.1rem + 3.1vw,3.5rem)}
h2{font-size:clamp(1.5rem,1.1rem + 1.6vw,2.25rem)}
h3{font-size:clamp(1.0625rem,1rem + .4vw,1.25rem)}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--lima);outline-offset:2px}
::selection{background:var(--lima);color:var(--lima-ink)}
.gv-barra__in{display:flex;align-items:center;gap:var(--e8);min-height:68px}
.gv-logo{display:inline-flex;align-items:center;gap:.34em;font-family:var(--fd);
  font-weight:700;letter-spacing:-.02em;font-size:1.1875rem;color:var(--tinta);
  text-decoration:none}
.gv-nav{display:flex;gap:var(--e8);margin-left:auto;font-size:.9375rem}
.gv-barra__acc{display:flex;align-items:center;gap:var(--e5);margin-left:auto}
.gv-idioma{display:flex;gap:var(--e1);font-size:.8125rem;color:var(--apoyo)}
.gv-enlace{font-size:.9375rem;text-decoration:underline;text-underline-offset:3px}
.gv-b{display:inline-flex;align-items:center;justify-content:center;gap:var(--e2);
  font-family:var(--fd);font-weight:600;font-size:.9375rem;line-height:1;
  padding:var(--e4) var(--e7);border-radius:var(--pastilla);text-decoration:none;
  border:1px solid transparent;cursor:pointer;
  transition:background var(--t),border-color var(--t),color var(--t)}
.gv-b--lima{background:var(--lima);color:var(--lima-ink);border-color:var(--lima)}
.gv-b--linea{background:transparent;color:var(--tinta);border-color:var(--filete-2)}
.gv-b--grande{padding:var(--e5) 1.7rem;font-size:1rem}
.gv-b--chico{padding:var(--e1) var(--e5);font-size:.8125rem}
.gv-b--ancho{width:100%;margin-top:var(--e7)}
.gv-eyebrow{font-family:var(--fd);font-weight:600;font-size:.75rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--lima)}
.gv-hero__d{margin-top:var(--e7);font-size:clamp(1.0625rem,1rem + .35vw,1.1875rem);
  color:var(--tinta-2);max-width:46ch}
.gv-hero__acc{margin-top:var(--e9);display:flex;flex-wrap:wrap;gap:var(--e4)}
.gv-pasos{margin-top:var(--e9);display:grid;gap:var(--e6);counter-reset:pa;
  grid-template-columns:minmax(0,1fr)}
.gv-cifra{margin-top:var(--e8);font-family:var(--fd);font-weight:700;
  font-size:clamp(2rem,1.2rem + 3.6vw,3.75rem);line-height:1.05;
  letter-spacing:-.03em;max-width:20ch}
.gv-cifra__pie{margin-top:var(--e7);color:var(--tinta-2);max-width:52ch}
.gv-campo{display:block;margin-bottom:var(--e7)}
.gv-campo input,.gv-campo select,.gv-campo textarea, .gv-acceso input[type=email],.gv-acceso input[type=password], .gv-acceso input[type=text],.gv-acceso input[type=tel]{width:100%;font:inherit;color:var(--tinta);background:var(--panel);
  border:1px solid var(--filete-2);border-radius:var(--ctrl);
  padding:var(--e4) var(--e5);transition:border-color var(--t),box-shadow var(--t)}
.gv-campo input:focus,.gv-campo select:focus,.gv-campo textarea:focus, .gv-acceso input:focus{outline:0;border-color:var(--lima);
  box-shadow:0 0 0 3px var(--lima-2)}
.gv-forma{margin-top:var(--e9);display:grid;gap:0 var(--e7);
  grid-template-columns:minmax(0,1fr)}
.gv-nota{display:flex;align-items:flex-start;gap:var(--e3);padding:var(--e5) var(--e6);
  border:1px solid var(--filete-2);border-radius:var(--ctrl);margin-bottom:var(--e7);
  font-size:.9375rem}
.gv-chip{display:inline-flex;align-items:center;padding:.22rem var(--e3);
  font-size:.75rem;font-weight:700;border:1px solid currentColor;border-radius:var(--pastilla)}
.gv-pie{margin-top:clamp(2.5rem,6vw,4.5rem);border-top:1px solid var(--filete-2);
  padding-top:clamp(2rem,4vw,3rem);font-size:.9375rem}
.gv-pie__in{display:grid;gap:var(--e9);grid-template-columns:minmax(0,1fr)}
.gv-pie__d{color:var(--apoyo);max-width:34ch}
.gv-pagos{display:flex;flex-wrap:wrap;gap:var(--e1);margin-top:var(--e6)}
.gv-pie__cierre{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--e2);
  margin-top:var(--e9);padding:var(--e6) 0 var(--e8);border-top:1px solid var(--filete);
  font-size:.8125rem;color:var(--apoyo)}
.gv-acceso__d{margin:var(--e3) 0 var(--e8);color:var(--apoyo);font-size:.9375rem}
.gv-acceso__pie{margin-top:var(--e7);padding-top:var(--e7);border-top:1px solid var(--filete);
  font-size:.875rem;color:var(--apoyo)}
.gv-casilla{display:flex;gap:var(--e3);align-items:flex-start;margin-top:var(--e6);font-size:.875rem}
.gv-casilla--legal{color:var(--tinta-2)}
@media (max-width:900px){
.gv-nav{display:none}
}
@media (max-width:520px){
.gv-idioma{display:none}
}
/* ══════════════════════════════════════════════════════════════
   PANTALLAS INTERNAS — mostrador, comprobante y autorizaciones
   ══════════════════════════════════════════════════════════════
   Mismo fondo que las hermanas y otra forma: aquí todo va en
   tarjetas redondeadas sobre papel de estraza, con el verde sólo
   en lo que se puede pulsar. Nada de filetes a hueso.
   ══════════════════════════════════════════════════════════════ */
.gv-word{display:inline-block}
.gv-apagado{color:var(--apoyo)}
.gv-marca-agua{font-family:var(--fd);font-weight:600;font-size:.75rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--lima)}
.gv-marca-agua--alto{color:var(--alto)}
.gv-app__cab{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:var(--e6);margin-bottom:var(--e9)}
.gv-app__estado{display:flex;align-items:center;gap:var(--e2);font-size:.9375rem;color:var(--tinta-2)}
/* El asiento: los tres totales, en pastillas y no en celdas con filete. */
.gv-cambio,.gv-asiento{display:grid;gap:var(--e5);grid-template-columns:minmax(0,1fr);margin-bottom:var(--e9)}
/* El mostrador: la remesa nueva a la izquierda, lo enviado a la derecha. */
.gv-escritorio{display:grid;gap:var(--e8);grid-template-columns:minmax(0,1fr);align-items:start}
.gv-cuenta__cab{display:flex;align-items:baseline;justify-content:space-between;gap:var(--e6);
  padding:var(--e5) var(--e7);background:var(--lima);color:var(--lima-ink)}
.gv-cuenta__r{display:flex;align-items:baseline;justify-content:space-between;gap:var(--e6);
  padding:var(--e5) var(--e7);border-bottom:1px solid var(--filete)}
.gv-cuenta__pie{padding:var(--e4) var(--e7);border-top:1px solid var(--filete);
  background:var(--panel);font-size:.75rem;color:var(--apoyo)}
.gv-asiento-chico{margin:var(--e7) 0 0;border:1px solid var(--filete);
  border-radius:var(--ctrl);overflow:hidden;background:var(--panel)}
/* El monto: la moneda en pastilla, no pegada al campo. */
.gv-monto{display:flex;align-items:stretch;border:1px solid var(--filete-2);
  border-radius:var(--ctrl);background:var(--panel-2);overflow:hidden}
.gv-monto__m{display:flex;align-items:center;padding:0 var(--e5);background:var(--panel);
  border-right:1px solid var(--filete);font-family:var(--fd);font-weight:700;
  font-size:.8125rem;color:var(--apoyo)}
.gv-monto input{flex:1;min-width:0;border:0;background:transparent;font:inherit;
  font-family:var(--fd);font-weight:700;font-size:1.375rem;padding:var(--e3) var(--e5);
  font-variant-numeric:tabular-nums}
.gv-monto input:focus{outline:0}
[data-monto-msg]{display:block;margin-top:var(--e1);font-size:.8125rem;color:var(--apoyo)}
[data-billetera] input{width:100%;font:inherit;font-family:var(--fd);background:var(--panel-2);
  border:1px solid var(--filete-2);border-radius:var(--ctrl);padding:var(--e4) var(--e5);
  overflow-wrap:anywhere}
[data-billetera] input:focus{outline:0;border-color:var(--lima);box-shadow:0 0 0 3px var(--lima-2)}
@keyframes gv-gira{
to{transform:rotate(360deg)}
}
main input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]), footer input:not([type=checkbox]):not([type=hidden]){min-height:var(--h-ctrl);box-sizing:border-box;padding-block:0}
/* el desplegable trae relleno propio del navegador y su alto natural se salta
   el mínimo: aquí va fijo, o queda de 2 a 7px más alto que el campo de al lado */
main select{height:var(--h-ctrl);min-height:var(--h-ctrl);box-sizing:border-box;padding-block:0}
main textarea{min-height:calc(var(--h-ctrl) * 2.8);box-sizing:border-box}

/* ══ Contenedor y zonas ════════════════════════════════════════════ */
.gv-ancho{width:min(var(--ancho),100% - var(--gut)*2);margin-inline:auto}
.gv-sec{padding:clamp(2.75rem,6vw,4.5rem) 0;border-top:1px solid var(--filete)}
.gv-sec__cab{max-width:54ch}
.gv-sec__cab p{margin-top:var(--e4);color:var(--tinta-2)}
/* el eje a la derecha lo tomaba SÓLO el título y quedaba huérfano sobre un
   contenido que empezaba en el extremo opuesto. Ahora es una columna: el
   contenido a la izquierda y el encabezado a la derecha, pegajoso. */
@media (min-width:900px){
  section.gv-sec > .gv-ancho{display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,17rem);
    gap:clamp(2rem,5vw,4rem);align-items:start}
  section.gv-sec > .gv-ancho > .gv-sec__cab{grid-column:2;grid-row:1;
    max-width:none;margin-left:0;text-align:right;position:sticky;top:1.5rem}
  section.gv-sec > .gv-ancho > *:not(.gv-sec__cab){grid-column:1}
}
@media (max-width:899px){
  .gv-sec__cab{text-align:left}
}

/* ══ Cabecera ══════════════════════════════════════════════════════ */
.gv-barra{background:rgba(21,12,24,.9);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--filete);position:sticky;top:0;z-index:40}
.gv-nav a{color:var(--tinta-2);text-decoration:none;padding-block:var(--e1);
  border-bottom:2px solid transparent;transition:color var(--t),border-color var(--t)}
.gv-nav a:hover,.gv-nav a.is-aqui{color:var(--lima);border-bottom-color:var(--lima)}
.gv-nav + .gv-barra__acc{margin-left:0}
.gv-idioma a{text-decoration:none}
.gv-idioma a[aria-current]{color:var(--lima);font-weight:700}
@media (max-width:900px){
.gv-barra__acc{margin-left:auto}
}
@media (max-width:520px){
.gv-barra__in{gap:var(--e4)}
}
/* ── La marca en la barra ───────────────────────────────────────
   0.804 em = 1,18 mayúsculas de esta tipografía, que mide 0.681 em.
   El min-width:0 NO sobra: los hijos de un contenedor flexible nacen
   con min-width:auto y eso le pone un suelo de 1em a la insignia,
   ignorando el ancho en silencio. */
.gv-marca{width:0.804em;height:0.804em;min-width:0;flex:none;display:block}
/* ── fin de las afirmaciones ── */
/* ── la partida ────────────────────────────────────────────────────
   La barra flota SOBRE el hero, sin filete, y los encabezados de zona
   van alineados a la derecha: el eje de lectura cambia de lado. */
.gv-barra{position:absolute;inset:0 0 auto;background:transparent;
  backdrop-filter:none;border-bottom:0}

/* ══ Botones ═══════════════════════════════════════════════════════ */
.gv-b--lima:hover{background:#A8E67C;border-color:#A8E67C}
.gv-b--linea:hover{border-color:var(--lima);color:var(--lima)}
.gv-b--alto{background:var(--alto);color:var(--lima-ink);border-color:var(--alto)}
/* El botón que el guion del panel emite con el nombre de la casa. */
.gv-b--sobre{background:var(--lima);color:var(--lima-ink);border-color:var(--lima)}
.gv-b--sobre:hover{background:#A8E67C;border-color:#A8E67C}
.gv-b{min-height:var(--h-ctrl);padding-block:0;box-sizing:border-box}
.gv-b--grande{min-height:var(--h-ctrl-lg);padding-block:0}
.gv-b--chico{min-height:var(--h-ctrl-sm);padding-block:0}

/* ══ Campos y controles ════════════════════════════════════════════ */
.gv-campo > span{display:block;font-size:.8125rem;font-weight:600;
  color:var(--tinta-2);margin-bottom:var(--e1)}
.gv-campo textarea{min-height:8rem;resize:vertical}
.gv-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gv-casilla input{margin-top:.2rem;flex:none;accent-color:var(--lima)}
.gv-casilla--legal a{color:var(--lima);text-underline-offset:3px}
.gv-grupo{border:0;margin:0 0 var(--e9);padding:var(--e7) 0 0;border-top:1px solid var(--filete)}
.gv-grupo:first-of-type{border-top:0;padding-top:0}
.gv-grupo legend{display:flex;align-items:center;gap:var(--e3);padding:0;
  font-family:var(--fd);font-weight:700;font-size:1rem}
.gv-grupo__n{flex:none;width:1.65rem;height:1.65rem;border-radius:var(--pastilla);
  background:var(--lima-2);color:var(--lima);display:grid;place-items:center;
  font-size:.6875rem;font-weight:700;font-variant-numeric:tabular-nums}
.gv-grupo__d{margin:var(--e4) 0 var(--e7);font-size:.875rem;color:var(--apoyo);max-width:54ch}
.gv-par{display:grid;gap:0 var(--e7);grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){
.gv-par{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.gv-campo--sep{margin-top:var(--e7)}
.gv-condiciones{margin:0 0 var(--e7);background:var(--panel);border:1px solid var(--filete);
  border-radius:var(--ctrl);padding:var(--e5) var(--e6)}
.gv-condiciones li{position:relative;padding:var(--e1) 0 var(--e1) var(--e7);
  font-size:.8125rem;color:var(--tinta-2)}
.gv-condiciones li::before{content:"";position:absolute;left:0;top:.95rem;
  width:6px;height:6px;border-radius:var(--pastilla);background:var(--lima)}
/* ── las dos caras: APILADAS, con el rótulo al costado ─────────
   La hermana clara las pone en dos columnas; aquí van una debajo
   de otra y el rótulo a la izquierda, que es otro acomodo del
   mismo contenido. */
.gv-ranura{display:grid;gap:var(--e3) var(--e8);padding:var(--e6) 0;
  border-bottom:1px solid var(--filete);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){
.gv-ranura{grid-template-columns:12rem minmax(0,1fr)}
}
.gv-ranura:last-of-type{border-bottom:0}
.gv-ranura__k{font-family:var(--fd);font-weight:600;font-size:.875rem;padding-top:var(--e2)}
.gv-ranura__k em{display:block;font-style:normal;font-weight:400;font-size:.75rem;color:var(--apoyo)}
.gv-ranura__v{border:1px dashed var(--filete-2);border-radius:var(--ctrl);
  background:var(--panel);padding:var(--e4);transition:border-color var(--t),background var(--t)}
.gv-ranura.is-puesta .gv-ranura__v{border-style:solid;border-color:var(--lima);background:var(--lima-2)}
.gv-ranura.is-mal .gv-ranura__v{border-style:solid;border-color:var(--alto);background:var(--alto-2)}
.gv-ranura__v input[type=file]{width:100%;font:inherit;font-size:.8125rem}
.gv-ranura__img{width:100%;max-width:220px;margin-bottom:var(--e3);border-radius:var(--ctrl);
  border:1px solid var(--filete-2)}
.gv-ranura__pie{margin-top:var(--e2);font-size:.8125rem;color:var(--apoyo);overflow-wrap:anywhere}
.gv-ranura__aviso{margin-top:var(--e6);padding:var(--e4) var(--e5);font-size:.875rem;color:var(--alto);
  background:var(--alto-2);border:1px solid var(--alto);border-radius:var(--ctrl)}

/* ══ Contenedores de información ═══════════════════════════════════ */
.gv-nota .gv-i{flex:none;margin-top:.15rem}
.gv-nota--ok{background:var(--ok-2);border-color:var(--ok)}
.gv-nota--wait{background:var(--pausa-2);border-color:var(--pausa)}
.gv-nota--bad{background:var(--alto-2);border-color:var(--alto)}
.gv-chip--ok{color:var(--ok);background:var(--ok-2)}
.gv-chip--wait{color:var(--pausa);background:var(--pausa-2)}
.gv-chip--bad{color:var(--alto);background:var(--alto-2)}
.gv-aviso-caja{background:var(--panel-2);border:1px solid var(--filete);
  border-radius:var(--ctrl);padding:clamp(1.5rem,4vw,2.4rem);max-width:44rem}
.gv-aviso-caja h2{margin:var(--e4) 0;font-size:clamp(1.25rem,1.05rem + .8vw,1.625rem)}
.gv-aviso-caja p{color:var(--tinta-2);max-width:56ch}
.gv-aviso-caja .gv-b{margin-top:var(--e8)}
/* La tarjeta: cabecera en el color de la casa y cuerpo claro. */
.gv-cuenta{background:var(--panel-2);border:1px solid var(--filete);
  border-radius:var(--ctrl);overflow:hidden}
.gv-cuenta__cab b{font-family:var(--fd);font-weight:700;font-size:.9375rem}
.gv-cuenta__cab span{font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;opacity:.88}
.gv-cuenta dl{margin:0}
.gv-cuenta__r:last-of-type{border-bottom:0}
.gv-cuenta__r--fuerte{background:var(--lima-2)}
.gv-cuenta__r--fuerte dd{color:var(--lima)}
.gv-cuenta dt{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--apoyo)}
.gv-cuenta dd{margin:0;font-family:var(--fd);font-weight:700;font-variant-numeric:tabular-nums}
.gv-cuenta__cuerpo{padding:var(--e7)}
.gv-cuenta--viva .gv-cuenta__cab span{opacity:1}
.gv-vacio{padding:var(--e10) var(--e8);text-align:center;color:var(--tinta-2)}
.gv-vacio .gv-i{margin:0 auto var(--e4);color:var(--filete-2)}
.gv-vacio__d{margin-top:var(--e1);font-size:.875rem;color:var(--apoyo)}
/* ── el manifiesto de canjes: filas a filete, sin caja ──────────
   La hermana clara lo mete en una tarjeta con borde; aquí las
   filas van sueltas sobre el fondo, separadas por filete. */
.gv-rueda{overflow-x:auto}
.gv-tabla{width:100%;border-collapse:collapse;font-size:.875rem}
.gv-tabla th{text-align:left;font-family:var(--fd);font-weight:600;font-size:.6875rem;
  letter-spacing:.11em;text-transform:uppercase;color:var(--lima);
  padding:var(--e4) var(--e6);border-bottom:1px solid var(--filete-2);white-space:nowrap}
.gv-tabla td{padding:var(--e4) var(--e6);border-bottom:1px solid var(--filete);vertical-align:middle}
.gv-tabla tr:last-child td{border-bottom:0}
.gv-tabla .n{font-family:var(--fd);font-weight:600;font-variant-numeric:tabular-nums;
  white-space:nowrap}

/* ══ Portada ═══════════════════════════════════════════════════════ */
.gv-hero{position:relative;isolation:isolate;padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem)}
.gv-hero h1{margin-top:var(--e5);max-width:17ch}
/* El cruce: dos paneles enfrentados y el signo en medio. Es la pieza
   de esta casa y no se repite en ninguna otra zona. */
.gv-cruce{margin-top:clamp(2.25rem,5vw,3.25rem);display:grid;gap:var(--e5);
  grid-template-columns:minmax(0,1fr);align-items:stretch;position:relative}
@media (min-width:680px){
.gv-cruce{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--e6)}
}
.gv-cruce__l{background:var(--panel);border:1px solid var(--filete);
  border-radius:var(--ctrl);padding:var(--e7) var(--e8)}
.gv-cruce__l--recibe{border-color:var(--lima);background:var(--lima-2)}
.gv-cruce__k{font-size:.6875rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--apoyo)}
.gv-cruce__l--recibe .gv-cruce__k{color:var(--lima)}
.gv-cruce__v{margin-top:var(--e2);font-family:var(--fd);font-weight:700;
  font-size:clamp(1.5rem,1.15rem + 1.4vw,2rem);font-variant-numeric:tabular-nums}
.gv-cruce__d{margin-top:var(--e1);font-size:.8125rem;color:var(--apoyo)}
.gv-cruce__x{display:grid;place-items:center;color:var(--lima)}
.gv-cruce__x svg{width:28px;height:28px}
@media (min-width:760px){
.gv-pasos{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.gv-paso{counter-increment:pa;padding-top:var(--e7);border-top:2px solid var(--filete)}
.gv-paso::before{content:counter(pa,decimal-leading-zero);display:block;
  font-family:var(--fd);font-weight:700;font-size:.8125rem;letter-spacing:.08em;
  color:var(--lima);margin-bottom:var(--e3);font-variant-numeric:tabular-nums}
.gv-paso h3{margin-bottom:var(--e1)}
.gv-paso p{color:var(--tinta-2)}
.gv-garantias{margin-top:var(--e9);display:grid;gap:var(--e6);
  grid-template-columns:minmax(0,1fr)}
@media (min-width:760px){
.gv-garantias{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:720px){
.gv-forma{grid-template-columns:repeat(2,minmax(0,1fr))}
.gv-forma__ancho{grid-column:1/-1}
.gv-cambio,.gv-asiento{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.gv-cambio__c{background:var(--panel-2);border:1px solid var(--filete);
  border-radius:var(--ctrl);padding:var(--e5) var(--e8)}
.gv-cambio dt{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--apoyo)}
.gv-cambio dd{margin:var(--e1) 0 0;font-family:var(--fd);font-weight:700;
  font-size:clamp(1.375rem,1.1rem + 1vw,1.75rem);font-variant-numeric:tabular-nums}
.gv-cambio dd small{font-size:.6875rem;font-weight:600;color:var(--apoyo);margin-left:var(--e1)}
.gv-pestanas{display:flex;flex-wrap:wrap;gap:var(--e1);margin-bottom:var(--e6)}
.gv-pestanas button b{font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--apoyo)}
.gv-pestanas button{display:inline-flex;align-items:center;gap:var(--e1);font:inherit;
  font-family:var(--fd);font-weight:600;font-size:.9375rem;cursor:pointer;
  background:transparent;color:var(--apoyo);border:0;border-bottom:2px solid transparent;
  border-radius:0;padding:var(--e2) .2rem;transition:color var(--t),border-color var(--t)}
.gv-pestanas{gap:var(--e7);border-bottom:1px solid var(--filete);margin-bottom:var(--e7)}
.gv-pestanas button b{font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--filete-2)}
.gv-pestanas button:hover{color:var(--tinta-2)}
.gv-pestanas button.is-on{color:var(--lima);border-bottom-color:var(--lima)}
.gv-pestanas button.is-on b{color:var(--lima)}
/* ── La pregunta: sin cajas y sin cifras ────────────────────────
   Aquí había dos paneles con rótulo y cifra, la misma pieza que en
   las hermanas. Ahora la zona hace otro trabajo: plantea la duda
   que trae el visitante y la contesta en una palabra. */
/* el tope de 34ch era de cuando la pieza iba DEBAJO del texto; en la
   pantalla partida dejaba 186px muertos a la derecha */
.gv-pregunta{margin-top:clamp(2.25rem,5vw,3.25rem);max-width:34ch}
@media (min-width:1000px){.gv-hero > .gv-ancho > .gv-pregunta{max-width:none}}
.gv-pregunta__q{font-family:var(--fd);font-weight:500;
  font-size:clamp(1.25rem,1rem + 1.1vw,1.75rem);line-height:1.25;color:var(--tinta-2)}
.gv-pregunta__r{margin-top:var(--e2);font-family:var(--fd);font-weight:700;
  font-size:clamp(3rem,1.6rem + 5vw,5.5rem);line-height:.95;letter-spacing:-.04em;
  color:var(--lima)}
.gv-pregunta__d{margin-top:var(--e6);color:var(--apoyo);max-width:44ch}
/* ── el fondo de la casa ───────────────────────────────────────────
   Vive a la derecha de la columna de texto, en el hueco que dejan el
   titular y la entradilla —medido, no supuesto—. Debajo de 900 px no
   hay hueco y se retira. */
.gv-hero::before{content:"";position:absolute;inset:0;z-index:-1;
  pointer-events:none;background:
    radial-gradient(72% 92% at 104% -12%,rgba(148,218,98,.30),transparent 64%),
    radial-gradient(54% 74% at 122% 66%,rgba(148,218,98,.18),transparent 62%);
  -webkit-mask-image:linear-gradient(to right,transparent 0 calc(max(var(--gut),(100% - var(--ancho))/2) + 542px),#000 calc(max(var(--gut),(100% - var(--ancho))/2) + 662px));mask-image:linear-gradient(to right,transparent 0 calc(max(var(--gut),(100% - var(--ancho))/2) + 542px),#000 calc(max(var(--gut),(100% - var(--ancho))/2) + 662px))}
@media (max-width:899px){
.gv-hero::before{display:none}
}
/* ── fin del fondo ── */
/* ── las afirmaciones ──────────────────────────────────────────────
   Una columna, la garantía enunciada en grande y su explicación en
   letra corriente. Sin caja y sin icono: la rejilla de tarjetas la
   estaban repitiendo cuatro casas. */
.gv-afirmas{margin-top:clamp(2rem,5vw,3rem);display:grid;gap:clamp(2rem,5vw,3.25rem)}
.gv-afirma{display:grid;gap:var(--e4);max-width:44rem}
.gv-afirma h3{font-family:var(--fd);font-weight:600;line-height:1.2;
  font-size:clamp(1.25rem,1.05rem + .85vw,1.75rem);letter-spacing:-.01em}
/* el filete es de largo fijo: si sigue al texto, su medida parece casual */
.gv-afirma p{color:var(--tinta-2);max-width:56ch;position:relative;padding-top:var(--e6)}
.gv-afirma p::before{content:"";position:absolute;top:0;left:0;
  width:3rem;height:2px;background:var(--lima)}
.gv-hero{padding-top:calc(var(--altura-barra) + clamp(3rem,7vw,5.5rem))}
@media (min-width:1000px){
.gv-hero > .gv-ancho{display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:0 clamp(2.5rem,6vw,4.5rem);align-items:center}
.gv-hero > .gv-ancho > *{grid-column:1}
.gv-hero > .gv-ancho > .gv-pregunta{grid-column:2;grid-row:1 / span 4;
    margin-top:0;align-self:stretch;display:grid;align-content:center;
    background:var(--panel);border-left:2px solid var(--lima);
    padding:clamp(2rem,4vw,3rem) clamp(1.6rem,3vw,2.4rem)}
.gv-hero h1{max-width:13ch}
.gv-hero__d{max-width:40ch}
}
.gv-cambio{background:transparent;border:0;border-left:2px solid var(--lima);
  grid-template-columns:repeat(3,minmax(0,auto));justify-content:end;gap:0}
.gv-cambio__c{border-bottom:0;text-align:right}
/* .gv-pregunta era rejilla sin columnas declaradas: la pista se
   dimensionaba por contenido y se salía 14px del panel. Las demás
   piezas SÍ declaran las suyas y no se tocan. */
.gv-pregunta{grid-template-columns:minmax(0,1fr)}

/* ══ Acceso y alta ═════════════════════════════════════════════════ */
.gv-acceso{padding:clamp(2.5rem,6vw,4.5rem) var(--gut)}
.gv-acceso__caja{max-width:456px;margin-inline:auto;background:var(--panel);
  border:1px solid var(--filete);border-radius:var(--ctrl);
  padding:clamp(1.6rem,4vw,2.4rem)}
.gv-acceso__caja--ancha{max-width:720px}
.gv-acceso h1{font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}
.gv-acceso__pie a{color:var(--lima);text-underline-offset:3px}
/* El layout va bajo [open]: un display suelto ABRE un <dialog> cerrado. */
.gv-dlg{border:1px solid var(--filete);border-radius:var(--ctrl);background:var(--panel-2);
  color:var(--tinta);padding:clamp(1.3rem,3vw,1.8rem);max-width:30rem;width:calc(100% - 2rem)}
.gv-dlg[open]{display:block}
.gv-dlg::backdrop{background:rgba(21,12,24,.5)}
.gv-dlg h2{font-size:1.25rem}
.gv-dlg__d{margin:var(--e4) 0 var(--e7);color:var(--tinta-2);font-size:.9375rem}
.gv-dlg__d-l{margin:0 0 var(--e8);border:1px solid var(--filete);border-radius:var(--ctrl);
  overflow:hidden}
.gv-dlg__d-l > div{display:flex;justify-content:space-between;gap:var(--e6);
  padding:var(--e4) var(--e5);border-bottom:1px solid var(--filete)}
.gv-dlg__d-l > div:last-child{border-bottom:0}
.gv-dlg__d-l dt{font-size:.6875rem;letter-spacing:.09em;text-transform:uppercase;color:var(--apoyo)}
.gv-dlg__d-l dd{margin:0;font-family:var(--fd);font-weight:700;
  font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}
.gv-dlg__f{display:flex;gap:var(--e3);justify-content:flex-end;flex-wrap:wrap}
.gv-cerrar{flex:none;background:transparent;border:0;color:var(--tinta-2);cursor:pointer;padding:.2rem}
.gv-cerrar:hover{color:var(--tinta)}
@media (min-width:900px){
/* el color va en la CAJA, no en el contenedor: puesto en .gv-acceso
     pintaba también la pantalla de alta, que comparte contenedor */
.gv-acceso__caja:not(.gv-acceso__caja--ancha){max-width:none;margin-inline:calc(50% - 50vw);width:auto;
    background:linear-gradient(to right,var(--lima-2) 0 50%,transparent 50%);
    border:0;padding-block:clamp(2rem,5vw,3.5rem);border-radius:0;
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:center;min-height:min(72vh,42rem)}
.gv-acceso__caja:not(.gv-acceso__caja--ancha) > *{grid-column:2;width:min(100%,25rem);
    padding-left:clamp(2rem,5vw,4rem);padding-right:var(--gut)}
.gv-acceso__caja:not(.gv-acceso__caja--ancha) > .gv-marca-agua, .gv-acceso__caja:not(.gv-acceso__caja--ancha) > h1, .gv-acceso__caja:not(.gv-acceso__caja--ancha) > .gv-acceso__d{grid-column:1;width:min(100%,26rem);justify-self:end;
    padding-left:var(--gut);padding-right:clamp(2rem,5vw,4rem)}
.gv-acceso__caja:not(.gv-acceso__caja--ancha) > h1{font-size:clamp(2rem,1.3rem + 2.6vw,3.25rem);line-height:1.05}
.gv-acceso__caja:not(.gv-acceso__caja--ancha) > form{grid-row:1 / span 4}
}
/* ── fin del acceso ── */
/* ── el alta: el eje a la derecha ──────────────────────────────────
   Igual que sus zonas de portada, el encabezado del grupo se alinea
   al lado contrario del que se lee por costumbre. */
.gv-acceso__caja--ancha .gv-grupo{border-top:0;border-bottom:1px solid var(--filete);
  padding:0 0 1.7rem;margin-bottom:var(--e9)}
.gv-acceso__caja--ancha .gv-grupo:last-of-type{border-bottom:0}
.gv-acceso__caja--ancha .gv-grupo legend{width:100%;justify-content:flex-end;
  font-size:1.125rem;padding-bottom:var(--e5)}
.gv-acceso__caja--ancha .gv-grupo__d{text-align:right;margin-left:auto;max-width:52ch}

/* ══ Panel con sesion ══════════════════════════════════════════════ */
.gv-app__cab--centro{justify-content:center;text-align:center}
.gv-app__cab h1{margin-top:var(--e3)}
.gv-app__d{margin-top:var(--e4);color:var(--tinta-2);max-width:58ch}
.gv-app__pie{margin-top:var(--e5);text-align:center;font-size:.8125rem;color:var(--apoyo)}
.gv-app__acc{display:grid;gap:var(--e4);grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:var(--e8);padding-top:var(--e8);border-top:1px solid var(--filete)}
@media (min-width:1000px){
.gv-escritorio{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
.gv-monto:focus-within{border-color:var(--lima);box-shadow:0 0 0 3px var(--lima-2)}
.gv-rapidos{display:flex;flex-wrap:wrap;gap:var(--e1);margin-top:var(--e3)}
.gv-pista{display:flex;align-items:baseline;justify-content:space-between;gap:var(--e6);
  margin-top:var(--e1);font-size:.8125rem;color:var(--apoyo)}
.gv-pista b{font-variant-numeric:tabular-nums;font-weight:700;flex:none}
[data-billetera].is-ok input{border-color:var(--ok)}
[data-billetera].is-ok .gv-pista{color:var(--ok)}
[data-billetera].is-warn input{border-color:var(--pausa)}
[data-billetera].is-warn .gv-pista{color:var(--pausa)}
[data-billetera].is-mal input{border-color:var(--alto)}
[data-billetera].is-mal .gv-pista{color:var(--alto)}
.gv-cargando{padding:var(--e9);text-align:center;color:var(--apoyo);font-size:.875rem}
.gv-codigo{display:flex;gap:var(--e2);justify-content:center;margin-bottom:var(--e7)}
.gv-codigo input:focus{outline:0;border-color:var(--lima);box-shadow:0 0 0 3px var(--lima-2)}
/* ── el código: renglones subrayados, no recuadros ─────────────── */
.gv-codigo input{width:2.6rem;height:3rem;text-align:center;font-family:var(--fd);
  font-weight:700;font-size:1.5rem;color:var(--tinta);background:transparent;
  border:0;border-bottom:2px solid var(--filete-2);border-radius:0;
  font-variant-numeric:tabular-nums;transition:border-color var(--t)}
.gv-codigo input:focus{outline:0;border-bottom-color:var(--lima)}
.gv-codigo input.is-puesta{border-bottom-color:var(--lima);color:var(--lima)}
@media (min-width:1000px){
.gv-escritorio > :first-child{background:var(--lima-2);padding:var(--e6);
    border-radius:var(--ctrl)}
}

/* ══ Paginas legales y prosa ═══════════════════════════════════════ */
.gv-doc{display:block;padding:var(--e3) var(--e4);background:var(--panel-2);border:1px solid var(--filete);
  border-radius:var(--ctrl);font-size:.8125rem;color:var(--lima);text-decoration:none}
.gv-doc:hover{border-color:var(--lima)}
.gv-legal__in{max-width:68ch}
.gv-legal__fecha{margin:var(--e3) 0 var(--e9);font-size:.875rem;color:var(--apoyo)}
.gv-prosa h2{margin:2.2rem 0 var(--e3);font-size:1.375rem}
.gv-prosa h3{margin:var(--e8) 0 var(--e2);font-size:1.0625rem}
.gv-prosa p,.gv-prosa li{color:var(--tinta-2);margin-bottom:var(--e5)}
.gv-prosa ul,.gv-prosa ol{margin:0 0 var(--e7) var(--e7);list-style:disc}
.gv-prosa ol{list-style:decimal}
.gv-prosa a{color:var(--lima);text-underline-offset:3px}
.gv-prosa table{width:100%;border-collapse:collapse;margin-bottom:var(--e7)}
.gv-prosa th,.gv-prosa td{border:1px solid var(--filete);padding:var(--e3) var(--e4);text-align:left}

/* ══ Tienda ════════════════════════════════════════════════════════ */
.gv-woo a{color:var(--lima)}
.gv-woo .button{display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--fd);font-weight:600;background:var(--lima);color:var(--lima-ink);
  border:1px solid var(--lima);border-radius:var(--ctrl);padding:var(--e4) var(--e7);text-decoration:none}
.gv-woo input,.gv-woo select,.gv-woo textarea{font:inherit;background:var(--panel-2);
  border:1px solid var(--filete-2);border-radius:var(--ctrl);padding:var(--e4) var(--e5)}

/* ══ Pie ═══════════════════════════════════════════════════════════ */
@media (min-width:820px){
.gv-pie__in{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
}
.gv-pie__marca .gv-logo{font-size:1.25rem;margin-bottom:var(--e3)}
.gv-pagos li{font-size:.75rem;color:var(--apoyo);border:1px solid var(--filete);
  border-radius:var(--pastilla);padding:var(--e1) var(--e4)}
.gv-pie__col h2{font-family:var(--fd);font-size:.8125rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--lima);margin-bottom:var(--e4)}
.gv-pie__col li{margin-bottom:var(--e1)}
.gv-pie__col a{color:var(--tinta-2);text-decoration:none}
.gv-pie__col a:hover{color:var(--tinta);text-decoration:underline;text-underline-offset:3px}
.gv-pie__cierre p{margin:0}
@media (min-width:820px){
.gv-pie__col{display:flex;flex-wrap:wrap;gap:var(--e1) var(--e8);align-items:baseline}
.gv-pie__col h3{width:100%;margin-bottom:.2rem}
.gv-pie__col p{margin:0}
}

/* ══ Resto ═════════════════════════════════════════════════════════ */
.gv-cifra b{color:var(--lima);font-weight:700}
.gv-garantia{background:var(--panel);border:1px solid var(--filete);
  border-radius:var(--ctrl);padding:var(--e7) var(--e8)}
.gv-garantia .gv-i{color:var(--lima);margin-bottom:var(--e4)}
.gv-garantia p{margin-top:var(--e1);color:var(--tinta-2)}
.gv-angosto{max-width:38rem}
[data-monto-msg].is-mal{color:var(--alto)}
.gv-sobre-rotulo{text-align:center;font-family:var(--fd);font-weight:600;
  font-size:.8125rem;margin-bottom:var(--e4)}
.gv-sobre-chip{margin-left:auto;font-family:var(--fd);font-weight:700;font-size:.6875rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--lima);
  background:var(--lima-2);border-radius:var(--pastilla);padding:var(--e1) var(--e4)}
.gv-herramientas{display:flex;flex-wrap:wrap;gap:var(--e3);margin-bottom:var(--e6)}
.gv-buscar{display:flex;align-items:center;gap:var(--e2);flex:1;min-width:14rem;
  background:var(--panel-2);border:1px solid var(--filete-2);border-radius:var(--ctrl);padding:0 var(--e5)}
.gv-buscar .gv-i{flex:none;color:var(--apoyo)}
.gv-buscar input{flex:1;min-width:0;border:0;background:transparent;font:inherit;padding:var(--e3) 0}
.gv-buscar input:focus{outline:0}
.gv-buscar:focus-within{border-color:var(--lima)}
.gv-paginador{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:var(--e3);padding:var(--e5) var(--e7);border-top:1px solid var(--filete);
  font-size:.8125rem;color:var(--apoyo)}
.gv-paginador > div{display:flex;gap:var(--e2)}
.gv-velo{position:fixed;inset:0;background:rgba(21,12,24,.45);opacity:0;visibility:hidden;
  transition:opacity var(--paso),visibility var(--paso);z-index:60}
.gv-velo.is-on{opacity:1;visibility:visible}
.gv-cajon{position:fixed;top:0;right:0;bottom:0;width:min(34rem,100%);z-index:61;
  background:var(--base);border-left:1px solid var(--filete-2);display:flex;
  flex-direction:column;transform:translateX(100%);transition:transform var(--paso) ease;overflow:hidden}
.gv-cajon.is-on{transform:none}
.gv-cajon__cab{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--e6);
  padding:var(--e7) var(--e7);border-bottom:1px solid var(--filete);background:var(--panel-2)}
.gv-cajon__cab h2{font-size:1.125rem}
.gv-cajon__cab p{margin-top:.2rem;font-size:.875rem;color:var(--apoyo)}
.gv-cajon__cuerpo{flex:1;overflow-y:auto;padding:var(--e7)}
.gv-cajon__pie{padding:var(--e6) var(--e7);border-top:1px solid var(--filete);background:var(--panel-2);
  display:flex;flex-wrap:wrap;gap:var(--e2)}
.gv-block{margin-bottom:var(--e8)}
.gv-block h3{font-family:var(--fd);font-size:.75rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--lima);margin-bottom:var(--e3)}
.gv-docs{display:grid;gap:var(--e2);grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}
.gv-qa > div{display:flex;justify-content:space-between;gap:var(--e6);padding:var(--e3) 0;
  border-bottom:1px solid var(--filete);font-size:.875rem}
.gv-qa dt{color:var(--apoyo)}
.gv-qa dd{margin:0;text-align:right}
.gv-log{font-size:.8125rem;color:var(--tinta-2)}
.gv-log li{padding:var(--e1) 0;border-bottom:1px solid var(--filete)}
.gv-decision{padding:var(--e3) var(--e5);font-size:.875rem;border:1px solid var(--filete);
  border-radius:var(--ctrl);background:var(--panel-2)}
.gv-decision--wait{border-color:var(--pausa);background:var(--pausa-2)}
.gv-spin{display:inline-block;width:1rem;height:1rem;border:2px solid var(--filete);
  border-top-color:var(--lima);border-radius:50%;animation:gv-gira .7s linear infinite}
.gv-ranuras{border-top:1px solid var(--filete-2);padding-top:var(--e1)}
