*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#090909;color:#f5f5f5;font:16px Arial,sans-serif}a{color:inherit;text-decoration:none}header{display:flex;align-items:center;gap:25px;background:radial-gradient(at center,#4c0909,#030303 70%);padding:12px max(24px,calc((100vw - 1400px)/2));min-height:140px}header img{width:175px;height:115px;object-fit:contain}header h1{margin:0;font-size:32px;color:#fff;text-shadow:2px 3px #ad0000}header p{font-style:italic}header strong{margin-left:auto;background:#d00012;padding:16px 25px;border-radius:40px;white-space:nowrap}nav{display:flex;justify-content:center;background:linear-gradient(#333,#070707);overflow:auto;position:sticky;top:0;z-index:5}nav a{padding:17px 20px;font-weight:bold;white-space:nowrap}nav a:hover{background:#d10010}main{max-width:1400px;margin:auto;padding:15px 22px}.hero{height:355px;position:relative;border-radius:12px;overflow:hidden}.slides,.slide{position:absolute;inset:0}.slide{opacity:0;transition:opacity .7s;background-position:center;background-size:cover;padding:65px 40px}.slide.active{opacity:1}.slide h2{font-size:clamp(32px,4vw,58px);max-width:60%;margin:0;text-shadow:2px 2px #000}.slide p{font-size:23px;max-width:55%}.player{position:absolute;right:25px;top:65px;width:320px;padding:24px;background:#160000ee;border:1px solid #f33;border-radius:18px;box-shadow:0 0 18px #f002}.player h2{font-size:23px;margin:0}.player button{background:#d00010;color:white;border:0;border-radius:30px;padding:13px 23px;font-size:16px;cursor:pointer}.player small{display:block;margin-top:14px}.ticker{padding:12px;background:#ac0010;font-weight:bold}section:not(.hero){margin:28px 0 35px;scroll-margin-top:70px}section>h2{border-bottom:2px solid #d00010;padding-bottom:12px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:16px}.card{border:1px solid #4a1818;background:linear-gradient(140deg,#292929,#101010);border-radius:10px;overflow:hidden;min-height:155px}.card img{width:100%;height:155px;object-fit:cover}.placeholder{height:110px;display:grid;place-items:center;font-size:55px;background:radial-gradient(#7b0912,#151515)}.content{padding:13px}.content h3{margin:0 0 8px}.content p{color:#ccc;font-size:14px;line-height:1.5}.content a{color:#ff6b6b}footer{border-top:2px solid #a00;background:#140404;display:flex;align-items:center;gap:35px;padding:25px max(24px,calc((100vw - 1400px)/2))}footer img{width:120px}footer a{color:#ffc94b}@media(max-width:750px){header{gap:12px;padding:12px}header img{width:100px;height:85px}header h1{font-size:19px}header p{font-size:12px}header strong{font-size:12px;padding:10px}.hero{height:490px}.slide{padding:28px 20px}.slide h2,.slide p{max-width:100%}.slide p{font-size:18px}.player{top:auto;bottom:15px;right:15px;left:15px;width:auto}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}footer{padding:20px}}

