/* Ekimen Agenda — estilo aislado bajo .ekg. Ajusta las variables desde el tema:
   .ekg { --ekg-accent: #c00; --ekg-font: Georgia, serif; } */
.ekg {
  --ekg-ink: #14181c;
  --ekg-body: #2a3138;
  --ekg-soft: #565f68;
  --ekg-faint: #9ca3af;
  --ekg-rule: #e5e1d8;
  --ekg-paper: #f5f3ee;
  --ekg-accent: #ca2121;
  --ekg-font: inherit;
  --ekg-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--ekg-body);
  font-family: var(--ekg-font);
  line-height: 1.5;
}
.ekg *, .ekg *::before, .ekg *::after { box-sizing: border-box; }
.ekg a { color: inherit; text-decoration: none; }
.ekg ul, .ekg ol { list-style: none; margin: 0; padding: 0; }

.ekg--with-side { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; align-items: start; }
.ekg__main, .ekg__side { min-width: 0; }
@media (max-width: 820px) { .ekg--with-side { grid-template-columns: minmax(0, 1fr); gap: 24px; } .ekg__side { order: -1; } .ekg-cal { max-width: 360px; } }
/* Dentro de contenedores estrechos del tema, nunca desbordar */
.ekg, .ekg * { max-width: 100%; }
.ekg img { height: auto; }

.ekg__title { font-size: 2rem; line-height: 1.1; letter-spacing: -0.02em; color: var(--ekg-ink); margin: 0 0 20px; }
.ekg__crumbs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; }
.ekg-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--ekg-rule); border-radius: 4px; font-size: 13px; color: var(--ekg-ink); }
.ekg-chip a { color: var(--ekg-soft); }
.ekg__empty { color: var(--ekg-soft); padding: 40px 0; text-align: center; }

/* Día */
.ekg-day { margin-bottom: 28px; }
.ekg-day__title { font-family: var(--ekg-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ekg-ink); margin: 0; padding: 10px 0; border-top: 2px solid var(--ekg-ink); border-bottom: 1px solid var(--ekg-rule); }
.ekg-day__list > li + li { border-top: 1px solid var(--ekg-rule); }

