/* La Ola Calendario — todo scopeado bajo .lo-cal */
.lo-cal{--lc-bg:#1f1f1f;--lc-surface:#262728;--lc-surface2:#2c2d2f;--lc-ink:#f2f3f5;--lc-muted:#a9adb3;--lc-soft:#c9ccd0;--lc-accent:#5cc2e4;--lc-line:rgba(255,255,255,.1);--lc-ok:#5fd38d;--lc-warn:#f2b84b;--lc-bad:#ef6b6b;
  background:var(--lc-bg);color:var(--lc-ink);font-family:Inter,sans-serif;font-size:16px;line-height:1.5;display:block;width:100%;
  box-shadow:0 0 0 100vmax var(--lc-bg);clip-path:inset(-10px -100vmax);padding:64px 0}
.lo-cal *{box-sizing:border-box}
/* Blindaje contra los estilos globales del tema/Elementor */
.lo-cal p,.lo-cal li,.lo-cal a,.lo-cal button,.lo-cal summary{font-family:Inter,sans-serif!important}
.lo-cal h2,.lo-cal h3{font-family:Anton,sans-serif!important;font-weight:400!important;text-transform:uppercase!important;color:var(--lc-ink)!important;letter-spacing:.005em;margin:0}
.lo-cal .lc-eyebrow,.lo-cal .lc-plan-tit,.lo-cal .lc-dia-tab,.lo-cal .lc-plan-dia,.lo-cal .lc-que li,.lo-cal .lc-prog-hora,.lo-cal .lc-prog-ahora,.lo-cal .lc-mapa-links a,.lo-cal .lc-btn,.lo-cal .lc-chip,.lo-cal .lc-tag,.lo-cal .lc-vista,.lo-cal .lc-kicker,.lo-cal .lc-fechabig,.lo-cal .lc-date,.lo-cal .lc-cuenta small,.lo-cal .lc-mes-dow,.lo-cal .lc-agendar-menu a{font-family:"Bebas Neue",sans-serif!important;font-weight:400!important}
.lo-cal a{text-decoration:none!important}
.lo-cal ul,.lo-cal ol{list-style:none;margin:0;padding:0}
.lo-cal li{margin:0}
.lo-cal button{text-transform:none!important;box-shadow:none!important;margin:0;min-height:0;line-height:inherit}
.lo-cal [hidden]{display:none!important}
.lo-cal svg{flex:none}
/* El tema le agrega margen abajo a los párrafos */
.lo-cal .lc-plan-tit,.lo-cal .lc-item-tags,.lo-cal .lc-item-meta,.lo-cal .lc-dest-desc,.lo-cal .lc-kicker,.lo-cal .lc-vacio p{margin-bottom:0!important}
.lo-cal .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.lc-wrap{max-width:1200px;margin:0 auto;padding:0 24px}

/* ---------- Encabezado ---------- */
.lc-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;margin-bottom:22px}
.lo-cal .lc-eyebrow{margin:0 0 8px;display:flex;align-items:center;gap:12px;font-size:16px;letter-spacing:.18em;line-height:1;color:var(--lc-accent)}
.lc-eyebrow::before{content:"";width:32px;height:2px;background:var(--lc-accent)}
.lo-cal .lc-title{font-size:clamp(34px,4.6vw,60px);line-height:.92}
.lo-cal .lc-title em{font-style:normal;color:transparent!important;-webkit-text-stroke:1.5px var(--lc-ink)}