/* Mejoras visuales: slider sin textos ni velos */
.hero{height:clamp(260px,36vw,500px);background:#150508}.slide{padding:0;background-position:center;background-size:contain;background-repeat:no-repeat;background-color:#0b0709}.slide-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:9px;z-index:2}.slide-dots button{width:10px;height:10px;border-radius:50%;border:1px solid white;background:#ffffff66;cursor:pointer;padding:0}.slide-dots button.active{background:#e00018}.radio-console{display:grid;grid-template-columns:minmax(190px,1fr) minmax(220px,1.5fr) minmax(220px,1fr);align-items:center;gap:18px;padding:20px 25px;background:linear-gradient(120deg,#220305,#08080b 60%,#310509);border:1px solid #8b1720;border-radius:12px;margin-top:15px!important}.radio-console h2{font-size:23px;margin:10px 0}.live-indicator{color:#ff5c68;font-weight:700;font-size:13px}.song-title{font-size:20px;font-weight:700;overflow-wrap:anywhere}.song-artist{color:#ddd;margin-top:6px}.radio-console canvas{width:100%;height:115px;display:block}.console-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.console-controls button{background:#d00010;color:#fff;border:0;border-radius:30px;padding:14px 20px;font-weight:700;cursor:pointer}.console-controls label{font-size:12px}.console-controls input{width:95px;accent-color:#ef001b}.console-controls small{width:100%;color:#ddd}.ticker{margin-top:12px}.ticker strong{font-weight:700}@media(max-width:850px){.radio-console{grid-template-columns:1fr}.hero{height:260px}.radio-console canvas{height:85px}}

/* V1.2: reproductor compacto superpuesto al slider */
.hero{height:clamp(290px,38vw,510px);overflow:hidden;margin-bottom:0!important}
.hero .slide{background-size:contain;background-position:center;background-repeat:no-repeat}
.hero .radio-console{position:absolute;z-index:3;bottom:18px;right:18px;width:min(405px,calc(100% - 36px));display:grid;grid-template-columns:minmax(0,1fr) 115px 42px;gap:9px;align-items:center;margin:0!important;padding:12px 13px;background:rgba(12,3,6,.84);border:1px solid rgba(255,78,78,.75);border-radius:15px;box-shadow:0 8px 30px #0009;backdrop-filter:blur(12px)}
.hero .radio-console .live-indicator{font-size:10px;letter-spacing:.03em}
.hero .radio-console .song-title{font-size:13px;line-height:1.25;margin-top:5px;max-height:34px;overflow:hidden}
.hero .radio-console .song-artist{font-size:11px;margin-top:2px;max-height:27px;overflow:hidden}
.hero .radio-console canvas{height:55px;width:115px}
.hero .console-controls{display:flex;justify-content:center;gap:0}
.hero .console-controls button{display:grid;place-items:center;width:39px;height:39px;padding:0;border-radius:50%;background:#d60017;box-shadow:0 0 12px #d6001755}
.hero .console-controls svg{width:23px;height:23px;fill:#fff}
.hero .console-controls svg[hidden]{display:none}
.hero .console-controls input,.hero .console-controls .volume-label,.hero .console-controls small{display:none}
.hero .slide-dots{bottom:8px;left:12px;right:auto;z-index:4}
@media(max-width:600px){.hero{height:290px}.hero .radio-console{right:9px;bottom:17px;width:calc(100% - 18px);grid-template-columns:minmax(0,1fr) 82px 38px;padding:9px}.hero .radio-console canvas{width:82px;height:48px}.hero .radio-console .song-title{font-size:12px}.hero .console-controls button{width:36px;height:36px}}

/* v1.3: compact player beside live badge in header */
header .header-player{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
header .header-player .radio-console{position:static!important;display:flex!important;align-items:center;gap:9px;width:auto!important;min-width:0;margin:0!important;padding:5px 9px!important;background:rgba(18,0,4,.42);border:1px solid #74202a;border-radius:32px;box-shadow:none;backdrop-filter:none}
header .radio-console .console-brand{max-width:145px;min-width:0}
header .radio-console .live-indicator{display:none}
header .radio-console .song-title{font-size:11px;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
header .radio-console .song-artist{font-size:10px;color:#ddd;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
header .radio-console canvas{width:88px!important;height:35px!important;display:block;flex:none}
header .console-controls{display:flex;align-items:center;gap:0}
header .console-controls button{display:grid;place-items:center;width:35px;height:35px;border:0;border-radius:50%;padding:0;background:#d00016;color:#fff;cursor:pointer}
header .console-controls svg{width:19px;height:19px;fill:currentColor}
header .console-controls svg[hidden]{display:none!important}
header .console-controls .volume-label,header .console-controls input,header .console-controls small{display:none}
header .header-player .header-live{margin-left:0;background:#d00016;padding:15px 23px;border-radius:35px;white-space:nowrap;font-size:14px}
@media(max-width:900px){header .radio-console .console-brand{display:none}header .radio-console canvas{width:65px!important}header .header-player{gap:6px}header .header-player .header-live{padding:11px 13px;font-size:12px}}
@media(max-width:600px){header{flex-wrap:wrap}header .header-player{width:100%;justify-content:flex-end;margin-left:0}header .radio-console .console-brand{display:block;max-width:130px}header .radio-console canvas{width:58px!important;height:28px!important}header .header-player .header-live{font-size:11px;padding:10px 12px}}

/* V1.4: sin boton EN VIVO duplicado, controles play/stop visibles */
header .header-live{display:none!important}
header .header-player .radio-console{border-radius:16px!important}
header .console-controls button{flex-shrink:0;display:grid!important;place-items:center!important;min-width:40px;width:40px;height:40px;padding:0!important}
header .console-controls button svg{display:block;width:21px;height:21px}
header .console-controls button svg[hidden]{display:none!important}
header .header-player{flex:1;min-width:170px}
@media(max-width:600px){header .header-player{justify-content:center;width:100%}}

/* V1.5 videos y cabina */
.video-open{width:100%;padding:0;border:0;cursor:pointer;background:transparent;display:block}.video-cover{height:190px;background:#2b070e center/cover no-repeat;display:grid;place-items:center}.video-play{width:65px;height:65px;border-radius:50%;background:#d00018;color:white;display:grid;place-items:center;font-size:30px;box-shadow:0 2px 20px #000a}.video-open:hover .video-play{background:#ff2336}.video-modal{width:min(900px,95vw);max-width:95vw;border:1px solid #d20b22;background:#090909;color:white;border-radius:12px;padding:44px 12px 15px}.video-modal::backdrop{background:rgba(0,0,0,.88)}.video-modal iframe{width:100%;aspect-ratio:16/9;border:0;display:block}.close-video{position:absolute;right:12px;top:7px;background:#d00018;color:white;border:0;border-radius:50%;width:32px;height:32px;cursor:pointer}.now-cabin{background:linear-gradient(110deg,#25050b,#111);border:1px solid #aa1725;border-radius:12px;padding:18px;margin-bottom:20px}.now-cabin>strong{color:#fff;font-size:22px}.cabin-row{display:flex;align-items:center;gap:15px;margin-top:12px}.cabin-row img{width:85px;height:85px;object-fit:cover;border-radius:12px}.cabin-row h3{margin:0 0 5px}.cabin-row p{margin:0;color:#ddd}


/* V1.7 — tarjetas de video y ventana emergente corregidas */
#videos .video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
#videos .video-card{min-width:0;overflow:hidden}
#videos .video-open{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;cursor:pointer}
#videos .video-cover{position:relative;width:100%;height:auto;aspect-ratio:16/9;min-height:150px;overflow:hidden;display:grid;place-items:center;background:radial-gradient(ellipse at center,#5b1018 0%,#1b080b 65%,#090909 100%)}
#videos .video-thumbnail{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
#videos .video-play{position:relative;z-index:2;width:66px;height:66px;display:grid;place-items:center;border-radius:50%;background:rgba(205,0,22,.94);border:2px solid #fff;color:#fff;font-size:31px;line-height:1;padding-left:5px;box-shadow:0 3px 22px #000b;transition:transform .18s,background .18s}
#videos .video-open:hover .video-play{transform:scale(1.08);background:#ed001d}
#videos .video-open:focus-visible{outline:3px solid #ffd34d;outline-offset:-3px}
#videos .video-card .content{padding:13px}
dialog#videoModal[open]{position:fixed;inset:0;margin:auto;width:min(920px,94vw);max-width:94vw;height:fit-content;max-height:90vh;overflow:auto;padding:48px 14px 14px;background:#090909!important;color:#fff!important;border:1px solid #e21a2b;border-radius:12px;box-shadow:0 15px 65px #000d;z-index:99999}
dialog#videoModal::backdrop{background:rgba(0,0,0,.88)}
#videoFrame{width:100%;background:#000;line-height:0}
#videoFrame iframe{display:block;width:100%;aspect-ratio:16/9;min-height:220px;border:0;background:#000}
#videoModal .close-video{position:absolute;top:9px;right:10px;width:34px;height:34px;border:0;border-radius:50%;background:#d00018;color:#fff;font-size:20px;line-height:1;cursor:pointer}
#videoFallback{padding:12px;color:#eee;line-height:1.5}
#videoFallback a{color:#ff727d;text-decoration:underline}
@media(max-width:600px){#videos .video-grid{grid-template-columns:1fr}dialog#videoModal[open]{width:96vw;max-width:96vw;padding:45px 8px 10px}#videoFrame iframe{min-height:190px}}

/* V1.8: apps, enlaces e inserciones HTML en 3 columnas iguales */
.app-ads-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.app-ad-item{min-width:0;aspect-ratio:16/9;border:1px solid #67212a;border-radius:9px;overflow:hidden;background:#161616}
.app-ad-link{display:block;width:100%;height:100%}
.app-ad-link img{display:block;width:100%;height:100%;object-fit:contain;background:#0c0c0c}
.app-ad-empty{display:grid;place-items:center;width:100%;height:100%;color:#999}
.app-ad-html iframe{display:block;width:100%;height:100%;border:0;background:#fff}
@media(max-width:700px){.app-ads-grid{grid-template-columns:1fr}}

/* V1.9 - tres tarjetas individuales iguales, nunca cortar una imagen entre columnas */
section#banners .app-ads-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;align-items:stretch!important;width:100%!important}
section#banners .app-ad-item{display:block!important;position:relative!important;min-width:0!important;width:100%!important;height:190px!important;aspect-ratio:auto!important;max-height:190px!important;margin:0!important;padding:0!important;overflow:hidden!important;border:1px solid #9b1c28!important;border-radius:9px!important;background:#101010!important;box-sizing:border-box!important}
section#banners .app-ad-link{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;overflow:hidden!important}
section#banners .app-ad-link>img{display:block!important;position:static!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important;margin:0!important;padding:0!important;border:0!important}
section#banners .app-ad-html iframe{display:block!important;width:100%!important;height:100%!important;border:0!important}
@media(max-width:760px){section#banners .app-ads-grid{grid-template-columns:1fr!important}section#banners .app-ad-item{height:190px!important}}

/* V2.0: diseño de referencia — HTML | Android | iOS */
section#banners .app-ads-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;align-items:stretch!important;width:100%!important}
section#banners .app-ad-item{height:clamp(300px,38vw,440px)!important;max-height:none!important;min-width:0!important;aspect-ratio:auto!important;border-radius:8px!important;border:1px solid #66304b!important;background:#110913!important;overflow:hidden!important;box-sizing:border-box!important}
section#banners .app-ad-link{display:block!important;width:100%!important;height:100%!important}
section#banners .app-ad-image img{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center!important;display:block!important;background:#110913!important}
section#banners .app-ad-html iframe{display:block!important;width:100%!important;height:100%!important;border:0!important;background:#fff!important}
section#banners .app-ad-empty{height:100%!important;display:grid!important;place-items:center!important;color:#b8a3b0!important;text-align:center!important}
@media(max-width:650px){section#banners .app-ads-grid{grid-template-columns:1fr!important}section#banners .app-ad-item{height:420px!important}}

/* V2.1 - Contador mundial en pie de página */
footer#contact{display:flex;flex-wrap:wrap;align-items:center;gap:22px}
.world-counter{flex:1 1 350px;max-width:480px;margin-left:auto;padding:14px 18px;background:linear-gradient(135deg,#17090c,#090909);border:1px solid #7b1723;border-radius:12px;color:#fff;box-sizing:border-box}
.world-counter-head{display:flex;align-items:center;gap:12px}.world-globe{font-size:43px;filter:drop-shadow(0 0 8px #b30026)}.world-counter-head strong{display:block;font-size:17px}.world-counter-head small{display:block;color:#c3b7b7;font-size:12px;margin-top:3px}
.world-counter-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.world-counter-stats>div{background:#250a0f;border-radius:7px;padding:10px 6px;text-align:center}.world-counter-stats span{display:block;color:#fff;font-size:23px;font-weight:800;font-variant-numeric:tabular-nums}.world-counter-stats small{display:block;font-size:11px;color:#e6c7cc}
.world-counter-flags{display:flex;flex-wrap:wrap;gap:7px;max-height:90px;overflow:auto}.world-country{display:inline-flex;align-items:center;gap:5px;background:#29171a;padding:5px 7px;border-radius:5px;font-size:12px}.world-country b{font-size:18px;font-weight:normal}
@media(max-width:700px){.world-counter{flex-basis:100%;max-width:none;margin:0}.world-counter-stats span{font-size:20px}}

/* V2.2 - carrusel automático de locutores, derecha a izquierda */
#hosts .hosts-viewport{width:100%;overflow:hidden;position:relative;mask-image:linear-gradient(to right,transparent,#000 2%,#000 98%,transparent)}
#hosts .hosts-track{display:flex;width:max-content;animation:hosts-scroll 35s linear infinite;will-change:transform}
#hosts .hosts-set{display:flex;gap:16px;flex:none;padding-right:16px}
#hosts .host-card{width:225px;min-width:225px;max-width:225px;flex:none;min-height:230px}
#hosts .host-card img{width:100%;height:155px;object-fit:cover}
#hosts .hosts-viewport:hover .hosts-track,#hosts .hosts-viewport:focus-within .hosts-track{animation-play-state:paused}
@keyframes hosts-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:750px){#hosts .host-card{width:190px;min-width:190px;max-width:190px}#hosts .hosts-track{animation-duration:28s}}
@media(prefers-reduced-motion:reduce){#hosts .hosts-track{animation:none}#hosts .hosts-viewport{overflow-x:auto;mask-image:none}#hosts .hosts-set[aria-hidden]{display:none}}

/* Galería emergente v2.5 */
#gallery .gallery-open{display:block;position:relative;width:100%;padding:0;border:0;background:#161616;cursor:zoom-in;overflow:hidden;text-align:left}
#gallery .gallery-open img{display:block;width:100%;height:180px;object-fit:cover;transition:transform .2s ease}
#gallery .gallery-open:hover img{transform:scale(1.035)}
#gallery .gallery-zoom{position:absolute;right:10px;bottom:10px;background:#c6001c;color:white;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:23px}
#gallery .gallery-open:focus-visible{outline:3px solid #ffc44d;outline-offset:-3px}
.gallery-modal{position:fixed;inset:0;margin:auto;padding:44px 15px 15px;width:min(1000px,95vw);max-width:95vw;max-height:92vh;background:#090909;color:#fff;border:1px solid #d5001b;border-radius:12px;box-shadow:0 16px 60px #000b;z-index:99999;overflow:auto}
.gallery-modal:not([open]){display:none}
.gallery-modal::backdrop{background:rgba(0,0,0,.9)}
.gallery-modal figure{margin:0;text-align:center}
.gallery-modal figure img{display:block;width:auto;max-width:100%;max-height:calc(92vh - 110px);height:auto;margin:auto;object-fit:contain}
.gallery-modal figcaption{margin-top:10px;color:#eee;font-size:14px}
.gallery-modal .gallery-close{position:absolute;top:7px;right:9px;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:#d0001a;color:white;font-size:27px;line-height:1;cursor:pointer}
@media(max-width:600px){.gallery-modal{padding:44px 8px 10px}.gallery-modal figure img{max-height:calc(90vh - 100px)}}

/* V2.6: efecto elegante al pasar el mouse por las fotos de la galería */
@media (hover:hover) and (pointer:fine){
 #gallery .gallery-open{isolation:isolate;transition:box-shadow .3s ease,border-color .3s ease}
 #gallery .gallery-open img{transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .45s ease;filter:brightness(.92) saturate(.95)}
 #gallery .gallery-open::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(130deg,transparent 35%,rgba(255,255,255,.17) 50%,transparent 65%);transform:translateX(-125%);transition:transform .65s ease}
 #gallery .gallery-open:hover img{transform:scale(1.09);filter:brightness(1.12) saturate(1.16)}
 #gallery .gallery-open:hover::after{transform:translateX(125%)}
 #gallery .gallery-open:hover{box-shadow:inset 0 0 0 2px #e60026,0 0 22px rgba(210,0,30,.35)}
 #gallery .gallery-zoom{transition:transform .25s ease,background .25s ease}
 #gallery .gallery-open:hover .gallery-zoom{transform:scale(1.14);background:#f00027}
}
@media(prefers-reduced-motion:reduce){#gallery .gallery-open,#gallery .gallery-open img,#gallery .gallery-open::after,#gallery .gallery-zoom{transition:none!important}}

/* V2.7 — efecto hover para las tarjetas de programación */
#programs .grid > .card {position:relative;isolation:isolate;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
#programs .grid > .card::after {content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(130deg,transparent 32%,rgba(255,255,255,.16) 50%,transparent 68%);transform:translateX(-125%);transition:transform .65s ease}
#programs .grid > .card .placeholder,#programs .grid > .card img {transition:transform .5s ease,filter .4s ease}
@media(hover:hover) and (pointer:fine){
 #programs .grid > .card:hover {transform:translateY(-5px);border-color:#e00025;box-shadow:0 10px 28px rgba(210,0,35,.28)}
 #programs .grid > .card:hover::after {transform:translateX(125%)}
 #programs .grid > .card:hover .placeholder,#programs .grid > .card:hover img {transform:scale(1.07);filter:brightness(1.15) saturate(1.1)}
}
@media(prefers-reduced-motion:reduce){#programs .grid > .card,#programs .grid > .card::after,#programs .grid > .card .placeholder,#programs .grid > .card img{transition:none!important}}