/* Evento */
.ekg-ev { display: grid !important; grid-template-columns: 48px minmax(0, 1fr) 150px; gap: 0 16px; padding: 16px 0; align-items: start; }
.ekg-ev__img { width: 150px; grid-column: 3; }
/* Estrecho (móvil o columna lateral): hora | texto, y la imagen debajo del texto a todo el ancho */
@media (max-width: 720px) {
  .ekg-ev { grid-template-columns: 44px minmax(0, 1fr); gap: 0 12px; }
  .ekg-ev__img { grid-column: 2; margin-top: 10px; width: 100%; max-width: 100%; }
  .ekg-ev__time { font-size: 13px; }
}
.ekg-ev__time { font-family: var(--ekg-mono); font-size: 14px; font-weight: 700; color: var(--ekg-ink); padding-top: 3px; font-variant-numeric: tabular-nums; }
.ekg-ev__end { display: block; font-weight: 400; color: var(--ekg-faint); font-size: 12px; }
.ekg-ev__nohour { color: var(--ekg-faint); }
.ekg-ev__meta { display: flex; flex-wrap: wrap; gap: 0 10px; margin: 0 0 4px; font-family: var(--ekg-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ekg-faint); }
.ekg-ev__cat { color: var(--ekg-accent); }
.ekg-ev__cancel { color: var(--ekg-accent); }
.ekg-ev__title { font-size: 18px; line-height: 1.25; margin: 0 0 4px; color: var(--ekg-ink); font-weight: 700; }
.ekg-ev__title a:hover { color: var(--ekg-accent); }
.ekg-ev__desc { margin: 0; font-size: 15px; color: var(--ekg-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ekg-ev__detail { margin: 4px 0 0; font-size: 13px; color: var(--ekg-soft); }
.ekg-ev__foot { margin: 6px 0 0; font-size: 13px; color: var(--ekg-soft); display: flex; flex-wrap: wrap; gap: 0 12px; }
.ekg-ev__foot span + span::before { content: "·"; margin-right: 12px; color: var(--ekg-rule); }
.ekg-ev__img { display: block; aspect-ratio: 1.91 / 1; overflow: hidden; border-radius: 4px; background: var(--ekg-paper); align-self: start; }
.ekg-ev__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ekg-ev--cancelled { opacity: 0.55; }
.ekg-ev--cancelled .ekg-ev__title { text-decoration: line-through; }

/* Calendario */
.ekg-cal { border: 1px solid var(--ekg-rule); border-radius: 4px; padding: 12px; background: var(--ekg-sheet, #fff); }
.ekg-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.ekg-cal__title { font-weight: 700; color: var(--ekg-ink); text-transform: capitalize; font-size: 14px; }
.ekg-cal__nav { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; color: var(--ekg-soft); font-size: 18px; }
.ekg-cal__nav:hover { background: var(--ekg-paper); color: var(--ekg-ink); }
.ekg-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.ekg-cal__dow { font-family: var(--ekg-mono); font-size: 10px; text-align: center; color: var(--ekg-faint); padding: 4px 0; }
.ekg-cal__day, .ekg-cal__pad { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: 13px; border-radius: 4px; position: relative; color: var(--ekg-faint); }
.ekg-cal__day.has { color: var(--ekg-ink); font-weight: 700; }
.ekg-cal__day.has::after { content: ""; position: absolute; bottom: 3px; width: 4px; height: 4px; border-radius: 50%; background: var(--ekg-accent); }
a.ekg-cal__day:hover { background: var(--ekg-paper); }
.ekg-cal__day.today { outline: 1px solid var(--ekg-ink); }
.ekg-cal__day.sel { background: var(--ekg-ink); color: var(--ekg-sheet, #fff); }
.ekg-cal__day.sel::after { background: var(--ekg-sheet, #fff); }
.ekg-cal__day.past:not(.has) { opacity: 0.5; }
.ekg-cal__all { display: block; margin-top: 10px; font-size: 13px; color: var(--ekg-accent); }

/* Filtros laterales */
.ekg-filter { margin-top: 20px; }
.ekg-filter__title { font-family: var(--ekg-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ekg-faint); margin: 0 0 6px; }
.ekg-filter li a { display: flex; justify-content: space-between; padding: 5px 0; font-size: 14px; color: var(--ekg-body); border-bottom: 1px solid var(--ekg-rule); }
.ekg-filter li.on a { color: var(--ekg-ink); font-weight: 700; }
.ekg-filter li a:hover { color: var(--ekg-accent); }
.ekg-filter .n { font-family: var(--ekg-mono); font-size: 11px; color: var(--ekg-faint); }
.ekg-credit { margin-top: 20px; font-size: 12px; color: var(--ekg-faint); }
.ekg-credit a { color: var(--ekg-soft); border-bottom: 1px solid var(--ekg-rule); }

/* Detalle */
.ekg-page { max-width: 1200px; margin: 0 auto; padding: 32px 20px; box-sizing: border-box; }
/* En la ficha, la hoja va al ancho exacto de la caja del tema (content-area) */
main.ekg-page:has(> .ekg-single) { max-width: none; padding-left: 0; padding-right: 0; }
/* El archivo del CPT: algunos temas (ChromeNews) encajonan el <main> en una
   columna estrecha. Lo sacamos del contenedor con ancho de viewport. */
main.ekg-archive { width: min(1240px, 100vw - 40px); max-width: none; margin-left: calc(50% - min(620px, 50vw - 20px)); }
/* Hoja blanca del tema (mismo envoltorio que una entrada) */
.ekg-sheet, .ekg-single .entry-content-wrap { background: var(--ekg-sheet, #fff); padding: 28px 32px; border-radius: 4px; }
@media (max-width: 560px) { .ekg-sheet, .ekg-single .entry-content-wrap { padding: 18px 16px; } }
.ekg-single { max-width: none; margin: 0 auto; }
/* La hoja ocupa el ancho de la caja del tema (como las entradas); el texto se
   queda en una columna legible dentro de ella. */
.ekg-single .entry-content-wrap > * { max-width: 820px; margin-left: auto; margin-right: auto; }
.ekg-single .entry-content-wrap > .ekg-single__fig { max-width: 1000px; }
.ekg-single__back { font-size: 13px; color: var(--ekg-soft); margin: 0 0 16px; }
.ekg-single__title { font-size: 2.25rem; line-height: 1.1; letter-spacing: -0.02em; color: var(--ekg-ink); margin: 4px 0 10px; }
.ekg-single__when { font-size: 16px; color: var(--ekg-body); margin: 0 0 20px; }
.ekg-single__fig { margin: 0 0 20px; border-radius: 4px; overflow: hidden; }
.ekg-single__fig img { width: 100%; height: auto; display: block; }
.ekg-single__facts { display: grid; grid-template-columns: 90px 1fr; gap: 6px 16px; margin: 0 0 24px; padding: 16px 0; border-top: 1px solid var(--ekg-rule); border-bottom: 1px solid var(--ekg-rule); font-size: 14px; }
.ekg-single__facts dt { font-family: var(--ekg-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ekg-faint); padding-top: 3px; }
.ekg-single__facts dd { margin: 0; color: var(--ekg-body); }
.ekg-single__content { font-size: 17px; line-height: 1.7; color: var(--ekg-body); }
.ekg-btn { display: inline-block; padding: 10px 18px; border: 1px solid var(--ekg-ink); border-radius: 2px; color: var(--ekg-ink); font-weight: 600; font-size: 14px; }
.ekg-btn:hover { background: var(--ekg-ink); color: #fff; }
.ekg-single--cancelled .ekg-single__title { text-decoration: line-through; }

/* Modo compacto (columna lateral / portada) */
.ekg-compact { font-size: 14px; }
.ekg-compact__day { font-family: var(--ekg-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ekg-ink); margin: 14px 0 6px; padding-bottom: 6px; border-bottom: 1px solid var(--ekg-rule); }
.ekg-compact__day:first-child { margin-top: 0; }
.ekg-compact__list > li + li { border-top: 1px solid var(--ekg-rule); }
.ekg-compact__ev { display: flex; gap: 12px; padding: 10px 0; align-items: flex-start; }
.ekg-compact__img { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 4px; overflow: hidden; background: var(--ekg-paper); }
.ekg-compact__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ekg-compact__body { min-width: 0; }
.ekg-compact__meta { display: flex; gap: 10px; align-items: baseline; margin: 0 0 2px; font-family: var(--ekg-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ekg-faint); }
.ekg-compact__time { color: var(--ekg-ink); font-size: 13px; }
.ekg-compact__title { margin: 0; font-size: 15px; line-height: 1.3; font-weight: 700; color: var(--ekg-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ekg-compact__title a:hover { color: var(--ekg-accent); }
.ekg-compact__place { margin: 2px 0 0; font-size: 12px; color: var(--ekg-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ekg-compact__more { margin: 12px 0 0; font-size: 13px; font-weight: 600; }
.ekg-compact__more a { color: var(--ekg-accent); }
/* Dentro del banner de ChromeNews: hereda su título de sección y su altura */
.aft-banner-trending .ekg-compact { padding-top: 4px; }

/* Modo oscuro: ChromeNews pone body.aft-dark-mode (fondo #000, tarjetas #222).
   Solo redefinimos los tokens; los componentes no cambian. */
body.aft-dark-mode .ekg,
body.aft-dark-mode .ekg-single,
body.aft-dark-mode .ekg-archive,
body.aft-dark-mode .ekg-page {
  --ekg-ink: #ffffff;
  --ekg-body: #e6e6e6;
  --ekg-soft: #b3b3b3;
  --ekg-faint: #8a8a8a;
  --ekg-rule: #3a3a3a;
  --ekg-paper: #2c2c2c;
  --ekg-sheet: #222222;
  --ekg-accent: #ff5a5a;
  color: var(--ekg-body);
}
body.aft-dark-mode .ekg-single .entry-content-wrap,
body.aft-dark-mode .ekg-sheet { background: var(--ekg-sheet); box-shadow: none; border: 0; }
body.aft-dark-mode .ekg-ev__img { background: var(--ekg-paper); }
body.aft-dark-mode .ekg-btn { border-color: var(--ekg-ink); color: var(--ekg-ink); }
