/*
 * RadyoClas responsive hardening layer.
 * Loaded after global.css and the active page stylesheet so mobile behavior
 * has one predictable final source of truth without changing desktop art direction.
 */
:root{
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --mobile-gutter:clamp(14px,4vw,28px);
  --mobile-player-h:72px;
  --fixed-top:calc(var(--safe-top) + var(--ticker-h) + var(--header-h));
}

html{
  max-width:100%;
  overflow-x:clip;
  scroll-padding-top:calc(var(--fixed-top) + 16px);
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body{
  min-width:0;
  max-width:100%;
  overflow-x:clip;
  padding-bottom:var(--player-occupied-h,calc(var(--player-h) + var(--safe-bottom)));
}

main,main>section,.container,.site-container,
.header-right,.player-meta,.drawer-now>div,
.footer-grid>div,.footer-brand,.footer-statement,.channel-card{
  min-width:0;
}

.channel-card>*{max-width:100%;overflow-wrap:anywhere}
@media(min-width:801px){.contact-channels{grid-template-columns:repeat(3,minmax(0,1fr))}}

img,svg,canvas,video,iframe{max-width:100%}
input,textarea,select,button{max-width:100%}

p,h1,h2,h3,strong,small,a,span{
  overflow-wrap:break-word;
}

:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  outline:3px solid var(--cyan,#28c6df);
  outline-offset:3px;
}

.ticker{top:var(--safe-top)}
.site-header,.header-overlay .site-header{top:calc(var(--safe-top) + var(--ticker-h))}
.site-drawer,.search-panel,.drawer-backdrop{padding-top:var(--safe-top)}
.site-drawer{padding-bottom:calc(24px + var(--safe-bottom))}
.radio-player{padding-bottom:var(--safe-bottom)}
.floating-request{bottom:calc(var(--player-occupied-h,var(--player-h)) + 20px)}

.dialog-backdrop{
  padding:
    calc(16px + var(--safe-top))
    calc(16px + var(--safe-right))
    calc(16px + var(--safe-bottom))
    calc(16px + var(--safe-left));
}
.request-dialog{max-height:calc(100vh - var(--safe-top) - var(--safe-bottom) - 32px);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 32px);overflow-y:auto;overscroll-behavior:contain}

/* Only purpose-built rails may scroll horizontally. */
.day-tabs,.program-strip,.media-strip,
.hero-showcase__viewport,.partners-viewport{
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}

@media (pointer:coarse), (max-width:1024px){
  :where(button,.btn,.icon-btn,.more-toggle,.header-play,.drawer-close,.player-expand,.player-volume button){
    min-width:44px;
    min-height:44px;
  }
  :where(.desktop-nav a,.drawer-nav a,.footer a,.day-tabs button){min-height:44px}
}

@media(max-width:1024px){
  :root{--mobile-gutter:clamp(16px,3.5vw,28px)}
  .container,.site-container{width:calc(100% - (var(--mobile-gutter) * 2));max-width:100%;margin-inline:auto}
  .section-pad,.section-space{scroll-margin-top:calc(var(--fixed-top) + 12px)}

  .about-heading,.management-heading,.news-section-head,.media-heading,
  .request-feed__head,.form-head{
    gap:24px;
  }

  .day-tabs{justify-content:flex-start;scroll-snap-type:x proximity}
  .day-tabs button{scroll-snap-align:center;flex:0 0 auto}
  .day-tabs button.is-active{scroll-margin-inline:20px}
}

@media(max-width:980px){
  .home-hero{display:block}
}

