/* Fuentes autoalojadas (SIL OFL 1.1, ver /fonts/OFL-*.txt). Subconjunto latino: cubre el español. */
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/bricolage-grotesque-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--brand:#17463A;--action:#F5B335;--on-action:#12261F;--night:#0B2019;--sun:#F5B335;--mist:#CFE0D8;--text:#12261F;--muted:#3F4F47;--line:#B9B29E;--bg:#FBF6EA;--warn-bg:#FFF3D1;--warn-text:#6B4300;--err:#A32020;--ok-bg:#E3F0E8;--focus:#B9780A;--field:#6B7686}
*{box-sizing:border-box}
html{font-size:20px}
html.size-1{font-size:18px}
html.size-3{font-size:24px}
body{margin:0;font-family:'Atkinson Hyperlegible',Verdana,Tahoma,'DejaVu Sans',system-ui,sans-serif;line-height:1.55;color:var(--text);background:var(--bg)}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:12px;z-index:100}.skip:focus{left:8px;top:8px}
a{color:var(--brand);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}a:hover{color:#0B2019}
h1,h2,h3{color:var(--brand);line-height:1.2;margin:0;font-weight:700}
h1{font-size:clamp(1.9rem,5vw,2.8rem)}h2{font-size:1.9rem}h3{font-size:1.25rem}
p{margin:0}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.stack{display:flex;flex-direction:column;gap:16px}.stack-lg{display:flex;flex-direction:column;gap:32px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.between{justify-content:space-between}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.muted{color:var(--muted)}.small{font-size:.9rem}.big{font-size:1.1rem}.bold{font-weight:700}
.card{background:#fff;border:2px solid var(--line);border-radius:16px;padding:24px}
.card.link{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--brand);transition:border-color .15s,box-shadow .15s}
.card.link:hover{border-color:var(--brand);box-shadow:0 8px 22px rgba(23,70,58,.16)}
.btn,.btn2,.chip,.tab,.sizebtn{font:inherit;cursor:pointer}
.btn,.btn2{font-weight:700;border-radius:14px;padding:14px 26px;min-height:60px;border:2px solid var(--action);background:var(--action);color:var(--on-action);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.btn2{border-color:var(--brand);background:#fff;color:var(--brand)}
.btn:hover{background:#E3A11F;border-color:#E3A11F;color:var(--on-action)}.btn2:hover{background:#E6EFE9;color:var(--brand)}
.btn[disabled],.btn2[disabled]{opacity:.55;cursor:not-allowed}
.btn.sm,.btn2.sm{min-height:48px;padding:8px 18px;font-size:.9rem}
.btn.danger{background:var(--err);border-color:var(--err);color:#fff}
.chip{font-weight:700;border-radius:14px;padding:12px 18px;min-height:56px;border:2px solid var(--field);background:#fff;color:var(--brand)}
.chip[aria-pressed=true]{background:var(--brand);color:#fff;border-color:var(--brand)}
.field,select.field,textarea.field{font:inherit;padding:12px 14px;min-height:56px;border-radius:12px;border:2px solid var(--field);background:#fff;color:var(--text);width:100%}
textarea.field{min-height:120px;resize:vertical}
label.lbl{display:block;font-weight:700;margin-bottom:6px}
.hint{font-size:.85rem;color:var(--muted);margin-top:4px}
.form{display:flex;flex-direction:column;gap:18px;max-width:640px}
.check{display:flex;gap:12px;align-items:flex-start}.check input{width:28px;height:28px;flex:none;margin-top:2px;accent-color:var(--action)}
:focus-visible{outline:4px solid var(--focus);outline-offset:3px}
.note{border:2px solid var(--line);border-left:6px solid var(--brand);border-radius:12px;padding:14px 18px;background:#fff}
.note.warn{border-color:#E0A526;border-left-color:#E0A526;background:var(--warn-bg);color:var(--warn-text)}
.note.err{border-color:var(--err);border-left-color:var(--err);color:var(--err);background:#fff}
.note.ok{border-color:var(--action);border-left-color:var(--action);background:var(--ok-bg)}
.tag{display:inline-block;font-size:.8rem;font-weight:700;padding:3px 10px;border-radius:10px;border:2px solid var(--line);background:#fff;color:var(--brand)}
.tag.ok{border-color:var(--action);color:var(--action)}.tag.warn{border-color:#C98F10;color:var(--warn-text);background:var(--warn-bg)}.tag.err{border-color:var(--err);color:var(--err)}
.demo-bar{background:var(--warn-bg);color:var(--warn-text);text-align:center;padding:8px 16px;font-size:.85rem;font-weight:700}
header.top{background:#fff;border-bottom:2px solid var(--line)}
.brand{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--brand)}
.brand .mark{width:52px;height:52px;flex:none}
.brand b{font-size:1.3rem;line-height:1.1;display:block}
.sizes{display:flex;align-items:center;gap:8px}
.sizebtn{min-width:52px;min-height:52px;border-radius:10px;border:2px solid var(--field);background:#fff;color:var(--brand);font-weight:700}
.sizebtn[aria-pressed=true]{background:var(--brand);color:#fff}
nav.main{display:flex;gap:4px;overflow-x:auto}
.tab{background:none;border:0;border-bottom:5px solid transparent;padding:12px 16px;min-height:60px;color:var(--muted);font-weight:700;text-decoration:none;display:inline-flex;align-items:center;white-space:nowrap}
.tab[aria-current=page]{color:var(--brand);border-bottom-color:var(--action)}
.tab:hover{color:var(--brand);background:#F1ECDC}
.hero{background:linear-gradient(135deg,#0B2E59,#14305E);color:#fff;padding:56px 0}
.hero h1{color:#fff}.hero p{color:#e6eaf2;font-size:1.1rem;max-width:54ch}
.hero .btn{background:#fff;color:var(--brand);border-color:#fff}.hero .btn2{background:transparent;color:#fff;border-color:#9aa8bd}
.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.steps li{counter-increment:s;display:flex;gap:14px;align-items:flex-start;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:14px}
.steps li::before{content:counter(s);width:34px;height:34px;border-radius:50%;background:#fff;color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.progress{height:12px;border-radius:6px;background:#E4DDC8;overflow:hidden}.progress>i{display:block;height:100%;background:var(--action)}
.opt{display:block;width:100%;text-align:left;font:inherit;background:#fff;border:2px solid var(--field);border-radius:14px;padding:16px 20px;min-height:64px;cursor:pointer;color:var(--text)}
.opt:hover{border-color:var(--brand);background:#F6F1E2}
table.t{width:100%;border-collapse:collapse;font-size:.9rem}
.t th,.t td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.t th{color:var(--muted)}
.scroll{overflow-x:auto}
footer.foot{background:var(--night);color:#CFE0D8;margin-top:56px;padding:32px 0}
footer.foot a{color:#fff}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--night);color:#fff;padding:14px 22px;border-radius:12px;z-index:50;max-width:90vw;font-weight:700}
.toast.err{background:var(--err)}
.legal p{margin-bottom:14px;max-width:70ch}.legal h3{margin:22px 0 8px}
.kv{display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:6px 16px}.kv dt{color:var(--muted);font-weight:700}.kv dd{margin:0}
.log{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:.85rem}
.sr{position:absolute;left:-999px}
@media (max-width:820px){.hero{padding:36px 0}.kv{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.wrap.stack,.wrap.stack-lg{padding-top:32px;padding-bottom:8px}
.hero .wrap{gap:40px}#hero-l{flex:1 1 440px}#hero-r{flex:1 1 340px}
.p1{width:33%}.p2{width:66%}.p3{width:100%}
.s1{font-size:.8em}.s3{font-size:1.25em}
.hero .wrap{padding-top:0}
.annex{border:2px solid var(--line);border-radius:12px;padding:16px;background:#fff}
.money{font-size:1.5rem;font-weight:700;color:var(--brand)}
main.wrap{padding-top:32px;padding-bottom:8px}
.row>.field{width:auto;min-width:240px;flex:1 1 240px}
.tag{margin-left:8px}
.card .row>.tag:first-child,.row.between>.tag{margin-left:0}
ul.stack{padding:0;list-style:none}
dialog.card{max-width:min(680px,94vw);max-height:90vh;overflow:auto}
.stack>.btn,.stack>.btn2,.stack>p.tag,.stack>.tag{align-self:flex-start}
.form>.btn,.form>button.btn{align-self:flex-start}

/* ---- Horizonte vivo (portada) ---- */
h1,h2{font-family:'Bricolage Grotesque','Atkinson Hyperlegible',Verdana,system-ui,sans-serif}
.horizon{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:46rem;color:#fff;background:linear-gradient(180deg,var(--hz-top,#0A1A16),var(--hz-bot,#153F33))}
.horizon h1{color:#fff;font-weight:400;font-size:clamp(2.6rem,6.5vw,4.6rem);line-height:1;letter-spacing:-.03em;max-width:10ch}
.hz-sky{position:relative;overflow:hidden;flex:1;min-height:30rem;--x0:62%;--dx:24%;--y0:78%;--dy:-60%}
.hz-top{position:relative;z-index:4;width:100%;padding-top:36px;padding-bottom:36px;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.hz-lead{font-size:1.15rem;max-width:34ch}
.hz-sun{position:absolute;z-index:2;width:clamp(6rem,12vw,9.4rem);aspect-ratio:1;border-radius:50%;background:var(--sun);left:calc(var(--x0) + var(--dx) * var(--hz-t,.4));top:calc(var(--y0) + var(--dy) * var(--hz-t,.4));box-shadow:var(--hz-glow,none);transition:top .6s ease,left .6s ease,box-shadow .6s ease}
.horizon.calm .hz-sun{transition:none}
.hz-calm{font:inherit;font-weight:700;min-height:48px;padding:6px 18px;border-radius:999px;border:2px solid #fff;background:transparent;color:#fff;cursor:pointer}
.hz-calm[aria-pressed=true]{background:#fff;color:var(--text)}
.hz-ground{position:relative;z-index:3;background:var(--night);border-top:3px solid var(--sun);padding:28px 0 36px}
.hz-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:24px 56px;align-items:end}
.hz-ctl{display:flex;flex-direction:column;gap:2px}
.hz-ctl label{color:var(--mist);font-size:1rem;margin-top:8px}
.hz-val{display:flex;align-items:baseline;gap:10px}
.hz-big{font-family:'Bricolage Grotesque','Atkinson Hyperlegible',Verdana,sans-serif;font-size:clamp(2.4rem,5vw,3.4rem);font-weight:400;line-height:1;letter-spacing:-.03em}
.horizon input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:44px;margin:0;background:transparent;cursor:pointer}
.horizon input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(to right,var(--sun) var(--pct,0%),#3C5A4F var(--pct,0%))}
#hz-age{--pct:var(--hz-age-pct,30%)}#hz-year{--pct:var(--hz-year-pct,50%)}
.horizon input[type=range]::-moz-range-track{height:8px;border-radius:4px;background:#3C5A4F}
.horizon input[type=range]::-moz-range-progress{height:8px;border-radius:4px;background:var(--sun)}
.horizon input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:40px;height:40px;margin-top:-16px;border-radius:50%;background:var(--sun);border:4px solid var(--night);box-shadow:0 0 0 3px var(--sun)}
.horizon input[type=range]::-moz-range-thumb{width:32px;height:32px;border-radius:50%;background:var(--sun);border:4px solid var(--night);box-shadow:0 0 0 3px var(--sun)}
.horizon :focus-visible{outline-color:var(--sun)}
.hz-ticks{position:relative;height:28px;font-size:.85rem;color:var(--mist)}
.hz-ticks span{position:absolute}.hz-ticks .a{left:0}.hz-ticks .b{left:89.4%;transform:translateX(-50%)}.hz-ticks .c{right:0}
.hz-yticks{height:auto;min-height:40px}.hz-mark{left:var(--hz-mark,50%);transform:translateX(-50%);white-space:nowrap;padding-top:10px}.hz-mark::before{content:"";position:absolute;top:0;left:50%;width:2px;height:8px;background:var(--sun);transform:translateX(-50%)}.hz-mark[data-edge=start]{transform:none}.hz-mark[data-edge=start]::before{left:0;transform:none}.hz-mark[data-edge=end]{transform:translateX(-100%)}.hz-mark[data-edge=end]::before{left:auto;right:0;transform:none}.hz-mark[data-out='1']{position:static;transform:none;display:block;white-space:normal;padding-top:0}.hz-mark[data-out='1']::before{display:none}.hz-mark[hidden]{display:none}@media (max-width:480px){.hz-ticks .b{transform:translateX(-100%)}}
.narrow{max-width:34rem}
.narrow-read{max-width:44rem}
.hz-out{display:flex;flex-direction:column;gap:16px}
.hz-msg{font-family:'Bricolage Grotesque','Atkinson Hyperlegible',Verdana,sans-serif;font-size:clamp(1.5rem,3vw,2rem);line-height:1.15;letter-spacing:-.015em}
.hz-road{color:var(--mist);max-width:34em}
.hz-cta{display:flex;flex-wrap:wrap;gap:12px}
.hz-ground .btn2{background:transparent;color:#fff;border-color:#fff}.hz-ground .btn2:hover{background:#fff;color:var(--text)}
.hz-note{font-size:.85rem;color:var(--mist)}
@media (prefers-reduced-motion:reduce){.hz-sun{transition:none}}
/* lista tipográfica con filetes: sustituye la rejilla de tarjetas */
.needs{list-style:none;margin:0;padding:0;border-top:2px solid var(--line)}
.need{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr) auto;gap:6px 24px;align-items:center;padding:20px 4px;min-height:72px;border-bottom:2px solid var(--line);text-decoration:none;color:var(--brand)}
.need-t{font-family:'Bricolage Grotesque','Atkinson Hyperlegible',Verdana,sans-serif;font-size:1.35rem;line-height:1.2}.need-d{color:var(--muted);font-size:.95rem}.need-go{font-size:1.5rem;font-weight:700}
.need:hover{background:#F1ECDC}.need:hover .need-go{transform:translateX(4px)}.need-go{transition:transform .15s}
@media (max-width:820px){.need{grid-template-columns:1fr auto}.need-d{grid-column:1}}
@media (max-width:820px){.hz-sky{--x0:46%;--dx:30%;--y0:90%;--dy:-24%;min-height:26rem}.hz-top{padding-bottom:10rem}}
