/* ============================================================
   TUPU · página de producto (/tupu)
   Portado tal cual de la maqueta aprobada (12 ago 2026).
   Mundo visual propio: noche de obra — azul-negro profundo,
   neón fucsia de la casa HATUN y ámbar de chaleco de seguridad.
   La página usa la cabecera y el footer estándar del sitio, por eso
   TODO va acotado a .tupu-pagina: la maqueta no pisa a Bootstrap ni
   a site.css, y ellos no alteran la escena (este archivo carga al
   final del <head>, así sus reglas ganan en empates de cascada).
   ============================================================ */
:root {
  --noche:   #0A0E1C;   /* fondo: la obra antes del amanecer */
  --carpa:   #121834;   /* superficie elevada */
  --carpa-2: #0E1428;   /* superficie honda (franjas) */
  --linde:   rgba(148,163,205,.16);
  --tiza:    #EFF3FF;   /* titulares */
  --niebla:  #9AA6C9;   /* texto corrido */
  --humo:    #6F7BA0;   /* meta, pies */
  --fucsia:  #FF2FB4;   /* el acento HATUN */
  --fucsia-s:rgba(255,47,180,.14);
  --ambar:   #FFB020;   /* campo / advertencia / en cola */
  --ambar-s: rgba(255,176,32,.14);
  --verde:   #2FD180;   /* registrado / ok */
  --verde-s: rgba(47,209,128,.13);
  --cielo:   #4EA8FF;   /* enviado / técnico */
  --cielo-s: rgba(78,168,255,.13);
  --rojo:    #FF5D73;
  --rojo-s:  rgba(255,93,115,.13);
  --pantalla:#F6F8FE;   /* la app es clara: contraste con la noche */
  --tinta:   #1B2340;   /* texto dentro del teléfono */
  --tinta-2: #66719B;
}
.tupu-pagina, .tupu-pagina * { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
.tupu-pagina {
  background: var(--noche);
  color: var(--niebla);
  font-family: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.tupu-pagina ::selection { background: var(--fucsia); color: #fff; }

.tupu-pagina h1, .tupu-pagina h2, .tupu-pagina h3 { color: var(--tiza); text-wrap: balance; font-family: "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif; }
.tupu-pagina a { color: var(--cielo); text-decoration: none; }
.tupu-pagina a:hover { text-decoration: underline; }
.tupu-pagina :focus-visible { outline: 2px solid var(--fucsia); outline-offset: 3px; border-radius: 4px; }

.tupu-pagina .envuelve { max-width: 1120px; margin: 0 auto; padding: 0 26px; }

/* --- ornamento telar: la marca andina de la casa ------------- */
.tupu-pagina .telar {
  display: inline-block; width: 30px; height: 4px; border-radius: 2px; margin-right: 10px;
  vertical-align: 2px;
  background: linear-gradient(90deg, var(--fucsia) 0 40%, var(--ambar) 40% 70%, var(--cielo) 70% 100%);
}
.tupu-pagina .telar--banda {
  display: block; width: 100%; height: 3px; margin: 0; border: 0; opacity: .55;
  background: repeating-linear-gradient(90deg,
    var(--fucsia) 0 34px, var(--carpa) 34px 42px,
    var(--ambar) 42px 64px, var(--carpa) 64px 72px,
    var(--cielo) 72px 88px, var(--carpa) 88px 122px);
}

.tupu-pagina .ceja {
  font-size: 11.5px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase;
  color: var(--humo);
}
.tupu-pagina .ceja b { color: var(--fucsia); font-weight: 700; }

/* --- botones (pisan a los .btn de Bootstrap dentro de la escena) --- */
.tupu-pagina .btn {
  display: inline-flex; align-items: center; gap: 9px;
  font: 600 15px/1 "Segoe UI", system-ui, sans-serif;
  padding: 14px 26px; border-radius: 999px; cursor: pointer;
  border: 1px solid transparent; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.tupu-pagina .btn:hover { text-decoration: none; transform: translateY(-1px); }
.tupu-pagina .btn--fucsia {
  background: var(--fucsia); color: #fff;
  box-shadow: 0 8px 28px rgba(255,47,180,.35);
}
.tupu-pagina .btn--fucsia:hover { color: #fff; box-shadow: 0 12px 34px rgba(255,47,180,.45); }
.tupu-pagina .btn--borde {
  background: transparent; color: var(--tiza); border-color: rgba(148,163,205,.35);
}
.tupu-pagina .btn--borde:hover { color: var(--tiza); background: rgba(148,163,205,.08); }
.tupu-pagina .btn--mini { padding: 8px 16px; font-size: 13px; }

.tupu-pagina .chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 700; letter-spacing: .02em;
  padding: 4px 11px; border-radius: 999px;
}
.tupu-pagina .chip--ambar  { background: var(--ambar-s);  color: var(--ambar); }
.tupu-pagina .chip--verde  { background: var(--verde-s);  color: var(--verde); }
.tupu-pagina .chip--cielo  { background: var(--cielo-s);  color: var(--cielo); }
.tupu-pagina .chip--rojo   { background: var(--rojo-s);   color: var(--rojo); }
.tupu-pagina .chip--fucsia { background: var(--fucsia-s); color: var(--fucsia); }

.tupu-pagina .mono { font-family: Consolas, ui-monospace, "Cascadia Mono", monospace; font-variant-numeric: tabular-nums; }

/* --- secciones ----------------------------------------------- */
.tupu-pagina section { padding: 96px 0; }
.tupu-pagina .sec-cabeza { max-width: 620px; margin-bottom: 52px; }
.tupu-pagina .sec-cabeza h2 { font-size: clamp(28px, 4vw, 40px); font-weight: 800; letter-spacing: -.015em; line-height: 1.15; margin: 10px 0 14px; }
.tupu-pagina .sec-cabeza p { font-size: 16.5px; }

/* --- revelado al hacer scroll -------------------------------- */
.tupu-pagina .rev { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.tupu-pagina .rev.visto { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .tupu-pagina .rev { opacity: 1; transform: none; transition: none; }
  .tupu-pagina .flota { animation: none !important; }
}

/* ============================================================
   HERO
   ============================================================ */
.tupu-pagina .hero { padding: 74px 0 90px; position: relative; overflow: hidden; }
.tupu-pagina .hero::before {  /* resplandor del amanecer sobre la obra */
  content: ""; position: absolute; inset: -40% -20% auto -20%; height: 90%;
  background:
    radial-gradient(52% 60% at 78% 30%, rgba(255,47,180,.16), transparent 70%),
    radial-gradient(40% 50% at 15% 10%, rgba(78,168,255,.10), transparent 70%);
  pointer-events: none;
}
.tupu-pagina .hero .envuelve { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; position: relative; }
.tupu-pagina .hero h1 {
  font-size: clamp(38px, 5.4vw, 62px); font-weight: 800; letter-spacing: -.02em;
  line-height: 1.06; margin: 18px 0 20px;
}
.tupu-pagina .hero h1 .grita { color: var(--fucsia); }
.tupu-pagina .hero .baja { font-size: 18px; max-width: 46ch; }
.tupu-pagina .hero .acciones { display: flex; flex-wrap: wrap; gap: 14px; margin: 30px 0 22px; }
.tupu-pagina .hero .fe { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13px; color: var(--humo); font-weight: 600; }
.tupu-pagina .hero .fe span::before { content: "✓ "; color: var(--verde); font-weight: 800; }

.tupu-pagina .marca {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 6px;
}
.tupu-pagina .marca .sello {
  width: 34px; height: 34px; border-radius: 10px; flex: none;
  background: linear-gradient(135deg, var(--fucsia), #B01FDE);
  display: grid; place-items: center; color: #fff; font: 800 15px/1 "Segoe UI", sans-serif;
  box-shadow: 0 6px 18px rgba(255,47,180,.4);
}
.tupu-pagina .marca .nombre { font: 800 21px/1 "Segoe UI", sans-serif; color: var(--tiza); letter-spacing: .01em; }
.tupu-pagina .marca .de { font-size: 11.5px; color: var(--humo); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-top: 3px; }

/* ============================================================
   TELÉFONOS (dibujados: son la "foto de producto")
   ============================================================ */
.tupu-pagina .fono {
  width: 262px; border-radius: 38px; background: #05070F;
  border: 1px solid rgba(148,163,205,.25);
  padding: 10px; box-shadow: 0 30px 70px rgba(0,0,0,.55), 0 0 0 6px rgba(148,163,205,.05);
  flex: none;
}
.tupu-pagina .fono .pantalla {
  background: var(--pantalla); border-radius: 28px; overflow: hidden;
  color: var(--tinta); font-size: 11px; line-height: 1.45; min-height: 470px;
  display: flex; flex-direction: column;
}
.tupu-pagina .fono .muesca { height: 22px; display: grid; place-items: center; }
.tupu-pagina .fono .muesca i { display: block; width: 74px; height: 7px; border-radius: 99px; background: #05070F; }
.tupu-pagina .fono .barra {
  display: flex; align-items: center; gap: 7px; padding: 6px 14px 8px;
}
.tupu-pagina .fono .barra .punto { width: 17px; height: 17px; border-radius: 6px; background: linear-gradient(135deg, var(--fucsia), #B01FDE); }
.tupu-pagina .fono .barra b { font-size: 12px; letter-spacing: .02em; }
.tupu-pagina .fono .barra span { margin-left: auto; font-size: 9.5px; color: var(--tinta-2); font-weight: 600; }
.tupu-pagina .fono .cuerpo { padding: 4px 12px 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; }

.tupu-pagina .f-card { background: #fff; border: 1px solid #E4E8F5; border-radius: 12px; padding: 9px 11px; }
.tupu-pagina .f-card .titulin { font-size: 9px; font-weight: 800; letter-spacing: .09em; color: var(--tinta-2); text-transform: uppercase; display: flex; align-items: center; gap: 6px; }
.tupu-pagina .f-fila { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; }
.tupu-pagina .f-fila .k { color: var(--tinta-2); }
.tupu-pagina .f-fila .v { font-weight: 700; text-align: right; }
.tupu-pagina .f-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.tupu-pagina .f-chip { font-size: 9px; font-weight: 800; padding: 3px 8px; border-radius: 99px; }
.tupu-pagina .f-chip.ok    { background: var(--verde-s); color: #1E9A5C; }
.tupu-pagina .f-chip.espera{ background: var(--ambar-s); color: #B27208; }
.tupu-pagina .f-chip.info  { background: var(--cielo-s); color: #1D6FC2; }
.tupu-pagina .f-chip.mal   { background: var(--rojo-s);  color: #C93A50; }

.tupu-pagina .f-fotos { display: flex; gap: 6px; }
.tupu-pagina .f-foto {
  width: 44px; height: 44px; border-radius: 9px; flex: none;
  border: 1px solid #E4E8F5; position: relative; overflow: hidden;
}
.tupu-pagina .f-foto.voucher { background: linear-gradient(160deg, #DCE7FF 30%, #B9CFFF); }
.tupu-pagina .f-foto.factura { background: repeating-linear-gradient(0deg, #F2F5FE 0 6px, #DFE6F8 6px 8px); }
.tupu-pagina .f-foto.carga   { background: linear-gradient(160deg, #FFE2B8 20%, #F5B35C 80%); }
.tupu-pagina .f-foto.carga2  { background: linear-gradient(200deg, #D8F5E4 10%, #7ED9A8 90%); }
.tupu-pagina .f-foto.mas {
  display: grid; place-items: center; background: transparent;
  border: 1.5px dashed #C6CFEA; color: var(--tinta-2); font-weight: 800; font-size: 15px;
}
.tupu-pagina .f-foto .tag {
  position: absolute; left: 0; right: 0; bottom: 0; font-size: 7px; font-weight: 800;
  background: rgba(11,16,32,.62); color: #fff; text-align: center; padding: 1px 0; letter-spacing: .04em;
}
.tupu-pagina .f-btn {
  margin-top: auto; background: var(--fucsia); color: #fff; text-align: center;
  font-weight: 800; font-size: 12.5px; letter-spacing: .06em; padding: 11px; border-radius: 12px;
  box-shadow: 0 6px 16px rgba(255,47,180,.35);
}
.tupu-pagina .f-aviso {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  font-size: 9.5px; font-weight: 700; color: #B27208; background: var(--ambar-s);
  border-radius: 9px; padding: 6px;
}

/* QR (gesto 1) */
.tupu-pagina .f-qr {
  background: #0B1020; border-radius: 12px; height: 148px; position: relative; overflow: hidden;
  display: grid; place-items: center;
}
.tupu-pagina .f-qr .doc {
  width: 92px; height: 112px; background: #F4F6FD; border-radius: 6px; padding: 8px;
  display: flex; flex-direction: column; gap: 4px;
}
.tupu-pagina .f-qr .doc i { display: block; height: 4px; border-radius: 2px; background: #C9D2EC; }
.tupu-pagina .f-qr .doc i:nth-child(2) { width: 70%; }
.tupu-pagina .f-qr .doc .qr {
  margin-top: auto; align-self: flex-end; width: 34px; height: 34px; border-radius: 3px;
  background:
    conic-gradient(#1B2340 25%, transparent 0 50%, #1B2340 0 75%, transparent 0) 0 0/12px 12px,
    #E8ECF8;
}
.tupu-pagina .f-qr .esquina { position: absolute; width: 26px; height: 26px; border: 3px solid var(--fucsia); }
.tupu-pagina .f-qr .esquina.a { top: 12px; left: 12px; border-right: 0; border-bottom: 0; border-radius: 6px 0 0 0; }
.tupu-pagina .f-qr .esquina.b { top: 12px; right: 12px; border-left: 0; border-bottom: 0; border-radius: 0 6px 0 0; }
.tupu-pagina .f-qr .esquina.c { bottom: 12px; left: 12px; border-right: 0; border-top: 0; border-radius: 0 0 0 6px; }
.tupu-pagina .f-qr .esquina.d { bottom: 12px; right: 12px; border-left: 0; border-top: 0; border-radius: 0 0 6px 0; }
.tupu-pagina .f-qr .laser { position: absolute; left: 10%; right: 10%; height: 2px; background: var(--fucsia); box-shadow: 0 0 12px var(--fucsia); top: 30%; }

/* lista de enviados (gesto 3) */
.tupu-pagina .f-item { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #E4E8F5; border-radius: 11px; padding: 8px 10px; }
.tupu-pagina .f-item .icono { width: 26px; height: 26px; border-radius: 8px; flex: none; display: grid; place-items: center; font-size: 12px; }
.tupu-pagina .f-item .datos { min-width: 0; }
.tupu-pagina .f-item .datos b { display: block; font-size: 10.5px; }
.tupu-pagina .f-item .datos small { font-size: 9px; color: var(--tinta-2); }
.tupu-pagina .f-item .f-chip { margin-left: auto; flex: none; }

.tupu-pagina .flota { animation: flota 7s ease-in-out infinite; }
@keyframes flota { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-12px) rotate(-1deg); } }

/* ============================================================
   PROBLEMA
   ============================================================ */
.tupu-pagina .problema { background: var(--carpa-2); }
.tupu-pagina .dolores { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 18px; }
.tupu-pagina .dolor {
  background: var(--carpa); border: 1px solid var(--linde); border-radius: 16px; padding: 24px 22px;
}
.tupu-pagina .dolor h3 { font-size: 17px; font-weight: 750; line-height: 1.3; margin-bottom: 10px; }
.tupu-pagina .dolor h3::before { content: "“"; color: var(--ambar); font-size: 26px; line-height: 0; vertical-align: -8px; margin-right: 2px; }
.tupu-pagina .dolor p { font-size: 14px; color: var(--niebla); }

/* ============================================================
   GESTOS (solución)
   ============================================================ */
.tupu-pagina .gestos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.tupu-pagina .gesto { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; }
.tupu-pagina .gesto .fono { width: 232px; }
.tupu-pagina .gesto .fono .pantalla { min-height: 380px; }
.tupu-pagina .gesto .paso {
  width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
  background: var(--fucsia-s); color: var(--fucsia); font: 800 15px/1 "Segoe UI", sans-serif;
}
.tupu-pagina .gesto h3 { font-size: 20px; font-weight: 750; margin: 10px 0 8px; }
.tupu-pagina .gesto p { font-size: 14.5px; max-width: 30ch; }

/* ============================================================
   BANDEJA (el otro lado)
   ============================================================ */
.tupu-pagina .lado { display: grid; grid-template-columns: .9fr 1.1fr; gap: 54px; align-items: center; }
.tupu-pagina .navegador {
  background: var(--carpa); border: 1px solid var(--linde); border-radius: 14px; overflow: hidden;
  box-shadow: 0 26px 60px rgba(0,0,0,.45);
}
.tupu-pagina .navegador .marco { display: flex; align-items: center; gap: 6px; padding: 10px 14px; border-bottom: 1px solid var(--linde); }
.tupu-pagina .navegador .marco i { width: 9px; height: 9px; border-radius: 50%; background: #3A4569; }
.tupu-pagina .navegador .marco i:first-child { background: var(--rojo); opacity: .7; }
.tupu-pagina .navegador .marco i:nth-child(2) { background: var(--ambar); opacity: .7; }
.tupu-pagina .navegador .marco i:nth-child(3) { background: var(--verde); opacity: .7; }
.tupu-pagina .navegador .marco span { margin-left: 10px; font-size: 11px; color: var(--humo); }
.tupu-pagina .navegador .banda-titulo { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px 4px; }
.tupu-pagina .navegador .banda-titulo b { color: var(--tiza); font-size: 13.5px; }
.tupu-pagina .fila-doc {
  display: flex; align-items: center; gap: 12px; padding: 11px 16px;
  border-top: 1px solid var(--linde); font-size: 12.5px;
}
.tupu-pagina .fila-doc .quien { min-width: 0; }
.tupu-pagina .fila-doc .quien b { display: block; color: var(--tiza); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tupu-pagina .fila-doc .quien small { color: var(--humo); font-size: 11px; }
.tupu-pagina .fila-doc .monto { margin-left: auto; color: var(--tiza); font-weight: 700; }
.tupu-pagina .fila-doc .btn--mini { border: 1px solid rgba(148,163,205,.35); color: var(--tiza); border-radius: 8px; background: transparent; }

/* ============================================================
   RASGOS
   ============================================================ */
.tupu-pagina .rasgos { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.tupu-pagina .rasgo { background: var(--carpa); border: 1px solid var(--linde); border-radius: 14px; padding: 20px; }
.tupu-pagina .rasgo .ico {
  width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center;
  font-size: 16px; margin-bottom: 12px; background: var(--fucsia-s);
}
.tupu-pagina .rasgo h3 { font-size: 15.5px; font-weight: 750; margin-bottom: 6px; }
.tupu-pagina .rasgo p { font-size: 13.5px; }

/* franja: nacida en la obra */
.tupu-pagina .origen {
  background: linear-gradient(100deg, var(--carpa), var(--carpa-2));
  border: 1px solid var(--linde); border-radius: 20px; padding: 44px 48px;
  display: grid; grid-template-columns: auto 1fr; gap: 30px; align-items: center;
}
.tupu-pagina .origen .glifo { font-size: 40px; }
.tupu-pagina .origen p { font-size: 17.5px; color: var(--tiza); font-weight: 500; max-width: 62ch; }
.tupu-pagina .origen p b { color: var(--ambar); }
.tupu-pagina .origen small { display: block; margin-top: 8px; color: var(--humo); font-size: 13px; font-weight: 600; }

/* producto independiente */
.tupu-pagina .solo-movil { text-align: center; }
.tupu-pagina .solo-movil .caja {
  max-width: 760px; margin: 0 auto; border: 1px dashed rgba(255,47,180,.45);
  border-radius: 20px; padding: 44px 34px; background: rgba(255,47,180,.04);
}
.tupu-pagina .solo-movil h2 { font-size: clamp(24px, 3.4vw, 32px); font-weight: 800; margin-bottom: 12px; }
.tupu-pagina .solo-movil p { max-width: 56ch; margin: 0 auto 24px; }

/* ============================================================
   DESCARGAS
   ============================================================ */
.tupu-pagina .descargas { background: var(--carpa-2); }
.tupu-pagina .desc-rejilla { display: grid; grid-template-columns: .95fr 1.05fr; gap: 40px; align-items: start; }
.tupu-pagina .card-actual {
  background: var(--carpa); border: 1px solid var(--linde); border-radius: 20px; padding: 30px;
  position: relative; overflow: hidden;
}
.tupu-pagina .card-actual::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px;
  background: linear-gradient(90deg, var(--fucsia), var(--ambar) 55%, var(--cielo)); }
.tupu-pagina .card-actual .ver { display: flex; align-items: baseline; gap: 12px; margin: 8px 0 4px; }
.tupu-pagina .card-actual .ver b { font-size: 44px; font-weight: 800; color: var(--tiza); letter-spacing: -.02em; }
.tupu-pagina .card-actual .meta { display: flex; flex-wrap: wrap; gap: 7px 18px; font-size: 13px; color: var(--humo); font-weight: 600; margin: 12px 0 22px; }
.tupu-pagina .card-actual ul { list-style: none; margin: 0 0 26px; display: flex; flex-direction: column; gap: 8px; }
.tupu-pagina .card-actual li { font-size: 14px; padding-left: 22px; position: relative; }
.tupu-pagina .card-actual li::before { content: "＋"; position: absolute; left: 0; color: var(--verde); font-weight: 800; }
.tupu-pagina .card-actual .play { margin-top: 16px; font-size: 12.5px; color: var(--humo); }

.tupu-pagina .pasos-instala { margin-top: 22px; background: transparent; border: 1px solid var(--linde); border-radius: 16px; padding: 20px 22px; }
.tupu-pagina .pasos-instala h3 { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--humo); margin-bottom: 12px; }
.tupu-pagina .pasos-instala ol { list-style: none; counter-reset: p; display: flex; flex-direction: column; gap: 10px; }
.tupu-pagina .pasos-instala li { counter-increment: p; display: flex; gap: 12px; font-size: 13.5px; align-items: baseline; }
.tupu-pagina .pasos-instala li::before {
  content: counter(p); flex: none; width: 22px; height: 22px; border-radius: 50%;
  display: grid; place-items: center; font: 800 11px/22px "Segoe UI", sans-serif; text-align: center;
  background: var(--fucsia-s); color: var(--fucsia);
}

.tupu-pagina .historial h3 { font-size: 17px; font-weight: 750; margin-bottom: 14px; }
.tupu-pagina .tabla-envoltura { overflow-x: auto; border: 1px solid var(--linde); border-radius: 16px; background: var(--carpa); }
.tupu-pagina table.versiones { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 520px; }
.tupu-pagina .versiones th {
  text-align: left; font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--humo); padding: 13px 18px; border-bottom: 1px solid var(--linde); font-weight: 700;
}
.tupu-pagina .versiones td { padding: 14px 18px; border-bottom: 1px solid var(--linde); vertical-align: top; }
.tupu-pagina .versiones tr:last-child td { border-bottom: 0; }
.tupu-pagina .versiones .num { font-weight: 700; color: var(--tiza); font-size: 14px; white-space: nowrap; }
.tupu-pagina .versiones .cuando { color: var(--humo); white-space: nowrap; }
.tupu-pagina .versiones .cambios { color: var(--niebla); max-width: 34ch; }
.tupu-pagina .versiones .desc a { white-space: nowrap; }
.tupu-pagina .nota-mock { margin-top: 14px; font-size: 12px; color: var(--humo); }

/* --- "mándalo a tu celular" (cuando visitan desde una PC) -------- */
.tupu-pagina .btn--wsp { background: #1FAF5A; color: #fff; box-shadow: 0 8px 24px rgba(31,175,90,.35); }
.tupu-pagina .btn--wsp:hover { color: #fff; box-shadow: 0 12px 30px rgba(31,175,90,.45); }
.tupu-pagina .llevar {
  margin-top: 18px; border: 1px solid var(--linde); border-radius: 16px;
  padding: 18px 20px; display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: center;
}
.tupu-pagina .llevar .qr-caja {
  width: 118px; height: 118px; border-radius: 12px; background: #fff; flex: none;
  display: grid; place-items: center; padding: 8px;
}
.tupu-pagina .llevar .qr-caja img { width: 100%; height: 100%; image-rendering: pixelated; }
.tupu-pagina .llevar h4 { font-size: 14.5px; color: var(--tiza); font-weight: 750; margin-bottom: 4px; }
.tupu-pagina .llevar p { font-size: 12.5px; margin-bottom: 12px; }
.tupu-pagina .llevar .acciones-llevar { display: flex; flex-wrap: wrap; gap: 9px; }
.tupu-pagina .llevar .btn { padding: 10px 17px; font-size: 13px; }
/* según el aparato: en la PC este panel manda; en el celular se agacha */
.tupu-pagina.es-pc .llevar { border-color: rgba(31,175,90,.5); background: rgba(31,175,90,.05); }
.tupu-pagina.es-pc #btnDescargaDirecta { background: transparent; color: var(--tiza);
  border: 1px solid rgba(148,163,205,.35); box-shadow: none; }
.tupu-pagina.es-movil .llevar .qr-caja { display: none; }
.tupu-pagina.es-movil .llevar { grid-template-columns: 1fr; padding: 14px 16px; }
.tupu-pagina .donde-estoy { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; }
.tupu-pagina .copiado-ok { color: var(--verde) !important; }
.tupu-pagina .desc .compartir { margin-left: 10px; }

/* ============================================================
   CIERRE (con la frase del tupu como colofón)
   ============================================================ */
.tupu-pagina .cierre { text-align: center; padding: 110px 0 96px; }
.tupu-pagina .cierre h2 { font-size: clamp(30px, 4.6vw, 46px); font-weight: 800; letter-spacing: -.02em; margin-bottom: 14px; }
.tupu-pagina .cierre p { max-width: 52ch; margin: 0 auto 30px; font-size: 17px; }
.tupu-pagina .leyenda-tupu {
  margin: 64px auto 0; max-width: 64ch;
  font-size: 13px; font-style: italic; color: var(--humo);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 960px) {
  .tupu-pagina section { padding: 72px 0; }
  .tupu-pagina .hero .envuelve { grid-template-columns: 1fr; gap: 44px; }
  .tupu-pagina .hero .escena { display: flex; justify-content: center; }
  .tupu-pagina .gestos { grid-template-columns: 1fr; gap: 46px; }
  .tupu-pagina .lado { grid-template-columns: 1fr; gap: 34px; }
  .tupu-pagina .desc-rejilla { grid-template-columns: 1fr; }
  .tupu-pagina .origen { grid-template-columns: 1fr; text-align: center; padding: 34px 26px; }
  .tupu-pagina .origen .glifo { margin: 0 auto; }
}
