*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 15px/1.5 var(--font); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: var(--text); background: radial-gradient(1100px 620px at 105% -8%, var(--tint-a), transparent 62%), radial-gradient(900px 560px at -8% 108%, var(--tint-b), transparent 60%), var(--bg); background-attachment: fixed; }
::selection { background: var(--c-sales-bg); color: var(--text); }
html { scrollbar-color: var(--line-strong) transparent; accent-color: var(--hot-strong); }
input, select, textarea { caret-color: var(--brand); }
h1, h2, h3 { line-height: 1.2; margin: 0 0 .5em; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 700; letter-spacing: -.01em; }
p { margin: 0 0 .75em; }
button, input, select { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
a { color: var(--link); text-underline-offset: 3px; }
a.btn, a.card-link, a.nav-link { color: inherit; text-decoration: none; }
a.btn-primary { color: var(--brand-text); }
button:not(:disabled), [role=button] { touch-action: manipulation; }
.tnum { font-variant-numeric: tabular-nums; }
/* Montos: «S/» chico arriba, número grande con cifras tabulares (ui/money.js) */
.money { font-family: var(--font-mono); display: inline-flex; align-items: flex-start; gap: .18em; font-variant-numeric: tabular-nums; letter-spacing: -.03em; white-space: nowrap; }
.money-cur { font-size: .58em; font-weight: 700; opacity: .6; letter-spacing: 0; margin-top: .22em; }
.money-num { font-weight: 700; }
.mono, .code, code, kbd { font-family: var(--font-mono); }
[hidden] { display: none !important; }
.splash { text-align: center; color: var(--muted); padding: 4rem 1rem; }
.muted { color: var(--muted); }
