@import url('https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&display=swap');
:root{--ra-red:#d82032;--ra-dark:#19191e;--ra-blueblack:#14202a;--ra-ink:#1b1c22;--ra-border:#e3e5eb;--ra-white:#fff;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Onest,system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ra-ink);background:#f5f6f9}button,input{font:inherit}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #ff5b67;outline-offset:3px}.radio-container{width:min(1230px,calc(100% - 48px));margin-inline:auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.radio-icon{flex:none}
.utility-bar{background:#17181d;color:#f5f5f8;font-size:12px}.utility-inner{min-height:39px;display:flex;align-items:center;justify-content:space-between;gap:15px}.utility-location{color:#e5e5e9}.utility-location>span:first-child{color:var(--ra-red);margin-right:7px}.utility-separator{color:#8b8d94;margin:0 12px}.utility-contacts{display:flex;align-items:center;gap:16px}.utility-contacts a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;transition:opacity .2s}.utility-contacts a:hover{opacity:.75}.utility-contacts svg{width:19px;height:19px}.utility-whatsapp{font-weight:700}.utility-whatsapp svg{color:#29cc79}.site-header{background:#fff;box-shadow:0 5px 20px #0000000d;position:relative;z-index:2}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:36px;min-height:116px}.brand-link{display:block;width:min(450px,43vw);flex:none}.brand-link img{width:100%;height:auto;display:block}.main-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.main-nav a{padding:12px 16px;text-decoration:none;border-radius:10px;font-weight:700;font-size:14px;transition:background .2s,color .2s}.main-nav a:hover{background:#f6e6e8;color:#b90c22}.main-nav a.nav-active{background:var(--ra-red);color:#fff}.hero{position:relative;isolation:isolate;background:linear-gradient(120deg,#1c161b,#450d17 84%);color:#fff;overflow:hidden}.hero-photo{position:absolute;inset:0 0 0 41%;z-index:-2;background-image:url('/assets/radio/estudio-radio.webp');background-size:cover;background-position:50% center;opacity:.92}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#1a1218 0%,#241218 37%,#321017b5 58%,#130d0fb3 100%),linear-gradient(0deg,#3f0714 0%,transparent 65%)}.hero-container{padding:56px 0 0}.hero-copy{max-width:710px}.hero-kicker{font-size:12px;letter-spacing:.19em;font-weight:700;color:#ff9b9f;display:flex;align-items:center;gap:12px;margin:0 0 20px}.kicker-line{display:block;width:28px;height:3px;background:#f83f4f;border-radius:2px}.hero h1{font-size:clamp(35px,4.3vw,63px);font-weight:800;line-height:1.06;letter-spacing:-.048em;margin:0;max-width:725px;text-wrap:balance;text-shadow:0 2px 20px #0004}.hero h1 strong{display:block;color:#ff394e}.hero-desc{font-size:clamp(14px,1.5vw,17px);color:#eee1e4;max-width:570px;line-height:1.5;margin:18px 0 0}.player-outer{background:#191a1fec;border:1px solid #ff445b;border-radius:22px;box-shadow:0 20px 40px #0007,0 0 0 2px #e3223522;padding:21px 27px;margin:39px 0 25px;backdrop-filter:blur(8px)}.player-title{display:flex;align-items:center;gap:18px;font-size:16px;margin-bottom:13px}.onair-badge{display:inline-flex;align-items:center;gap:8px;background:#e02034;color:#fff;border-radius:40px;padding:8px 13px;font-size:12px;letter-spacing:.07em;font-weight:800}.live-light{width:8px;height:8px;background:#fff;border-radius:50%;box-shadow:0 0 0 3px #ffffff2a}.player-main{display:flex;align-items:center;gap:23px}.play-button{width:72px;height:72px;border:0;border-radius:50%;background:linear-gradient(145deg,#f42b42,#b90e24);color:#fff;display:grid;place-items:center;flex:none;font-size:30px;box-shadow:0 8px 25px #b2002a3f;cursor:pointer}.play-button:disabled{cursor:not-allowed;opacity:.48}.audio-display{flex:1;min-width:50px}.audio-bars{display:flex;align-items:center;justify-content:center;height:62px;gap:4px}.audio-bars i{display:block;flex:1;max-width:10px;height:var(--level);background:linear-gradient(#f5f5f6,#a7a9b1);border-radius:3px;opacity:.82}.is-playing .audio-bars i{animation:radioPulse 800ms ease-in-out infinite alternate;animation-delay:calc(var(--level) * -8ms)}@keyframes radioPulse{from{transform:scaleY(.42)}to{transform:scaleY(1)}}@media(prefers-reduced-motion:reduce){.is-playing .audio-bars i{animation:none}}.playback-status{font-size:12px;color:#c7c7cf;margin:5px 0 0}.volume-control{display:flex;align-items:center;gap:11px;min-width:173px}.volume-control input{max-width:130px;width:100%;accent-color:var(--ra-red)}.volume-control svg{color:#eee}.hero-features{display:flex;align-items:center;justify-content:space-around;gap:15px;flex-wrap:wrap;border-top:1px solid #ffffff20;padding:19px 0 22px}.hero-features span{display:flex;align-items:center;gap:11px;font-size:14px;font-weight:600;color:#f4edf0}.hero-features svg{color:#ffb8c0;width:25px;height:25px}.sponsors-section{padding:65px 0 76px;background:#f5f6f9}.section-heading{text-align:center;margin-bottom:34px}.section-eyebrow{font-weight:800;color:#77777d;letter-spacing:.32em;font-size:11px}.section-heading h2{font-size:clamp(32px,4vw,49px);letter-spacing:-.045em;font-weight:800;margin:8px 0 0}.section-heading h2 strong{color:#b71027}.section-accent{height:4px;width:75px;background:var(--ra-red);border-radius:6px;margin:14px auto 0}.sponsors-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.sponsors-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.sponsor-card{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #dde0e6;box-shadow:0 4px 18px #1a17240d;border-radius:13px;min-height:145px;overflow:hidden;transition:transform .22s,box-shadow .22s}.sponsor-card:hover{transform:translateY(-3px);box-shadow:0 12px 24px #1a172423}.sponsor-image{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.sponsor-card img{display:block;width:100%;height:auto;max-height:210px;aspect-ratio:1.45;object-fit:contain}.sponsors-featured .sponsor-card img{aspect-ratio:1.9}.empty-sponsors{text-align:center;color:#626772;padding:35px 15px;background:#fff;border:1px dashed #b9bdc5;border-radius:14px}.ad-cta{margin-top:38px;border-radius:16px;background:linear-gradient(110deg,#971326,#dd2335 55%,#95101f);display:flex;align-items:center;gap:22px;padding:26px 30px;color:#fff}.ad-cta-icon{display:grid;place-items:center;flex:none;width:66px;height:66px;background:#ffffff21;border-radius:18px}.ad-cta-icon svg{width:35px;height:35px}.ad-cta h3{margin:0 0 5px;font-size:clamp(19px,2vw,26px);letter-spacing:-.025em}.ad-cta p{margin:0;color:#ffe3e7;font-size:14px}.ad-cta-button{margin-left:auto;display:flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;border:2px solid #fff;border-radius:11px;padding:14px 20px;text-decoration:none;font-weight:800;font-size:14px;transition:background .2s,color .2s}.ad-cta-button:hover{background:#fff;color:#a21127}.radio-footer{background:#17191e;color:#fff}.footer-main{display:flex;align-items:center;gap:36px;padding:27px 0}.footer-main img{background:#fff;border-radius:9px;padding:6px;width:235px;height:auto;display:block}.footer-main p{flex:1;color:#c6c6cc;font-size:14px;max-width:410px;line-height:1.5}.footer-social{display:flex;gap:9px}.footer-social a{display:grid;place-items:center;width:41px;height:41px;background:#30313a;border-radius:50%;transition:background .2s}.footer-social a:hover{background:#ab1c2c}.footer-social svg{width:22px;height:22px}.footer-bottom{border-top:1px solid #ffffff26;padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;color:#bfc0c7;flex-wrap:wrap}.footer-bottom strong{color:#fff}.credit-separator{margin:0 5px}.footer-bottom a{text-decoration:none;font-size:16px;letter-spacing:-.5px;font-weight:800}.footer-bottom a b:first-child{color:#fff}.footer-bottom a b:last-child{color:#29b6f6}.radio-coming{background:linear-gradient(130deg,#1b1013,#501219);color:#fff;min-height:100vh;display:grid;place-items:center;text-align:center}.radio-coming main{padding:25px}.radio-coming small{color:#ff9b9e;letter-spacing:.2em;font-weight:700}.radio-coming h1{font-size:clamp(44px,8vw,92px);line-height:1.06;margin:25px 0;font-weight:800;letter-spacing:-.065em}.radio-coming h1 span{color:#f32e42}.radio-coming h2{font-size:clamp(19px,2.8vw,27px)}.radio-coming p{color:#e8d8db}
@media(max-width:1000px){.header-inner{min-height:95px}.brand-link{width:min(380px,46vw)}.main-nav a{padding:10px 11px}.footer-main{gap:16px}}@media(max-width:760px){.radio-container{width:min(100% - 30px,560px)}.utility-inner{flex-wrap:wrap;justify-content:center;padding:7px 0}.header-inner{flex-direction:column;gap:9px;padding:15px 0;min-height:0}.brand-link{width:min(390px,88%)}.main-nav{justify-content:center;gap:1px}.main-nav a{padding:9px 12px;font-size:13px}.hero-container{padding-top:45px}.hero-photo{inset:0 0 20% 23%;opacity:.38}.hero-shade{background:linear-gradient(90deg,#1a1218d6,#2a0c16bc)}.hero h1{font-size:clamp(35px,7.5vw,52px)}.player-outer{padding:17px 18px;margin-top:28px}.player-main{flex-wrap:wrap;gap:12px}.play-button{width:60px;height:60px}.audio-bars{gap:3px}.audio-bars i:nth-child(n+27){display:none}.volume-control{width:100%;justify-content:flex-end}.hero-features{gap:11px;justify-content:flex-start}.hero-features span{font-size:12px}.sponsors-section{padding:48px 0}.sponsors-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.sponsors-featured{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.sponsor-card{min-height:110px}.ad-cta{padding:21px;flex-wrap:wrap;gap:14px}.ad-cta-icon{width:48px;height:48px}.ad-cta-button{margin-left:0;width:100%}.footer-main{flex-wrap:wrap;padding:28px 0}.footer-main p{flex-basis:100%;order:3;margin:0}.footer-bottom{flex-direction:column;align-items:flex-start;gap:10px}}@media(max-width:430px){.utility-location{font-size:11px}.hero h1{font-size:34px}.player-title{font-size:13px;gap:10px}.audio-bars i:nth-child(n+20){display:none}.sponsors-grid,.sponsors-featured{grid-template-columns:repeat(2,minmax(0,1fr))}.sponsor-card{min-height:90px}.footer-main img{width:210px}} 

/* v0.4.2 - Redes sociales: botones visibles, accesibles y responsive */
.utility-contacts{gap:8px;flex-wrap:wrap;justify-content:flex-end}
.utility-contacts .social-link{min-height:34px;padding:5px 11px;border:1px solid #ffffff2b;border-radius:999px;display:inline-flex;gap:7px;align-items:center;justify-content:center;font-size:12px;font-weight:700;line-height:1.15;white-space:nowrap;color:#fff;text-decoration:none;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s}
.utility-contacts .social-link svg{height:19px;width:19px;flex:none}
.utility-contacts .social-facebook{background:#1877f2;border-color:#1877f2}
.utility-contacts .social-instagram{background:linear-gradient(125deg,#833ab4,#c13584 51%,#fd1d1d);border-color:#c13584}
.utility-contacts .social-whatsapp{background:#16874c;border-color:#16874c}
.utility-contacts .social-whatsapp svg{color:#fff}
.utility-contacts .social-link:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 13px #0006}
.utility-contacts .social-link:focus-visible,.footer-social .social-link:focus-visible{outline:3px solid #ffbd3d;outline-offset:3px}
.footer-social .social-link{color:#fff;transition:transform .18s,box-shadow .18s}
.footer-social .social-link:hover{background:initial;transform:translateY(-2px);box-shadow:0 3px 12px #0006}
.footer-social .social-facebook{background:#1877f2}
.footer-social .social-instagram{background:linear-gradient(125deg,#833ab4,#c13584 51%,#fd1d1d)}
.footer-social .social-whatsapp{background:#16874c}
@media(max-width:760px){.utility-contacts{justify-content:center;gap:7px}.utility-inner{row-gap:8px}.utility-contacts .social-link{min-height:38px;padding:7px 12px}.utility-location{text-align:center}}
@media(max-width:430px){.utility-contacts{width:100%;gap:6px}.utility-contacts .social-link{flex:1 1 auto;min-width:42px;padding:9px 10px}.utility-contacts .social-label{font-size:11px}}
@media(prefers-reduced-motion:reduce){.utility-contacts .social-link,.footer-social .social-link{transition:none}}


/* v0.4.3 — refinamiento respetando el diseño aprobado */
/* Aire alrededor de los tres botones sociales */
.utility-inner{min-height:54px;padding-block:7px;gap:16px}
.utility-contacts{gap:12px}
.utility-contacts .social-link{min-height:38px;padding:8px 15px;line-height:1.1}
/* Header algo más compacto sin achicar el logo */
.header-inner{min-height:105px}
/* Hero: una frase complementaria, no duplicación del título */
.hero-desc{max-width:610px;margin-top:18px;font-size:16px;line-height:1.6}
/* Reproductor: alineación equilibrada en emisión y sin señal */
.player-main{display:grid;grid-template-columns:72px minmax(0,1fr) 170px;align-items:center;column-gap:24px;row-gap:12px}
.audio-display{min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:75px}
.audio-bars{min-height:52px;height:52px;justify-content:flex-start;overflow:hidden}
.audio-bars i{min-width:2px}
.playback-status{line-height:1.45;min-height:18px}
.volume-control{justify-self:end;width:170px;min-width:0}
/* La franja informativa aprobada conserva iconos, separadores y color */
.hero-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:20px 0 23px}
.hero-features span{padding:0 17px;min-width:0;justify-content:center;line-height:1.35}
.hero-features span + span{border-left:1px solid #ffffff50}
.hero-features svg{flex:none;width:27px;height:27px;color:#ffffff}
@media(max-width:1000px){.header-inner{min-height:95px}.hero-features span{padding-inline:10px;font-size:12px}.player-main{grid-template-columns:64px minmax(0,1fr) 145px;column-gap:15px}.volume-control{width:145px}.play-button{width:64px;height:64px}}
@media(max-width:760px){.utility-inner{padding-block:10px;row-gap:9px}.utility-contacts{gap:9px}.utility-contacts .social-link{min-height:40px;padding:9px 13px}.header-inner{min-height:0}.player-main{grid-template-columns:60px minmax(0,1fr);column-gap:13px}.volume-control{grid-column:2;justify-self:start;width:min(190px,100%)}.hero-features{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:15px}.hero-features span{justify-content:flex-start;padding:5px 12px}.hero-features span:nth-child(3){border-left:0}.hero-desc{font-size:15px}}
@media(max-width:430px){.utility-contacts{gap:8px}.utility-contacts .social-link{padding:9px 10px}.player-outer{padding:17px 15px}.player-title{flex-wrap:wrap}.audio-bars{height:43px;min-height:43px}.hero-features span{font-size:11px;padding:4px 7px;gap:7px}.hero-features svg{width:22px;height:22px}}


/* v0.4.4 — Publicidad y footer según maqueta aprobada */
/* Separadores laterales del rótulo de la sección */
.section-heading .section-eyebrow{display:flex;align-items:center;justify-content:center;gap:24px;letter-spacing:.29em;font-size:12px;color:#62636b}
.section-heading .section-eyebrow::before,.section-heading .section-eyebrow::after{content:"";width:70px;max-width:17vw;height:3px;border-radius:4px;background:#dd2537;display:block}
.sponsors-section{background:#f6f7fb;padding-top:67px}
.sponsors-grid,.sponsors-featured{align-items:stretch;gap:16px}
/* Proporción de tarjeta uniforme; imagen completa sin recortar letras ni precios. */
.sponsor-card{aspect-ratio:2.05/1;min-height:0;border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 4px 16px #11182714}
.sponsor-image{height:100%;min-height:0}
.sponsor-card img,.sponsors-featured .sponsor-card img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center}
/* CTA rojo de contratación */
.ad-cta{margin-top:30px;border-radius:14px;background:linear-gradient(110deg,#9a1529 0%,#cf1c32 55%,#96101f 100%);padding:23px 31px;gap:19px}
.ad-cta-icon{width:72px;height:72px;background:transparent;border-radius:0}
.ad-cta-icon svg{width:52px;height:52px}
.ad-cta h3{font-size:clamp(20px,2.15vw,27px);font-weight:800}
.ad-cta-button{border-radius:12px;min-height:50px}
/* Footer oscuro y compacto, con logotipo original sin caja blanca. */
.radio-footer{background:#17181c}
.footer-main{display:flex;align-items:center;gap:26px;padding:24px 0 22px}
.footer-brand{display:block;flex:0 0 clamp(205px,23vw,280px);text-decoration:none}
.footer-brand-layers{display:block;position:relative;aspect-ratio:1150/285;width:100%}
.footer-brand-layers img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:0;background:transparent;border:0;border-radius:0}
/* Tres capas CSS del mismo logo: preservar rojo de micrófono y "online",
   y aumentar contraste de los trazos oscuros en fondo grafito. */
.footer-logo-light{filter:brightness(0) invert(1);clip-path:polygon(0 0,100% 0,100% 72%,34% 72%,34% 100%,0 100%)}
.footer-logo-red{clip-path:inset(0 66% 0 13%)}
.footer-claim{flex:1;margin:0;border-left:1px solid #ffffff52;padding-left:25px;max-width:none;color:#e0dfe3;font-size:13px;line-height:1.5}
.footer-actions{display:flex;align-items:center;gap:15px;margin-left:auto}
.footer-social{gap:9px}
.footer-social .social-link{width:40px;height:40px}
.footer-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:5px 14px 5px 8px;border:1.5px solid #d6d6d9;border-radius:13px;text-decoration:none;font-size:13px;font-weight:800;white-space:nowrap;color:#fff;transition:background .2s,transform .2s}
.footer-whatsapp svg{width:30px;height:30px;border-radius:50%;background:#169e54;padding:5px;flex-shrink:0}
.footer-whatsapp:hover{background:#ffffff1a;transform:translateY(-2px)}
.footer-whatsapp:focus-visible{outline:3px solid #ffbd3d;outline-offset:3px}
.footer-bottom{padding:13px 0;gap:20px;font-size:11.5px}
.cloudix-credit{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px;line-height:1.05;color:#ccc}
.cloudix-credit a{font-size:17px;font-weight:800;letter-spacing:-.6px}
/* Mantener la franja de cuatro prestaciones aprobada sin rediseñarla. */
@media(max-width:1000px){.footer-main{gap:16px}.footer-brand{flex-basis:205px}.footer-claim{padding-left:15px;font-size:12px}.footer-actions{gap:10px}}
@media(max-width:760px){.sponsor-card{aspect-ratio:1.9/1}.footer-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:25px 0}.footer-brand{grid-column:1;max-width:250px}.footer-claim{grid-column:1 / -1;grid-row:2;border-left:0;border-top:1px solid #ffffff36;padding:12px 0 0;order:initial;font-size:13px}.footer-actions{grid-column:2;grid-row:1;flex-wrap:wrap;justify-content:flex-end}.footer-bottom{align-items:center;text-align:center}.cloudix-credit{justify-content:center}.section-heading .section-eyebrow{gap:13px}}
@media(max-width:480px){.section-heading .section-eyebrow::before,.section-heading .section-eyebrow::after{width:32px}.sponsors-grid,.sponsors-featured{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sponsor-card{aspect-ratio:1.55/1}.ad-cta{padding:21px 18px}.footer-main{grid-template-columns:1fr}.footer-brand{grid-column:1;max-width:240px}.footer-actions{grid-column:1;grid-row:2;justify-content:flex-start;margin:0}.footer-claim{grid-row:3;grid-column:1}.footer-bottom{font-size:11px}}
@media(prefers-reduced-motion:reduce){.footer-whatsapp{transition:none}}


/* v0.4.6 — Header con aire vertical, sin alterar imagen de marca. */
.header-inner{min-height:0;padding-block:17px;gap:30px}
.brand-link{width:min(420px,42vw)}
.brand-link img{width:100%;height:auto;display:block}
/* El CTA comercial permanece visible aun si faltan canales configurados. */
.ad-cta-copy{flex:1;min-width:0}
.ad-cta-pending{margin-left:auto;color:#fff;font-size:13px;font-weight:600;opacity:.85}
@media(max-width:1000px){.header-inner{min-height:0;padding-block:15px}.brand-link{width:min(365px,43vw)}}
@media(max-width:760px){.header-inner{min-height:0;padding-block:17px;gap:12px}.brand-link{width:min(365px,85%)}.ad-cta-pending{margin-left:0;width:100%}}
@media(max-width:430px){.brand-link{width:min(330px,90%)}}


/* v0.4.10 — Radio Agenda: visualizador decorativo durante reproducción + contenidos */
.audio-display{min-width:0}
.audio-bars{display:flex!important;align-items:center;justify-content:flex-start;gap:4px;height:54px;min-height:54px;overflow:hidden;visibility:visible}
.audio-bars i{display:block;flex:0 1 7px;min-width:3px;max-width:8px;height:var(--bar-height,24px);border-radius:8px;background:linear-gradient(180deg,#ff7181 0%,#eb2640 52%,#9d172e 100%);opacity:0;transform:scaleY(.6);transform-origin:center center;transition:opacity .18s ease-out}
.player-outer.is-playing .audio-bars i{opacity:.92;animation:radioWave0410 900ms ease-in-out infinite alternate;animation-delay:var(--bar-delay,0ms)}
@keyframes radioWave0410{0%{transform:scaleY(.26)}35%{transform:scaleY(.7)}100%{transform:scaleY(1.12)}}
/* Si está pausado o reconectando, no hay visualización de señal ficticia. */
.player-outer:not(.is-playing) .audio-bars i{animation:none;opacity:0}
.radio-programming{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 24px;padding:18px 0 21px;border-top:1px solid #ffffff28;border-bottom:1px solid #ffffff28}
.programming-item{display:flex;align-items:center;gap:14px;min-width:0;padding:0 25px}
.programming-item:first-child{padding-left:8px;border-right:1px solid #ffffff40}
.programming-icon{width:41px;height:41px;border-radius:12px;display:grid;place-items:center;flex:none;background:#ffffff15;color:#ff6378}
.programming-icon .radio-icon{width:23px;height:23px}
.programming-label{display:block;font-size:10px;letter-spacing:.16em;font-weight:800;color:#ff8293;margin-bottom:5px}
.programming-item p{font-size:14px;font-weight:600;line-height:1.5;color:#fff;margin:0}
/* Separar visualmente la franja de servicios sin cambiar sus cuatro bloques. */
.hero-features{border-top:0}
@media(max-width:760px){.radio-programming{grid-template-columns:1fr;gap:15px;padding:16px 0;margin-bottom:15px}.programming-item,.programming-item:first-child{padding:0 5px;border-right:0}.programming-item+.programming-item{border-top:1px solid #ffffff24;padding-top:15px}.programming-item p{font-size:13px}.audio-bars{height:44px;min-height:44px;gap:3px}.audio-bars i{flex-basis:6px}}
@media(max-width:430px){.audio-bars i:nth-child(n+20){display:none}.programming-icon{width:37px;height:37px}}
@media(prefers-reduced-motion:reduce){.player-outer.is-playing .audio-bars i{animation:none;transform:scaleY(.72)}}


/* v0.4.11 — Onda decorativa de ancho completo, ritmos independientes.
   Solo se activa con la clase is-playing que ya establece radio.js. */
.audio-display{width:100%;min-width:0}
.audio-bars{display:grid!important;grid-template-columns:repeat(36,minmax(0,1fr));align-items:center;column-gap:clamp(2px,.38vw,5px);width:100%;height:72px;min-height:72px;overflow:hidden;justify-content:stretch}
.audio-bars i{display:block!important;box-sizing:border-box;width:100%;max-width:none!important;min-width:0!important;flex:none!important;justify-self:stretch;height:var(--bar-height,32px);border-radius:6px;background:linear-gradient(180deg,#ff8b9a 0%,#fa3551 44%,#b91531 100%);opacity:0;transform:scaleY(.28);transform-origin:center;will-change:transform;transition:opacity .22s ease}
.player-outer.is-playing .audio-bars i{opacity:.95;animation:radioWave0411 var(--bar-duration,980ms) ease-in-out infinite alternate;animation-delay:var(--bar-delay,0ms)}
@keyframes radioWave0411{0%{transform:scaleY(.24)}28%{transform:scaleY(.78)}57%{transform:scaleY(.41)}100%{transform:scaleY(1)}}
.player-outer:not(.is-playing) .audio-bars i{opacity:0;animation:none}
/* Dos contenidos con símbolos diferentes; las cuatro prestaciones conservan su franja. */
.programming-icon{background:linear-gradient(145deg,#54212e,#301b27);border:1px solid #ffffff22;color:#ff9aa8;box-shadow:inset 0 1px 0 #ffffff12}
.programming-icon svg{stroke-width:1.8;width:25px;height:25px}
.hero-features svg{stroke-width:1.8}
.ad-cta-icon svg{stroke-width:1.8}
@media(max-width:760px){
 .audio-bars{grid-template-columns:repeat(26,minmax(0,1fr));height:55px;min-height:55px;gap:3px}
 .audio-bars i:nth-child(n+27){display:none!important}
}
@media(max-width:430px){
 .audio-bars{grid-template-columns:repeat(19,minmax(0,1fr));height:47px;min-height:47px;gap:3px}
 .audio-bars i:nth-child(n+20){display:none!important}
}
@media(prefers-reduced-motion:reduce){.player-outer.is-playing .audio-bars i{animation:none;transform:scaleY(.7);will-change:auto}}

/* v0.4.14 — Mockup original. Una sola onda blanca, con movimiento perceptible.
   Visualizador decorativo, no analiza el audio. La clase is-playing la controla radio.js. */
.audio-display{flex:1;min-width:0;width:auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.audio-bars{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:3px!important;width:min(100%,355px)!important;min-width:0;height:64px!important;min-height:64px!important;overflow:hidden!important}
.audio-bars i{display:block!important;flex:0 0 5px!important;width:5px!important;min-width:5px!important;max-width:5px!important;height:var(--bar-height,35px)!important;align-self:center;justify-self:auto!important;border-radius:2px!important;background:linear-gradient(180deg,#f8f9fb,#adb1b9)!important;transform-origin:center!important;transform:scaleY(.32);opacity:.55!important;animation:none!important;will-change:auto}
.player-outer.is-playing .audio-bars i{opacity:1!important;will-change:transform;animation-name:raWaveA!important;animation-duration:var(--bar-duration,720ms)!important;animation-delay:var(--bar-delay,0ms)!important;animation-timing-function:ease-in-out!important;animation-iteration-count:infinite!important;animation-direction:normal!important;animation-fill-mode:both!important;animation-play-state:running!important}
.player-outer.is-playing .audio-bars i:nth-child(3n+1){animation-name:raWaveB!important}
.player-outer.is-playing .audio-bars i:nth-child(4n+2){animation-name:raWaveC!important}
.player-outer:not(.is-playing) .audio-bars i{opacity:.32!important;animation:none!important;transform:scaleY(.25)!important}
@keyframes raWaveA{0%{transform:scaleY(.24)}18%{transform:scaleY(1.20)}35%{transform:scaleY(.40)}54%{transform:scaleY(1.03)}73%{transform:scaleY(.18)}88%{transform:scaleY(.85)}100%{transform:scaleY(.24)}}
@keyframes raWaveB{0%{transform:scaleY(.85)}16%{transform:scaleY(.25)}32%{transform:scaleY(1.16)}53%{transform:scaleY(.15)}70%{transform:scaleY(.96)}87%{transform:scaleY(.32)}100%{transform:scaleY(.85)}}
@keyframes raWaveC{0%{transform:scaleY(.32)}22%{transform:scaleY(.98)}38%{transform:scaleY(.18)}57%{transform:scaleY(1.24)}77%{transform:scaleY(.42)}92%{transform:scaleY(.90)}100%{transform:scaleY(.32)}}
.playback-status{margin-top:2px}
@media(max-width:760px){.audio-bars{width:min(100%,245px)!important;height:52px!important;min-height:52px!important;gap:2px!important}.audio-bars i{flex-basis:5px!important;width:5px!important;min-width:5px!important;max-width:5px!important}.player-outer .audio-bars i:nth-child(n+35){display:none!important}}
@media(max-width:430px){.audio-bars{width:min(100%,190px)!important;height:46px!important;min-height:46px!important}.player-outer .audio-bars i:nth-child(n+27){display:none!important}}
@media(prefers-reduced-motion:reduce){.player-outer.is-playing .audio-bars i{animation:none!important;transform:scaleY(.7)!important;will-change:auto}}


/* v0.4.15 — Visualizador nuevo: ancho completo y onda continua inspirada en el mockup.
   No modificar los controles; las ondas son decorativas, no analizan la intensidad. */
.player-main .audio-display{flex:1 1 0;min-width:0;width:auto;align-self:center}
.ra-waveform{
 display:grid;grid-template-columns:repeat(84,minmax(0,1fr));align-items:center;
 width:100%;max-width:none;height:74px;min-height:74px;gap:clamp(1px,.22vw,3px);
 overflow:hidden;pointer-events:none;
}
.ra-waveform__bar{
 display:block;box-sizing:border-box;width:100%;min-width:0;max-width:none;
 height:var(--ra-height,34px);min-height:0;border-radius:2px;
 background:linear-gradient(180deg,#f9fafc 0%,#d8dce4 55%,#9da3af 100%);
 opacity:.40;transform:scaleY(.25);transform-origin:center;
}
.player-outer.is-playing .ra-waveform__bar{
 opacity:.92;
 animation:raWaveLiftA var(--ra-duration,1000ms) ease-in-out var(--ra-delay,0ms) infinite alternate;
}
.player-outer.is-playing .ra-waveform__bar:nth-child(3n + 1){animation-name:raWaveLiftB}
.player-outer.is-playing .ra-waveform__bar:nth-child(5n + 2){animation-name:raWaveLiftC}
.player-outer:not(.is-playing) .ra-waveform__bar{animation:none;opacity:.38;transform:scaleY(.25)}
@keyframes raWaveLiftA{0%{transform:scaleY(.18)}25%{transform:scaleY(.95)}55%{transform:scaleY(.42)}80%{transform:scaleY(1.1)}100%{transform:scaleY(.29)}}
@keyframes raWaveLiftB{0%{transform:scaleY(.87)}22%{transform:scaleY(.30)}48%{transform:scaleY(1.08)}72%{transform:scaleY(.2)}100%{transform:scaleY(.91)}}
@keyframes raWaveLiftC{0%{transform:scaleY(.38)}33%{transform:scaleY(1.15)}60%{transform:scaleY(.22)}84%{transform:scaleY(.81)}100%{transform:scaleY(.44)}}
@media(max-width:760px){
 .ra-waveform{grid-template-columns:repeat(46,minmax(0,1fr));height:54px;min-height:54px;gap:2px}
 .ra-waveform__bar:nth-child(n+47){display:none}
}
@media(max-width:430px){
 .ra-waveform{grid-template-columns:repeat(32,minmax(0,1fr));height:47px;min-height:47px;gap:2px}
 .ra-waveform__bar:nth-child(n+33){display:none}
}
@media(prefers-reduced-motion:reduce){
 .player-outer.is-playing .ra-waveform__bar{animation:none;opacity:.72;transform:scaleY(.65)}
}
