/* Galactic Radio · las piezas de la Consola. Usan los tokens del tema Galactic, con respaldo. */
.grp-apertura, .grp-sintonizador, .grp-ahora, .grp-recorrido, .grp-semana, .grp-libro, .grp-registros, .grp-mas-sonado {
	--grp-vacio: var(--vacio, #0a0a0a);
	--grp-polvo: var(--polvo, #e8e8e4);
	--grp-polvo-2: var(--polvo-2, #9d9d97);
	--grp-senal: var(--senal, #63cb01);
	--grp-linea: var(--linea, rgba(232, 232, 228, .15));
	--grp-display: var(--fuente-display, "Barlow Condensed", "Arial Narrow", Impact, sans-serif);
	--grp-curva: var(--curva, cubic-bezier(.2, .7, .1, 1));
	--grp-gi: var(--gutter-i, max(16px, env(safe-area-inset-left, 0px)));
	--grp-gd: var(--gutter-d, max(16px, env(safe-area-inset-right, 0px)));
}

/* ═══ Apertura ═══ */
.grp-apertura { position: relative; height: min(92vh, 900px); min-height: 580px; overflow: hidden; isolation: isolate; color: var(--grp-polvo); background: var(--grp-vacio); }
.grp-apertura img.grp-apertura__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; filter: grayscale(var(--grp-gris, 1)) contrast(1.08) brightness(var(--grp-brillo, .8)); transform-origin: 62% 55%; animation: grp-acercar var(--grp-zoom, 40s) ease-in-out infinite alternate; }
.grp-apertura.grp-quieta img.grp-apertura__img { animation: none; transform: none; }
/* El video de fondo: translúcido y fundido en los bordes con el negro, como la fotografía. */
.grp-apertura video.grp-apertura__video {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2;
	opacity: var(--grp-video-op, .55);
	filter: grayscale(var(--grp-gris, 1)) contrast(1.08) brightness(var(--grp-brillo, .8));
	transform-origin: 62% 55%;
	animation: grp-acercar var(--grp-zoom, 40s) ease-in-out infinite alternate;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 var(--grp-fundido-arriba, 10%), #000 calc(100% - var(--grp-fundido-abajo, 45%)), transparent 100%), linear-gradient(to right, transparent 0, #000 var(--grp-fundido-lados, 12%), #000 calc(100% - var(--grp-fundido-lados, 12%)), transparent 100%);
	-webkit-mask-composite: source-in;
	mask-image: linear-gradient(to bottom, transparent 0, #000 var(--grp-fundido-arriba, 10%), #000 calc(100% - var(--grp-fundido-abajo, 45%)), transparent 100%), linear-gradient(to right, transparent 0, #000 var(--grp-fundido-lados, 12%), #000 calc(100% - var(--grp-fundido-lados, 12%)), transparent 100%);
	mask-composite: intersect;
}
.grp-apertura.grp-quieta video.grp-apertura__video { animation: none; transform: none; }
.grp-apertura.grp-color { --grp-gris: 0; }
@keyframes grp-acercar { from { transform: scale(1.02); } to { transform: scale(1.16); } }
.grp-apertura::after { content: ""; position: absolute; inset: auto 0 0 0; height: var(--grp-sombra, 58%); background: linear-gradient(transparent, var(--grp-vacio)); z-index: -1; }
/* El visor encierra «Al aire» y la línea de la canción: las esquinas de abajo van entre la línea y el sintonizador. */
.grp-esquinas { position: absolute; inset: calc(104px + env(safe-area-inset-top, 0px)) var(--grp-gd) calc(100px + var(--grp-separacion, 22px) + var(--grp-espacio-abajo, 72px)) var(--grp-gi); pointer-events: none; }
.grp-esquinas i { position: absolute; width: 22px; height: 22px; border: 0 solid var(--grp-esquinas, var(--grp-polvo)); opacity: .55; }
.grp-esquinas i:nth-child(1) { top: 0; left: 0; border-width: 1px 0 0 1px; }
.grp-esquinas i:nth-child(2) { top: 0; right: 0; border-width: 1px 1px 0 0; }
.grp-esquinas i:nth-child(3) { bottom: 0; left: 0; border-width: 0 0 1px 1px; }
.grp-esquinas i:nth-child(4) { bottom: 0; right: 0; border-width: 0 1px 1px 0; }
.grp-apertura__coord { position: absolute; top: calc(112px + env(safe-area-inset-top, 0px)); right: calc(var(--grp-gd) + 34px); text-align: right; color: var(--grp-polvo-2); }
.grp-apertura__hora { display: none; position: absolute; top: calc(104px + env(safe-area-inset-top, 0px)); left: calc(var(--grp-gi) + 34px); color: var(--grp-polvo-2); font-size: 11px; letter-spacing: .12em; }
/* --grp-separacion: el aire entre la línea de la canción y la aguja del sintonizador (se ajusta en Elementor). */
.grp-apertura__texto { position: absolute; left: 0; right: 0; bottom: calc(124px + var(--grp-separacion, 22px) + var(--grp-espacio-abajo, 72px)); }
.grp-apertura .grp-al-aire { font-family: var(--grp-display); font-weight: 800; text-transform: uppercase; font-size: clamp(104px, 23vw, 360px); line-height: .74; letter-spacing: -.02em; margin: 0; padding-bottom: .1em; color: var(--grp-polvo); mix-blend-mode: difference; }
/* Con interlineado tan cerrado la letra se sale de su caja: el relleno de abajo evita que pise la línea de texto cuando el título ocupa dos renglones. */
.grp-al-aire span { display: inline-block; animation: grp-entrar 1.4s var(--grp-curva) both; }
.grp-al-aire span:nth-child(2) { animation-delay: .12s; }
.grp-al-aire span:nth-child(3) { animation-delay: .24s; }
.grp-al-aire span:nth-child(4) { animation-delay: .36s; }
@keyframes grp-entrar { from { transform: translateY(18%) scaleY(.92); letter-spacing: .06em; } to { transform: none; } }
.grp-apertura__texto p { margin: 14px 0 0; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.grp-cancion__artista { color: var(--grp-polvo); font-weight: 400; }
.grp-linea .grp-cancion { color: var(--grp-polvo-2); }
.grp-punto { width: 9px; height: 9px; background: var(--grp-senal); display: inline-block; }
/* El espacio de abajo deja aire sobre el reproductor fijo (se ajusta en Elementor). */
.grp-sinto { position: absolute; left: 0; right: 0; bottom: calc(0px - var(--grp-sinto-bajar, 8px)); padding-bottom: var(--grp-espacio-abajo, 72px); }
.grp-banda { position: relative; height: 96px; cursor: ew-resize; touch-action: none; user-select: none; }
.grp-banda svg { width: 100%; height: 100%; display: block; overflow: visible; }
.grp-banda rect { transition: fill .3s, fill-opacity .3s; }
.grp-aguja { position: absolute; top: -10px; bottom: -4px; width: 2px; left: 0; background: var(--grp-aguja, var(--grp-senal)); pointer-events: none; transition: left var(--grp-barrido, 1.8s) cubic-bezier(.65, 0, .15, 1); }
.grp-aguja::before { content: ""; position: absolute; top: -6px; left: -5px; width: 12px; height: 12px; background: var(--grp-aguja, var(--grp-senal)); }
.grp-arrastrando .grp-aguja { transition: none; }
.grp-ayuda { display: flex; justify-content: space-between; gap: 12px; margin-top: 8px; color: var(--grp-polvo-2); }

/* ═══ Ahora ═══ */
.grp-ahora { padding-block: clamp(56px, 8vw, 110px) 0; color: var(--grp-polvo); }
.grp-ahora__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); align-items: center; }
.grp-pulso { display: grid; gap: 14px; justify-items: start; }
.grp-pulso__fuente { max-width: 34ch; }
.grp-cifra { font-family: var(--grp-display); font-weight: 800; font-size: clamp(140px, 25vw, 400px); line-height: .72; letter-spacing: -.03em; font-variant-numeric: tabular-nums; margin: 0; display: flex; align-items: flex-start; gap: 12px; }
.grp-cifra small { font-family: var(--fuente-mono, monospace); font-weight: 400; font-size: clamp(16px, 1.8vw, 24px); letter-spacing: .12em; color: var(--grp-senal); line-height: 1; margin-top: .5em; }
.grp-ahora h2 { font-size: clamp(46px, 6.2vw, 100px); line-height: .86; margin-top: 10px; }
.grp-datos { display: flex; gap: 30px; flex-wrap: wrap; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--grp-linea); }
.grp-datos b { display: block; font-family: var(--grp-display); font-weight: 600; font-size: 24px; text-transform: uppercase; letter-spacing: .02em; }
.grp-intencion { color: var(--grp-polvo-2); font-size: 18px; max-width: 44ch; margin: 18px 0 0; }
.grp-acciones { display: flex; gap: 12px; flex-wrap: wrap; margin: 26px 0 0; }
.grp-osc { display: block; width: 100%; height: clamp(120px, 16vw, 220px); margin-top: clamp(28px, 4vw, 56px); }
.grp-ahora__titulo { margin-bottom: clamp(24px, 4vw, 48px); }
.grp-ahora__titulo h2 { font-size: clamp(40px, 5vw, 72px); line-height: .9; margin: 0; }
.grp-ahora__fin { height: 0; border: 0; border-top: 1px solid var(--grp-linea); margin: clamp(40px, 6vw, 80px) 0 0; }

/* ═══ Recorrido ═══ */
.grp-recorrido { position: relative; height: var(--grp-recorrido, 520vh); margin-top: clamp(32px, 5vw, 72px); color: var(--grp-polvo); }
.grp-fijo { position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.admin-bar .grp-fijo { top: 32px; height: calc(100vh - 32px); }
.grp-recorrido__titulo { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 22px; }
.grp-recorrido__titulo h2 { font-size: clamp(40px, 5vw, 72px); line-height: .9; }
.grp-pista { display: flex; gap: 18px; padding-left: var(--grp-gi); padding-right: var(--grp-gd); will-change: transform; }
.grp-panel { flex: 0 0 var(--grp-panel-ancho, min(62vw, 860px)); height: var(--grp-panel-alto, min(62vh, 600px)); position: relative; overflow: hidden; background: #141413; text-decoration: none; color: var(--grp-polvo); isolation: isolate; }
.grp-pista .grp-panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; filter: grayscale(1) brightness(.58) contrast(1.1); transform: scale(1.15); will-change: transform; transition: filter .5s; }
.grp-pista .grp-panel:hover img { filter: grayscale(1) brightness(.75) contrast(1.1); }
.grp-panel__arriba { position: absolute; top: 18px; left: 22px; right: 22px; display: flex; justify-content: space-between; color: var(--grp-polvo-2); }
.grp-panel__abajo { position: absolute; left: 22px; right: 22px; bottom: 18px; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
.grp-panel__nombre { font-family: var(--grp-display); font-weight: 800; text-transform: uppercase; font-size: clamp(46px, 6.5vw, 110px); line-height: .82; text-wrap: balance; }
.grp-panel__bpm { font-family: var(--grp-display); font-weight: 800; font-size: clamp(36px, 4.6vw, 80px); line-height: .8; color: var(--grp-senal); white-space: nowrap; }
.grp-panel.gr-al-aire-ahora { outline: 2px solid var(--grp-senal); outline-offset: -2px; }
.grp-panel.gr-al-aire-ahora .grp-panel__arriba > span::before { content: "■ al aire · "; color: var(--grp-senal); }

/* ═══ Semana ═══ */
.grp-semana { padding-block: clamp(40px, 6vw, 80px); color: var(--grp-polvo); overflow-x: auto; }
.grp-semana__horas, .grp-semana__fila { display: grid; grid-template-columns: 110px minmax(720px, 1fr); gap: 16px; align-items: center; }
.grp-semana__horas div { position: relative; height: 22px; color: var(--grp-polvo-2); }
.grp-semana__horas div span { position: absolute; transform: translateX(-50%); }
.grp-semana__horas div span:first-child { transform: none; }
.grp-semana__horas div span:last-child { transform: translateX(-100%); }
.grp-semana__fila { border-top: 1px solid var(--grp-linea); padding-block: 8px; }
.grp-semana__dia { font-family: var(--grp-display); font-weight: 800; font-size: 24px; text-transform: uppercase; }
.grp-hoy .grp-semana__dia { color: var(--grp-senal); }
.grp-semana__banda { position: relative; height: var(--grp-semana-alto, 48px); list-style: none; margin: 0; padding: 0; }
.grp-semana__banda li { position: absolute; top: 0; bottom: 0; padding-right: 2px; }
.grp-semana__banda a { display: flex; align-items: center; height: 100%; padding: 0 10px; background: rgba(232, 232, 228, .1); text-decoration: none; overflow: hidden; transition: background .2s, color .2s; }
.grp-semana__banda a span { font-family: var(--grp-display); font-weight: 800; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grp-semana__banda a:hover { background: var(--grp-polvo); color: var(--grp-vacio); }
.grp-semana__banda a.gr-al-aire-ahora, .grp-hoy .grp-semana__banda a.gr-al-aire-ahora { position: relative; background: var(--grp-vivo, var(--grp-senal)); color: var(--grp-vivo-texto, var(--grp-vacio)); }
/* Lo que va del programa al aire: una raya al pie del bloque verde. */
.grp-semana__avance { position: absolute; left: 0; bottom: 0; height: var(--grp-avance-alto, 4px); background: var(--grp-avance, var(--grp-vacio)); transition: width 1s linear; }
.grp-hoy .grp-semana__banda a { background: rgba(232, 232, 228, .18); }
.grp-semana__ahora { position: absolute; top: -6px; bottom: -6px; width: 2px !important; background: var(--grp-senal); pointer-events: none; }
.grp-semana__nota { margin-top: 16px; }

/* ═══ Libro: el único panel claro ═══ */
.grp-libro { background: var(--grp-polvo); color: var(--grp-vacio); }
.grp-libro__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); align-items: center; padding-block: clamp(56px, 8vw, 110px); }
.grp-libro img.grp-libro__img { width: 100%; height: auto; mix-blend-mode: multiply; transition: transform .2s linear; }
.grp-libro h2 { font-size: clamp(46px, 6.2vw, 96px); line-height: .85; margin-top: 12px; }
.grp-libro p { color: #3b3b38; font-size: 18px; max-width: 46ch; }
.grp-precios { display: flex; gap: 30px; margin: 22px 0; flex-wrap: wrap; }
.grp-precios b { display: block; font-family: var(--grp-display); font-weight: 800; font-size: 46px; line-height: 1; }
.grp-libro .grp-boton-oscuro { background: var(--grp-vacio); border-color: var(--grp-vacio); color: var(--grp-polvo); }
.grp-libro .grp-boton-oscuro:hover { background: var(--grp-senal); border-color: var(--grp-senal); color: var(--grp-vacio); }
.grp-libro .grp-boton-linea { background: transparent; border-color: var(--grp-vacio); color: var(--grp-vacio); }
.grp-libro .grp-boton-linea:hover { background: var(--grp-vacio); color: var(--grp-polvo); }

/* ═══ Registros ═══ */
.grp-registros { padding-block: clamp(56px, 8vw, 110px); color: var(--grp-polvo); }
.grp-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.grp-cab h2 { font-size: clamp(48px, 7.4vw, 120px); line-height: .84; }
.grp-cab a { text-decoration: none; }
.grp-cab a:hover { color: var(--grp-senal); }

/* ═══ La música de un programa ═══ */
.grp-musica { padding-block: clamp(48px, 7vw, 96px); color: var(--grp-polvo); border-top: 1px solid var(--grp-linea); }
.grp-musica__cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.grp-musica__cab h2 { font-size: clamp(40px, 5.4vw, 84px); line-height: .86; }
.grp-musica__vacio { color: var(--grp-polvo-2); font-size: 18px; max-width: 60ch; }
.grp-musica__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.grp-musica h3 { font-family: var(--fuente-mono, monospace); font-size: 12px; font-weight: 400; letter-spacing: .12em; margin: 0 0 12px; }
.grp-pistas, .grp-top, .grp-artistas { list-style: none; margin: 0; padding: 0; }
.grp-pistas li { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-top: 1px solid var(--grp-linea); align-items: baseline; }
.grp-pistas__titulo b { font-weight: 600; }
.grp-top li { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 14px; padding: 12px 0; border-top: 1px solid var(--grp-linea); align-items: center; }
.grp-top__n { font-family: var(--grp-display); font-weight: 800; font-size: 30px; line-height: 1; color: var(--grp-senal); }
.grp-top__titulo { display: grid; min-width: 0; }
.grp-top__titulo b { font-family: var(--grp-display); font-weight: 600; font-size: 21px; text-transform: uppercase; letter-spacing: .02em; line-height: 1.05; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grp-artistas { display: flex; flex-wrap: wrap; gap: 8px; }
.grp-artistas li { border: 1px solid var(--grp-linea); padding: 8px 12px; font-family: var(--grp-display); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }

/* ═══ Celular ═══ */
/* ═══ La música en la portada (M3, maqueta portada-musica.html) ═══ */
/* La línea de «Al aire»: la canción es un enlace a su página. */
.grp-cancion__enlace { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.grp-cancion__enlace:hover, .grp-cancion__enlace:hover .grp-cancion__artista { color: var(--grp-senal); border-color: var(--grp-senal); }

/* Ahora: la franja de la canción (la tarjeta a la izquierda, la onda a la derecha). */
.grp-viva { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 64px); align-items: center; margin-top: clamp(36px, 5vw, 64px); padding-top: clamp(22px, 3vw, 34px); border-top: 1px solid var(--grp-linea); }
.grp-viva .grp-osc { margin-top: 0; height: clamp(110px, 13vw, 190px); }
/* La canción que suena es una sección sola: una línea arriba y otra abajo. */
.grp-viva--linea { padding-bottom: clamp(22px, 3vw, 34px); border-bottom: 1px solid var(--grp-linea); }
.grp-viva--linea + .grp-acaba { padding-top: clamp(40px, 5vw, 72px); }
.grp-tarjeta { display: grid; grid-template-columns: var(--grp-portada, 96px) minmax(0, 1fr); gap: 18px; align-items: center; }
.grp-tarjeta__portada img { width: var(--grp-portada, 96px); height: var(--grp-portada, 96px); object-fit: cover; border: 1px solid var(--grp-linea); display: block; }
.grp-tarjeta__titulo { font-family: var(--grp-display); font-weight: 800; text-transform: uppercase; font-size: clamp(26px, 2.6vw, 38px); line-height: .92; margin: 4px 0 0; color: var(--grp-senal); }
.grp-tarjeta__titulo a, .grp-tarjeta__quien a { text-decoration: none; color: inherit; }
.grp-tarjeta__titulo a:hover { color: var(--grp-polvo); }
.grp-tarjeta__quien { color: var(--grp-polvo-2); font-size: 16px; margin-top: 4px; }
.grp-tarjeta__quien a:hover { color: var(--grp-polvo); }
.grp-tarjeta__bajo { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.grp-tarjeta:hover .grm-bn, .grp-tarjeta.grm-sonando .grm-bn { filter: none; }
.grp-tarjeta.grm-sonando .grm-mini--play { background: var(--grp-senal); border-color: var(--grp-senal); color: var(--grp-vacio); }
.grp-tarjeta .grm-ico { width: 40px; height: 40px; }
.grp-tarjeta .grm-ico--txt { width: auto; }
.grp-despues { margin-top: 14px; }
.grp-acaba { padding-top: clamp(26px, 4vw, 48px); }
.grp-acaba__cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-bottom: 1px solid var(--grp-linea); padding-bottom: 10px; }
.grp-acaba__cab h3 { font-family: var(--grp-display); font-weight: 800; text-transform: uppercase; font-size: clamp(26px, 3vw, 40px); margin: 0; }

/* Lo más sonado. */
.grp-mas-sonado { padding-block: clamp(64px, 9vw, 128px); color: var(--grp-polvo); }
.grp-mas-sonado__cab { margin-bottom: 18px; }
.grp-mas-sonado__cab h2 { font-family: var(--grp-display); font-weight: 800; text-transform: uppercase; font-size: clamp(40px, 7.4vw, 120px); line-height: .84; margin: 0; white-space: nowrap; }

/* El Reloj: el horario un poco más grande, y el panel se mueve al pasar el mouse. */
.grp-panel__arriba { font-size: 15px; letter-spacing: .08em; }
.grp-panel__nombre, .grp-panel__bpm, .grp-panel__arriba { transition: transform .7s var(--grp-curva); }
.grp-panel:hover .grp-panel__nombre { transform: translateX(14px); }
.grp-panel:hover .grp-panel__bpm { transform: translateY(-6px); }
.grp-panel:hover .grp-panel__arriba { transform: translateY(4px); }

@media (max-width: 900px) {
	.grp-viva { grid-template-columns: minmax(0, 1fr); }
	.grp-tarjeta { --grp-portada: 72px; }
	.grp-ahora__grid, .grp-libro__grid, .grp-musica__grid { grid-template-columns: minmax(0, 1fr); }
	.grp-pistas li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
	.grp-apertura__coord { display: none; }
	/* En el celular la Apertura es más baja: el título, la canción y el sintonizador quedan más arriba. */
	.grp-apertura { height: min(70vh, 640px); min-height: 480px; --grp-espacio-abajo: 12px; }
	.grp-apertura .grp-al-aire { white-space: nowrap; }
	.grp-apertura__hora { display: block; }
	.grp-linea__hora { display: none; }
	/* El visor encierra «Al aire» y la canción: las esquinas, más afuera que el punto verde para no
	   tocarlo, y las de abajo entre la canción y el sintonizador. */
	.grp-apertura .grp-esquinas { left: 6px; right: 6px; bottom: 146px; }
	/* El BPM sigue al sintonizador casi sin aire, como su continuación. */
	.grp-ahora { padding-top: 20px; }
	.grp-esquinas { inset: calc(90px + env(safe-area-inset-top, 0px)) var(--grp-gd) calc(174px + var(--grp-espacio-abajo, 72px)) var(--grp-gi); }
	.grp-recorrido { height: auto; }
	.grp-fijo { position: relative; height: auto; padding-block: 20px; }
	.admin-bar .grp-fijo { top: 0; height: auto; }
	.grp-pista { overflow-x: auto; scroll-snap-type: x mandatory; transform: none !important; }
	.grp-pista .grp-panel img { transform: scale(1.02) !important; }
	.grp-panel { flex-basis: var(--grp-panel-ancho, 84vw); height: var(--grp-panel-alto, 62vh); scroll-snap-align: start; }
	.grp-ayuda span:first-child { display: none; }
	/* En el celular la línea de texto ocupa dos renglones: sube para no pisar el sintonizador. */
	.grp-apertura__texto { bottom: calc(160px + var(--grp-separacion, 22px) + var(--grp-espacio-abajo, 72px)); }
	.grp-apertura__texto p { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
	.grp-apertura img.grp-apertura__img, .grp-apertura video.grp-apertura__video, .grp-al-aire span { animation: none; }
	.grp-aguja { transition: none; }
}

/* Elementor pone su propia tipografía (el "kit") a los títulos y al texto. Dentro de las piezas
   manda el sistema de la Consola. */
html [class*="elementor-kit-"] [class^="grp-"] :is(h1, h2, h3),
html [class*="elementor-kit-"] .gr-encabezado h1 {
	font-family: var(--grp-display, "Barlow Condensed", sans-serif);
	font-weight: 800;
	text-transform: uppercase;
	color: inherit;
	letter-spacing: -.005em;
}
html [class*="elementor-kit-"] [class^="grp-"] a:not(.gr-boton):not(.grm-genero):not(.gr-al-aire-ahora) { color: inherit; }

/* La canción que suena sin página todavía: sin portada ni enlaces. */
.grp-tarjeta__vacia { width: var(--grp-portada, 96px); height: var(--grp-portada, 96px); display: grid; place-items: center; border: 1px solid var(--grp-linea); font-family: var(--grp-display); font-size: 40px; color: var(--grp-polvo-2); }

/* ═══ Instalar la app ═══ */
.grp-instalar { display: flex; flex-direction: column; align-items: start; gap: 16px; }
.grp-instalar [hidden] { display: none !important; }
.grp-instalar__nota { margin: 0; max-width: 46ch; color: var(--grp-polvo-2); line-height: 1.55; }
.grp-instalar__nota .gr-mono { display: block; margin-bottom: 8px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--grp-verde, #63cb01); }
.grp-instalar__nota ol { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.grp-instalar__lista { color: var(--grp-verde, #63cb01); }
