/* Huellas de León · estilos
   Concepto: diario de la visita. Blanco, filete dorado pontificio, tipografía clásica para títulos
   y sans técnica para datos. Rojo cardenalicio solo para lo que está en vivo. Solo modo claro. */
:root{
  color-scheme:light;
  --bg:#ffffff;
  --surface:#f8f7f4;
  --surface-2:#f1efe9;
  --ink:#1a1a1e;
  --ink-2:#3a3a40;
  --muted:#6b6a70;
  --line:#e5e2da;
  --gold:#b8922f;
  --gold-ink:#7b5e12;
  --gold-soft:#f7f0dc;
  --live:#a8161f;
  --live-soft:#fbeaea;
  --slate:#35537a;
  --slate-soft:#eaf0f6;
  --ok:#2f6b3f;
  --f-display:"EB Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --radius:10px;
  --shadow:0 1px 2px rgba(26,26,30,.05),0 4px 16px rgba(26,26,30,.05);
  --gutter-l:max(16px,env(safe-area-inset-left,0px));
  --gutter-r:max(16px,env(safe-area-inset-right,0px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 112px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
img{max-width:100%;display:block}
a{color:var(--gold-ink);text-decoration-color:rgba(184,146,47,.55);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--ink);text-decoration-color:var(--gold)}
:focus-visible{outline:2px solid var(--gold-ink);outline-offset:3px}
[hidden]{display:none!important}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0}
button{font:inherit;cursor:pointer;color:inherit}
.container{max-width:1080px;margin:0 auto;padding-left:var(--gutter-l);padding-right:var(--gutter-r)}
.narrow{max-width:760px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Barra superior ───────────────────────── */
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:12px}
.wordmark{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.wordmark-seal{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--gold);display:grid;place-items:center;flex:none}
.wordmark-seal span{width:10px;height:10px;border-radius:50%;background:var(--gold)}
.wordmark b{font-family:var(--f-display);font-weight:700;font-size:1.4rem;letter-spacing:.01em;line-height:1}
.wordmark small{display:block;font-size:.68rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.top-actions{display:flex;gap:8px;align-items:center}
.nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-bottom:10px;margin-top:-2px}
.nav::-webkit-scrollbar{display:none}
.nav a{flex:none;font-size:.85rem;text-decoration:none;color:var(--ink-2);padding:6px 12px;border-radius:999px;border:1px solid transparent;white-space:nowrap}
.nav a:hover{background:var(--surface)}
.nav a.active{border-color:var(--line);background:var(--surface);color:var(--ink)}
.nav a.live-link{color:var(--live)}

/* ── Botones ───────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:10px 18px;font-weight:600;font-size:.92rem;text-decoration:none;border:1px solid transparent;transition:background .15s,border-color .15s}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:#000;color:#fff}
.btn-gold{background:var(--gold);color:#fff}
.btn-gold:hover{background:var(--gold-ink);color:#fff}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold);color:var(--ink)}
.btn-sm{padding:7px 14px;font-size:.84rem}
.btn[disabled]{opacity:.55;cursor:default}
.linkbtn{background:none;border:0;padding:0;color:var(--muted);font-size:.8rem;text-decoration:underline;text-underline-offset:2px}
.linkbtn:hover{color:var(--ink)}

/* ── Franja en vivo ───────────────────────── */
.livebar{background:var(--live);color:#fff}
.livebar .container{display:flex;align-items:center;gap:12px;padding-block:10px;flex-wrap:wrap}
.livebar a{color:#fff;font-weight:600}
.pulse{width:9px;height:9px;border-radius:50%;background:#fff;flex:none;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.3}}

/* ── Portada ───────────────────────────────── */
.hero{padding-block:44px 28px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface) 0%,var(--bg) 100%)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr;gap:26px}}
.hero h1{font-family:var(--f-display);font-weight:600;font-size:clamp(2.4rem,6.5vw,4.1rem);line-height:1.02;letter-spacing:-.01em}
.hero h1 em{font-style:italic;color:var(--gold-ink)}
.hero .lede{margin-top:16px;font-size:1.08rem;color:var(--ink-2);max-width:34em}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:20px;color:var(--muted);font-size:.88rem}
.hero-meta span{display:inline-flex;align-items:center;gap:8px}
.hero-meta span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold)}
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.disclaimer{margin-top:18px;font-size:.78rem;color:var(--muted)}

/* Tablero ahora / próximo */
.board{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.board-head{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--surface)}
.board-clock{font-family:var(--f-mono);font-size:.82rem;color:var(--ink-2)}
.board-row{padding:18px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--line)}
.board-row:last-child{border-bottom:0}
.board-tag{display:flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.board-tag .dot{width:8px;height:8px;border-radius:50%;background:var(--live);animation:pulse 1.6s ease-in-out infinite}
.board-line{display:flex;gap:14px;align-items:baseline}
.board-time{font-family:var(--f-mono);font-weight:500;font-size:1.25rem;color:var(--gold-ink);flex:none;font-variant-numeric:tabular-nums}
.board-title{font-family:var(--f-display);font-weight:700;font-size:1.45rem;line-height:1.15}
.board-place{color:var(--muted);font-size:.9rem}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px}
.countdown div{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 6px;text-align:center}
.countdown b{display:block;font-family:var(--f-mono);font-weight:500;font-size:1.6rem;line-height:1.1;font-variant-numeric:tabular-nums}
.countdown small{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.board-count{font-family:var(--f-mono);font-size:.85rem;color:var(--ink-2)}

/* ── Secciones ─────────────────────────────── */
.section{padding-block:56px;border-bottom:1px solid var(--line)}
.section.alt{background:var(--surface)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.section-head h2{font-family:var(--f-display);font-weight:600;font-size:clamp(1.9rem,4.5vw,2.6rem);line-height:1.05}
.section-head p{color:var(--muted);max-width:40em;margin-top:6px}
.rule{display:block;width:44px;height:2px;background:var(--gold);margin-bottom:14px}

/* ── Transmisiones ─────────────────────────── */
.streams{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.stream{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px;min-width:0}
.stream.is-live{border-color:var(--live);box-shadow:0 0 0 3px var(--live-soft)}
.stream-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.kind{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.live-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--live);background:var(--live-soft);padding:3px 8px;border-radius:999px}
.live-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--live);animation:pulse 1.6s infinite}
.stream h3{font-size:1.05rem;font-weight:600;line-height:1.3}
.stream p{font-size:.9rem;color:var(--ink-2)}
.stream a.go{margin-top:auto;font-size:.88rem;font-weight:600}

