:root {
  --papel: #F5ECD7;
  --tinta: #141210;
  --rojo: #E5361C;
  --amarillo: #FFC21A;
  --azul: #1B3FA6;
  --rosa: #F0468E;
  --verde: #0F7A4A;

  --f-rotulo: "Bowlby One", "Arial Black", sans-serif;          --f-titular: "Big Shoulders Display", Impact, sans-serif;     --f-texto: "Archivo", system-ui, sans-serif;                  --e1: 4px; --e2: 8px; --e3: 12px; --e4: 16px; --e5: 24px; --e6: 32px; --e7: 48px;

  --borde: 3px solid var(--tinta);
  --sombra: 5px 5px 0 var(--tinta);
  --sombra-pulsada: 2px 2px 0 var(--tinta);
}

* { box-sizing: border-box; margin: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  background-color: var(--papel);
  background-image: radial-gradient(rgba(20, 18, 16, .08) 1px, transparent 1.2px);
  background-size: 5px 5px;
  color: var(--tinta);
  font: 500 16px/1.4 var(--f-texto);
  min-height: 100vh;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.wrap { max-width: 480px; margin: 0 auto; padding: 0 var(--e4) var(--e7); }

.rotulo { font-family: var(--f-rotulo); font-weight: 400; text-transform: uppercase; line-height: .9; }
.titular { font-family: var(--f-titular); font-weight: 900; text-transform: uppercase; line-height: .88; letter-spacing: .005em; }
.etiqueta { font-family: var(--f-texto); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.registro { text-shadow: 3px 3px 0 var(--azul); }

.cabecera { padding-top: var(--e4); }
.cabecera .numero { display: flex; justify-content: space-between; padding: var(--e2) 0; border-top: var(--borde); border-bottom: 1px solid var(--tinta); }
.cabecera .marca { position: relative; margin-top: var(--e3); font-size: 68px; color: var(--rojo); letter-spacing: -.01em; }
.cabecera .lema { margin-top: var(--e3); font-family: var(--f-titular); font-weight: 800; font-size: 22px; text-transform: uppercase; line-height: 1; }
.cabecera .pegatina { position: absolute; right: -4px; top: -6px; }
.cinta { margin: var(--e4) calc(-1 * var(--e4)) 0; padding: var(--e2) 0; background: var(--tinta); color: var(--amarillo); white-space: nowrap; overflow: hidden; }
.cinta span { display: inline-block; padding-left: var(--e4); }

.pestanas { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: var(--e5); border: var(--borde); box-shadow: var(--sombra); background: var(--papel); }
.pestanas button { padding: 12px 0 9px; font-family: var(--f-titular); font-weight: 900; font-size: 24px; text-transform: uppercase; line-height: 1; }
.pestanas button + button { border-left: var(--borde); }
.pestanas button[aria-pressed="true"] { background: var(--amarillo); }

.chips { display: flex; gap: var(--e2); margin: var(--e4) calc(-1 * var(--e4)) 0; padding: 0 var(--e4) 6px; overflow-x: auto; scrollbar-width: none; }
.chip { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px 6px 8px; border: var(--borde); background: var(--papel); }
.chip::before { content: ""; width: 12px; height: 12px; background: var(--c, var(--tinta)); border: 2px solid var(--tinta); }
.chip[aria-pressed="true"] { background: var(--tinta); color: var(--papel); }
.chip[aria-pressed="true"]::before { border-color: var(--papel); }

.dia { display: grid; grid-template-columns: auto 1fr; align-items: end; column-gap: var(--e3); margin: var(--e6) 0 var(--e3); }
.dia .num { font-size: 60px; color: var(--azul); }
.dia .nom { font-size: 30px; }
.dia .linea { grid-column: 1 / -1; display: flex; justify-content: space-between; margin-top: var(--e2); padding-top: 6px; border-top: var(--borde); }
.dia.hoy .num { color: var(--rojo); }

.evento { display: grid; grid-template-columns: 100px 1fr; margin-bottom: var(--e4); border: var(--borde); background: var(--papel); box-shadow: var(--sombra); }
.evento:active { transform: translate(3px, 3px); box-shadow: var(--sombra-pulsada); }
.evento .hora { display: flex; flex-direction: column; justify-content: center; padding: var(--e3) var(--e2); background: var(--c, var(--rojo)); color: var(--papel); border-right: var(--borde); }
.evento .hora .titular { font-size: 36px; }
.evento .hora .hasta { margin-top: 6px; align-self: flex-start; padding: 2px 5px; background: var(--papel); color: var(--tinta); }
.evento .hora.sin { background: var(--papel); color: var(--tinta); background-image: repeating-linear-gradient(-45deg, transparent 0 6px, rgba(20, 18, 16, .12) 6px 8px); }
.evento .hora.sin .titular { font-size: 22px; line-height: .95; }
.evento .cuerpo { padding: var(--e3) var(--e3) var(--e3) 14px; min-width: 0; }
.evento .cuerpo .titular { font-size: 29px; }
.evento .sitio { margin-top: 6px; font-weight: 700; }
.evento .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--e2); }
.tag { padding: 3px 6px 2px; border: 2px solid var(--tinta); }
.tag.tipo { background: var(--tinta); color: var(--papel); }
.tag.tipo.social { background: var(--amarillo); color: var(--tinta); }

