@import url('https://fonts.googleapis.com/css2?family=Lora:wght@500;700&family=Inter:wght@400;600&display=swap');
:root{--bg:#f7f1e6;--card:#fffaf1;--ink:#1d2433;--muted:#6b6457;--navy:#1f3a5f;--wine:#7a2836;--gold:#b8893b;--line:#e6dcc8;--mark:#f6e3b4;--shadow:0 6px 20px rgba(40,30,10,.08)}
[data-theme=dark]{--bg:#121722;--card:#1b2230;--ink:#ece6da;--muted:#a59c8c;--navy:#8fb2e0;--wine:#e08a97;--gold:#d9b06a;--line:#2b3446;--mark:#5a4a22;--shadow:0 6px 20px rgba(0,0,0,.35)}
*{box-sizing:border-box}
html{font-size:18px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;line-height:1.65;padding-bottom:80px;transition:background .3s,color .3s}
h1,h2,h3{font-family:Lora,Georgia,serif;line-height:1.25}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;background:var(--navy);color:#fff}
[data-theme=dark] .top{background:#0d1a2e}
.top h1{flex:1;font-size:1.1rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ico{background:rgba(255,255,255,.12);border:0;color:#fff;border-radius:10px;width:40px;height:40px;font-size:1.1rem;cursor:pointer}
main{max-width:820px;margin:auto;padding:1rem;animation:fade .35s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--card);border-top:1px solid var(--line);z-index:5;padding-bottom:env(safe-area-inset-bottom)}
.tabs a{flex:1;text-align:center;padding:.45rem 0;text-decoration:none;color:var(--muted);font-size:1.2rem;display:flex;flex-direction:column}
.tabs a span{font-size:.7rem}.tabs a.on{color:var(--wine);font-weight:600}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.1rem;box-shadow:var(--shadow);margin-bottom:1rem}
.hero{background:linear-gradient(135deg,var(--navy),var(--wine));color:#fff;border:0}
.hero h2{margin:.2rem 0}.hero small{opacity:.85}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-top:.8rem}
.stat{background:rgba(255,255,255,.14);border-radius:12px;padding:.5rem;text-align:center}
.stat b{display:block;font-size:1.4rem;font-family:Lora,serif}
.bloque h3{margin:.4rem 0 .6rem;font-size:1rem;color:var(--muted);letter-spacing:.03em;text-transform:uppercase}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem;margin-bottom:1.2rem}
.tema{position:relative;border-radius:16px;padding:1rem;color:#fff;cursor:pointer;min-height:120px;box-shadow:var(--shadow);transition:transform .2s;text-decoration:none;display:block}
.tema:hover{transform:translateY(-3px)}
.tema .n{font-family:Lora,serif;font-size:.85rem;opacity:.85}.tema .t{font-weight:600;margin:.2rem 0 .8rem}
.tema.off{opacity:.55;cursor:default;filter:grayscale(.3)}
.badge{position:absolute;top:.7rem;right:.7rem;background:rgba(255,255,255,.22);font-size:.7rem;padding:.15rem .5rem;border-radius:20px}
.bar{height:6px;background:rgba(255,255,255,.25);border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:#fff;transition:width .5s}
.pill{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:1rem;position:sticky;top:60px;background:var(--bg);z-index:3;padding-top:.4rem}
.pill button{flex:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:30px;padding:.45rem .9rem;font:inherit;font-size:.85rem;cursor:pointer}
.pill button.on{background:var(--wine);color:#fff;border-color:var(--wine)}
.btn{background:var(--wine);color:#fff;border:0;border-radius:12px;padding:.7rem 1.1rem;font:inherit;font-weight:600;cursor:pointer}
.btn.alt{background:transparent;color:var(--navy);border:1px solid var(--line)}
.btn.alt.on,.ui-opt.on{background:var(--wine);color:#fff;border-color:var(--wine)}
mark{background:var(--mark);color:inherit;padding:0 .2em;border-radius:4px}
.clave{border-left:4px solid var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent);padding:.6rem .9rem;border-radius:0 12px 12px 0;margin-top:.8rem}
.clave b{color:var(--gold)}.clave ul{margin:.3rem 0 0;padding-left:1.1rem}
.para{padding:.6rem .8rem;border-radius:12px;transition:background .3s;margin:.3rem 0;cursor:pointer}
.para.now{background:var(--mark)}
.player{position:sticky;bottom:72px;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
select,input{font:inherit;padding:.45rem;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);max-width:100%}
.flip{perspective:1000px;height:200px;margin:1rem 0;cursor:pointer}
.flip .in{position:relative;width:100%;height:100%;transition:transform .6s;transform-style:preserve-3d}
.flip.on .in{transform:rotateY(180deg)}
.flip .f,.flip .b{position:absolute;inset:0;backface-visibility:hidden;border-radius:18px;display:flex;align-items:center;justify-content:center;text-align:center;padding:1.2rem;font-size:1.1rem}
.flip .f{background:var(--navy);color:#fff;font-family:Lora,serif}
.flip .b{background:var(--card);border:2px solid var(--gold);transform:rotateY(180deg)}
.opt{display:block;width:100%;text-align:left;margin:.35rem 0;padding:.7rem .9rem;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;cursor:pointer}
.opt.ok{background:#d9efe0;border-color:#3d8b5a;color:#1d4a2c}.opt.ko{background:#f6d9dc;border-color:#b2434f;color:#5c1820}
.exp{font-size:.9rem;color:var(--muted);margin-top:.4rem}
.mapa{overflow-x:auto}.mapa svg{width:100%;min-width:760px;height:auto}
.res a{display:flex;gap:.7rem;align-items:center;padding:.8rem;border-radius:12px;border:1px solid var(--line);margin:.4rem 0;text-decoration:none;color:var(--ink);background:var(--card)}
.gl dt{font-weight:600;color:var(--wine);margin-top:.7rem}.gl dd{margin:0 0 .3rem}
.muted{color:var(--muted)}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.done{background:#3d8b5a}

.chip{color:#fff;font-size:.72rem;padding:.15rem .6rem;border-radius:20px}.chip.alt{background:var(--line);color:var(--ink)}
.ico2{background:none;border:0;font-size:1.5rem;color:var(--gold);cursor:pointer}
.rc.visto{opacity:.7}.tabs a{font-size:1.1rem}.tabs a span{font-size:.65rem}
.ojo{border-left:5px solid var(--wine)}.ojo h3{color:var(--wine)}.ojo li{margin:.35rem 0}

/* ---------- Modo paseo ---------- */
.paseo-cta .paseo-btn,.paseo-btn{width:100%;padding:1rem;font-size:1.1rem;border-radius:16px}
.paseo-hero{text-align:center}
.paseo-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}
.paseo-tema{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;text-align:left;padding:1.15rem 1.2rem;min-height:88px;border:0;border-radius:18px;background:linear-gradient(135deg,var(--navy),#7a2836cc);color:#fff;font:inherit;cursor:pointer;box-shadow:var(--shadow);-webkit-tap-highlight-color:transparent}
.paseo-tema:active{transform:scale(.98)}
.paseo-n{font-family:Lora,serif;font-size:.85rem;opacity:.85}
.paseo-t{font-weight:600;font-size:1.15rem;line-height:1.3}
.paseo-meta{font-size:.85rem;opacity:.9}
.paseo-player{max-width:560px;margin:0 auto;padding-bottom:1rem}
.paseo-titulo{font-family:Lora,serif;font-size:1.35rem;font-weight:700;text-align:center;margin:.2rem 0 .4rem;line-height:1.3}
.paseo-pos{text-align:center;margin:0 0 .6rem}
.paseo-texto{font-size:1.25rem;line-height:1.55;min-height:8rem;max-height:40vh;overflow:auto}
.paseo-ctrls{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin:1.4rem 0 1rem}
.paseo-play{width:96px;height:96px;border-radius:50%;border:0;background:var(--wine);color:#fff;font-size:2.4rem;cursor:pointer;box-shadow:var(--shadow);-webkit-tap-highlight-color:transparent}
.paseo-play:active{transform:scale(.96)}
.paseo-nav{width:64px;height:64px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:1.5rem;cursor:pointer}
.paseo-rate .paseo-vel{min-width:3.2rem;padding:.55rem .7rem;border-radius:999px}
.paseo-rate .paseo-vel.on{background:var(--wine);color:#fff;border-color:var(--wine)}
body.modo-paseo{padding-bottom:1.5rem}
body.modo-paseo .tabs{display:none}
body.modo-paseo main{max-width:640px;padding:1rem 1rem 2rem}
@media (max-width:768px){
  .paseo-texto{font-size:1.35rem}
  .paseo-play{width:108px;height:108px;font-size:2.6rem}
}