/* ── Minuto a minuto ───────────────────────── */
.feed{list-style:none;margin:0;padding:0;position:relative}
.feed::before{content:"";position:absolute;left:83px;top:6px;bottom:6px;width:1px;background:var(--line)}
@media (max-width:560px){.feed::before{left:7px}}
.upd{display:grid;grid-template-columns:72px 1fr;gap:22px;padding-bottom:22px;position:relative}
@media (max-width:560px){.upd{grid-template-columns:1fr;gap:4px;padding-left:24px}}
.upd-time{text-align:right;font-family:var(--f-mono);font-size:.82rem;color:var(--muted);line-height:1.35;padding-top:2px}
.upd-time b{display:block;color:var(--ink);font-weight:500;font-size:.95rem}
@media (max-width:560px){.upd-time{text-align:left;display:flex;gap:8px;align-items:baseline}.upd-time b{display:inline}}
.upd-body{position:relative;min-width:0}
.upd-body::before{content:"";position:absolute;left:-17px;top:7px;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid var(--muted)}
@media (max-width:560px){.upd-body::before{left:-21px;top:-18px}}
.upd[data-kind="vivo"] .upd-body::before{background:var(--live);border-color:var(--live)}
.upd[data-kind="transito"] .upd-body::before{border-color:var(--slate)}
.upd[data-kind="aviso"] .upd-body::before{border-color:var(--gold);background:var(--gold)}
.upd-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.pill{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;padding:2px 8px;border-radius:999px}
.pill.vivo{background:var(--live-soft);color:var(--live)}
.pill.transito{background:var(--slate-soft);color:var(--slate)}
.pill.aviso{background:var(--gold-soft);color:var(--gold-ink)}
.pill.dato{background:var(--surface-2);color:var(--muted)}
.pill.fijado{background:var(--ink);color:#fff}
.upd p{overflow-wrap:anywhere}
.upd .src{font-size:.82rem;color:var(--muted);margin-top:4px}
.feed-more{margin-top:8px}
.empty{color:var(--muted);font-size:.92rem;padding:18px;border:1px dashed var(--line);border-radius:var(--radius);text-align:center}

/* ── Muro de los fieles ────────────────────── */
.wall-tools{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;font-size:.85rem;color:var(--ink-2)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.wall{columns:3 280px;column-gap:14px}
.post{break-inside:avoid;margin-bottom:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.post img{width:100%;height:auto;background:var(--surface-2)}
.post-body{padding:14px 16px 12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.post-kind{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink)}
.post-text{font-size:.95rem;overflow-wrap:anywhere;white-space:pre-line}
.post-text.big{font-family:var(--f-display);font-size:1.3rem;line-height:1.3;font-weight:500}
.post-event{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;background:var(--surface);border-radius:8px;padding:10px 12px}
.post-event .cal{text-align:center;border:1px solid var(--line);background:#fff;border-radius:6px;padding:4px 8px;min-width:52px}
.post-event .cal b{display:block;font-family:var(--f-display);font-size:1.4rem;line-height:1}
.post-event .cal small{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.post-event div:last-child{font-size:.86rem;color:var(--ink-2);min-width:0;overflow-wrap:anywhere}
.post-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}
.post-foot strong{color:var(--ink);font-weight:600}
.post.is-sample{border-style:dashed}
.sample-flag{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:1px 8px}
.report-box{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:0 16px 12px;font-size:.8rem}
.report-box select{font:inherit;font-size:.8rem;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:#fff}
.wall-more{display:flex;justify-content:center;margin-top:10px}
.notice{background:var(--gold-soft);border:1px solid #ecdcae;color:var(--ink-2);border-radius:var(--radius);padding:12px 16px;font-size:.9rem;margin-bottom:18px}

/* ── Formulario para publicar ──────────────── */
dialog.sheet{border:0;padding:0;border-radius:16px;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-shadow:0 20px 60px rgba(0,0,0,.25);color:var(--ink)}
dialog.sheet::backdrop{background:rgba(20,20,24,.45)}
.sheet-inner{display:flex;flex-direction:column;max-height:calc(100dvh - 24px)}
.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.sheet-head h3{font-family:var(--f-display);font-size:1.5rem;font-weight:600}
.sheet-body{padding:18px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
.sheet-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.close{background:none;border:0;font-size:1.5rem;line-height:1;color:var(--muted);padding:4px 8px}
.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
@media (max-width:440px){.seg{grid-template-columns:repeat(2,1fr)}}
.seg button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 6px;font-size:.84rem;line-height:1.25;color:var(--ink-2)}
.seg button[aria-pressed="true"]{border-color:var(--gold);background:var(--gold-soft);color:var(--ink);font-weight:600}
.field{display:flex;flex-direction:column;gap:5px}
.field label,.field .lbl{font-size:.82rem;font-weight:600;color:var(--ink-2)}
.field .hint{font-size:.78rem;color:var(--muted)}
.field input,.field textarea,.field select{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px var(--gold-soft)}
.field textarea{min-height:96px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:440px){.row2{grid-template-columns:1fr}}
.drop{border:1.5px dashed var(--line);border-radius:10px;padding:16px;text-align:center;color:var(--muted);font-size:.88rem;background:var(--surface);cursor:pointer}
.drop:hover{border-color:var(--gold)}
.drop img{max-height:220px;margin:0 auto 8px;border-radius:6px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--ink-2)}
.check input{margin-top:4px;width:18px;height:18px;flex:none;accent-color:var(--gold)}
.form-msg{font-size:.86rem}
.form-msg.err{color:var(--live)}
.form-msg.ok{color:var(--ok)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ── Agenda ────────────────────────────────── */
.days{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}
@media (max-width:640px){.days{display:flex;overflow-x:auto;scrollbar-width:none}.days button{flex:0 0 150px}}
.days button{text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.days button b{font-family:var(--f-display);font-weight:700;font-size:1.25rem;line-height:1.1}
.days button small{font-size:.78rem;color:var(--muted)}
.days button[aria-selected="true"]{border-color:var(--gold);box-shadow:inset 0 -3px 0 var(--gold)}
.agenda{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ev{display:grid;grid-template-columns:76px 1fr auto;gap:4px 16px;padding:16px 18px;border-bottom:1px solid var(--line);align-items:start}
.ev:last-child{border-bottom:0}
@media (max-width:560px){.ev{grid-template-columns:62px 1fr}.ev .ev-actions{grid-column:2}}
.ev-time{font-family:var(--f-mono);font-weight:500;font-size:1rem;font-variant-numeric:tabular-nums;padding-top:2px}
.ev-time small{display:block;font-size:.7rem;color:var(--muted)}
.ev h3{font-size:1rem;font-weight:600;line-height:1.35}
.ev-place{font-size:.88rem;color:var(--muted)}
.ev-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.tag{font-size:.72rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);text-decoration:none}
.tag.pub{border-color:#e4cf93;background:var(--gold-soft);color:var(--gold-ink)}
a.tag:hover{border-color:var(--gold);color:var(--ink)}
.ev-actions{display:flex;gap:6px;align-items:flex-start}
.ev.is-now{background:var(--gold-soft)}
.ev.is-now .ev-time{color:var(--gold-ink)}
.ev.is-past{opacity:.5}
.ev.flight h3{font-weight:500;color:var(--ink-2)}
.src-note{margin-top:12px;font-size:.82rem;color:var(--muted)}

/* ── Guía y cortes ─────────────────────────── */
.guide{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media (max-width:760px){.guide{grid-template-columns:1fr}}
.gcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;min-width:0}
.gcard-head{padding:18px 18px 12px;border-bottom:1px solid var(--line)}
.gcard-head h3{font-family:var(--f-display);font-weight:700;font-size:1.45rem;line-height:1.1}
.gcard-head p{font-size:.86rem;color:var(--muted);margin-top:4px}
.gcard dl{margin:0;padding:14px 18px;display:grid;grid-template-columns:96px 1fr;gap:10px 14px;font-size:.92rem}
.gcard dt{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.gcard dd{margin:0;min-width:0;overflow-wrap:anywhere}
@media (max-width:440px){.gcard dl{grid-template-columns:1fr;gap:2px}.gcard dd{margin-bottom:10px}}
.gcard-foot{margin-top:auto;padding:12px 18px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted);background:var(--surface);border-radius:0 0 var(--radius) var(--radius)}
.checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 18px;margin:0;padding:0;list-style:none}
.checklist li{display:flex;gap:10px;font-size:.92rem}
.checklist li::before{content:"";width:16px;height:16px;border:1.5px solid var(--gold);border-radius:4px;flex:none;margin-top:3px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.panel h3{font-size:1rem;font-weight:600;margin-bottom:12px}
.stack{display:flex;flex-direction:column;gap:14px}

/* ── Info útil ─────────────────────────────── */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:860px){.info-grid{grid-template-columns:1fr}}
.hol{display:flex;flex-direction:column;gap:10px}
.hol div{display:flex;gap:12px;align-items:baseline}
.hol b{font-family:var(--f-display);font-size:1.25rem;min-width:84px}
.hol span{font-size:.9rem;color:var(--ink-2)}
.phones{display:flex;flex-direction:column;gap:8px;font-size:.92rem}
.phones div{display:flex;gap:12px;align-items:baseline}
.phones b{font-family:var(--f-mono);font-weight:500;min-width:40px}
.links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.92rem}

/* ── Pie ───────────────────────────────────── */
.footer{padding-block:40px 56px;color:var(--muted);font-size:.84rem}
.footer .container{display:flex;flex-direction:column;gap:12px}
.footer h4{font-family:var(--f-display);font-size:1.2rem;color:var(--ink);margin:0}

/* ── Aviso flotante ───────────────────────── */
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 18px;border-radius:999px;font-size:.9rem;z-index:50;box-shadow:var(--shadow);max-width:calc(100vw - 32px)}
.fab{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:30;box-shadow:0 6px 20px rgba(0,0,0,.18)}
@media (min-width:861px){.fab{display:none}}

/* Ajustes de cabecera en celular */
.wordmark b,.wordmark small{white-space:nowrap}
@media (max-width:860px){.top-actions .btn-gold{display:none}}

/* ── v2: sin conexión, reproductor, compartir, intenciones, mapa ── */
.offline{background:var(--ink);color:#fff;font-size:.86rem}
.offline .container{padding-block:8px}
.player-wrap{padding-block:28px;border-bottom:1px solid var(--line);background:#0f0f12}
.player-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:#fff}
.player-head .live-chip{background:var(--live);color:#fff}
.player-head .live-chip::before{background:#fff}
.player-frame{position:relative;aspect-ratio:16/9;max-width:100%;border-radius:var(--radius);overflow:hidden;background:#000}
.player-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.upd-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}
.upd-foot .src{margin-top:0}
.share-wa{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 8px;background:#fff}
.share-wa:hover{color:#1d7a46;border-color:#9fd3b4}
.post-actions{display:flex;align-items:center;gap:10px}
.post-actions .share-wa{padding:4px 7px}
.is-target{outline:2px solid var(--gold);outline-offset:4px;border-radius:var(--radius)}
.upd.is-target{outline-offset:6px}

.post-intencion{background:linear-gradient(180deg,var(--gold-soft) 0%,#fff 70%);border-color:#ecdcae}
.post-intencion .post-text{font-family:var(--f-display);font-size:1.25rem;line-height:1.35;font-weight:500;font-style:italic}
.pray{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;border:1px solid var(--gold);background:#fff;color:var(--gold-ink);border-radius:999px;padding:7px 14px;font-weight:600;font-size:.86rem}
.pray b{font-weight:500;color:var(--ink)}
.pray:hover:not([disabled]){background:var(--gold-soft)}
.pray.done{background:var(--gold);color:#fff;border-color:var(--gold)}
.pray.done b{color:#fff}
.pray[disabled]{cursor:default}
.seg{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}

.ev-wx{font-size:.8rem;color:var(--slate);margin-top:3px;font-variant-numeric:tabular-nums}
.tag.text-tag{border-color:var(--slate);color:var(--slate);background:var(--slate-soft)}

.map-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;align-items:start}
@media (max-width:860px){.map-layout{grid-template-columns:1fr}}
.map{height:420px;border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;background:var(--surface);z-index:0}
@media (max-width:560px){.map{height:300px}}
.places{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.place{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}
.place:last-child{border-bottom:0}
.place div{display:flex;flex-direction:column;min-width:0}
.place strong{font-size:.95rem}
.place span{font-size:.82rem;color:var(--muted)}
.place.main strong::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:8px;vertical-align:middle}
.place .btn{flex:none}
.leaflet-container{font-family:var(--f-body)}
.leaflet-popup-content a{color:var(--gold-ink)}

.tips{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--ink-2)}
.tip-text{font-size:.9rem;color:var(--ink-2);margin-bottom:10px}
.panel .btn{margin-top:12px}
.toast a{color:#f2d58a;font-weight:600}

/* ── v3: letra grande, mapa de fieles, presentes, mi día, León XIV ── */
body{font-size:1rem}
html.big-text{font-size:118.75%}
.textsize{font-family:var(--f-display);font-weight:700;font-size:1rem;padding:6px 12px;line-height:1}
.textsize span{font-size:.75em;vertical-align:super}
.textsize[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}

.fieles{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;align-items:stretch;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:22px}
@media (max-width:760px){.fieles{grid-template-columns:1fr}}
.fieles-text{display:flex;flex-direction:column;gap:10px;min-width:0}
.fieles-total{font-size:1.05rem;color:var(--ink-2)}
.fieles-total b{font-family:var(--f-display);font-size:1.6rem;color:var(--ink);font-weight:700}
.fieles-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.fieles-list li{display:grid;grid-template-columns:minmax(0,9rem) 1fr auto;gap:10px;align-items:center;font-size:.88rem}
.fl-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-bar{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}
.fl-bar i{display:block;height:100%;background:var(--gold);border-radius:999px}
.fl-n{color:var(--muted);font-size:.82rem;min-width:2.5rem;text-align:right}
.fieles-map{min-height:320px;border-radius:8px;overflow:hidden;background:var(--surface);z-index:0}
@media (max-width:760px){.fieles-map{min-height:360px}}

.presentes{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.presentes-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.presente{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px}
.presente.done{border-color:var(--gold);background:var(--gold-soft)}
.presente strong{display:block;font-size:.95rem}
.presente small{color:var(--muted);font-size:.78rem}
.presente-n{display:flex;align-items:baseline;gap:6px}
.presente-n b{font-family:var(--f-display);font-size:1.8rem;font-weight:700;line-height:1}
.presente .btn{align-self:flex-start}

.planner{display:flex;flex-direction:column;gap:14px}
.planner-pick .chip{font-size:.84rem}
.plan-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.plan-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:18px 20px;border-bottom:1px solid var(--line);background:var(--surface);border-top:3px solid var(--gold)}
.plan-head h3{font-family:var(--f-display);font-size:1.7rem;font-weight:700;line-height:1.1;margin-top:4px}
.plan-head p{color:var(--muted);font-size:.9rem}
.plan-when b{font-family:var(--f-mono);font-weight:500;font-size:.95rem;color:var(--gold-ink)}
.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:20px}
@media (max-width:760px){.plan-grid{grid-template-columns:1fr}}
.plan-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.plan-col h4{margin:4px 0 0;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.plan-tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.plan-tl li{display:grid;grid-template-columns:5.2rem 1fr;gap:10px;font-size:.92rem}
.plan-tl b{color:var(--gold-ink);font-weight:500}
.plan-p{font-size:.92rem;color:var(--ink-2)}
.muted{color:var(--muted)}
.plan-p.muted{font-size:.85rem}
.plan-check{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-size:.9rem}
@media (max-width:420px){.plan-check{grid-template-columns:1fr}}
.plan-check input{accent-color:var(--gold);width:17px;height:17px;vertical-align:-3px;margin-right:6px}
.plan-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:.85rem;margin-top:4px}

.bio{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start}
@media (max-width:860px){.bio{grid-template-columns:1fr}}
.bio-lede{font-family:var(--f-display);font-size:1.45rem;line-height:1.4;font-weight:500;color:var(--ink);margin-bottom:22px}
.bio-timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--gold);display:flex;flex-direction:column;gap:14px}
.bio-timeline li{display:grid;grid-template-columns:4rem 1fr;gap:12px;padding-left:16px;position:relative;font-size:.95rem}
.bio-timeline li::before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--gold)}
.bio-timeline b{font-family:var(--f-mono);font-weight:500;color:var(--gold-ink)}
.bio-side{display:flex;flex-direction:column;gap:12px}
.motto{font-family:var(--f-display);font-size:1.5rem;line-height:1.25;font-weight:600;margin-top:6px}
.wordmark{min-width:0;flex:1 1 auto}
.wordmark > span:last-child{min-width:0;overflow:hidden}
.wordmark b,.wordmark small{overflow:hidden;text-overflow:ellipsis}
.top-actions{flex:none}
@media (max-width:420px){.wordmark small{display:none}}
@media (max-width:560px){
  .presentes-row{grid-template-columns:1fr;gap:6px}
  .presente{flex-direction:row;align-items:center;gap:10px;padding:10px 12px}
  .presente > div:first-child{flex:1;min-width:0}
  .presente strong{font-size:.9rem}
  .presente-n{flex-direction:column;align-items:flex-end;gap:0}
  .presente-n b{font-size:1.3rem}
  .presente-n small{font-size:.68rem}
  .presente .btn{align-self:center;padding:7px 12px}
}

/* ── Mi recuerdo ── */
.rc{display:grid;grid-template-columns:1fr minmax(0,420px);gap:24px;align-items:start}
@media (max-width:860px){.rc{grid-template-columns:1fr}}
.rc-form{display:flex;flex-direction:column;gap:14px;min-width:0}
.rc-seg{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.rc-preview{display:flex;flex-direction:column;align-items:center;gap:12px;position:sticky;top:120px}
@media (max-width:860px){.rc-preview{position:static;order:-1}}
#rc-canvas{width:100%;max-width:380px;height:auto;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);background:#fff}
.rc-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
#rc-photo-y{width:100%;accent-color:var(--gold)}
.board-cta{margin-top:6px;align-self:flex-start}
.rc-form > .hint{font-size:.8rem;color:var(--muted)}
.rc-seg{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}
.rc-seg button{font-size:.82rem;padding:10px 4px}

/* ── v5: Hoy, semáforo, foto del día, números ── */
.today{background:var(--ink);color:#fff;padding-block:28px}
.today .eyebrow{color:#c9c6bd}
.today-head h2{font-family:var(--f-display);font-weight:600;font-size:clamp(1.8rem,5vw,2.4rem);margin-top:4px}
.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:16px}
@media (max-width:760px){.today-grid{grid-template-columns:1fr}}
.today-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.today-list li{display:grid;grid-template-columns:3.6rem 1fr;gap:10px;font-size:.92rem}
.today-list li b{color:#e3c272;font-weight:500}
.today-list li small{display:block;color:#a9a6a0;font-size:.8rem}
.today-list li.past{opacity:.45}
.today-list li.now span{color:#fff;font-weight:600}
.today-list li.now b::after{content:" ●";color:#ff6b6b;font-size:.7em;vertical-align:2px}
.today-main{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px}
.today-main h3{font-family:var(--f-display);font-size:1.5rem;font-weight:700}
.today-main p{color:#c9c6bd;font-size:.9rem}
.today-sema{display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem}
.today-sema span{display:inline-flex;align-items:center;gap:6px}
.today-alert{background:rgba(168,22,31,.35);border-radius:6px;padding:8px 10px;color:#fff!important}
.today-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.today .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}

.sdot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#b9b6ae;flex:none}
.sdot.fluido{background:#2f8a4a}.sdot.lento{background:#d49a14}.sdot.colapsado,.sdot.cerrado{background:#c4202b}
.sema-box{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.sema-sub{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sema-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sema-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;font-size:.86rem}
.sema-row.mine{font-weight:600}
.sema-row small{color:var(--muted);font-weight:400}
.snote{display:block}
.sstate{font-size:.74rem;font-family:var(--f-mono);color:var(--muted)}
.sstate.fluido{color:#2f6b3f}.sstate.lento{color:#9a6a00}.sstate.colapsado,.sstate.cerrado{color:var(--live)}

.featured{margin-bottom:18px}
.feat{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-columns:1.3fr 1fr}
.feat img{width:100%;height:100%;object-fit:cover;max-height:440px}
.feat figcaption{padding:18px;display:flex;flex-direction:column;gap:8px;justify-content:center}
.feat figcaption .eyebrow{color:var(--gold-ink)}
.feat figcaption p{font-family:var(--f-display);font-size:1.3rem;line-height:1.35}
.feat figcaption small{color:var(--muted)}
.feat:not(.big){grid-template-columns:1fr}
.feat:not(.big) img{max-height:260px}
.feat:not(.big) figcaption p{font-size:1.05rem}
@media (max-width:760px){.feat{grid-template-columns:1fr}}

.num-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:640px){.num-grid{grid-template-columns:repeat(2,1fr)}}
.num{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:4px}
.num b{font-family:var(--f-display);font-weight:700;font-size:clamp(1.8rem,5vw,2.6rem);line-height:1;font-variant-numeric:tabular-nums}
.num span{font-size:.86rem;color:var(--muted)}
.num-official,.num-days{margin-top:22px}
.num-official h3,.num-days h3{font-family:var(--f-display);font-size:1.4rem;margin-bottom:10px}
.num-official ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.num-official li{display:grid;grid-template-columns:minmax(6rem,auto) 1fr;gap:12px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:8px}
.num-official li b{font-family:var(--f-display);font-size:1.5rem}
.num-days-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.num-cta{margin-top:22px}
.agenda-share{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
@media (max-width:420px){
  .wordmark{gap:8px}
  .wordmark-seal{width:26px;height:26px}
  .wordmark b{font-size:1.2rem}
  .top-actions{gap:6px}
  .textsize{padding:6px 10px}
}

/* ── Fotos de los lugares ── */
.hero{position:relative;overflow:hidden}
.hero > .container{position:relative;z-index:1}
.hero-photo{position:absolute;inset:0 0 0 auto;width:58%;margin:0;z-index:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--surface) 0%,rgba(248,247,244,.92) 22%,rgba(248,247,244,.35) 60%,rgba(248,247,244,.1) 100%);z-index:1}
.hero-photo .credit{position:absolute;right:max(16px,env(safe-area-inset-right,0px));bottom:10px;z-index:2;background:rgba(255,255,255,.88);padding:3px 8px;border-radius:4px}
.hero .board{background:rgba(255,255,255,.97)}
@media (max-width:860px){
  .hero{padding-top:0}
  .hero-photo{position:relative;inset:auto;width:auto;height:220px;margin:0 0 24px}
  .hero-photo::before{background:linear-gradient(180deg,rgba(248,247,244,0) 55%,var(--surface) 100%)}
  .hero-photo .credit{bottom:auto;top:10px}
}
.credit{font-size:.72rem;color:var(--muted);line-height:1.3}
.credit a{color:var(--muted)}
.gphoto{margin:0;position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius) var(--radius) 0 0;background:var(--surface-2)}
.gphoto img{width:100%;height:100%;object-fit:cover}
.gphoto .credit,.plan-photo .credit{position:absolute;left:8px;bottom:8px;background:rgba(255,255,255,.9);padding:3px 8px;border-radius:4px;max-width:calc(100% - 16px)}
.plan-photo{margin:0;position:relative;aspect-ratio:21/9;overflow:hidden;background:var(--surface-2)}
@media (max-width:560px){.plan-photo{aspect-ratio:16/9}}
.plan-photo img{width:100%;height:100%;object-fit:cover}

/* ══ v6: Solapas ═══════════════════════════════════════════════
   El sitio deja de ser una página larga: seis solapas, una por vez.
   En celular la barra va fija abajo; en compu, arriba, dentro de la cabecera.
   La lógica de presentación está en assets/layout.js. */
:root{
  --tabbar-h:3.9rem;
  --gutter-l:max(20px,env(safe-area-inset-left,0px));
  --gutter-r:max(20px,env(safe-area-inset-right,0px));
}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 136px)}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* Solo se ve la solapa activa. Las demás quedan medidas pero sin altura, así los mapas
   conservan su tamaño; igual se dispara resize al cambiar de solapa. */
.tabpanel{position:relative}
.tabpanel:not(.is-active){height:0;overflow:hidden;visibility:hidden}

/* ── Barra de solapas: compu ── */
.topbar-inner{padding-block:14px 8px}
.tabbar{display:flex;align-items:stretch;gap:2px}
.tab{display:inline-flex;align-items:center;gap:9px;padding:12px 16px 15px;color:var(--muted);text-decoration:none;font-size:.95rem;font-weight:500;position:relative;border-radius:8px 8px 0 0;white-space:nowrap}
.tab:hover{color:var(--ink);background:var(--surface)}
.tab .ico{width:19px;height:19px}
.tab[aria-current="page"]{color:var(--ink);font-weight:600}
.tab[aria-current="page"] .ico{color:var(--gold-ink);stroke-width:1.9}
.tab[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;background:var(--gold);border-radius:3px 3px 0 0}
.tab.has-live span::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--live);margin-left:7px;vertical-align:2px;animation:pulse 1.6s ease-in-out infinite}
.tab-en{margin-left:auto;align-self:center;font-size:.85rem;color:var(--muted);text-decoration:none;padding:6px 4px 8px}
.tab-en:hover{color:var(--ink)}

/* ── Barra de solapas: celular ── */
@media (max-width:860px){
  html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 20px)}
  .topbar{position:relative;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}
  .topbar-inner{padding-block:12px}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;
    background:rgba(255,255,255,.98);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(26,26,30,.05);
    padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
  .tab{flex-direction:column;justify-content:center;gap:5px;min-width:0;min-height:var(--tabbar-h);padding:8px 2px 9px;font-size:.72rem;line-height:1.1;text-align:center;border-radius:0}
  .tab:hover{background:transparent}
  .tab .ico{width:22px;height:22px}
  .tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis}
  .tab[aria-current="page"]::after{left:50%;right:auto;width:30px;margin-left:-15px;top:-1px;bottom:auto;border-radius:0 0 3px 3px}
  .tab.has-live span::after{position:absolute;top:8px;left:calc(50% + 9px);margin:0;width:8px;height:8px;border:2px solid #fff;box-sizing:content-box}
  .tab-en{display:none}
  body{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px))}
  .fab{bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom,0px))}
  .toast{bottom:calc(var(--tabbar-h) + 18px + env(safe-area-inset-bottom,0px))}
}
/* El botón flotante solo donde se publica */
html[data-tab]:not([data-tab="inicio"]):not([data-tab="huellas"]) .fab{display:none}

/* ── Índice dentro de la solapa ── */
.subnav{padding-top:32px}
.subnav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.subnav a{display:inline-flex;align-items:center;gap:6px;padding:8px 15px 8px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.88rem;color:var(--ink-2);text-decoration:none}
.subnav a:hover{border-color:var(--gold);color:var(--ink)}
.subnav svg{width:14px;height:14px;fill:none;stroke:var(--gold-ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ── Secciones con aire ── */
.section{padding-block:76px 84px;border-bottom:0}
.section:not(.alt) + .section:not(.alt){border-top:1px solid var(--line)}
.tabpanel > .section.is-first{padding-top:56px}
.subnav:not([hidden]) ~ .section.is-first{padding-top:40px}
.section-head{margin-bottom:40px;gap:20px 28px}
.section-head h2{font-size:clamp(2.1rem,4.6vw,3rem);line-height:1.04}
.section-head p{color:var(--ink-2);font-size:1.04rem;line-height:1.65;max-width:38em;margin-top:12px}
.rule{margin-bottom:18px}
.head-actions{gap:10px}
.src-note{margin-top:20px;line-height:1.55}
.panel{padding:24px}
.panel h3{font-size:1.08rem;margin-bottom:16px}
.empty{padding:28px 20px}
@media (max-width:860px){
  .section{padding-block:52px 60px}
  .tabpanel > .section.is-first{padding-top:44px}
  .subnav{padding-top:24px}
  .subnav:not([hidden]) ~ .section.is-first{padding-top:32px}
  .section-head{margin-bottom:30px}
  .section-head p{font-size:1rem}
}

/* ── Inicio ── */
.hero{padding-block:64px 60px}
.hero .lede{margin-top:20px;font-size:1.12rem;line-height:1.65}
.hero-meta{margin-top:26px}
.hero-cta{margin-top:30px;gap:12px}
.disclaimer{margin-top:26px;line-height:1.55;max-width:36em}
.board-head{padding:14px 22px}
.board-row{padding:22px;gap:8px}
.countdown{gap:10px;margin-top:10px}
.countdown div{padding:12px 6px}
@media (max-width:860px){
  .hero{padding-block:0 48px}
  .hero-photo[hidden] ~ .container{padding-top:40px}
  .hero-grid{gap:36px}
}
.today{padding-block:40px 44px}
.today-grid{gap:28px;margin-top:22px}
.today-list{gap:12px}
.today-main{padding:22px;gap:10px}

.home-more{padding-block:64px 84px}
.home-title,.latest-title{font-family:var(--f-display);font-weight:600;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1.1}
.home-title{margin-bottom:26px}
.latest{margin-bottom:60px}
.latest-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px 16px;flex-wrap:wrap;margin-bottom:18px}
.latest-all{font-size:.92rem;font-weight:600}
.latest-card{display:flex;flex-direction:column;gap:12px;padding:24px 26px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--muted);border-radius:var(--radius);color:var(--ink);text-decoration:none;max-width:760px}
.latest-card:hover{border-color:var(--gold);color:var(--ink)}
.latest-card[data-kind="vivo"]{border-left-color:var(--live)}
.latest-card[data-kind="aviso"]{border-left-color:var(--gold)}
.latest-card[data-kind="transito"]{border-left-color:var(--slate)}
.latest-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}
.latest-meta b{color:var(--ink);font-size:1rem;font-weight:500}
.latest-body{font-size:1.1rem;line-height:1.6;overflow-wrap:anywhere}
.tab-index{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:16px}
.tab-index a{display:flex;flex-direction:column;gap:10px;height:100%;padding:24px 22px 26px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none}
.tab-index a:hover{border-color:var(--gold);color:var(--ink)}
.tab-index .ico{width:28px;height:28px;color:var(--gold-ink);margin-bottom:4px}
.tab-index b{font-family:var(--f-display);font-weight:700;font-size:1.55rem;line-height:1.1}
.tab-index span{font-size:.93rem;line-height:1.55;color:var(--ink-2)}
@media (max-width:560px){
  .home-more{padding-block:48px 64px}
  .latest{margin-bottom:48px}
  .latest-card{padding:20px}
  .tab-index{grid-template-columns:1fr;gap:12px}
  .tab-index a{display:grid;grid-template-columns:28px minmax(0,1fr);gap:4px 16px;padding:18px 20px 20px}
  .tab-index .ico{grid-row:span 2;margin:2px 0 0}
  .tab-index b{font-size:1.4rem}
}

/* ── Seguir ── */
.player-wrap{padding-block:40px}
.streams{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.stream{padding:24px;gap:10px}
.stream h3{font-size:1.12rem}
.stream p{line-height:1.6}
.stream a.go{padding-top:8px}
.upd{gap:28px;padding-bottom:36px}
.upd-meta{margin-bottom:8px}
.upd-body p{line-height:1.65}
.upd-foot{margin-top:12px}
.head-actions .eyebrow{align-self:center}
@media (max-width:560px){.upd{padding-left:28px;gap:6px;padding-bottom:32px}.upd-body::before{left:-25px}}

/* ── Agenda y Mi día ── */
.days{gap:12px;margin-bottom:28px}
.days button{padding:14px 16px;gap:4px}
.ev{padding:20px 22px;gap:6px 20px}
.ev-place{margin-top:2px}
.ev-tags{margin-top:10px;gap:8px}
.agenda-share{margin-top:22px;gap:12px}
.presentes{gap:14px;margin-bottom:40px}
.presentes-row{gap:14px}
.presente{padding:18px;gap:12px}
.planner{gap:22px}
.plan-head{padding:24px 28px}
.plan-grid{gap:36px;padding:28px}
.plan-col{gap:16px}
.plan-tl{gap:10px}
.plan-check{gap:10px 18px}
.sema-box{padding:16px;gap:10px}
@media (max-width:640px){.days{margin-inline:calc(-1 * var(--gutter-l)) calc(-1 * var(--gutter-r));padding-inline:var(--gutter-l) var(--gutter-r);padding-bottom:4px}}
@media (max-width:560px){
  .presentes-row{gap:10px}
  .presente{padding:14px 16px}
  .plan-head{padding:20px}
  .plan-grid{padding:20px;gap:30px}
  .ev{padding:18px 16px}
}

/* ── Cómo ir ── */
.guide{gap:24px}
.gcard-head{padding:24px 24px 18px}
.gcard-head h3{font-size:1.6rem}
.gcard-head p{font-size:.92rem;margin-top:8px;color:var(--ink-2)}
.gcard-head .eyebrow{display:block;margin-bottom:8px}
.gcard dl{padding:6px 24px 10px;grid-template-columns:118px minmax(0,1fr);gap:0 20px;font-size:.95rem;line-height:1.6}
.gcard dt,.gcard dd{padding-block:14px;border-top:1px solid var(--line)}
.gcard dt:first-of-type,.gcard dt:first-of-type + dd{border-top:0}
.gcard dt{font-size:.74rem;font-weight:600;letter-spacing:.06em;color:var(--gold-ink);padding-top:17px}
.gcard-foot{padding:14px 24px;line-height:1.55}
/* (las fichas de #guia tienen su propio bloque en "v8: Cómo ir didáctico") */
@media (max-width:560px){
  .gcard dl{grid-template-columns:1fr;padding:4px 20px 8px}
  .gcard dt{padding:16px 0 4px;border-top:1px solid var(--line)}
  .gcard dd{border-top:0;padding:0 0 16px;margin:0}
  .gcard dt:first-of-type{border-top:0}
  .gcard-head{padding:22px 20px 16px}
  .gcard-foot{padding:14px 20px}
}
.guide-extra{margin-top:36px;padding:28px}
.checklist{gap:12px 24px}
.map-tabs{margin-bottom:24px}
.map-layout{gap:24px}
.map{height:460px}
@media (max-width:560px){.map{height:320px}}
.place{padding:16px 18px;gap:16px}
.place span{margin-top:2px}

/* ── Huellas ── */
.notice{padding:16px 20px;margin-bottom:32px;line-height:1.55}
.fieles{padding:28px;gap:28px;margin-bottom:48px}
.fieles-text{gap:14px}
.fieles-list{gap:10px}
.wall-tools{margin-bottom:28px;gap:16px}
.chips{gap:8px}
.chip{padding:8px 16px}
.wall{column-gap:20px}
.post{margin-bottom:20px}
.post-body{padding:18px 20px 16px;gap:10px}
.post-foot{padding:12px 20px}
.wall-more{margin-top:16px}
.num-grid{gap:16px}
.num{padding:22px}
.num-official,.num-days{margin-top:40px}
.num-cta{margin-top:36px}
.rc{gap:40px}
.rc-form{gap:20px;padding:28px}
.rc-preview{gap:16px;top:150px}
@media (max-width:560px){
  .fieles{padding:20px;gap:22px}
  .rc-form{padding:20px}
  .wall-tools .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--gutter-l)) calc(-1 * var(--gutter-r));padding:2px var(--gutter-r) 4px var(--gutter-l)}
  .wall-tools .chips::-webkit-scrollbar{display:none}
  .wall-tools .chip{flex:none}
}

/* ── Info ── */
.bio{gap:48px}
.bio-lede{margin-bottom:32px}
.bio-timeline{gap:20px}
.bio-side{gap:18px}
.info-grid{display:block;columns:3 300px;column-gap:24px}
.info-grid > .panel{break-inside:avoid;margin-bottom:24px;display:block}
.tips{gap:10px;line-height:1.55}
.hol{gap:14px}
.phones{gap:12px}
.links{gap:12px}
.tip-text{line-height:1.6;margin-bottom:14px}
@media (max-width:560px){.bio{gap:36px}.info-grid > .panel{margin-bottom:16px}}

/* ── Pie ── */
.footer{padding-block:56px 64px;border-top:1px solid var(--line);line-height:1.6}
.footer .container{gap:14px}
/* v6 · ajustes de la segunda pasada */
.latest-head{max-width:760px}
.footer .container.narrow{max-width:1080px}
.footer .container > *{max-width:46em}
@media (max-width:560px){
  .subnav ul{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--gutter-l)) calc(-1 * var(--gutter-r));padding:2px var(--gutter-r) 4px var(--gutter-l)}
  .subnav ul::-webkit-scrollbar{display:none}
  .subnav li{flex:none}
}
.gcard dl{column-gap:0}
.gcard dt{padding-right:20px}
@media (max-width:560px){.gcard dt{padding-right:0}}

/* ══ v7: Detalles ═══════════════════════════════════════════════
   Isotipo propio (medalla de peregrino: aro abierto, cruz y dos pisadas, en icons/logo.svg y
   en el sprite #i-logo), un rombo como ornamento menor (filete de títulos, viñetas, pie),
   estampillas, estados vacíos y de carga, punto de "en vivo", foco y microinteracciones. */
::selection{background:#f1e3b8;color:var(--ink)}

/* Isotipo */
.logo{display:block;flex:none;color:var(--gold);overflow:visible}
.wordmark-seal{width:34px;height:34px;border:0;border-radius:0;color:var(--gold);transition:color .18s}
.wordmark:hover .wordmark-seal{color:var(--gold-ink)}
@media (max-width:420px){.wordmark-seal{width:28px;height:28px}}

/* Filete con rombo debajo de cada título de sección */
.section-head > div:first-child{display:flex;flex-direction:column}
.section-head > div:first-child > h2{order:0}
.section-head > div:first-child > .rule{order:1}
.section-head > div:first-child > p{order:2}
.rule{position:relative;width:52px;height:9px;margin:18px 0 0;background:linear-gradient(var(--gold),var(--gold)) 0 50%/40px 1.5px no-repeat}
.rule::after{content:"";position:absolute;right:1px;top:50%;width:6px;height:6px;margin-top:-3px;background:var(--gold);transform:rotate(45deg)}
.section-head > div:first-child > p{margin-top:18px}

/* Viñeta propia: rombo dorado */
.tips{list-style:none;padding-left:0}
.tips li{position:relative;padding-left:20px}
.tips li::before{content:"";position:absolute;left:2px;top:calc(.775em - 2.5px);width:5px;height:5px;background:var(--gold);transform:rotate(45deg)}
.hero-meta span::before{border-radius:0;transform:rotate(45deg)}

/* Estampilla: la fecha de los eventos que publican los fieles */
.post-event .cal{--r:2.5px;position:relative;border:0;border-radius:0;background:#fff;padding:11px 12px 9px;min-width:58px;
  outline:1px solid #e4cf93;outline-offset:-5px;
  -webkit-mask:radial-gradient(var(--r),#0000 98%,#000) round calc(-1.5*var(--r)) calc(-1.5*var(--r))/calc(3*var(--r)) calc(3*var(--r)),linear-gradient(#000 0 0) no-repeat 50%/calc(100% - 3*var(--r)) calc(100% - 3*var(--r));
          mask:radial-gradient(var(--r),#0000 98%,#000) round calc(-1.5*var(--r)) calc(-1.5*var(--r))/calc(3*var(--r)) calc(3*var(--r)),linear-gradient(#000 0 0) no-repeat 50%/calc(100% - 3*var(--r)) calc(100% - 3*var(--r))}
.post-event .cal b{color:var(--gold-ink)}
.post-event{background:var(--surface-2)}

/* Sello de peregrino en las misas a las que vas */
.presente.done > div:first-child{position:relative;padding-right:54px}
.presente.done > div:first-child::after{content:"";position:absolute;right:2px;top:50%;width:40px;height:40px;margin-top:-20px;background:var(--gold-ink);opacity:.42;transform:rotate(-14deg);
  -webkit-mask:url(../icons/logo.svg) center/contain no-repeat;mask:url(../icons/logo.svg) center/contain no-repeat}
@media (max-width:560px){.presente.done > div:first-child{padding-right:44px}.presente.done > div:first-child::after{width:32px;height:32px;margin-top:-16px}}

/* Estados vacíos y de carga */
.empty{display:flex;flex-direction:column;align-items:center;gap:12px;line-height:1.5;background:rgba(255,255,255,.6)}
.empty::before{content:"";width:34px;height:34px;flex:none;background:var(--gold);opacity:.5;
  -webkit-mask:url(../icons/logo.svg) center/contain no-repeat;mask:url(../icons/logo.svg) center/contain no-repeat}
.loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px 20px;color:var(--muted);font-size:.9rem;list-style:none}
.wall > .empty,.wall > .loading{column-span:all}
.streams > .empty,.streams > .loading{grid-column:1/-1}
.feed:has(> .loading)::before,.feed:has(> .empty)::before{display:none}
.steps{position:relative;width:28px;height:38px}
.steps i{position:absolute;width:11px;height:24px;background:var(--gold);opacity:.18;animation:step 1.6s ease-in-out infinite;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-5 -12 10 24'%3E%3Cpath d='M.3-11C3.1-11 4.5-8.2 4.3-4.8 4.1-1.8 3.1 1 2.9 3.6 2.7 6 3.1 7.6 2.9 8.7 2.7 10.4 1.5 11.4 0 11.4-1.7 11.4-2.9 10.3-2.9 8.6-2.9 6.8-1.9 5.2-1.5 3.2-1.1 1.2-4.1-1.4-4.2-4.9-4.3-8.6-2.4-11 .3-11z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-5 -12 10 24'%3E%3Cpath d='M.3-11C3.1-11 4.5-8.2 4.3-4.8 4.1-1.8 3.1 1 2.9 3.6 2.7 6 3.1 7.6 2.9 8.7 2.7 10.4 1.5 11.4 0 11.4-1.7 11.4-2.9 10.3-2.9 8.6-2.9 6.8-1.9 5.2-1.5 3.2-1.1 1.2-4.1-1.4-4.2-4.9-4.3-8.6-2.4-11 .3-11z'/%3E%3C/svg%3E") center/contain no-repeat}
.steps i:first-child{left:1px;bottom:0;transform:rotate(-6deg) scaleX(-1)}
.steps i:last-child{right:1px;top:0;transform:rotate(6deg);animation-delay:.8s}
@keyframes step{0%,100%{opacity:.18}20%,55%{opacity:1}}
@media (prefers-reduced-motion:reduce){.steps i{opacity:.7}}

/* Punto de "en vivo": sólido, con una onda que se abre */
@keyframes live-ring{0%{box-shadow:0 0 0 0 rgba(168,22,31,.5)}70%,100%{box-shadow:0 0 0 7px rgba(168,22,31,0)}}
@keyframes live-ring-w{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}70%,100%{box-shadow:0 0 0 7px rgba(255,255,255,0)}}
.board-tag .dot,.live-chip::before,.tab.has-live span::after{animation:live-ring 2s ease-out infinite}
.pulse,.player-head .live-chip::before{animation:live-ring-w 2s ease-out infinite}
.today-list li.now b::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#ff6b6b;margin-left:8px;vertical-align:2px;animation:live-ring 2s ease-out infinite}

/* Foco visible y consistente */
.today :focus-visible,.player-wrap :focus-visible,.livebar :focus-visible,.offline :focus-visible,.toast :focus-visible{outline-color:#e3c272}
.tab:focus-visible{outline-offset:-3px;border-radius:8px}
.chip:focus-visible,.subnav a:focus-visible,.days button:focus-visible{outline-offset:2px}
.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:none}
.wall-tools .chips,.subnav ul{padding-top:4px;padding-bottom:6px}

/* Microinteracciones: respuesta al tocar, cambio de solapa */
.btn,.chip,.seg button,.days button,.subnav a,.tab-index a,.latest-card,.share-wa,.pray,.place .btn{transition:background-color .18s,border-color .18s,color .18s,box-shadow .2s,transform .12s}
.btn:active:not([disabled]),.chip:active,.seg button:active,.days button:active,.subnav a:active,.pray:active:not([disabled]){transform:translateY(1px) scale(.985)}
.tab-index a:hover,.latest-card:hover{box-shadow:0 8px 24px rgba(123,94,18,.08)}
.tab-index .ico{transition:transform .2s ease-out}
.tab-index a:hover .ico{transform:translateY(-2px)}
.tab .ico{transition:transform .12s,color .18s}
.tab:active .ico{transform:scale(.9)}
@keyframes ind-in{from{opacity:0;transform:scaleX(.3)}}
.tab[aria-current="page"]::after{animation:ind-in .28s ease-out}
@keyframes panel-in{from{opacity:0}}
.tabs-ready .tabpanel.is-active{animation:panel-in .26s ease-out}

/* Pie */
.footer{position:relative;border-top:0;padding-block:0 64px}
.footer-orn{display:flex;align-items:center;height:1px;padding-inline:var(--gutter-l) var(--gutter-r);max-width:1080px;margin:0 auto}
.footer-orn::before,.footer-orn::after{content:"";flex:1;height:1px;background:var(--line)}
.footer-orn i{width:7px;height:7px;flex:none;margin:0 16px;background:var(--gold);transform:rotate(45deg)}
.footer .container.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:28px 56px;padding-top:56px}
.footer .container.footer-grid > *{max-width:none}
.footer-brand{display:flex;align-items:center;gap:14px;align-self:start}
.footer-brand .logo{width:46px;height:46px}
.footer-brand h4{font-size:1.4rem;line-height:1.1}
.footer-brand small{display:block;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:5px}
.footer-text{display:flex;flex-direction:column;gap:14px;max-width:46em}
.footer-en{padding-top:2px}
@media (max-width:760px){.footer .container.footer-grid{grid-template-columns:1fr;padding-top:44px;gap:24px}}

/* Miniaturas de Huellas: la tarjeta muestra la miniatura y abre la foto completa */
.post-photo{display:block;line-height:0;border-radius:inherit}
.post-photo:focus-visible{outline-offset:-3px}

/* ══ v8: Cómo ir didáctico ══════════════════════════════════════
   La sección #guia se ordena como una guía: "Antes de salir" en pasos numerados,
   chips que llevan a cada ficha, y en cada ficha los horarios clave, el "Dónde",
   el paso a paso del día y el resto del detalle plegado en acordeones.
   Los pasos usan .gsteps (la clase .steps ya es la animación de carga).
   La vista previa de una línea de cada acordeón la arma assets/layout.js. */
#guia .sub-h{font-family:var(--f-display);font-weight:600;font-size:clamp(1.5rem,3.2vw,1.75rem);line-height:1.15;margin-bottom:24px}

/* Pasos numerados */
.gsteps{list-style:none;margin:0;padding:0;counter-reset:gstep}
.gsteps > li{counter-increment:gstep;position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:16px;padding-bottom:22px}
.gsteps > li::before{content:counter(gstep);grid-row:1 / span 2;width:34px;height:34px;box-sizing:border-box;border:1.5px solid var(--gold);border-radius:50%;display:grid;place-items:center;
  font-family:var(--f-display);font-weight:600;font-size:1.12rem;line-height:1;color:var(--gold-ink);background:#fff;position:relative;z-index:1}
.gsteps > li::after{content:"";position:absolute;left:16.25px;top:40px;bottom:6px;width:1.5px;background:#ece2c4}
.gsteps > li:last-child{padding-bottom:0}
.gsteps > li:last-child::after{display:none}
.step-t{display:block;font-weight:600;color:var(--ink);line-height:1.35;padding-top:5px}
.step-d{display:block;color:var(--ink-2);font-size:.95rem;line-height:1.55;margin-top:3px;min-width:0;overflow-wrap:anywhere}
.step-time{display:block;font-family:var(--f-mono);font-weight:500;font-size:.95rem;line-height:1.3;color:var(--gold-ink);padding-top:7px;font-variant-numeric:tabular-nums}
.step-alt{margin:16px 0 0 50px;font-size:.9rem;line-height:1.5;color:var(--muted)}

/* Antes de salir: en compu, los pasos en fila unidos por un filete con rombo */
.prep{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px 32px 32px}
@media (min-width:761px){
  .gsteps-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
  .gsteps-row.gsteps-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .gsteps-row > li{grid-template-columns:1fr;row-gap:12px;padding-bottom:0;align-content:start}
  .gsteps-row > li::before{grid-row:auto}
  .gsteps-row > li::after{left:46px;right:-16px;top:13px;bottom:auto;width:auto;height:9px;
    background:linear-gradient(#e4cf93,#e4cf93) 0 50%/calc(100% - 9px) 1px no-repeat,
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 0 8 4 4 8 0 4z' fill='%23b8922f'/%3E%3C/svg%3E") 100% 50%/7px 7px no-repeat}
  .gsteps-row > li:last-child::after{display:none}
  .gsteps-row .step-t{padding-top:0}
}

/* Fichas por sede */
.fichas-h{margin-top:72px}
#guia .fichas-h{margin-bottom:14px}
.sede-jump{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.sede-jump .chip{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:9px 18px 9px 15px;font-size:.95rem;color:var(--ink);text-decoration:none}
.sede-jump .chip::before{content:"";width:6px;height:6px;flex:none;background:var(--gold);transform:rotate(45deg)}
.sede-jump .chip:hover{border-color:var(--gold);color:var(--ink)}
.guide.fichas{grid-template-columns:1fr;gap:40px}
.ficha{overflow:hidden}
.ficha .gphoto{border-radius:0}
.ficha-main{padding:26px 24px 28px;min-width:0}
.ficha .gcard-head{padding:0;border-bottom:0}
.ficha .gcard-head .eyebrow{display:block;color:var(--gold-ink);margin-bottom:10px}
.ficha .gcard-head h3{font-size:clamp(1.7rem,3.6vw,2.05rem);line-height:1.08}
.ficha .gcard-head p{font-size:.95rem;margin-top:8px}
.ficha .gcard-foot{border-radius:0}
@media (min-width:900px){
  .ficha{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"main photo" "main facts" "foot foot";grid-template-rows:auto 1fr auto}
  .ficha .gphoto{grid-area:photo;aspect-ratio:16/10}
  .ficha-main{grid-area:main;border-right:1px solid var(--line);padding:32px 34px 34px}
  .ficha .facts{grid-area:facts;padding:10px 28px 24px}
  .ficha .gcard-foot{grid-area:foot}
  .ficha-sm{grid-template-areas:"main facts" "foot foot";grid-template-rows:1fr auto}
  .ficha-sm .facts{padding-top:18px}
}

/* Horarios clave: el primero, en estampilla */
.keys{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.keys li{display:flex;flex-direction:column;gap:3px;min-width:7.5rem;max-width:100%;flex:0 1 auto;padding:11px 15px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.keys b{font-family:var(--f-mono);font-weight:500;font-size:1.45rem;line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums}
.keys span{font-size:.8rem;line-height:1.35;color:var(--muted);max-width:14em}
.keys li:first-child{--r:2.5px;border:0;border-radius:0;background:var(--gold-soft);padding:14px 18px 15px;outline:1px solid #e4cf93;outline-offset:-5px;
  -webkit-mask:radial-gradient(var(--r),#0000 98%,#000) round calc(-1.5*var(--r)) calc(-1.5*var(--r))/calc(3*var(--r)) calc(3*var(--r)),linear-gradient(#000 0 0) no-repeat 50%/calc(100% - 3*var(--r)) calc(100% - 3*var(--r));
          mask:radial-gradient(var(--r),#0000 98%,#000) round calc(-1.5*var(--r)) calc(-1.5*var(--r))/calc(3*var(--r)) calc(3*var(--r)),linear-gradient(#000 0 0) no-repeat 50%/calc(100% - 3*var(--r)) calc(100% - 3*var(--r))}
.keys li:first-child b{color:var(--gold-ink)}
.keys li:first-child span{color:var(--ink-2)}
.where{display:flex;gap:10px;align-items:flex-start;margin-top:24px;font-size:.95rem;line-height:1.55;color:var(--ink-2)}
.where .ico{width:20px;height:20px;color:var(--gold-ink);margin-top:1px}
.where b{color:var(--ink);font-weight:600;margin-right:4px}
.sub-h4{margin:30px 0 16px;font-size:.95rem;font-weight:600;color:var(--ink)}

/* Acordeones */
.facts{padding:4px 24px 20px;min-width:0}
.fact{border-bottom:1px solid var(--line)}
.fact:last-child{border-bottom:0}
.fact > summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:8.2rem minmax(0,1fr) 18px;gap:12px;align-items:center;min-height:54px;padding:12px 0}
.fact > summary::-webkit-details-marker{display:none}
.fact > summary::after{content:"";grid-column:3;justify-self:center;width:8px;height:8px;border-right:1.6px solid var(--gold-ink);border-bottom:1.6px solid var(--gold-ink);transform:translateY(-3px) rotate(45deg);transition:transform .18s}
.fact[open] > summary::after{transform:translateY(2px) rotate(-135deg)}
.fact > summary:hover .fact-l{color:var(--gold-ink)}
.fact > summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
.fact-l{grid-column:1;font-weight:600;font-size:.95rem;line-height:1.3;color:var(--ink)}
.fact-p{grid-column:2;min-width:0;font-size:.88rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fact[open] .fact-p{visibility:hidden}
.fact-b{padding:0 0 22px;font-size:.95rem;color:var(--ink-2);line-height:1.6;max-width:62ch;overflow-wrap:anywhere}
.fact-b > * + *{margin-top:10px}
.fact[open] .fact-b{animation:fact-in .2s ease-out}
@keyframes fact-in{from{opacity:0;transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.fact[open] .fact-b{animation:none}.fact > summary::after{transition:none}}
.entries{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.entries li{font-size:.86rem;padding:4px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink)}
.route{margin:0;padding-left:1.4em;display:flex;flex-direction:column;gap:6px}
.route li::marker{font-family:var(--f-display);font-weight:600;color:var(--gold-ink)}

/* Qué llevar */
.panel.bring{margin-top:56px;padding:28px 30px}
#guia .bring .sub-h{font-size:1.4rem;margin-bottom:18px}

@media (max-width:899px){.ficha .facts{border-top:1px solid var(--line)}}
@media (max-width:560px){
  .prep{padding:24px 18px 26px}
  .fichas-h{margin-top:56px}
  .sede-jump{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .ficha-main{padding:22px 18px 24px}
  .facts{padding:0 18px 12px}
  .keys{display:grid;gap:8px}
  .keys li{display:grid;grid-template-columns:minmax(4.8rem,auto) minmax(0,1fr);align-items:baseline;column-gap:14px;padding:10px 13px;min-width:0}
  .keys li:first-child{padding:13px 16px}
  .keys b{font-size:1.2rem}
  .keys span{max-width:none;font-size:.85rem}
  /* En celular, la vista previa va debajo del nombre, a todo el ancho */
  .fact > summary{grid-template-columns:minmax(0,1fr) 18px;gap:4px 12px;padding:14px 0}
  .fact > summary::after{grid-column:2;grid-row:1}
  .fact-l{grid-column:1;grid-row:1}
  .fact-p{grid-column:1 / -1;grid-row:2;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45}
  .fact[open] .fact-p{display:none}
  .panel.bring{padding:22px 18px}
}

/* ══ v9: correcciones de la revisión ═════════════════════════════
   Números entre paréntesis: punto de la revisión que resuelve cada bloque. */

/* (1) Botones dorados: texto blanco sobre un dorado más oscuro (5,1:1).
   El dorado #b8922f queda para ornamentos, bordes e íconos. */
:root{--gold-btn:#8c6914}
.btn-gold,.pray.done{background:var(--gold-btn);border-color:var(--gold-btn);color:#fff}
.btn-gold:hover{background:var(--gold-ink);border-color:var(--gold-ink);color:#fff}
.btn[disabled]{opacity:1}
.btn-gold[disabled],.btn-ended,.btn-ended[disabled]{background:var(--surface-2);border-color:var(--surface-2);color:var(--muted)}
.btn-ghost[disabled]{color:var(--ink-2)}

/* (2) Franja en vivo y chip: nunca en dos líneas */
.livebar .container{flex-wrap:nowrap;min-width:0}
#livebar-text{display:flex;align-items:baseline;gap:.45em;min-width:0;white-space:nowrap}
#livebar-text strong{flex:none}
#livebar-text .lb-name{min-width:0;overflow:hidden;text-overflow:ellipsis;margin-right:.1em}
#livebar-text a{flex:none}
.live-chip{white-space:nowrap;flex:none}
.player-head{min-width:0}
.player-head .live-chip{white-space:nowrap;flex:none}
.player-head strong{min-width:0}

/* (3) Tablero: el título puede bajar de línea y no se sale */
.board-line{flex-wrap:wrap;gap:4px 14px;min-width:0}
.board-title{min-width:0;flex:1 1 12rem;overflow-wrap:anywhere;text-wrap:balance}
.board-place{text-wrap:pretty}

/* (4) Nombre del sitio siempre entero; en pantallas angostas Compartir queda solo con ícono */
.wordmark b{overflow:visible;text-overflow:clip}
.wordmark > span:last-child{overflow:visible}
.share-site .ico{display:none;width:20px;height:20px}
@media (max-width:380px){
  .share-site{padding-inline:0;width:44px}
  .share-site .ico{display:block}
  .share-site .share-l{display:none}
}
@media (max-width:420px){
  html.big-text .share-site{padding-inline:0;width:44px}
  html.big-text .share-site .ico{display:block}
  html.big-text .share-site .share-l{display:none}
  html.big-text .textsize{padding-inline:8px;min-width:44px}
  html.big-text .wordmark b{font-size:1.12rem}
}

/* (5, 26) Hoy */
.today-main h3{line-height:1.15}
.today-sema .sdot{background:#8f8c86}
.today-sema .sdot.fluido{background:#2f8a4a}.today-sema .sdot.lento{background:#d49a14}.today-sema .sdot.colapsado{background:#c4202b}

/* (6) Lo que ya pasó: sin transparencia, gris legible y rótulo "Terminó" */
.ended{display:block;font-family:var(--f-mono);font-style:normal;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;margin-top:2px}
.today-list li.past{opacity:1}
.today-list li.past b{color:#a9a6a0}
.today-list li.past span{color:#c9c6bd}
.today-list li.past small{color:#a9a6a0}
.today-list li.past .ended{color:#a9a6a0}
.ev.is-past{opacity:1}
.ev.is-past .ev-time,.ev.is-past h3{color:var(--muted)}
.ev.is-past .ev-time .ended{color:var(--muted)}

/* (10) Áreas táctiles de 44 px */
.close{min-width:44px;min-height:44px;display:inline-grid;place-items:center;margin-right:-10px}
.textsize{min-height:44px;min-width:44px}
.btn-sm{min-height:44px}
.share-wa,.stream a.go,.latest-all,#rc-reset-quote{position:relative}
.share-wa::after,#rc-reset-quote::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:44px;transform:translate(-50%,-50%)}
.stream a.go{display:inline-flex;align-items:center;min-height:44px;align-self:flex-start;padding-top:0}
.latest-all{display:inline-flex;align-items:center;min-height:44px}
.plan-check-row{display:flex;align-items:center;min-height:44px;cursor:pointer}
.plan-check{row-gap:0}

/* (11) Mi día: la tarjeta de cada sede es el selector */
.presente{position:relative}
.presente-pick{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:none;border:0;padding:0;margin:0;color:var(--ink);min-width:0;min-height:44px;justify-content:center}
.presente-pick::after{content:"";position:absolute;inset:0;border-radius:var(--radius)}
.presente .btn,.presente-n{position:relative;z-index:1}
.presente-pick strong{display:block;font-size:.95rem}
.presente-pick small{color:var(--muted);font-size:.78rem}
.presente-pick:focus-visible{outline:none}
.presente-pick:focus-visible::after{outline:2px solid var(--gold-ink);outline-offset:2px}
.presente:hover{border-color:var(--gold)}
.presente.is-sel{border-color:var(--gold-ink);box-shadow:inset 0 -3px 0 var(--gold)}
.presente.done > div:first-child{padding-right:0}
.presente.done > div:first-child::after{display:none}
.pp-txt{display:block;position:relative;min-width:0}
.presente.done .pp-txt{padding-right:52px}
.presente.done .pp-txt::after{content:"";position:absolute;right:0;top:50%;width:40px;height:40px;margin-top:-20px;background:var(--gold-ink);opacity:.42;transform:rotate(-14deg);pointer-events:none;
  -webkit-mask:url(../icons/logo.svg) center/contain no-repeat;mask:url(../icons/logo.svg) center/contain no-repeat}
@media (max-width:560px){
  .presente-pick{flex:1;min-width:0}
  .presente-pick strong{font-size:.9rem}
  .presente.done .pp-txt{padding-right:42px}
  .presente.done .pp-txt::after{width:32px;height:32px;margin-top:-16px}
}

/* (12) Semáforo sin datos: una línea */
.sema-box.is-empty p{display:flex;align-items:center;gap:8px}

/* (13) Botón flotante Publicar: solo en Huellas */
html:not([data-tab="huellas"]) .fab{display:none}

/* (14) Filas desplazables: degradé del lado donde hay más */
.subnav ul[data-more="r"],.wall-tools .chips[data-more="r"],#days[data-more="r"]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent)}
.subnav ul[data-more="l"],.wall-tools .chips[data-more="l"],#days[data-more="l"]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(270deg,#000 calc(100% - 40px),transparent)}
.subnav ul[data-more="lr"],.wall-tools .chips[data-more="lr"],#days[data-more="lr"]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 56px),transparent)}

/* (17) Escritorio: Última novedad al ancho de la grilla */
.latest-head,.latest-card{max-width:none}

/* (18) Grillas sin huecos */
@media (min-width:561px) and (max-width:1099px){
  .tab-index{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tab-index li:last-child:nth-child(odd){grid-column:1 / -1}
  .presentes-row{display:flex;flex-wrap:wrap}
  .presentes-row > .presente{flex:1 1 200px}
}
@media (min-width:1100px){
  .tab-index{grid-template-columns:repeat(5,minmax(0,1fr))}
  .presentes-row{grid-template-columns:repeat(5,minmax(0,1fr))}
}

/* (20) Diálogo Publicar: cinco rótulos cortos en una fila; 3 + 2 centrado en celular */
#compose .kind-seg{grid-template-columns:repeat(5,minmax(0,1fr))}
#compose .kind-seg button{padding-inline:4px;white-space:nowrap}
@media (max-width:440px){
  #compose .kind-seg{grid-template-columns:repeat(6,minmax(0,1fr))}
  #compose .kind-seg button{grid-column:span 2}
  #compose .kind-seg button:nth-child(4){grid-column:2 / span 2}
}

/* (22) Mi día: todas las etiquetas como las versalitas grises de HORARIOS */
#planner .field label,.sema-box h4,.plan-col h4{margin:4px 0 0;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
#planner .sema-box h4{margin-top:0}

/* (23) Cómo ir: ingresos en lista, qué llevar con rombos, leyenda del mapa */
.entries{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:8px 24px}
.entries li{position:relative;padding:0 0 0 20px;border:0;border-radius:0;background:none;font-size:.95rem;line-height:1.5}
.entries li::before,.checklist.bullets li::before{content:"";position:absolute;left:2px;top:calc(.75em - 2.5px);width:5px;height:5px;border:0;border-radius:0;margin:0;background:var(--gold);transform:rotate(45deg)}
.checklist.bullets li{position:relative;display:block;padding-left:20px;line-height:1.5}
.map-legend{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:.82rem;color:var(--muted)}
.map-legend i{width:8px;height:8px;border-radius:50%;background:var(--gold);flex:none}
.places-col{min-width:0}

/* (24) Portada en celular: antetítulo corto y títulos balanceados */
.ey-short{display:none}
@media (max-width:420px){.ey-long{display:none}.ey-short{display:inline}}
.hero-meta,.hero .eyebrow,.board-title,.tab-index b,.today-head h2,.today-main h3{text-wrap:balance}

/* (30) Info útil: títulos de los paneles en EB Garamond */
.info-grid .panel h3{font-family:var(--f-display);font-weight:600;font-size:1.4rem;line-height:1.15;margin-bottom:14px}

/* (31) Huellas y En números: filete con rombo entre las dos */
#numeros{position:relative;border-top:0}
#numeros::before{content:"";position:absolute;top:0;left:50%;width:min(1040px,calc(100% - var(--gutter-l) - var(--gutter-r)));height:1px;background:var(--line);transform:translateX(-50%)}
#numeros::after{content:"";position:absolute;top:-3.5px;left:50%;width:7px;height:7px;margin-left:-3.5px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 0 10px var(--bg)}

/* (33) Huellas sin mapa de fieles: una columna y la lista en dos */
.fieles:has(> .fieles-map[hidden]){grid-template-columns:1fr}
@media (min-width:761px){
  .fieles:has(> .fieles-map[hidden]) .fieles-list{display:grid;grid-auto-flow:column;grid-template-rows:repeat(4,auto);grid-auto-columns:minmax(0,1fr);column-gap:48px}
}

/* (34) Solapas de abajo con letra grande */
@media (max-width:860px){
  html.big-text{--tabbar-h:4.2rem}
  html.big-text .tab{font-size:.74rem;padding-inline:1px}
  html.big-text .tab span{white-space:nowrap}
}
/* (24) Ciudades de la portada: renglones parejos */
.hero-meta{display:block;line-height:2}
.hero-meta span{display:inline-flex;margin-right:18px;white-space:nowrap;vertical-align:middle}
.hero-meta span:last-child{margin-right:0}
@media (min-width:561px){.presente > .btn{margin-top:auto}}
