/* TODAY.FM 4.1.69: Musik zuerst, klare Teaser, dezente Bewegung. Ausschließlich Homepage. */
:root{--home-accent:#baff39;--home-panel:#0a0f0b;--home-line:rgba(185,249,74,.23)}
.hero--vibrant{min-height:min(700px,calc(100svh - 130px));padding:40px 0 46px;isolation:isolate;background:radial-gradient(circle at 81% 48%,rgba(158,248,58,.15),transparent 34%),linear-gradient(112deg,#040705,#0b140d 62%,#030604)}
.hero--vibrant .hero__inner{gap:clamp(30px,5vw,78px);grid-template-columns:minmax(0,1.18fr) minmax(265px,.82fr)}
.hero--vibrant:after{right:-10%;top:4%;width:38vw;max-width:520px;opacity:.27;pointer-events:none}
.hero--vibrant .hero__glow{position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 45%,rgba(186,255,57,.035) 65%,transparent 86%);animation:home-ambient 16s ease-in-out infinite alternate}
.hero--vibrant .hero__content{min-width:0}
.hero--vibrant .hero__content h1{font-size:clamp(55px,6.65vw,102px);line-height:.93}
.hero--vibrant .hero__copy{max-width:680px;line-height:1.5}
.hero--vibrant .hero-live-now{max-width:760px;border-left:4px solid var(--home-accent);background:rgba(5,9,6,.93);box-shadow:0 14px 50px rgba(0,0,0,.14)}
.hero--vibrant .hero__actions--radio-first{gap:10px}
.hero--vibrant .hero__actions--radio-first .hero__listen{font-size:11px}
.hero--vibrant .hero__actions--radio-first a{transition:background-color .25s,color .25s,border-color .25s}
.hero--vibrant .hero__brand{min-height:360px;display:grid;place-items:center}
.hero--vibrant .hero__orbit{width:min(31vw,380px);aspect-ratio:1;border:1px solid rgba(186,255,57,.15);box-shadow:0 0 0 35px rgba(186,255,57,.016),0 0 0 80px rgba(186,255,57,.012);animation:home-orbit 18s ease-in-out infinite alternate}
.hero--vibrant .hero__signal{position:relative;z-index:1;width:min(29vw,358px);aspect-ratio:1;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(186,255,57,.13),transparent 55%),linear-gradient(155deg,#121e12,#050a06 70%);border:1px solid rgba(186,255,57,.33);box-shadow:0 28px 80px rgba(0,0,0,.37),inset 0 0 55px rgba(186,255,57,.055)}
.hero--vibrant .hero__signal:before{content:"";position:absolute;inset:18px;border:1px solid rgba(186,255,57,.16)}
.hero--vibrant .hero__signal:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 13px,rgba(186,255,57,.018) 14px);pointer-events:none}
.hero--vibrant .hero__signal-frame{position:absolute;inset:19%;border:1px solid rgba(186,255,57,.13);transform:rotate(45deg)}
.hero--vibrant .hero__signal-cut{position:absolute;right:0;bottom:0;width:23%;height:23%;border-left:1px solid var(--home-accent);border-top:1px solid var(--home-accent);background:#0a160b;opacity:.6}
.hero--vibrant .hero__soundwave{position:relative;z-index:1;display:flex;width:74%;height:56%;gap:5%;align-items:center;justify-content:center}
.hero--vibrant .hero__soundwave i{flex:1;height:37%;background:linear-gradient(0deg,#5ec826,var(--home-accent));box-shadow:0 0 24px rgba(186,255,57,.2);transform:scaleY(.55);transform-origin:center;animation:home-eq 3.6s ease-in-out infinite alternate}
.hero--vibrant .hero__soundwave i:nth-child(2),.hero--vibrant .hero__soundwave i:nth-child(8){height:54%;animation-delay:-.7s}.hero--vibrant .hero__soundwave i:nth-child(3),.hero--vibrant .hero__soundwave i:nth-child(7){height:76%;animation-delay:-1.5s}.hero--vibrant .hero__soundwave i:nth-child(4),.hero--vibrant .hero__soundwave i:nth-child(6){height:92%;animation-delay:-2.1s}.hero--vibrant .hero__soundwave i:nth-child(5){height:100%;animation-delay:-2.8s}.hero--vibrant .hero__soundwave i:nth-child(9){animation-delay:-1.1s}
/* Section index is useful on this long page, without adding extra global nav duplicates. */
.home-jump{position:relative;z-index:2;width:min(1320px,calc(100% - 48px));min-height:70px;margin:0 auto 46px;padding:12px 0;display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;border-bottom:1px solid var(--home-line)}
.home-jump span{margin-right:auto;color:#899989;font-size:9px;font-weight:900;letter-spacing:.15em;white-space:nowrap}
.home-jump a{display:inline-flex;min-height:38px;align-items:center;padding:7px 12px;color:#e7eee4;border:1px solid rgba(255,255,255,.13);background:#090e0a;font-size:10px;font-weight:800;text-decoration:none;transition:border-color .2s,background .2s,color .2s}
.home-jump a:hover,.home-jump a:focus-visible{border-color:var(--home-accent);background:#172514;color:#fff}
#home-program,#home-interact,#home-recent,#home-music,#home-charts,#home-news,#home-world,#home-service{scroll-margin-top:130px}
.home-program-line{padding-bottom:65px}
.home-program-line>header{padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.09)}
.home-program-line__grid article{position:relative;min-width:0;min-height:150px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(135deg,#101811,#080b09);transition:border-color .23s,background .23s,transform .23s}
.home-program-line__grid article.is-next{border-color:rgba(186,255,57,.5);background:linear-gradient(135deg,rgba(165,248,53,.11),#0b100c 76%)}
.home-program-line__grid article:hover{border-color:rgba(186,255,57,.6);transform:translateY(-3px)}
.home-program-line__grid article:first-child:not(.is-next){grid-column:auto}
.home-program-line__empty{grid-column:1/-1;margin:0;padding:22px;color:#b3beb4;border:1px solid var(--home-line);font-size:13px;line-height:1.5}
/* Mitmachen: three unique methods rather than two cards leading to essentially the same mail flow. */
.home-contact{padding-top:48px;padding-bottom:78px;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(30px,5vw,74px)}
.home-contact__cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.home-contact__cards>a{min-width:0;min-height:210px;padding:24px;background:linear-gradient(145deg,#101711,#090d0a);border-color:rgba(255,255,255,.15)}
.home-contact__cards>a.home-contact__primary{background:linear-gradient(140deg,rgba(186,255,57,.17),#0a100b 68%);border-color:rgba(186,255,57,.65)}
.home-contact__cards>a strong{margin-top:auto;font-size:clamp(23px,2.3vw,35px)}
.home-contact__cards>a:focus-visible,.home-world__item:focus-visible,.home-news-card:focus-within,.home-playlist-card:focus-visible{outline:2px solid var(--home-accent);outline-offset:3px}
.home-recent,.home-playlists,.home-charts,.home-news,.home-team{padding-top:67px;padding-bottom:75px}
.home-recent .home-recent-card,.home-playlist-card,.home-news-card,.home-chart-row{transition:transform .23s,border-color .23s,background-color .23s,box-shadow .23s}
.home-recent .home-recent-card:hover,.home-playlist-card:hover,.home-news-card:hover{transform:translateY(-4px);border-color:rgba(186,255,57,.35);box-shadow:0 12px 32px rgba(0,0,0,.25)}
.home-charts{padding-top:74px}.home-charts .home-chart-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;border:0}
.home-charts .home-chart-row{display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:0;padding:12px;border:1px solid rgba(255,255,255,.14);text-decoration:none;background:#0c110d;gap:12px}
.home-charts .home-chart-row>strong{font-size:25px;line-height:1;color:var(--home-accent)}
.home-charts .home-chart-row img,.home-charts .home-chart-placeholder{width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.home-charts .home-chart-row h3{font-size:clamp(15px,1.8vw,22px);line-height:1.14;overflow-wrap:anywhere}
.home-charts .home-chart-row div>span{font-size:10px}
.home-charts .home-chart-row>b{margin-top:auto;text-align:left;font-size:9px}
.home-charts .home-chart-row:hover{border-color:var(--home-line);transform:translateY(-3px)}
.home-news .home-section-heading{gap:26px}.home-news .home-section-heading nav{max-width:630px}
.home-news .home-news-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.home-news .home-news-card--lead{grid-column:span 2;grid-row:span 1}
.home-news .home-news-card--lead h3{font-size:clamp(27px,3vw,42px)}
/* New discovery rail replaces one oversized second logo with actual relevant destinations. */
.home-world{width:min(1320px,calc(100% - 48px));margin:0 auto;padding:84px 0 78px;border-bottom:1px solid var(--line)}
.home-world .home-section-heading h2 span,.home-service-intro h2 span{color:var(--home-accent)}
.home-world__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.home-world__item{position:relative;min-height:260px;min-width:0;padding:26px;display:flex;align-items:flex-start;flex-direction:column;overflow:hidden;color:#f8fbf6;border:1px solid rgba(186,255,57,.24);background:linear-gradient(145deg,rgba(186,255,57,.05),#0a100b 55%);text-decoration:none;transition:transform .24s,border-color .24s}
.home-world__item:before{content:"";position:absolute;width:130px;height:130px;right:-80px;top:-70px;border:1px solid rgba(186,255,57,.34);transform:rotate(45deg);transition:transform .3s}
.home-world__item:hover{transform:translateY(-5px);border-color:var(--home-accent)}.home-world__item:hover:before{transform:translate(-20px,20px) rotate(45deg)}
.home-world__number{color:var(--home-accent);font-size:9px;font-weight:900;letter-spacing:.13em}
.home-world__item strong{display:block;margin:24px 0 6px;font:400 clamp(30px,3vw,46px)/1.02 'Alata',sans-serif}
.home-world__item p{max-width:30ch;margin:0;color:#b1bcb0;font-size:12px;line-height:1.7}
.home-world__item b{margin-top:auto;padding-top:24px;color:var(--home-accent);font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.home-service-intro{width:min(1320px,calc(100% - 48px));margin:0 auto;padding:74px 0 24px}
.home-service-intro h2{margin:0;font:400 clamp(35px,5vw,64px)/1 'Alata',sans-serif}
.home-service-intro>p:last-child{max-width:760px;color:#a7b6a8;font-size:13px;line-height:1.7}
.home-context-grid{margin-top:0!important}
/* Responsive: no horizontal overflow, no forced round corners. */
@media(max-width:1100px){.hero--vibrant .hero__inner{grid-template-columns:minmax(0,1fr) minmax(210px,.63fr)}.hero--vibrant .hero__brand{min-height:290px}.hero--vibrant .hero__signal{width:min(30vw,310px)}.home-charts .home-chart-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.hero--vibrant{min-height:0;padding:52px 0}.hero--vibrant .hero__inner{grid-template-columns:1fr}.hero--vibrant .hero__brand{display:none}.home-contact{grid-template-columns:1fr}.home-jump{gap:8px;padding-block:16px}.home-jump span{flex:1 0 100%}.home-news .home-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-news .home-news-card--lead{grid-column:span 2}.home-world__grid{grid-template-columns:1fr 1fr}.home-world__item:last-child{grid-column:1/-1;min-height:215px}}
@media(max-width:700px){.hero--vibrant{padding:34px 0 42px}.hero--vibrant .hero__content h1{font-size:clamp(44px,10vw,69px)}.home-jump,.home-world,.home-service-intro{width:calc(100% - 32px)}.home-jump{margin-bottom:24px}.home-jump a{flex:1 0 auto;justify-content:center}.home-contact__cards{grid-template-columns:1fr}.home-contact__cards>a{min-height:155px}.home-charts .home-chart-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.home-charts .home-chart-row{padding:10px;gap:7px}.home-charts .home-chart-row h3{font-size:17px}.home-news .home-news-grid{grid-template-columns:1fr}.home-news .home-news-card--lead{grid-column:auto}.home-news .home-news-card--lead h3{font-size:29px}.home-world{padding:60px 0}.home-world__grid{grid-template-columns:1fr}.home-world__item,.home-world__item:last-child{grid-column:auto;min-height:215px}.home-service-intro{padding-top:55px}.home-recent,.home-playlists,.home-charts,.home-news,.home-team{padding-top:58px;padding-bottom:62px}}
@media(max-width:400px){.home-charts .home-chart-list{grid-template-columns:1fr 1fr}.home-charts .home-chart-row>b{display:none}.home-jump a{flex-basis:calc(50% - 12px)}}
@keyframes home-ambient{from{opacity:.5;transform:translateX(-2%)}to{opacity:1;transform:translateX(2%)}}
@keyframes home-orbit{from{transform:rotate(-5deg);opacity:.6}to{transform:rotate(5deg);opacity:1}}
@keyframes home-eq{0%{transform:scaleY(.4);opacity:.65}100%{transform:scaleY(1);opacity:1}}
/* JS only augments content that is already visible. Disabled with reduced motion. */
.home-reveal{animation:home-reveal-in .65s both;animation-play-state:paused}
.home-reveal.is-visible{animation-play-state:running}
@keyframes home-reveal-in{from{transform:translateY(17px);opacity:.72}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.hero--vibrant .hero__glow,.hero--vibrant .hero__orbit,.hero--vibrant .hero__soundwave i{animation:none!important}.home-reveal{animation:none!important}.home-contact__cards>a,.home-world__item,.home-recent .home-recent-card,.home-playlist-card,.home-news-card,.home-chart-row{transition:none!important}}
/* If no hotline exists, the final contact card spans the width instead of leaving a visual gap. */
@media(min-width:701px){.home-contact__cards>a:nth-child(3):last-child{grid-column:1/-1;min-height:175px}}

/* 4.1.70: Editorial news appear immediately after the hero shortcuts. */
.home-jump{margin-bottom:18px}
.home-news{padding-top:20px;padding-bottom:66px}
.home-news .home-section-heading{align-items:end}
.home-news .home-news-grid{gap:14px}
.home-news .home-news-card--lead{border-color:rgba(186,255,57,.35)}
.home-program-line{padding-top:34px;border-top:1px solid rgba(255,255,255,.11)}
/* Programme cards: real show art from the existing ProgramSchedule event, not current-song artwork. */
.home-program-line__grid article.home-program-show{display:grid;grid-template-columns:minmax(92px,124px) minmax(0,1fr);align-items:center;gap:18px;min-height:174px;padding:16px}
.home-program-show__art{display:block;width:100%;aspect-ratio:1;min-width:0;overflow:hidden;background:linear-gradient(145deg,#1a3012,#090e09);border:1px solid rgba(186,255,57,.22)}
.home-program-show__art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#080b09}
.home-program-show__art:focus-visible{outline:2px solid var(--home-accent);outline-offset:3px}
.home-program-show__placeholder{display:flex;align-items:center;justify-content:center;gap:5px;height:100%;width:100%;background:radial-gradient(ellipse at 80% 20%,rgba(186,255,57,.18),transparent 70%),#101810}
.home-program-show__placeholder i{display:block;width:6px;height:34%;background:var(--home-accent);opacity:.8}
.home-program-show__placeholder i:nth-child(2),.home-program-show__placeholder i:nth-child(4){height:58%}.home-program-show__placeholder i:nth-child(3){height:76%}
.home-program-show__info{min-width:0}
.home-program-line__grid .home-program-show__info>span{display:block;line-height:1.6}
.home-program-line__grid .home-program-show__info h3{margin:10px 0 6px;font-size:clamp(18px,1.7vw,25px);overflow-wrap:anywhere}
.home-program-line__grid .home-program-show__info p{overflow-wrap:anywhere}
@media(max-width:1100px){.home-program-line__grid article.home-program-show{grid-template-columns:88px minmax(0,1fr);gap:12px;padding:12px}}
@media(max-width:900px){.home-program-line__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-program-line__grid article.home-program-show{grid-template-columns:90px minmax(0,1fr)}}
@media(max-width:760px){.home-program-line__grid{grid-template-columns:1fr}.home-program-line__grid article.home-program-show{grid-template-columns:92px minmax(0,1fr);gap:14px;min-height:0;padding:14px}.home-news{padding-top:18px;padding-bottom:50px}.home-program-line{padding-top:28px}}
@media(max-width:400px){.home-program-line__grid article.home-program-show{grid-template-columns:80px minmax(0,1fr);gap:11px}.home-program-line__grid .home-program-show__info h3{font-size:19px}}