@media(max-width:760px){
  :root{
    --ticker-h:38px;
    --header-h:72px;
    --player-h:var(--mobile-player-h);
    --mobile-gutter:clamp(14px,4vw,20px);
  }

  body{padding-bottom:var(--player-occupied-h,calc(var(--mobile-player-h) + var(--safe-bottom)))}
  .container,.site-container{width:calc(100% - (var(--mobile-gutter) * 2))}

  .site-header,.header-overlay .site-header{
    height:var(--header-h);
    padding-left:max(var(--mobile-gutter),var(--safe-left));
    padding-right:max(var(--mobile-gutter),var(--safe-right));
  }
  .header-right{gap:7px}
  .header-play,.more-toggle{flex:0 0 44px;width:44px;height:44px;padding:0;justify-content:center}
  .more-toggle span,.header-play b{display:none}

  .site-drawer{
    width:min(92vw,390px);
    max-width:calc(100vw - var(--safe-left));
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .drawer-nav a{padding-block:10px}
  .drawer-now strong,.drawer-now small{white-space:normal;overflow:visible;text-overflow:clip}

  .radio-player{
    height:calc(var(--mobile-player-h) + var(--safe-bottom));
    grid-template-columns:38px 46px minmax(0,1fr) 38px;
    gap:3px;
    padding:0 max(7px,var(--safe-right)) var(--safe-bottom) max(7px,var(--safe-left));
  }
  .radio-player.is-expanded{height:calc(117px + var(--safe-bottom));padding-bottom:calc(43px + var(--safe-bottom))}
  .player-live{min-width:0}
  .player-play{width:42px;height:42px}
  .player-meta{padding-inline:9px}
  .player-meta strong{font-size:clamp(12px,3.8vw,14px)}
  .player-meta small{font-size:9px}
  .player-expand{padding:0}
  .player-expanded-note{height:43px;padding:7px max(12px,var(--safe-right)) calc(7px + var(--safe-bottom)) max(12px,var(--safe-left));text-align:center}
  .floating-request{right:max(12px,var(--safe-right));bottom:calc(var(--player-occupied-h,calc(var(--mobile-player-h) + var(--safe-bottom))) + 12px)}

  .dialog-backdrop{align-items:flex-end;padding:var(--safe-top) var(--safe-right) 0 var(--safe-left)}
  .request-dialog{
    width:100%;
    max-height:calc(100vh - var(--safe-top));
    max-height:calc(100dvh - var(--safe-top));
    padding:28px var(--mobile-gutter) calc(22px + var(--safe-bottom));
    border-radius:20px 20px 0 0;
  }
  .request-dialog input,.request-dialog textarea,
  .request-field input,.request-field textarea,
  .search-panel input{font-size:16px}
  .form-result{scroll-margin-bottom:calc(var(--mobile-player-h) + 24px)}

  input:not([type="hidden"]):not([type="range"]),textarea,select{font-size:16px}
  button,input:not([type="hidden"]):not([type="range"]),select{min-height:44px}
  .pwa-install-banner{position:relative;inset:auto;z-index:auto;width:calc(100% - 28px);max-width:520px;margin:24px auto;padding:14px 44px 14px 12px;grid-template-columns:40px minmax(0,1fr);gap:10px;box-shadow:none}
  .pwa-install-banner img{width:40px;height:40px}
  .pwa-install-banner strong{font-size:14px;white-space:normal}
  .pwa-install-banner small{font-size:12px;white-space:normal}
  .pwa-install-banner>[data-pwa-install]{grid-column:1/-1;height:44px;font-size:12px}
  .pwa-install-banner__close{width:44px;height:44px;right:0;top:0}
  .pwa-guide{max-height:calc(100dvh - var(--safe-top));overflow-y:auto}
  body.page-request .floating-request,body.page-contact .floating-request,body.keyboard-open .floating-request,body:has(.dialog-backdrop:not([hidden])) .floating-request{visibility:hidden;pointer-events:none}
  .player-expanded-note{bottom:var(--safe-bottom);padding-bottom:7px}

  /* Home: live status -> now playing -> play -> programme details. */
  .home-hero__content{width:calc(100% - (var(--mobile-gutter) * 2));margin-inline:auto}
  .home-hero__copy{display:flex;flex-direction:column;align-items:flex-start}
  .home-hero__kicker,.home-hero .live-pill{order:1}
  .home-hero h1{order:2}
  .home-hero__copy>p:not(.home-hero__kicker){order:3}
  .home-hero__play,.home-hero__copy>[data-player-toggle]{order:4}
  .broadcast-dashboard{grid-template-columns:1fr}
  .broadcast-feature{grid-row:auto;min-height:520px}
  .broadcast-feature__footer{align-items:flex-start;gap:14px}
  .broadcast-feature__identity{min-width:0}
  .broadcast-feature__identity strong,.upcoming-item strong,.week-list strong{white-space:normal;overflow:visible;text-overflow:clip}
  .home-announcements__list,.music-news__grid{grid-template-columns:1fr}

  /* Content rails keep their scroll local to the component. */
  .hero-showcase__viewport,.program-strip,.media-strip,.partners-viewport{overflow-x:auto;scroll-snap-type:x mandatory}
  .hero-showcase__track,.program-strip__track,.media-strip__track,.partners-track{animation:none;transform:none}
  .hero-showcase__track>* ,.program-strip__card,.media-strip__track>* ,.partners-track>*{scroll-snap-align:start}

  /* Live page */
  .live-hero__mast,.live-hero__grid,.live-status__grid,.listen-anywhere__grid{grid-template-columns:1fr}
  .live-hero__mast{gap:16px}
  .live-visual{min-height:390px}
  .live-console__actions,.live-primary,.live-secondary{min-width:0}
  .live-console__actions{flex-wrap:wrap}
  .live-console h1,.live-console h2,.live-console strong{overflow-wrap:anywhere}

  /* Programmes and schedule */
  .programs-showcase__content,.presenter-roster>.container,
  .schedule-board>.container,.program-detail>.container{width:calc(100% - (var(--mobile-gutter) * 2))}
  .program-detail__hero,.program-detail__about,.program-detail__hours,
  .program-detail__hours>div{grid-template-columns:1fr}
  .day-tabs{margin-inline:calc(var(--mobile-gutter) * -1);padding-inline:var(--mobile-gutter);scroll-padding-inline:var(--mobile-gutter)}
  .schedule-card,.presenter-card{min-width:0}
  .schedule-card strong,.presenter-card strong,.program-detail strong{white-space:normal;overflow:visible;text-overflow:clip}

  /* Media, news, about and management become deliberate reading flows. */
  .media-showcase__content,.media-heading,.podcast-zone__head,
  .podcast-stage,.video-grid,.news-hero__layout,.news-section-head,
  .news-feature,.news-network>.site-container,.about-hero__layout,
  .about-heading,.about-story__layout,.about-network__map,
  .about-process>.site-container,.management-hero__layout,
  .management-heading,.management-leaders__grid,.management-flow__board,
  .management-contact>.site-container{
    grid-template-columns:1fr;
  }
  .media-orbit{width:min(280px,82vw);justify-self:center}
  .media-showcase__beams,.request-hero__beams{opacity:.35}
  .video-grid,.news-journal__grid,.about-values__grid,.about-network__cards,
  .management-duties__grid{grid-template-columns:1fr}
  .news-feature__media,.news-card__media{min-height:clamp(300px,95vw,420px)}
  .news-network__routes strong{overflow-wrap:anywhere}
  .about-network__core{width:min(230px,75vw);justify-self:center}
  .about-hero__visual,.management-console{width:100%;max-width:100%}
  .about-hero__actions,.management-hero__actions,.management-contact__links{flex-wrap:wrap}
  .management-team__track{overflow-x:auto;scroll-snap-type:x mandatory;animation:none;transform:none}
  .management-team__card{scroll-snap-align:start}

  /* Request and contact */
  .request-hero__content,.request-studio__grid,.request-feed__head,
  .request-feed__grid,.contact-hero__grid,.contact-channels,
  .social-wall__grid{grid-template-columns:1fr}
  .request-hero__content,.request-studio>.container,.request-feed>.container{width:calc(100% - (var(--mobile-gutter) * 2))}
  .request-signal{width:100%}
  .request-form{padding:clamp(18px,5vw,24px)}
  .request-field{grid-template-columns:28px minmax(0,1fr) 18px}
  .request-form__footer{align-items:stretch;flex-direction:column}
  .request-form__footer button{justify-content:center}
  .contact-hero{padding-block:clamp(120px,32vw,160px) 75px}
  .contact-hero__signal{width:min(250px,74vw);height:min(250px,74vw)}
  .channel-card{min-height:0}
  .channel-card small{margin-top:25px}
  .channel-card strong,.contact-channels a,.social-wall__grid a{overflow-wrap:anywhere}

  .footer{padding-bottom:calc(30px + var(--safe-bottom))}
  .footer-top{grid-template-columns:1fr}
  .footer .footer-grid{grid-template-columns:1fr 1fr}
  .footer .footer-bottom{align-items:flex-start;flex-direction:column}
}

@media(max-width:480px){
  :root{--mobile-gutter:14px}
  h1{font-size:clamp(2.75rem,14vw,4rem)}
  h2{font-size:clamp(2.15rem,11vw,3.25rem)}
  .ticker__label{max-width:82px;padding-inline:9px}
  .ticker__item{padding-inline:12px}
  .site-header .brand{width:104px}
  .site-header .brand img{width:104px;height:104px}
  .broadcast-feature{min-height:480px}
  .broadcast-feature__footer{padding-inline:16px}
  .live-visual{min-height:340px}
  .media-showcase__actions{align-items:stretch;flex-direction:column}
  .media-showcase__actions>*{width:100%}
  .about-purpose,.about-partners__grid,.management-hero__people{grid-template-columns:1fr}
  .footer .footer-grid{grid-template-columns:1fr}
  .social-wall__grid a{font-size:clamp(1.35rem,8vw,2rem);padding-inline:18px}
  .floating-request{width:46px;padding:0;justify-content:center}
  .floating-request span{display:none}
}

@media(max-width:360px){
  .header-play{display:none}
  .site-header .brand{width:96px}
  .site-header .brand img{width:98px;height:98px}
  .radio-player{grid-template-columns:34px 43px minmax(0,1fr) 34px;padding-inline:5px}
  .player-live .live-dot{width:7px;height:7px}
  .player-meta{padding-inline:6px}
  .request-dialog{padding-inline:14px}
}

/* Homepage mobile experience: one calm reading rhythm from 320px to tablet. */
.home-mobile-live{display:none}

@media(max-width:760px){
  .page-home{
    --home-gap:clamp(14px,4vw,20px);
    --home-radius:18px;
  }

  .page-home .site-header .brand{width:104px;height:68px}
  .page-home .site-header .brand img{top:-15px;width:104px;height:104px}

  .page-home .home-hero{
    min-height:0;
    padding:0 0 44px;
    overflow:hidden;
    background:#07090e;
  }
  .page-home .home-hero:before{
    background-position:center var(--fixed-top);
    background-size:100% auto;
    filter:saturate(1.02) contrast(1.03);
  }
  .page-home .home-hero:after{
    background:linear-gradient(180deg,transparent var(--fixed-top),transparent calc(var(--fixed-top) + 35vw),#07090e calc(var(--fixed-top) + 40vw),#07090e 100%);
  }
  .page-home .home-hero__ambient{opacity:.22}
  .page-home .home-hero__content{
    width:calc(100% - (var(--mobile-gutter) * 2));
    gap:16px;
    padding:calc(var(--fixed-top) + 40vw + 14px) 0 22px;
  }
  .page-home .home-hero__copy{
    gap:0;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
  }
  .page-home .home-hero .live-pill{
    order:1;
    margin:0 0 10px;
    padding:8px 11px;
    font-size:.64rem;
    letter-spacing:.1em;
  }
  .home-mobile-live{
    order:2;
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) 82px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    border-radius:var(--home-radius);
    background:linear-gradient(135deg,rgba(22,24,31,.98),rgba(10,11,16,.98));
    box-shadow:0 18px 45px rgba(0,0,0,.3),inset 0 3px 0 rgba(233,45,51,.72);
  }
  .home-mobile-live__now{min-width:0;padding:17px 16px 13px;display:grid}
  .home-mobile-live__now span,.home-mobile-live__show span{color:#ff8750;font:800 .58rem Rajdhani,Inter,sans-serif;letter-spacing:.13em}
  .home-mobile-live__now strong{margin:6px 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 clamp(1.15rem,5vw,1.45rem) "Space Grotesk",Inter,sans-serif}
  .home-mobile-live__now small{overflow:hidden;color:rgba(255,255,255,.58);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}
  .home-mobile-live>button{
    min-width:82px;
    display:grid;
    place-content:center;
    justify-items:center;
    gap:5px;
    border:0;
    border-left:1px solid rgba(255,255,255,.1);
    background:linear-gradient(145deg,#d92331,#ff7b21);
    color:#fff;
  }
  .home-mobile-live>button>span{width:42px;height:42px;display:grid;place-items:center;padding-left:2px;border-radius:50%;background:#fff;color:#db2932;font-size:1rem;box-shadow:0 8px 22px rgba(0,0,0,.22)}
  .home-mobile-live>button>b{font:800 .56rem/1.05 Rajdhani,Inter,sans-serif;letter-spacing:.1em}
  .home-mobile-live__show{grid-column:1/-1;min-width:0;padding:12px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;border-top:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}
  .home-mobile-live__show span{grid-column:1/-1;color:#35d6e3}
  .home-mobile-live__show strong{min-width:0;overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}
  .home-mobile-live__show small{color:rgba(255,255,255,.52);font-size:.66rem;text-align:right}

  .page-home .home-hero__kicker{order:3;margin:18px 0 8px;font-size:.63rem;letter-spacing:.14em}
  .page-home .home-hero h1{order:4;max-width:340px;font-size:clamp(2.45rem,11.5vw,3.45rem);line-height:.91;letter-spacing:-.065em}
  .page-home .home-hero__play{display:none}
  .page-home .hero-showcase{padding-left:var(--mobile-gutter)}
  .page-home .hero-showcase__viewport{mask-image:none}
  .page-home .hero-showcase__track{gap:12px}
  .page-home .host-card{flex-basis:min(78vw,330px);aspect-ratio:1.45;border-radius:15px}
  .page-home .host-card__body{left:16px;right:16px;bottom:15px}
  .page-home .host-card h3{font-size:1.1rem}

  .page-home .section-pad,.page-home .section-space{padding-block:clamp(58px,15vw,76px)}
  .page-home .broadcast-center__head{gap:16px;margin-bottom:18px;padding:19px 17px}
  .page-home .broadcast-center__head h2{font-size:clamp(2.5rem,12vw,3.55rem)}
  .page-home .broadcast-center__intro{padding-left:13px}
  .page-home .broadcast-center__intro p{margin-bottom:14px;font-size:.8rem;line-height:1.55}
  .page-home .broadcast-statusbar{display:none}
  .page-home .broadcast-dashboard{gap:14px}
  .page-home .broadcast-feature{min-height:clamp(430px,118vw,520px);border-radius:var(--home-radius)}
  .page-home .broadcast-feature>img{object-position:center 16%}
  .page-home .broadcast-feature__top{left:14px;right:14px;top:14px;font-size:.58rem}
  .page-home .live-state{padding:7px 10px}
  .page-home .broadcast-feature__identity{left:17px;right:17px;bottom:105px}
  .page-home .broadcast-feature__identity h3{margin-top:9px;font-size:clamp(2.25rem,11vw,3.25rem)}
  .page-home .broadcast-signal{bottom:92px;height:50px;padding-inline:12px}
  .page-home .broadcast-feature__footer{min-height:92px;padding:13px 14px;align-items:center}
  .page-home .broadcast-feature__footer strong{max-width:52vw;font-size:.94rem}
  .page-home .broadcast-feature__play{min-width:51px;height:51px;padding:0;border:0;background:transparent}
  .page-home .broadcast-feature__play span{width:51px;height:51px}
  .page-home .broadcast-side{gap:12px}
  .page-home .upcoming-panel,.page-home .week-panel{border-radius:var(--home-radius)}
  .page-home .upcoming-panel header,.page-home .week-panel header{padding:16px}
  .page-home .upcoming-item{min-height:68px;grid-template-columns:68px minmax(0,1fr) 34px;padding:7px}
  .page-home .upcoming-item img{width:68px;height:54px}
  .page-home .upcoming-item strong{font-size:.88rem}
  .page-home .week-list>div{grid-template-columns:62px 7px minmax(0,1fr) auto;font-size:.58rem}
  .page-home .upcoming-list .upcoming-item:nth-child(n+4),
  .page-home .week-list>div:nth-child(n+5){display:none}

  .page-home .home-announcements{padding-block:58px}
  .page-home .home-announcements__head{margin-bottom:22px}
  .page-home .home-announcements__head h2{font-size:clamp(2.1rem,10vw,2.8rem)}
  .page-home .home-announcements__list{
    display:flex;
    gap:12px;
    margin-inline:calc(var(--mobile-gutter) * -1);
    padding:0 var(--mobile-gutter) 8px;
    overflow-x:auto;
    scroll-padding-inline:var(--mobile-gutter);
    scroll-snap-type:x mandatory;
    scrollbar-width:thin;
  }
  .page-home .home-announcement{flex:0 0 min(84vw,340px);margin:0;border-radius:14px;scroll-snap-align:start}
  .page-home .home-announcement__media{height:auto;aspect-ratio:16/8.4}
  .page-home .home-announcement__body{gap:4px;padding:14px 15px 16px}

  .page-home .music-news__mast{gap:14px;margin-bottom:22px;padding-bottom:21px}
  .page-home .music-news__mast h2{font-size:clamp(3rem,15vw,4.5rem);line-height:.84}
  .page-home .music-news__mast>p{font-size:.8rem;line-height:1.55}
  .page-home .music-news__layout{gap:13px}
  .page-home .music-news__lead{min-height:clamp(400px,112vw,490px);border-radius:var(--home-radius)}
  .page-home .music-news__lead>div{left:18px;right:18px;bottom:18px}
  .page-home .music-news__lead h3{font-size:clamp(2rem,9.5vw,2.8rem)}
  .page-home .music-news__lead p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:.76rem}
  .page-home .music-news__lead footer{margin-top:14px;padding-top:12px}
  .page-home .music-news__grid{display:grid;grid-template-columns:1fr;gap:12px;overflow:visible;padding:0}
  .page-home .music-news__card{min-width:0;display:grid;grid-template-columns:42% minmax(0,1fr);border-radius:16px}
  .page-home .music-news__card>a{height:100%;min-height:160px}
  .page-home .music-news__card>div{padding:14px}
  .page-home .music-news__card h3{font-size:1.05rem}
  .page-home .music-news__card p{-webkit-line-clamp:2;font-size:.68rem}

  .page-home .section-heading{margin-bottom:27px}
  .page-home .section-heading h2{font-size:clamp(2.35rem,11vw,3.1rem)}
  .page-home .partners-track>div{width:min(46vw,180px);height:96px;padding:18px}
  .page-home .partners-track img{max-width:130px;max-height:52px}
  .page-home .request-band{padding-block:58px}
  .page-home .request-band .site-container{align-items:stretch;flex-direction:column;gap:24px}
  .page-home .request-band h2{font-size:clamp(2.45rem,12vw,3.5rem);line-height:.9}
  .page-home .request-circle{width:100%;aspect-ratio:auto;min-height:58px;display:flex;place-content:initial;justify-content:center;align-items:center;border-radius:999px}
  .page-home .request-circle span{font-size:1rem}
  .page-home .request-circle>svg:first-child{display:block;width:20px}
  .page-home .info-ticker{height:48px}
}

@media(max-width:380px){
  .home-mobile-live{grid-template-columns:minmax(0,1fr) 72px}
  .home-mobile-live>button{min-width:72px}
  .page-home .home-hero h1{font-size:2.35rem}
  .page-home .broadcast-feature__footer strong{max-width:48vw}
  .page-home .music-news__card{grid-template-columns:38% minmax(0,1fr)}
  .page-home .music-news__card p{display:none}
}

/* Complete mobile system: compact shared footer and deliberate page flows. */
@media(max-width:760px){
  /* The common footer should finish the page quickly, not become another page. */
  .footer{
    padding:38px 0 calc(22px + var(--safe-bottom));
  }
  .footer .footer-top{
    display:block;
    padding-bottom:22px;
  }
  .footer .footer-brand{display:grid;gap:7px}
  .footer .footer-brand-logo{width:112px}
  .footer .footer-brand-logo img{width:112px;height:54px}
  .footer .footer-brand>p{
    max-width:330px;
    margin:2px 0 4px;
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    font-size:.69rem;
    line-height:1.48;
  }
  .footer .footer-brand>a:not(.footer-brand-logo){min-height:0;padding:4px 0;font-size:.66rem}
  .footer .footer-statement{display:none}
  .footer .footer-grid{
    display:grid;
    grid-template-columns:1fr 1fr!important;
    gap:22px 18px;
    padding-block:25px;
  }
  .footer .footer-grid>div{min-width:0;gap:5px}
  .footer .footer-grid h3{margin:0 0 5px;font-size:.55rem}
  .footer .footer-grid a,.footer .footer-grid button{
    min-height:0;
    padding-block:5px;
    font-size:.68rem;
    line-height:1.3;
  }
  .footer .social-row{gap:7px}
  .footer .social-row a{width:38px;height:38px;padding:0}
  .footer .store-link{width:fit-content}
  .footer .footer-grid small{font-size:.58rem;line-height:1.45}
  .footer .footer-bottom{gap:5px;padding-top:17px;font-size:.57rem;line-height:1.45}

  /* Partners keep moving on touch screens; reduced-motion still stops them. */
  .page-home .partners-viewport{overflow:hidden;scroll-snap-type:none}
  .page-home .partners-track{
    animation:partnerTicker 24s linear infinite!important;
    transform:translateZ(0);
    will-change:transform;
  }
  .page-home .partners-track>div{flex:0 0 min(44vw,175px)}
  .page-home .section-heading h2{font-size:clamp(2.15rem,10vw,2.75rem)}
  .page-home .request-band .site-container{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
  }
  .page-home .request-circle{
    width:100%!important;
    height:58px!important;
    min-height:58px;
    aspect-ratio:auto!important;
  }

  /* Shared page typography and spacing. */
  :is(.live-hero,.media-showcase,.news-hero,.about-hero,.management-hero,.request-hero,.contact-hero) h1{
    max-width:100%;
    font-size:clamp(2.65rem,12vw,3.65rem)!important;
    line-height:.9!important;
    overflow-wrap:normal;
  }
  :is(.live-hero,.media-showcase,.news-hero,.about-hero,.management-hero,.request-hero,.contact-hero) p{
    max-width:100%;
    font-size:.8rem;
    line-height:1.6;
  }
  :is(.about-heading,.management-heading,.news-section-head,.media-heading,.podcast-zone__head,.request-feed__head,.form-head) h2{
    font-size:clamp(2.15rem,10vw,3rem)!important;
    line-height:.94!important;
  }

  /* Live page */
  .live-hero{min-height:0;padding-block:48px 62px}
  .live-hero__grid{gap:18px}
  .live-console{padding:20px 17px;border-radius:18px}
  .live-console__actions{display:grid;grid-template-columns:1fr;gap:9px}
  .live-console__actions>*{width:100%;justify-content:center}
  .live-visual{min-height:330px;border-radius:18px}
  .live-status__grid,.listen-anywhere__grid{gap:12px}
  .live-status article,.listen-anywhere article{min-height:0;padding:19px}

  /* Programmes: mobile images and text each occupy their own space. */
  .page-programs .programs-showcase{display:block;min-height:0;padding:0;isolation:auto}
  .page-programs .programs-showcase__media{position:relative;display:block;z-index:auto;width:100%;height:auto;background:#111}
  .page-programs .programs-showcase__media>img{width:100%;height:auto;aspect-ratio:4/3;max-height:360px;object-fit:cover;object-position:center 35%}
  .page-programs .programs-showcase__shade{display:none}
  .page-programs .programs-showcase__content{padding-block:20px 28px}
  .page-programs .programs-showcase__copy{margin-top:18px;max-width:none}
  .page-programs .programs-showcase h1{font-size:clamp(28px,8vw,36px);line-height:1.12;letter-spacing:-.02em;overflow-wrap:anywhere}
  .page-programs .programs-showcase__copy>p{font-size:14px;line-height:1.4;margin-top:10px}
  .page-programs .programs-showcase__tags{flex-wrap:wrap}
  .page-programs .programs-showcase__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
  .page-programs .programs-showcase__actions>*{width:100%;min-height:44px;padding:8px;justify-content:center;font-size:10px;letter-spacing:.03em}
  .page-programs .programs-showcase__actions button span{flex-shrink:0}
  .page-programs .program-strip{margin:0;padding:10px var(--mobile-gutter);overflow-x:auto;scroll-snap-type:x proximity}
  .page-programs .program-strip__track{width:max-content;animation:none;transform:none;will-change:auto}
  .page-programs .program-strip__group{gap:8px;padding:0}
  .page-programs .program-strip__group[aria-hidden="true"]{display:none}
  .page-programs .program-strip__card{flex:0 0 auto;display:flex;align-items:center;position:relative;width:auto;height:auto;min-height:44px;padding:10px 14px;border-radius:22px;transform:none;box-shadow:none}
  .page-programs .program-strip__card>img,.page-programs .program-strip__card:after,
  .page-programs .program-strip__card span,.page-programs .program-strip__card strong,.page-programs .program-strip__card i{display:none}
  .page-programs .program-strip__card small{position:static;color:#fff;font-size:12px;line-height:1.3;white-space:nowrap}
  .page-programs .presenter-roster,.page-programs .schedule-board,.page-programs .program-detail{padding-block:32px}
  .page-programs .presenter-roster--detail{display:none}
  .page-programs .programs-heading{margin-bottom:20px}
  .page-programs .programs-heading h2{font-size:clamp(26px,7.5vw,34px);line-height:1.12}
  .page-programs .programs-heading p{font-size:10px;line-height:1.5;letter-spacing:.06em}
  .page-programs .presenter-roster__grid,.page-programs .schedule-day__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
  .page-programs .presenter-card,.page-programs .schedule-card{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border-radius:12px;transform:none}
  .page-programs .presenter-card>img,.page-programs .schedule-card>img{position:static;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center 35%;transform:none}
  .page-programs .presenter-card__shade,.page-programs .schedule-card:after,.page-programs .schedule-card>i{display:none}
  .page-programs .presenter-card>div:last-child,.page-programs .schedule-card>div{position:static;display:block;padding:12px 10px;background:#12151b;min-width:0}
  .page-programs .presenter-card span,.page-programs .schedule-card span{display:inline-block;font-size:10px;line-height:1.4;letter-spacing:.02em;overflow-wrap:anywhere}
  .page-programs .presenter-card small{display:block;font-size:12px;line-height:1.45;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}
  .page-programs .presenter-card h3,.page-programs .schedule-card h3{margin:6px 0 10px;font-size:20px;line-height:1.15;overflow-wrap:anywhere}
  .page-programs .presenter-card b{font-size:10px;min-height:32px}
  .page-programs .schedule-card time{display:block;font-size:12px;line-height:1.5;white-space:normal}
  .page-programs .day-tabs{gap:6px;padding-bottom:10px}
  .page-programs .day-tabs button{min-width:80px;min-height:44px;padding:10px;font-size:11px}
  .page-programs .program-detail__hero>img{min-height:0;max-height:320px;height:auto;aspect-ratio:4/3;object-position:center 35%}
  .page-programs .program-detail__copy{padding:20px}
  .page-programs .program-detail__copy h2{font-size:32px;line-height:1.12}
  .page-programs .program-detail__copy h3{font-size:16px;line-height:1.4}
  .page-programs .program-detail__about,.page-programs .program-detail__hours{margin-top:28px;gap:14px}
  .page-programs .program-detail__about header h2,.page-programs .program-detail__hours header h2{font-size:28px;line-height:1.15}
  .page-programs .program-detail__about p{font-size:14px;line-height:1.65}
  .page-programs .program-detail__facts strong,.page-programs .program-detail__hours article strong{font-size:14px;line-height:1.5}

  /* Media */
  .media-showcase{min-height:0;padding-block:42px 55px}
  .media-showcase__content{gap:22px}
  .media-showcase__actions{display:grid;grid-template-columns:1fr;gap:9px}
  .media-showcase__actions>*{width:100%;justify-content:center}
  .media-orbit{width:min(245px,70vw)}
  .podcast-stage{gap:14px}
  .video-grid{gap:12px}
  .video-card{min-height:0}

  /* News */
  .news-hero{min-height:0;padding-block:48px 58px}
  .news-hero__layout{gap:22px}
  .news-feature,.news-card{border-radius:18px}
  .news-feature__media,.news-card__media{min-height:250px}
  .news-feature__copy,.news-card__copy{padding:19px}
  .news-journal__grid{gap:12px}

  /* About */
  .about-hero__layout{gap:22px;padding-block:44px 68px}
  .about-hero__visual{min-height:330px;transform:none;border-radius:18px}
  .about-hero__rail>div{height:auto;grid-template-columns:1fr 1fr}
  .about-hero__rail span{min-height:42px;padding-inline:10px}
  .about-story__image{min-height:350px}
  .about-story__copy,.about-purpose article{padding:20px}
  .about-manifesto__layout{grid-template-columns:1fr!important;gap:20px}
  .about-manifesto__label{display:none}
  .about-manifesto h2{font-size:clamp(2.65rem,12vw,3.65rem)}
  .about-manifesto__copy>div{display:grid;gap:12px}
  .about-manifesto button{width:100%;min-height:56px;aspect-ratio:auto;border-radius:999px}
  .about-network__cards{grid-template-columns:1fr}
  .about-network__cards>a,.about-network__cards>article{min-height:180px;padding:20px}
  .about-values__grid{grid-template-columns:1fr}
  .about-values article{min-height:230px;padding:20px}
  .about-process ol{margin-top:10px}
  .about-partners__grid{grid-template-columns:1fr 1fr}
  .about-partners__grid>div{height:105px;padding:15px}
  .about-cta>.site-container{align-items:stretch;flex-direction:column;gap:24px}
  .about-cta h2{font-size:clamp(2.55rem,12vw,3.55rem)}
  .about-cta__actions{display:grid;grid-template-columns:1fr}
  .about-cta__actions button,.about-cta__actions>a{width:100%;min-height:54px;aspect-ratio:auto;border-radius:999px;place-content:center}

  /* Management */
  .management-hero__layout{gap:22px;padding-block:45px 65px}
  .management-console{min-height:0;padding:18px;border-radius:18px}
  .management-hero__actions{display:grid;grid-template-columns:1fr;gap:9px}
  .management-hero__actions>*{width:100%;justify-content:center}
  .management-leaders__grid,.management-duties__grid{gap:12px}
  .management-card,.duty-card,.flow-card{min-height:0;padding:19px}
  .management-flow__board{gap:12px}
  .management-contact>.site-container{gap:22px}

  /* Requests and contact */
  .request-hero__content{gap:24px;padding-block:44px 58px}
  .request-signal{padding:18px;border-radius:18px}
  .request-form{padding:18px;border-radius:18px}
  .request-guide{gap:12px}
  .request-feed article{min-height:0;padding:16px}
  .contact-hero{padding-block:55px 65px}
  .contact-hero__grid{gap:24px}
  .contact-hero__signal{width:min(220px,62vw);height:min(220px,62vw)}
  .contact-channels,.social-wall__grid{gap:12px}
  .channel-card{padding:20px;border-radius:18px}
}

@media(max-width:380px){
  .footer .footer-grid{gap:20px 12px}
  .footer .footer-grid a,.footer .footer-grid button{font-size:.63rem}
  :is(.live-hero,.media-showcase,.news-hero,.about-hero,.management-hero,.request-hero,.contact-hero) h1{font-size:2.5rem!important}
}

@media(max-height:500px) and (orientation:landscape){
  :root{--header-h:60px;--mobile-player-h:64px}
  .site-header,.header-overlay .site-header{height:var(--header-h)}
  .site-drawer{width:min(72vw,420px)}
  .drawer-now{display:none}
  .drawer-nav a{min-height:40px;padding-block:6px}
  .radio-player{height:calc(var(--mobile-player-h) + var(--safe-bottom))}
  .home-hero,.live-hero,.programs-showcase,.media-showcase,
  .news-hero,.about-hero,.management-hero,.request-hero{min-height:auto}
  .request-dialog{max-height:100vh;max-height:100dvh;border-radius:0}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  canvas[data-holographic-beams]{display:none}
}

@media(forced-colors:active){
  :where(a,button,input,textarea,select):focus-visible{outline:2px solid CanvasText}
}