.pegatina {
  display: grid; place-items: center; width: 88px; height: 88px; padding: 14px; text-align: center;
  background: var(--amarillo); color: var(--tinta); transform: rotate(-12deg); text-shadow: none; line-height: 1.1;
  clip-path: polygon(50.0% 0.0%, 56.4% 9.5%, 65.5% 2.4%, 68.6% 13.5%, 79.4% 9.5%, 79.0% 21.0%, 90.5% 20.6%, 86.5% 31.4%, 97.6% 34.5%, 90.5% 43.6%, 100.0% 50.0%, 90.5% 56.4%, 97.6% 65.5%, 86.5% 68.6%, 90.5% 79.4%, 79.0% 79.0%, 79.4% 90.5%, 68.6% 86.5%, 65.5% 97.6%, 56.4% 90.5%, 50.0% 100.0%, 43.6% 90.5%, 34.5% 97.6%, 31.4% 86.5%, 20.6% 90.5%, 21.0% 79.0%, 9.5% 79.4%, 13.5% 68.6%, 2.4% 65.5%, 9.5% 56.4%, 0.0% 50.0%, 9.5% 43.6%, 2.4% 34.5%, 13.5% 31.4%, 9.5% 20.6%, 21.0% 21.0%, 20.6% 9.5%, 31.4% 13.5%, 34.5% 2.4%, 43.6% 9.5%);
}
.pegatina b { display: block; font-family: var(--f-rotulo); font-weight: 400; font-size: 26px; line-height: .9; }
.pegatina small { display: block; font-weight: 800; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; line-height: 1.1; }
.pegatina.rosa { background: var(--rosa); }

.hueco { padding: var(--e4); border: 3px dashed var(--tinta); font-weight: 700; margin-bottom: var(--e4); }
.hueco .etiqueta { display: block; margin-bottom: 4px; color: var(--rojo); }

.seccion { display: flex; justify-content: space-between; align-items: baseline; margin: var(--e7) calc(-1 * var(--e4)) var(--e4); padding: var(--e3) var(--e4) 10px; background: var(--tinta); color: var(--papel); }
.seccion .rotulo { font-size: 28px; color: var(--amarillo); }

.congreso { display: block; position: relative; padding: var(--e4); margin-bottom: var(--e4); background: var(--azul); color: var(--papel); border: var(--borde); box-shadow: 5px 5px 0 var(--rojo); }
.congreso .titular { font-size: 32px; padding-right: 70px; }
.congreso .donde { margin-top: 6px; }
.congreso .fechas { display: inline-block; margin-top: var(--e3); padding: 4px 8px 3px; background: var(--amarillo); color: var(--tinta); }