.lc-vistas{display:inline-flex;padding:4px;border-radius:999px;background:var(--lc-surface);outline:1px solid var(--lc-line);outline-offset:-1px}
.lo-cal .lc-vista{display:inline-flex;align-items:center;gap:7px;font-size:16px;letter-spacing:.08em;line-height:1;padding:8px 14px 7px;border:0;border-radius:999px;background:transparent;color:var(--lc-muted);cursor:pointer;transition:background .25s,color .25s}
.lc-vista svg{width:16px;height:16px}
.lo-cal .lc-vista.is-on{background:var(--lc-accent);color:#0f1113}
.lc-vista:focus-visible{outline:2px solid var(--lc-accent);outline-offset:2px}

/* ---------- Botones ---------- */
.lo-cal .lc-btn{display:inline-flex;align-items:center;gap:9px;font-size:18px;letter-spacing:.08em;line-height:1;padding:8px 9px 8px 18px;border-radius:999px;cursor:pointer;
  border:1px solid transparent;transition:filter .25s,border-color .25s,color .25s,background .25s;white-space:nowrap}
.lo-cal .lc-btn--main{background:var(--lc-accent);color:#0f1113!important}
.lc-btn--main:hover{filter:brightness(1.08)}
.lo-cal .lc-btn--ghost{background:transparent;border-color:rgba(255,255,255,.22);color:var(--lc-ink)!important;padding:9px 15px}
.lc-btn--ghost:hover{border-color:var(--lc-accent);color:var(--lc-accent)!important}
.lc-btn--ghost svg{width:18px;height:18px}
.lo-cal .lc-btn--icono{width:40px;height:40px;padding:0;justify-content:center;border-color:rgba(255,255,255,.22);color:var(--lc-ink)!important}
.lc-btn--icono:hover{border-color:#5fd38d;color:#5fd38d!important}
.lc-btn--icono svg{width:19px;height:19px}
.lo-cal .lc-btn--chico{font-size:16px;padding:6px 6px 6px 14px;background:var(--lc-surface2);border-color:var(--lc-line);color:var(--lc-ink)!important}
.lc-btn--chico:hover{border-color:var(--lc-accent);color:var(--lc-accent)!important}
.lc-btn:focus-visible{outline:2px solid var(--lc-accent);outline-offset:3px}
.lc-arrow{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#0f1113;color:var(--lc-accent);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.lc-arrow svg{width:14px;height:14px}
.lc-btn--chico .lc-arrow{width:24px;height:24px;background:rgba(92,194,228,.15)}
.lc-btn:hover .lc-arrow{transform:translateX(3px)}

/* Menú "Agendar" */
.lc-agendar{position:relative}
.lc-agendar summary{list-style:none}
.lc-agendar summary::-webkit-details-marker{display:none}
.lc-agendar[open] summary{border-color:var(--lc-accent);color:var(--lc-accent)!important}
.lc-agendar-menu{position:absolute;z-index:20;left:0;top:calc(100% + 8px);min-width:220px;display:flex;flex-direction:column;padding:6px;border-radius:14px;
  background:#323438;outline:1px solid rgba(255,255,255,.16);outline-offset:-1px;box-shadow:0 22px 50px -10px rgba(0,0,0,.8),0 4px 12px rgba(0,0,0,.35)}
.lc-agendar[open] .lc-agendar-menu{animation:lc-menu .16s ease-out}
/* Si abajo no entra, calendario.js lo abre para arriba */
.lc-agendar--arriba .lc-agendar-menu{top:auto;bottom:calc(100% + 8px)}
.lc-agendar--arriba[open] .lc-agendar-menu{animation-name:lc-menu-arriba}
@keyframes lc-menu{from{opacity:0;transform:translateY(-4px)}}
@keyframes lc-menu-arriba{from{opacity:0;transform:translateY(4px)}}
.lo-cal .lc-agendar-menu a{font-size:17px;letter-spacing:.06em;line-height:1;padding:11px 12px 10px;border-radius:10px;color:var(--lc-ink)!important}
.lc-agendar-menu a:hover{background:rgba(92,194,228,.12);color:var(--lc-accent)!important}
.lc-agendar--chico summary{font-size:16px!important;padding:6px 12px!important}
.lc-agendar--chico .lc-agendar-menu{left:auto;right:0}

/* ---------- Evento destacado ---------- */
.lc-dest{display:grid;grid-template-columns:.85fr 1.15fr;border-radius:18px;background:var(--lc-surface);outline:1px solid var(--lc-line);outline-offset:-1px;margin-bottom:12px}
.lc-dest-media{position:relative;min-height:250px;background:#14181b;overflow:hidden;border-radius:18px 0 0 18px}
.lc-dest-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.lc-dest-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,17,19,.35) 0%,rgba(15,17,19,0) 35%,rgba(15,17,19,.15) 60%,rgba(15,17,19,.8) 100%)}
.lc-dest--sinfoto .lc-dest-media{background:radial-gradient(120% 120% at 20% 100%,rgba(92,194,228,.35) 0%,rgba(92,194,228,0) 55%),linear-gradient(160deg,#20323b,#14181b)}
.lc-dest-fondo{position:absolute;right:-20px;top:-10px;width:200px;height:200px;color:var(--lc-accent);opacity:.18}
.lc-dest-fondo svg{width:100%;height:100%;stroke-width:1}
.lc-chips{position:absolute;z-index:1;top:12px;left:12px;right:12px;display:flex;gap:8px;flex-wrap:wrap}
.lo-cal .lc-chip{display:inline-flex;align-items:center;gap:6px;font-size:14px;letter-spacing:.12em;line-height:1;padding:6px 10px 5px;border-radius:999px;
  background:rgba(15,17,19,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);color:var(--lc-ink)}
.lc-chip svg{width:15px;height:15px;color:var(--lc-accent)}
.lo-cal .lc-chip--pocos{background:var(--lc-warn);color:#0f1113;border-color:transparent}
.lo-cal .lc-chip--agotado,.lo-cal .lc-chip--suspendido{background:var(--lc-bad);color:#0f1113;border-color:transparent}
.lo-cal .lc-chip--postergado{background:#9aa0a6;color:#0f1113;border-color:transparent}
.lc-fechabig{position:absolute;z-index:1;left:16px;bottom:14px;display:flex;flex-direction:column;align-items:flex-start;line-height:.9;color:var(--lc-ink);text-shadow:0 4px 24px rgba(0,0,0,.45)}
.lc-fechabig b{font-family:Anton,sans-serif;font-weight:400;font-size:64px;line-height:.9}
.lc-fechabig span{font-size:22px;letter-spacing:.14em;color:var(--lc-accent);text-transform:uppercase}
.lc-fechabig small{font-size:15px;letter-spacing:.14em;color:var(--lc-soft);text-transform:uppercase;margin-top:4px}

.lc-dest-body{padding:22px 24px;display:flex;flex-direction:column;gap:10px;justify-content:center;min-width:0}
.lo-cal .lc-kicker{margin:0;font-size:15px;letter-spacing:.16em;line-height:1;color:var(--lc-accent)}
.lc-vivo{display:inline-flex;align-items:center;gap:8px;color:var(--lc-ok)}
.lc-vivo::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lc-ok);animation:lc-pulso 1.8s ease-out infinite}
@keyframes lc-pulso{0%{box-shadow:0 0 0 0 rgba(95,211,141,.55)}100%{box-shadow:0 0 0 10px rgba(95,211,141,0)}}
.lo-cal .lc-dest-title{font-size:clamp(24px,2.4vw,34px);line-height:1;text-wrap:balance}
.lo-cal .lc-dest-desc{margin:0;font-size:14.5px;line-height:1.5;color:var(--lc-soft);max-width:56ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lc-meta{display:flex;flex-wrap:wrap;gap:4px 16px}
.lo-cal .lc-meta li{display:flex;align-items:flex-start;gap:7px;font-size:14px;line-height:1.4;color:var(--lc-ink)}
.lc-meta svg{width:16px;height:16px;color:var(--lc-accent);margin-top:1px}
.lo-cal .lc-meta a{color:var(--lc-ink)!important;border-bottom:1px dashed rgba(255,255,255,.3)}
.lo-cal .lc-meta a:hover{color:var(--lc-accent)!important;border-color:var(--lc-accent)}

.lc-cuenta{display:flex;gap:6px}
.lc-cuenta > span{min-width:54px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 6px 5px;border-radius:11px;background:var(--lc-bg);outline:1px solid var(--lc-line);outline-offset:-1px}
.lc-cuenta b{font-family:Anton,sans-serif;font-weight:400;font-size:21px;line-height:1;color:var(--lc-ink);font-variant-numeric:tabular-nums}
.lo-cal .lc-cuenta small{font-size:11px;letter-spacing:.14em;line-height:1;color:var(--lc-muted)}
.lc-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px}

/* ---------- Lista ---------- */
.lc-lista{display:flex;flex-direction:column;gap:8px}
.lc-item{display:grid;grid-template-columns:56px 1fr auto;gap:0 14px;align-items:center;padding:10px 12px 10px 10px;border-radius:14px;
  background:var(--lc-surface);outline:1px solid var(--lc-line);outline-offset:-1px;transition:outline-color .25s,transform .25s}
.lc-item:hover{outline-color:rgba(92,194,228,.45)}
.lc-item:target{outline:2px solid var(--lc-accent)}
.lo-cal .lc-resaltado{outline:2px solid var(--lc-accent)!important;outline-offset:-1px}
.lc-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:60px;border-radius:11px;background:var(--lc-bg);line-height:.9;outline:1px solid var(--lc-line);outline-offset:-1px}
.lc-date b{font-family:Anton,sans-serif;font-weight:400;font-size:26px;line-height:1;color:var(--lc-ink)}
.lc-date span{font-size:14px;letter-spacing:.14em;color:var(--lc-accent);text-transform:uppercase}
.lc-date small{font-size:11px;letter-spacing:.14em;color:var(--lc-muted);text-transform:uppercase;margin-top:2px}
.lc-item-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.lc-item-tags{margin:0;display:flex;flex-wrap:wrap;gap:6px}
.lo-cal .lc-tag{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;letter-spacing:.12em;line-height:1;padding:4px 8px 3px;border-radius:999px;background:rgba(92,194,228,.12);color:var(--lc-accent)}
.lc-tag svg{width:13px;height:13px}
.lo-cal .lc-tag--vivo{background:rgba(95,211,141,.14);color:var(--lc-ok)}
.lo-cal .lc-tag--pocos{background:rgba(242,184,75,.16);color:var(--lc-warn)}
.lo-cal .lc-tag--agotado,.lo-cal .lc-tag--suspendido{background:rgba(239,107,107,.16);color:var(--lc-bad)}
.lo-cal .lc-tag--postergado{background:rgba(154,160,166,.18);color:#c3c7cb}
.lo-cal .lc-item-title{font-size:clamp(18px,1.7vw,22px);line-height:1.05}
.lc-item--suspendido .lc-item-title{text-decoration:line-through;text-decoration-thickness:2px;opacity:.6}
.lc-item-meta{margin:0;display:flex;flex-wrap:wrap;gap:2px 14px;font-size:13px;color:var(--lc-soft)}
.lc-item-meta > span,.lc-item-meta > a{display:inline-flex;align-items:center;gap:6px}
.lc-item-meta svg{width:15px;height:15px;color:var(--lc-accent)}
.lo-cal .lc-item-meta a{color:var(--lc-soft)!important}
.lo-cal .lc-item-meta a:hover{color:var(--lc-accent)!important}
.lc-item-acts{display:flex;align-items:center;gap:8px}
.lc-mas-wrap{display:flex;justify-content:center;margin-top:14px}

/* Evento de la lista que se despliega con el formato del destacado */
.lc-item[data-lc-item]{cursor:pointer}
.lc-item.is-abierto{outline-color:rgba(92,194,228,.45)}
.lo-cal .lc-abrir,.lo-cal .lc-abrir:hover,.lo-cal .lc-abrir:focus{width:36px;height:36px;background:transparent!important}
.lc-abrir svg{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.lc-btn--icono.lc-abrir:hover{border-color:var(--lc-accent);color:var(--lc-accent)!important}
.lc-item.is-abierto .lc-abrir{border-color:var(--lc-accent);color:var(--lc-accent)!important}
.lc-item.is-abierto .lc-abrir svg{transform:rotate(180deg)}
/* Abierto, los botones chicos se repiten abajo en grande */
.lc-item.is-abierto .lc-item-acts > :not(.lc-abrir){display:none}
.lc-item-mas{grid-column:1 / -1;display:grid;grid-template-rows:0fr;visibility:hidden;cursor:default;
  transition:grid-template-rows .32s cubic-bezier(.2,.8,.2,1),visibility 0s .32s}
.lc-item.is-abierto .lc-item-mas{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .32s cubic-bezier(.2,.8,.2,1)}
.lc-item-mas-in{min-height:0;overflow:hidden}
/* Terminada la animación deja ver el menú Agendar (calendario.js agrega is-listo) */
.lc-item.is-listo .lc-item-mas-in{overflow:visible}
.lo-cal .lc-dest--item{margin:12px 0 2px;border-radius:14px;background:var(--lc-bg)}
.lc-dest--item .lc-dest-media{min-height:220px;border-radius:14px 0 0 14px}
.lc-dest--solo{grid-template-columns:1fr}
.lc-dest--item .lc-dest-body{padding:18px 20px}
.lo-cal .lc-dest-desc--completa{display:block;-webkit-line-clamp:unset;overflow:visible;white-space:pre-line}

/* ---------- Varios días ---------- */
.lc-fechabig--rango b{font-size:50px}
.lc-date--rango b{font-size:17px;letter-spacing:-.01em;margin-bottom:2px}
.lc-date--rango span{font-size:12px}
.lc-date--rango small{font-size:10px;letter-spacing:.08em}

/* ---------- También hay (chips) ---------- */
.lc-que{display:flex;flex-wrap:wrap;gap:6px}
.lo-cal .lc-que li{display:inline-flex;align-items:center;gap:6px;font-size:14px;letter-spacing:.1em;line-height:1;padding:5px 10px 4px;border-radius:999px;background:var(--lc-bg);outline:1px solid var(--lc-line);outline-offset:-1px;color:var(--lc-ink)}
.lc-que svg{width:14px;height:14px;color:var(--lc-accent)}
.lo-cal .lc-tag--extra{background:rgba(255,255,255,.06);color:var(--lc-soft)}

/* ---------- Programa + mapa ---------- */
.lc-dest:has(> .lc-plan) > .lc-dest-media{border-bottom-left-radius:0}
.lc-plan{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;padding:20px 24px 24px;border-top:1px solid var(--lc-line)}
.lc-plan--uno{grid-template-columns:1fr}
.lc-plan-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.lo-cal .lc-plan-tit{margin:0;display:flex;align-items:center;gap:8px;font-size:17px;letter-spacing:.16em;line-height:1;color:var(--lc-accent)}
.lc-plan-tit svg{width:17px;height:17px}
.lo-cal .lc-plan-dia{font-size:15px;letter-spacing:.12em;color:var(--lc-muted);text-transform:uppercase}
.lc-dias{display:inline-flex;padding:3px;border-radius:999px;background:var(--lc-bg);outline:1px solid var(--lc-line);outline-offset:-1px}
.lo-cal .lc-dia-tab{font-size:15px;letter-spacing:.1em;line-height:1;padding:7px 12px 6px;border:0;border-radius:999px;background:transparent;color:var(--lc-muted);cursor:pointer;text-transform:uppercase!important;transition:background .2s,color .2s}
.lo-cal .lc-dia-tab.is-on{background:var(--lc-accent);color:#0f1113}
.lc-dia-tab:focus-visible{outline:2px solid var(--lc-accent);outline-offset:2px}
.lc-prog-dia{display:flex;flex-direction:column;gap:6px}
.lc-prog{--c:var(--lc-accent);display:grid;grid-template-columns:62px 34px minmax(0,1fr);gap:12px;align-items:center;padding:9px 12px 9px 10px;border-radius:12px;background:var(--lc-bg);outline:1px solid var(--lc-line);outline-offset:-1px;transition:outline-color .25s,background .25s}
.lc-prog--campeonato,.lc-prog--premiacion{--c:#f2b84b}
.lc-prog--freeskim{--c:#5fd38d}
.lc-prog--exhibicion{--c:#ff7eb6}
.lc-prog--musica,.lc-prog--sorteo{--c:#b79cff}
.lc-prog--comida,.lc-prog--feria{--c:#ff9f6b}
.lc-prog--otro{--c:#a9adb3}
.lo-cal .lc-prog-hora{display:flex;flex-direction:column;line-height:1;color:var(--lc-ink)}
.lc-prog-hora b{font-family:Anton,sans-serif;font-weight:400;font-size:19px;font-variant-numeric:tabular-nums}
.lc-prog-hora small{font-size:13px;letter-spacing:.08em;color:var(--lc-muted);margin-top:3px}
.lo-cal .lc-prog-hora .lc-prog-todo{font-family:"Bebas Neue",sans-serif;font-size:14px;letter-spacing:.08em;line-height:1.05;color:var(--lc-soft)}
.lc-prog-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.lc-prog-ico svg{width:18px;height:18px}
.lc-prog-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.lc-prog-txt > b{font-weight:600;font-size:14.5px;line-height:1.3;color:var(--lc-ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lc-prog-txt > small{font-size:12.5px;line-height:1.35;color:var(--lc-muted)}
.lc-prog-barra{position:relative;display:block;height:4px;margin-top:6px;border-radius:4px;background:rgba(255,255,255,.07)}
.lc-prog-barra i{position:absolute;top:0;bottom:0;border-radius:4px;background:var(--c)}
.lo-cal .lc-prog-ahora{display:none;font-style:normal;font-size:12px;letter-spacing:.12em;line-height:1;padding:3px 7px 2px;border-radius:999px;background:var(--lc-ok);color:#0f1113}
.lc-prog.is-ahora{outline-color:rgba(95,211,141,.55);background:rgba(95,211,141,.06)}
.lc-prog.is-ahora .lc-prog-ahora{display:inline-block}
.lc-prog.is-paso{opacity:.5}

.lc-mapa{display:flex;flex-direction:column;gap:10px;min-width:0}
.lc-mapa-marco{position:relative;flex:1;min-height:230px;border-radius:14px;overflow:hidden;background:#14181b;outline:1px solid var(--lc-line);outline-offset:-1px}
.lc-plan--uno .lc-mapa-marco{flex:none;height:240px}
/* Mapa de Google en tono oscuro para que combine con la sección */
.lc-mapa-marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:invert(.9) hue-rotate(180deg) saturate(.7) brightness(.95) contrast(.95)}
.lc-mapa-pie{display:flex;align-items:center;justify-content:space-between;gap:8px 14px;flex-wrap:wrap}
.lc-mapa-lugar{display:inline-flex;align-items:flex-start;gap:7px;font-size:14px;line-height:1.35;color:var(--lc-ink);min-width:0}
.lc-mapa-lugar svg{width:16px;height:16px;color:var(--lc-accent);margin-top:1px}
.lc-mapa-links{display:flex;gap:6px;flex-wrap:wrap}
.lo-cal .lc-mapa-links a{display:inline-flex;align-items:center;gap:6px;font-size:15px;letter-spacing:.08em;line-height:1;padding:7px 11px 6px;border-radius:999px;border:1px solid rgba(255,255,255,.2);color:var(--lc-ink)!important;transition:border-color .2s,color .2s}
.lc-mapa-links a:hover{border-color:var(--lc-accent);color:var(--lc-accent)!important}
.lc-mapa-links svg{width:14px;height:14px}
.lc-dest--item .lc-plan{padding:18px 20px 20px}

/* ---------- Vista por mes ---------- */
.lc-mes{background:var(--lc-surface);border-radius:18px;padding:18px;outline:1px solid var(--lc-line);outline-offset:-1px}
.lc-mes-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.lo-cal .lc-mes-titulo{font-size:clamp(22px,2.4vw,28px);line-height:1}
.lo-cal .lc-mes-nav{width:38px;height:38px;padding:0!important;flex:none;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);background:transparent;color:var(--lc-ink);cursor:pointer}
.lc-mes-nav:hover{border-color:var(--lc-accent);color:var(--lc-accent)}
.lc-mes-nav:focus-visible{outline:2px solid var(--lc-accent);outline-offset:2px}
.lc-mes-nav svg{width:18px;height:18px}
.lc-grilla{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.lo-cal .lc-mes-dow{text-align:center;font-size:15px;letter-spacing:.14em;color:var(--lc-muted);padding:4px 0 6px}
.lo-cal .lc-celda{position:relative;height:46px;padding:0!important;min-height:44px;border-radius:12px;border:0;background:var(--lc-bg);color:var(--lc-soft);font-size:15px;font-weight:500;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:default;padding:0}
.lc-celda.is-fuera{opacity:.25}
.lc-celda.is-hoy{outline:1px solid rgba(255,255,255,.4);outline-offset:-1px;color:var(--lc-ink)}
.lo-cal .lc-celda.is-evento{background:rgba(92,194,228,.14);color:var(--lc-ink);cursor:pointer}
.lc-celda.is-evento:hover{background:rgba(92,194,228,.24)}
.lo-cal .lc-celda.is-sel{background:var(--lc-accent);color:#0f1113}
.lc-celda:focus-visible{outline:2px solid var(--lc-accent);outline-offset:2px}
.lc-puntos{display:flex;gap:3px;height:6px}
.lc-puntos i{width:6px;height:6px;border-radius:50%;background:var(--lc-accent)}
.lc-celda.is-sel .lc-puntos i{background:#0f1113}
.lc-dia{margin-top:18px;display:flex;flex-direction:column;gap:8px}
.lo-cal .lc-dia-vacio{margin:0;font-size:14px;color:var(--lc-muted)}
.lo-cal .lc-dia-ev{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:var(--lc-bg);color:var(--lc-ink)!important;outline:1px solid var(--lc-line);outline-offset:-1px}
.lc-dia-ev:hover{outline-color:var(--lc-accent)}
.lc-dia-ev b{font-family:Anton,sans-serif;font-weight:400;font-size:20px;line-height:1.05;text-transform:uppercase}
.lc-dia-ev small{display:block;font-size:13px;color:var(--lc-muted);margin-top:3px}
.lc-dia-ev .lc-arrow{margin-left:auto;background:rgba(92,194,228,.15)}

/* ---------- Sin eventos ---------- */
.lc-vacio{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:20px;border-radius:18px;background:var(--lc-surface);outline:1px solid var(--lc-line);outline-offset:-1px}
.lc-vacio > div{flex:1;min-width:220px}
.lc-vacio-ico{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:rgba(92,194,228,.12);color:var(--lc-accent);flex:none}
.lc-vacio-ico svg{width:34px;height:34px}
.lo-cal .lc-vacio h3{font-size:28px;line-height:1}
.lo-cal .lc-vacio p{margin:6px 0 0;color:var(--lc-soft);font-size:15px}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .lc-dest{grid-template-columns:1fr}
  .lc-dest-media{min-height:190px;border-radius:18px 18px 0 0}
  .lc-dest--item .lc-dest-media{min-height:180px;border-radius:14px 14px 0 0}
  .lc-plan{grid-template-columns:1fr}
  .lc-mapa-marco{flex:none;height:220px;min-height:0}
}
@media (max-width:700px){
  .lc-item{grid-template-columns:52px 1fr;gap:0 12px;padding:10px}
  .lc-date{width:52px;height:58px}
  .lc-date b{font-size:24px}
  .lc-item-acts{grid-column:1 / -1;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
  .lc-dest--item .lc-dest-body{padding:16px 14px}
  .lc-plan,.lc-dest--item .lc-plan{padding:16px 14px 18px}
  .lc-prog{grid-template-columns:52px 30px minmax(0,1fr);gap:10px;padding:8px 10px 8px 8px}
  .lc-prog-ico{width:30px;height:30px}
  .lc-prog-hora b{font-size:17px}
}
@media (max-width:640px){
  .lo-cal{padding:48px 0}
  .lc-wrap{padding:0 16px}
  .lc-head{margin-bottom:18px}
  .lc-dest-body{padding:18px 16px}
  .lc-fechabig b{font-size:54px}
  .lc-cuenta{gap:6px}
  .lc-cuenta > span{min-width:0;flex:1}
  .lc-cuenta b{font-size:19px}
  .lc-acts .lc-btn--main{flex:1;justify-content:space-between}
  .lc-acts{flex-wrap:nowrap}
  .lc-acts .lc-btn--main{min-width:0}
  .lc-dest .lc-agendar summary{width:40px;height:40px;padding:0!important;justify-content:center}
  .lc-dest .lc-agendar summary span{display:none}
  .lc-dest .lc-agendar-menu{left:auto;right:-48px}
  .lc-mes{padding:16px}
  .lc-grilla{gap:4px}
  .lo-cal .lc-celda{height:auto;aspect-ratio:1/1;border-radius:9px;font-size:14px}
  .lc-agendar-menu{min-width:200px}
}
@media (prefers-reduced-motion:reduce){
  .lc-vivo::before{animation:none}
  .lc-arrow,.lc-item,.lc-vista,.lc-abrir svg,.lc-item-mas,.lc-item.is-abierto .lc-item-mas{transition:none}
  .lc-agendar[open] .lc-agendar-menu{animation:none}
}
