:root{
  --tinta:#121212;
  --negro:#0b0d12;
  --lima:#edf6d4;
  --crema:#f5f2ec;
  --salvia:#e9ebe0;
  --linea:#d8d4ca;
  --suave:#6b6b66;
  --fondo:#ffffff;
  --sombra:0 1px 0 rgba(18,18,18,.06);
}
:root:not([data-theme="light"]){
  @media (prefers-color-scheme: dark){
    --tinta:#f2f1ec; --negro:#edf6d4; --lima:#0b0d12;
    --crema:#1a1a18; --salvia:#222220; --linea:#33332e;
    --suave:#9b9a93; --fondo:#111110;
  }
}
:root[data-theme="dark"]{
  --tinta:#f2f1ec; --negro:#edf6d4; --lima:#0b0d12;
  --crema:#1a1a18; --salvia:#222220; --linea:#33332e;
  --suave:#9b9a93; --fondo:#111110;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--salvia); color:var(--tinta);
  font-family:Inter,-apple-system,system-ui,sans-serif; font-size:15px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.15}

/* ---- encuadre ---- */
.pagina{max-width:1180px;margin:0 auto;padding:32px 16px 64px}
.intro{margin:0 auto 28px;max-width:720px}
.intro h1{font-size:clamp(28px,5vw,40px)}
.intro p{color:var(--suave);margin:10px 0 0}
.nota{
  background:var(--crema);border:1px solid var(--linea);padding:14px 16px;margin-top:18px;
  font-size:13.5px;color:var(--suave)
}
.nota strong{color:var(--tinta)}

.escenario{display:flex;gap:28px;align-items:flex-start;justify-content:center;flex-wrap:wrap}

/* ---- el móvil ---- */
.movil{
  width:390px;max-width:100%;background:var(--fondo);border:1px solid var(--linea);
  display:flex;flex-direction:column;height:760px;max-height:82vh;position:relative;overflow:hidden;
  box-shadow:0 18px 50px rgba(18,18,18,.12)
}
.barra{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;font-size:11px;color:var(--suave);border-bottom:1px solid var(--linea);
  background:var(--fondo);flex:0 0 auto
}
.lienzo{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain}
.vista{display:none;padding:0 0 28px}
.vista.on{display:block}

/* ---- cabecera de cada vista ---- */
.hero{background:var(--negro);color:var(--lima);padding:26px 20px 22px}
.hero .marca{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.75}
.hero h2{font-size:26px;margin-top:8px;color:var(--lima)}
.hero p{margin:8px 0 0;font-size:13.5px;opacity:.85}

.bloque{padding:20px}
.bloque + .bloque{border-top:1px solid var(--linea)}
.bloque h3{font-size:18px;margin-bottom:12px}
.rotulo{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--suave);margin-bottom:8px}

/* ---- tarjetas ---- */
.tarjeta{background:var(--crema);border:1px solid var(--linea);padding:16px;margin-bottom:12px}
.tarjeta:last-child{margin-bottom:0}
.tarjeta h4{margin:0 0 4px;font-size:15px;font-weight:600;font-family:Inter,sans-serif}
.tarjeta p{margin:0;font-size:13.5px;color:var(--suave)}

.dato{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--linea);font-size:14px}
.dato:last-child{border-bottom:0}
.dato span:first-child{color:var(--suave)}
.dato span:last-child{text-align:right;font-weight:500}

.cuenta{display:flex;gap:10px;margin-top:14px}
.cuenta div{flex:1;background:rgba(237,246,212,.12);border:1px solid rgba(237,246,212,.3);padding:10px;text-align:center}
.cuenta b{display:block;font-family:Fraunces,serif;font-size:22px;line-height:1}
.cuenta small{font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.75}

/* ---- botones ---- */
.btn{
  display:block;width:100%;text-align:center;background:var(--negro);color:var(--lima);
  border:2px solid var(--negro);padding:13px 16px;font:600 14px Inter,sans-serif;
  cursor:pointer;text-decoration:none;border-radius:0
}
.btn.fantasma{background:transparent;color:var(--tinta);border-color:var(--tinta)}
.btn + .btn{margin-top:8px}

/* ---- avisos de estado ---- */
.aviso{display:flex;gap:10px;align-items:flex-start;padding:13px 14px;font-size:13.5px;border:1px solid}
.aviso.urge{background:#fff3f0;border-color:#e3b5a8;color:#7a2c14}
.aviso.ok{background:#eef6e2;border-color:#bccfa0;color:#3c5220}
:root[data-theme="dark"] .aviso.urge,:root:not([data-theme="light"]) .aviso.urge{}
.punto{width:8px;height:8px;border-radius:50%;flex:0 0 auto;margin-top:6px;background:currentColor}

/* ---- catálogo ---- */
.fila{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--linea);align-items:flex-start}
.fila:last-child{border-bottom:0}
.fila .cuerpo{flex:1;min-width:0}
.fila h4{margin:0 0 2px;font-size:14.5px;font-weight:600;font-family:Inter,sans-serif}
.fila p{margin:0;font-size:12.5px;color:var(--suave)}
.fila .precio{font-weight:600;font-size:14px;white-space:nowrap}
.mas{border:1.5px solid var(--tinta);background:transparent;color:var(--tinta);width:28px;height:28px;font-size:16px;line-height:1;cursor:pointer;flex:0 0 auto}

.pastilla{display:inline-block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--linea);padding:3px 8px;margin:0 6px 6px 0;color:var(--suave)}
.pastilla.viva{background:var(--negro);color:var(--lima);border-color:var(--negro)}

/* ---- mejora ---- */
.mejora{background:var(--negro);color:var(--lima);padding:20px}
.mejora h3{color:var(--lima);font-size:19px}
.mejora p{font-size:13.5px;opacity:.85;margin:8px 0 0}
.mejora .antes{text-decoration:line-through;opacity:.6;margin-right:8px}
.mejora .btn{background:var(--lima);color:var(--negro);border-color:var(--lima);margin-top:14px}

/* ---- navegación inferior ---- */
.nav{display:flex;border-top:1px solid var(--linea);background:var(--fondo);flex:0 0 auto}
.nav button{
  flex:1;background:none;border:0;padding:9px 2px 11px;cursor:pointer;color:var(--suave);
  font:500 9.5px Inter,sans-serif;letter-spacing:.04em;display:flex;flex-direction:column;align-items:center;gap:3px
}
.nav button.on{color:var(--tinta)}
.nav button.on svg{stroke:var(--tinta)}
.nav svg{width:19px;height:19px;stroke:var(--suave);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ---- panel lateral de notas ---- */
.notas{width:330px;max-width:100%}
.notas h3{font-size:19px;margin-bottom:10px}
.notas ol{margin:0;padding-left:18px}
.notas li{margin-bottom:12px;font-size:13.5px;color:var(--suave)}
.notas li b{color:var(--tinta);font-weight:600}

@media (max-width:860px){
  .movil{height:auto;max-height:none}
  .lienzo{overflow:visible}
  .nav{position:sticky;bottom:0}
}