.volver { display: inline-block; margin: var(--e4) 0; padding: 8px 12px 7px; border: var(--borde); box-shadow: 3px 3px 0 var(--tinta); background: var(--papel); }
.cartel { position: relative; overflow: hidden; border: var(--borde); box-shadow: 7px 7px 0 var(--tinta); background: var(--c, var(--rojo)); color: var(--papel); }
.cartel .franja { display: flex; justify-content: space-between; padding: var(--e2) var(--e3); background: var(--tinta); color: var(--papel); }
.cartel .franja b { color: var(--amarillo); font-weight: 800; }
.cartel .centro { position: relative; padding: var(--e5) var(--e4) var(--e4); min-height: 300px; }
.cartel .centro::before {
  content: ""; position: absolute; width: 280px; height: 280px; border-radius: 50%; right: -90px; top: -60px;
  background: var(--amarillo); opacity: .9; mix-blend-mode: multiply;
  background-image: radial-gradient(rgba(20, 18, 16, .4) 1.6px, transparent 1.9px); background-size: 7px 7px;
}
.cartel .centro > * { position: relative; }
.cartel .centro { container-type: inline-size; }
.cartel h1 { font-size: min(72px, calc(100cqi / (var(--letras, 6) * .55))); text-shadow: 4px 4px 0 var(--tinta); overflow-wrap: anywhere; }
.cartel .en { margin-top: var(--e4); font-family: var(--f-titular); font-weight: 800; font-size: 22px; text-transform: uppercase; line-height: 1; }
.cartel .en b { display: block; font-size: 40px; font-weight: 900; color: var(--amarillo); text-shadow: 3px 3px 0 var(--tinta); }
.cartel .bajo { display: flex; align-items: flex-end; gap: var(--e3); margin-top: var(--e4); }
.cartel .bajo .en { flex: 1; min-width: 0; margin-top: 0; }
.cartel .pegatina { flex: none; width: 104px; height: 104px; margin: 0 -4px -4px 0; }
.cartel .pegatina b { font-size: 25px; }
.cartel .pie-cartel { display: flex; border-top: var(--borde); }
.cartel .pie-cartel span { flex: 1; padding: 10px 6px 8px; text-align: center; background: var(--papel); color: var(--tinta); }
.cartel .pie-cartel span + span { border-left: var(--borde); }

.datos { margin-top: var(--e5); border: var(--borde); background: var(--papel); }
.datos div { display: grid; grid-template-columns: 104px 1fr; gap: var(--e3); padding: var(--e3); }
.datos div + div { border-top: 2px solid var(--tinta); }
.datos dt { padding-top: 3px; }
.datos dd { font-weight: 700; font-size: 17px; }
.datos dd.pc { font-weight: 500; font-style: italic; color: #5E574D; }

.botones { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e3); margin-top: var(--e5); }
.boton { display: block; padding: 14px var(--e2) 11px; text-align: center; border: var(--borde); background: var(--papel); box-shadow: var(--sombra); font-family: var(--f-titular); font-weight: 900; font-size: 21px; text-transform: uppercase; line-height: 1; }
.boton:active { transform: translate(3px, 3px); box-shadow: var(--sombra-pulsada); }
.boton.primario { grid-column: 1 / -1; background: var(--rojo); color: var(--papel); font-size: 27px; }
.botones { margin-top: var(--e6); }
.botones .boton.primario { margin-bottom: var(--e2); padding-block: 18px 15px; }

.nota { margin-top: var(--e5); font-size: 13px; color: #5E574D; }

@media (max-width: 360px) {
  .cabecera .marca { font-size: 56px; }
  .cartel h1 { font-size: min(58px, calc(100cqi / (var(--letras, 6) * .55))); }
  .evento { grid-template-columns: 88px 1fr; }
  .evento .hora .titular { font-size: 31px; }
}

.cinta-estilos { display: flex; height: 12px; border-top: var(--borde); }
.cinta-estilos i { flex: 1; background: var(--c); }
.cinta-estilos i + i { border-left: var(--borde); }
.evento .hora { position: relative; padding-bottom: 24px; }
.evento .hora .cinta-estilos { position: absolute; left: 0; right: 0; bottom: 0; }

.tag.estilo { display: inline-flex; align-items: center; gap: 5px; }
.tag.estilo::before { content: ""; width: 9px; height: 9px; background: var(--c); border: 1.5px solid var(--tinta); }

.evento.con-cartel { grid-template-columns: 100px 1fr 68px; }
.evento .miniatura { border-left: var(--borde); background: var(--tinta); overflow: hidden; }
.evento .miniatura img { display: block; width: 100%; height: 100%; object-fit: cover; }
.evento .via { margin-top: 6px; font-size: 12px; font-weight: 700; color: #5E574D; overflow-wrap: anywhere; }

.original { margin-top: var(--e5); border: var(--borde); box-shadow: var(--sombra); background: var(--tinta); }
.original img { display: block; width: 100%; height: auto; }
.original figcaption { display: flex; justify-content: space-between; gap: var(--e2); padding: var(--e2) var(--e3); background: var(--papel); border-top: var(--borde); }
.original figcaption a { text-decoration: underline; }
.sin-cartel { margin-top: var(--e5); }

.aviso { margin-top: var(--e4); padding: var(--e3); border: var(--borde); background: var(--amarillo); font-weight: 600; }
.aviso .etiqueta { display: block; margin-bottom: 4px; }

.datos dd a { text-decoration: underline; text-underline-offset: 3px; }
.datos dd small { display: block; font-weight: 500; font-size: 14px; color: #5E574D; }

.cartel .pie-cartel span { display: inline-flex; justify-content: center; align-items: center; gap: 6px; }
.cartel .pie-cartel span::before { content: ""; width: 11px; height: 11px; background: var(--c); border: 2px solid var(--tinta); }

.version { margin-top: var(--e3); font-size: 12px; color: #5E574D; }
.version a { text-decoration: underline; }

@media (max-width: 360px) {
  .evento.con-cartel { grid-template-columns: 88px 1fr 56px; }
}
.cartel .pegatina b { font-size: 21px; }

.cabecera .lema { position: relative; }
.cabecera .lema .pegatina { width: 84px; height: 84px; padding: 12px; top: -6px; right: 0; }
.cabecera .lema .pegatina b { font-size: 24px; }
.datos dd { min-width: 0; overflow-wrap: anywhere; }

.evento, .congreso { position: relative; }
.estira { display: block; }
.estira::after { content: ""; position: absolute; inset: 0; }
.lugar, .tags a { position: relative; z-index: 1; }
.lugar { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-height: 32px; padding: 3px 4px 2px 8px; border: 2px solid var(--tinta); background: var(--papel); color: var(--tinta); box-shadow: 2px 2px 0 var(--tinta); }
.lugar span { min-width: 0; overflow-wrap: anywhere; }
.lugar small { flex: none; padding: 3px 5px 2px; background: var(--amarillo); color: var(--tinta); font-size: 10px; }
.lugar:active, .tags a:active { transform: translate(2px, 2px); box-shadow: none; }
.evento .sitio { margin-top: var(--e2); }
.tags a { display: inline-flex; align-items: center; min-height: 24px; box-shadow: 2px 2px 0 var(--tinta); }
.pc { font-weight: 500; font-style: italic; color: #5E574D; }
.datos dd .lugar { margin-top: var(--e2); text-decoration: none; }
.datos dd .lugar small { display: inline; color: var(--tinta); font-size: 11px; }
.cartel .en a { display: block; }
.mapa-mini { display: inline-block; vertical-align: middle; padding: 3px 5px 2px; background: var(--papel); color: var(--tinta); border: 2px solid var(--tinta); box-shadow: 2px 2px 0 var(--tinta); font-size: 11px; text-shadow: none; }

.bailan { margin-top: var(--e2); }
.caras { display: flex; flex-wrap: wrap; padding-left: 6px; }
.cara { position: relative; z-index: 1; display: grid; place-items: center; width: 34px; height: 34px; margin-left: -6px; overflow: hidden; border: 2px solid var(--tinta); background: var(--amarillo); color: var(--tinta); box-shadow: 2px 2px 0 var(--tinta); }
.cara img { width: 100%; height: 100%; object-fit: cover; }
.cara .iniciales, .cara.mas { font-weight: 800; font-size: 12px; letter-spacing: .02em; }
.cara.mas { background: var(--tinta); color: var(--papel); }
a.cara:active { transform: translate(2px, 2px); box-shadow: none; }
.quienes { margin-top: 6px; font-size: 13px; font-weight: 700; }
.quienes .etiqueta { font-size: 10px; }
.bailan-ficha { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: var(--e3); }
.bailarin { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.bailarin .cara { width: 72px; height: 72px; margin: 0; box-shadow: 3px 3px 0 var(--tinta); }
.bailarin .cara .iniciales { font-family: var(--f-rotulo); font-weight: 400; font-size: 26px; }
.bailarin .nombre { font-weight: 700; line-height: 1.15; overflow-wrap: anywhere; }
.bailarin small { padding: 2px 4px 1px; background: var(--amarillo); border: 2px solid var(--tinta); font-size: 9px; }
a.bailarin:active .cara { transform: translate(3px, 3px); box-shadow: none; }

.tk { position: relative; display: grid; grid-template-columns: 76px 1fr; margin-bottom: var(--e3); border: var(--borde); background: var(--papel); box-shadow: var(--sombra); }
.tk.con-cartel { grid-template-columns: 76px 1fr 64px; }
.tk:active { transform: translate(3px, 3px); box-shadow: var(--sombra-pulsada); }
.tk-cuando { display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 10px 8px; background: var(--tinta); color: var(--papel); border-right: var(--borde); }
.tk-dia { display: flex; flex-direction: column; gap: 3px; }
.tk-dia b { font-family: var(--f-rotulo); font-weight: 400; font-size: 27px; line-height: .9; }
.tk-dia span { font-weight: 800; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; line-height: 1.15; white-space: nowrap; }
.tk-hora { font-size: 27px; line-height: .9; color: var(--amarillo); }
.tk-hora.sin { font-size: 11px; line-height: 1.2; }
.tk-fin { margin-top: -2px; font-size: 11px; }
.tk-info { min-width: 0; padding: 10px 12px; }
.tk-titulo { font-size: 25px; line-height: .92; overflow-wrap: anywhere; }
.tk .sitio { margin-top: 6px; font-weight: 700; }
.tk .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.tk .miniatura { border-left: var(--borde); background: var(--tinta); overflow: hidden; }
.tk .miniatura img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
@media (max-width: 360px) { .tk { grid-template-columns: 70px 1fr; } .tk.con-cartel { grid-template-columns: 70px 1fr 56px; } .tk-titulo { font-size: 23px; } .tk-dia span { letter-spacing: .02em; } }

.chip, .volver { min-height: 44px; }
.volver { display: inline-flex; align-items: center; }
.tags a, .lugar { position: relative; }
.tags a::after, .lugar::after { content: ""; position: absolute; inset: -10px -2px; }
.version a { display: inline-block; padding-block: 14px; }
:focus-visible { outline: 3px solid var(--tinta); outline-offset: 2px; box-shadow: 0 0 0 6px var(--amarillo); }
.campo { display: block; margin-top: var(--e4); }
.campo .etiqueta { display: block; margin-bottom: 6px; }
.campo input, .campo textarea { display: block; width: 100%; min-height: 44px; padding: 10px 12px; border: var(--borde); background: #FFFDF7; color: var(--tinta); font: 500 16px/1.4 var(--f-texto); border-radius: 0; }
.campo small { display: block; margin-top: 4px; font-size: 13px; color: #5E574D; }
.campo + .boton { margin-top: var(--e5); }
.estira:focus-visible { outline: none; box-shadow: none; }
.evento:has(.estira:focus-visible), .tk:has(.estira:focus-visible) { outline: 3px solid var(--tinta); outline-offset: 2px; box-shadow: 0 0 0 6px var(--amarillo); }
.caras .cara { width: 44px; height: 44px; margin-left: -8px; }
.caras { padding-left: 8px; }
.datos dd a:not(.lugar), figcaption a { display: inline-block; padding: 13px 11px; margin: -13px -11px; }
main.wrap { padding-bottom: var(--e4); }
footer.wrap .version { margin-top: 0; }

.ico { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.piezas { display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; row-gap: 2px; margin: 6px 0 0; padding: 0; list-style: none; }
.pieza { display: inline-flex; align-items: center; gap: 3px; line-height: 1.1; white-space: nowrap; }
.pieza b { font-family: var(--f-titular); font-weight: 900; font-size: 20px; }
.pieza small { margin-left: 2px; font-weight: 800; font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.pieza.p-copa small, .pieza.p-clase small { font-size: 11px; }
.pieza.p-regalo b, .pieza.p-regalo small { padding: 1px 4px; background: var(--amarillo); }
.piezas.texto, .piezas.pc { align-items: flex-start; gap: 6px; flex-wrap: nowrap; font-weight: 700; font-size: 14px; line-height: 1.3; }
.piezas.texto { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.piezas.texto .ico { float: left; margin: 0 6px 0 0; }
.piezas.pc { font-weight: 500; font-style: italic; color: #5E574D; }
.lugar .ico { width: 16px; height: 16px; margin-left: -2px; }
.tags > .ico { align-self: center; width: 16px; height: 16px; }
.datos dd .piezas { margin-top: 0; }
.datos dd .pieza small { display: inline; margin-top: 0; color: inherit; font-size: 11px; }
.datos dt .ico { width: 15px; height: 15px; margin: -2px 6px 0 0; vertical-align: middle; }
.datos dd .piezas + small { margin-top: 6px; }
.tarifas { margin: 0; padding: 0; list-style: none; border: var(--borde); background: var(--papel); }
.tarifas li { display: grid; grid-template-columns: 22px minmax(64px, auto) 1fr; align-items: center; gap: 10px; padding: 10px 12px; }
.tarifas li + li { border-top: 2px solid var(--tinta); }
.tarifas b { font-family: var(--f-titular); font-weight: 900; font-size: 24px; line-height: 1; white-space: nowrap; }
.tarifas b small { font-family: var(--f-texto); font-weight: 800; font-size: 11px; margin-left: 2px; }
.tarifas span { font-size: 14px; line-height: 1.3; }
.tarifas li.p-descuento b { color: var(--rojo); }
.tarifas li.p-descuento b small { color: var(--tinta); }
.seccion + .piezas { margin: 0 0 var(--e3); }

.tag.tipo.t-masterclass { background: var(--papel); color: var(--tinta); }
.tag.tipo.t-congreso { background: var(--verde); color: var(--papel); }
.tag.tipo.t-academia { background: var(--azul); color: var(--papel); }
.arriba { display: flex; align-items: center; justify-content: space-between; gap: var(--e3); padding: var(--e2) 0; }
.arriba .marca { margin: 0; font-size: 26px; color: var(--rojo); text-shadow: 2px 2px 0 var(--azul); }
.marca .amp::before { content: "&" / ""; }
.arriba .marca .amp { color: var(--amarillo); -webkit-text-stroke: 2px var(--tinta); paint-order: stroke fill; }
.marca .linea { display: block; }
.arriba div .etiqueta { display: block; margin-top: 4px; font-size: 10px; letter-spacing: .06em; }
.ir-calendario { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: var(--borde); color: inherit; text-decoration: none; font-size: 11px; }
.mando { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 5; display: flex; gap: 6px; margin: 0 calc(-1 * var(--e4)); padding: var(--e2) var(--e4); background: var(--papel); border-top: var(--borde); border-bottom: var(--borde); }
.mando .fechas { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.mando .fechas button, .mando .fechas a, .boton-filtrar { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: var(--borde); background: var(--papel); color: inherit; text-decoration: none; font-family: var(--f-titular); font-weight: 900; font-size: 19px; text-transform: uppercase; line-height: 1; }
.mando .fechas [aria-pressed="true"] { background: var(--amarillo); }
.filtrar { flex: none; }
.filtrar summary { list-style: none; cursor: pointer; }
.filtrar summary::-webkit-details-marker { display: none; }
.boton-filtrar { background: var(--tinta); color: var(--papel); }
.filtrar[open] summary::before { content: ""; position: fixed; inset: 0; z-index: 9; background: rgba(20, 18, 16, .45); }
.hoja { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; max-width: 480px; margin: 0 auto; padding: var(--e3) var(--e4) calc(var(--e5) + env(safe-area-inset-bottom, 0px)); background: var(--papel); border-top: var(--borde); box-shadow: 0 -6px 0 var(--tinta); }
.hoja > .rotulo { font-size: 24px; }
.hoja form > .etiqueta { margin: var(--e4) 0 var(--e2); font-size: 11px; }
.hoja .estilos { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e2); }
.estilo-bloque { min-height: 48px; border: var(--borde); background: var(--c); color: var(--papel); font-family: var(--f-titular); font-weight: 900; font-size: 22px; text-transform: uppercase; box-shadow: 3px 3px 0 var(--tinta); }
.estilo-bloque[value="Kizomba"], .estilo-bloque[value=""][style*="rosa"] { color: var(--tinta); }
.estilo-bloque.sub { background: var(--papel); color: var(--c); border-color: var(--c); font-size: 20px; }
.estilo-bloque[aria-pressed="true"] { outline: 3px solid var(--tinta); outline-offset: 3px; }
.hoja .tipos { display: flex; flex-wrap: wrap; gap: var(--e2); }
.hoja .tipos .tag { min-height: 44px; padding: 0 12px; font-size: 12px; box-shadow: 3px 3px 0 var(--tinta); }
.hoja .tipos .tag[aria-pressed="true"] { outline: 3px solid var(--tinta); outline-offset: 3px; }
.hoja .quitar { margin-top: var(--e4); }
.activos { margin: var(--e2) 0 0; font-size: 11px; }
.activos a { text-decoration: underline; }
.mando ~ .seccion { margin-top: var(--e5); padding: 8px var(--e4) 6px; }
.mando ~ .seccion .rotulo { font-size: 20px; }
.mando + .seccion, .activos + .seccion { margin-top: var(--e3); margin-bottom: var(--e2); }
.vacios { margin: 0 0 var(--e2); font-size: 11px; letter-spacing: .06em; color: #5E574D; }
.dia-linea { display: flex; align-items: baseline; gap: var(--e2); margin: var(--e4) 0 var(--e2); padding-bottom: 4px; border-bottom: var(--borde); font-size: inherit; }
.dia-linea b { font-size: 28px; color: var(--azul); }
.dia-linea.hoy b { color: var(--rojo); }
.dia-linea .titular { font-size: 22px; }
.dia-linea .etiqueta { margin-left: auto; font-size: 11px; }
.tk .tags { column-gap: 9px; row-gap: 2px; align-items: center; letter-spacing: .05em; }
.tk .tag.estilo { padding: 0; border: 0; background: none; box-shadow: none; }
.tk .tag.estilo::before { width: 11px; height: 11px; border-radius: 50%; }
.tk .mapa-txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.piezas.linea { flex-wrap: nowrap; gap: 6px; font-weight: 700; font-size: 13px; line-height: 1.3; white-space: nowrap; }
.piezas.linea > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.piezas.linea b, .datos dd .resumen b { font-family: var(--f-titular); font-weight: 900; font-size: 19px; line-height: 1; }
.tk .sitio .lugar span, .evento .sitio .lugar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk .tags, .evento .tags { flex-wrap: nowrap; overflow-x: clip; }
.tk .tags > *, .evento .tags > * { flex: none; }
.tk-titulo, .evento .cuerpo .titular { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.evento .via, .bailan .quienes { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.entes { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; margin-top: 6px; overflow-x: clip; }
.entes .lugar { flex: 0 1 auto; min-width: 0; }
.ente { min-height: 28px; padding: 2px 8px 1px 6px; box-shadow: none; font-size: 13px; font-weight: 700; }
.ente .logo { width: 18px; height: 18px; margin-left: -2px; font-size: 8px; }
.ente span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.logo { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; margin-left: -4px; border: 2px solid var(--tinta); border-radius: 50%; overflow: hidden; background: var(--tinta); color: var(--papel); font-size: 9px; font-weight: 800; letter-spacing: .02em; line-height: 1; }
.logo img { width: 100%; height: 100%; object-fit: cover; background: #fff; }
.datos dd.entes { flex-wrap: wrap; overflow: visible; }

.mando .secciones { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.mando .secciones::-webkit-scrollbar { display: none; }
.mando .secciones a { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: var(--borde); background: var(--papel); color: inherit; text-decoration: none; font-family: var(--f-titular); font-weight: 900; font-size: 19px; text-transform: uppercase; line-height: 1; }
.mando .secciones a[aria-current="page"] { background: var(--amarillo); }
.hoja .tipos a.tag { display: inline-flex; align-items: center; }
.entidades { margin: 0; padding: 0; list-style: none; }
.entidades li { position: relative; display: grid; gap: 6px; margin-bottom: var(--e3); padding: 12px; border: var(--borde); background: var(--papel); box-shadow: var(--sombra); }
.entidades li:active { transform: translate(3px, 3px); box-shadow: var(--sombra-pulsada); }
.entidades a { display: flex; align-items: center; gap: 10px; min-width: 0; }
.entidades .logo { width: 44px; height: 44px; margin: 0; font-size: 14px; }
.entidades .titular { font-size: 26px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.entidades li:has(.estira:focus-visible) { outline: 3px solid var(--tinta); outline-offset: 2px; box-shadow: 0 0 0 6px var(--amarillo); }
.tk-titulo, .evento .cuerpo .titular, .entidades .titular { padding-top: .14em; }
.tk-titulo, .evento .cuerpo .titular { margin-top: -.14em; }

.anexo { position: relative; z-index: 1; display: flex; align-items: baseline; gap: 6px; margin-top: 8px; padding-top: 6px; border-top: 2px dashed var(--tinta); font-size: 13px; font-weight: 700; }
.anexo .etiqueta { flex: none; padding: 2px 5px 1px; background: var(--tinta); color: var(--papel); font-size: 10px; }
.anexo b { flex: none; font-size: 18px; }
.anexo > span:last-child { min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.2; overflow-wrap: break-word; }
.anexo:active { transform: translate(1px, 1px); }
.logo img { object-fit: contain; background: var(--tinta); }

.entidades .logo.sin, .hora .logo.sin { background: var(--amarillo); color: var(--tinta); font-family: var(--f-rotulo); }
.entidades .logo { width: 56px; height: 56px; font-size: 17px; border-width: 3px; }
.evento .hora.con-logo { justify-content: flex-start; gap: 6px; }
.evento .hora .logo { width: 60px; height: 60px; margin: 0 0 4px; border: 3px solid var(--papel); font-size: 18px; box-shadow: 3px 3px 0 var(--tinta); }
.evento .hora.sin .logo { border-color: var(--tinta); }

.semana { display: grid; grid-template-columns: 30px repeat(var(--n), minmax(0, 1fr)); border: var(--borde); background: var(--papel); box-shadow: var(--sombra); }
.semana .s-esq, .semana .s-dia { background: var(--tinta); color: var(--papel); }
.semana .s-dia { padding: 6px 0 5px; text-align: center; font-family: var(--f-rotulo); font-size: 15px; }
.semana .s-dia abbr { text-decoration: none; }
.semana .s-hora { padding: 6px 0 0 3px; border-top: 2px solid var(--tinta); font-family: var(--f-titular); font-weight: 800; font-size: 15px; }
.semana .s-celda { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 3px 2px; border-top: 2px solid var(--tinta); border-left: 1px solid rgba(20, 18, 16, .2); }
.semana .s-clase { display: block; padding: 3px 3px 7px; border: 2px solid var(--tinta); background: var(--c); box-shadow: inset 0 -5px 0 var(--c2); color: var(--papel); font-family: var(--f-titular); font-weight: 700; font-size: 12.5px; line-height: 1.02; overflow-wrap: anywhere; hyphens: auto; }
.semana .s-clase b { display: block; margin-bottom: 1px; font-size: 14px; font-weight: 800; }
.leyenda { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: var(--e3) 0 var(--e2); }
.leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.leyenda span::before { content: ""; width: 12px; height: 12px; background: var(--c); border: 2px solid var(--tinta); }
