/* OA PRESS v2.4 Theme Hardening
   Loaded LAST so every OA RADIO layout stays responsive without flattening the
   theme's individual visual identity. */
*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
img,video,svg,canvas{max-width:100%;height:auto}
.site-main,.oa-block,.page-wrap,.theme-hero,.site-header,.site-footer,.sticky-player{min-width:0}
.site-main *{min-width:0}
.site-main p,.site-main h1,.site-main h2,.site-main h3,.site-main a,.site-main span{overflow-wrap:anywhere}
.site-header{z-index:60}
.site-header nav{min-width:0}
.site-header nav a{white-space:nowrap}
.theme-hero{isolation:isolate}
.theme-hero img{object-fit:cover}
.show-card,.schedule-row,.rich-card,.now-card,.promo-card,.podcast-grid article,.team-strip article{max-width:100%}
.table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
.sticky-player{z-index:80;max-width:calc(100vw - 24px)}
.sticky-player .player-track{min-width:0}
.sticky-player .player-track b,.sticky-player .player-track small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
input,select,textarea,button{max-width:100%}

/* Theme 1 — editorial: preserve wide asymmetric composition, collapse cleanly. */
.theme-oa-radio-1 .hero-editorial{grid-template-columns:80px minmax(280px,.8fr) minmax(360px,1.1fr)}
.theme-oa-radio-1 .editorial-landscape{min-width:0}
.theme-oa-radio-1 .show-grid{align-items:stretch}

/* Theme 2 — broadcast grid. */
.theme-oa-radio-2 .hero-broadcast-grid,.theme-oa-radio-2 .broadcast-grid{max-width:100%}
.theme-oa-radio-2 .schedule-row{align-items:center}

/* Theme 3 — rock: clip decorative collage layers rather than the page. */
.theme-oa-radio-3 .hero-rock,.theme-oa-radio-3 .rock-hero{overflow:hidden}
.theme-oa-radio-3 .hero-rock img{object-position:center}

/* Theme 4 — gospel glow. */
.theme-oa-radio-4 .hero-gospel{overflow:hidden}
.theme-oa-radio-4 .hero-gospel>*{position:relative;z-index:2}

/* Theme 5 — electric pop: keep floating decoration from causing horizontal scroll. */
.theme-oa-radio-5 .hero-pop{overflow:hidden}
.theme-oa-radio-5 .hero-pop [class*="shape"],.theme-oa-radio-5 .hero-pop [class*="orb"]{pointer-events:none}

/* Theme 6 — digital pulse. */
.theme-oa-radio-6 .hero-digital{overflow:hidden}
.theme-oa-radio-6 .hero-digital>*{min-width:0}

/* Theme 7 — lime CHR. */
.theme-oa-radio-7 .hero-chr{overflow:hidden}
.theme-oa-radio-7 .hero-chr img{object-position:center top}

/* Theme 8 — acid magazine. */
.theme-oa-radio-8 .hero-magazine{overflow:hidden}
.theme-oa-radio-8 .show-grid{align-items:stretch}

/* Theme 9 — commercial broadcast. */
.theme-oa-radio-9 .hero-commercial{overflow:hidden}

/* Theme 10 — photo magazine. */
.theme-oa-radio-10 .hero-photo{overflow:hidden}
.theme-oa-radio-10 .hero-photo img{width:100%;height:100%;object-fit:cover}

/* Theme 11 — studio minimal. */
.theme-oa-radio-11 .hero-minimal{max-width:100%}

/* Theme 12 — club. */
.theme-oa-radio-12 .hero-club{overflow:hidden}

@media (max-width:1100px){
  .site-header{padding-left:20px!important;padding-right:20px!important}
  .site-header nav{gap:14px!important}
  .theme-oa-radio-1 .hero-editorial{grid-template-columns:48px minmax(260px,.9fr) minmax(320px,1fr);padding-left:28px;padding-right:28px;gap:24px}
  .theme-oa-radio-1 .editorial-landscape>span{left:10px;top:18px}
  .theme-oa-radio-3 .hero-rock,.theme-oa-radio-5 .hero-pop,.theme-oa-radio-6 .hero-digital,.theme-oa-radio-7 .hero-chr,.theme-oa-radio-9 .hero-commercial,.theme-oa-radio-10 .hero-photo,.theme-oa-radio-12 .hero-club{min-height:auto!important}
  .show-grid,.dj-grid,.artist-demo-grid,.podcast-grid,.team-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media (max-width:820px){
  body{padding-bottom:84px}
  .site-header{min-height:64px!important;height:auto!important;padding:12px 16px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important}
  .site-header .nav-toggle{display:inline-flex!important}
  .site-header nav{position:absolute!important;left:12px!important;right:12px!important;top:calc(100% + 6px)!important;display:none!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;padding:10px!important;background:var(--paper,#fff)!important;color:var(--ink,#111)!important;border:1px solid color-mix(in srgb,var(--ink,#111) 25%,transparent)!important;box-shadow:0 18px 45px rgba(0,0,0,.16)!important;z-index:90!important}
  .site-header nav.open{display:flex!important}
  .site-header nav a{display:block!important;padding:12px!important;color:inherit!important;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)!important}
  .site-header .head-actions{margin-left:auto!important}
  .site-header .head-actions>*:not(.nav-toggle):not([data-player-play]){display:none!important}
  .theme-hero{padding-left:20px!important;padding-right:20px!important}
  .theme-hero h1{font-size:clamp(42px,12vw,72px)!important;line-height:.94!important}
  .theme-oa-radio-1 .hero-editorial{display:grid!important;grid-template-columns:1fr!important;min-height:auto!important;padding-top:42px!important;padding-bottom:42px!important}
  .theme-oa-radio-1 .editorial-index{writing-mode:horizontal-tb!important;transform:none!important}
  .theme-oa-radio-1 .editorial-landscape{min-height:280px!important}
  .theme-oa-radio-1 .editorial-landscape>span{position:relative!important;display:block!important;left:auto!important;top:auto!important;padding:18px!important}
  .theme-oa-radio-2 .hero-broadcast-grid,.theme-oa-radio-3 .hero-rock,.theme-oa-radio-4 .hero-gospel,.theme-oa-radio-5 .hero-pop,.theme-oa-radio-6 .hero-digital,.theme-oa-radio-7 .hero-chr,.theme-oa-radio-8 .hero-magazine,.theme-oa-radio-9 .hero-commercial,.theme-oa-radio-10 .hero-photo,.theme-oa-radio-11 .hero-minimal,.theme-oa-radio-12 .hero-club{display:grid!important;grid-template-columns:1fr!important;gap:24px!important;min-height:auto!important}
  .theme-oa-radio-3 .hero-rock [style*="position:absolute"],.theme-oa-radio-5 .hero-pop [style*="position:absolute"],.theme-oa-radio-6 .hero-digital [style*="position:absolute"],.theme-oa-radio-7 .hero-chr [style*="position:absolute"],.theme-oa-radio-12 .hero-club [style*="position:absolute"]{max-width:65vw!important}
  .block-now_playing,.block-show_grid,.block-podcast,.block-team,.block-promo,.block-schedule_tease{padding-left:18px!important;padding-right:18px!important}
  .now-card{grid-template-columns:78px minmax(0,1fr) auto!important;gap:14px!important}
  .schedule-row{grid-template-columns:64px 60px minmax(0,1fr)!important;gap:12px!important}
  .schedule-row>a{grid-column:3!important;justify-self:start!important}
  .page-hero{padding-left:20px!important;padding-right:20px!important}
  .page-hero h1{font-size:clamp(44px,13vw,74px)!important}
  .sticky-player{position:fixed!important;left:12px!important;right:12px!important;bottom:10px!important;width:auto!important;max-width:none!important;min-height:64px!important;height:auto!important;border-radius:16px!important;display:grid!important;grid-template-columns:46px 52px minmax(0,1fr) auto!important;gap:10px!important;padding:8px 10px!important}
  .sticky-player input[type=range]{display:none!important}
}

@media (max-width:560px){
  .theme-hero{padding-top:32px!important;padding-bottom:32px!important}
  .theme-hero h1{font-size:clamp(38px,14vw,60px)!important}
  .show-grid,.dj-grid,.artist-demo-grid,.podcast-grid,.team-strip,.label-demo-grid{grid-template-columns:1fr!important}
  .now-card{grid-template-columns:62px minmax(0,1fr) 44px!important;padding:14px!important}
  .now-card .np-art{width:62px!important;height:62px!important;min-height:62px!important}
  .schedule-row{grid-template-columns:58px 52px minmax(0,1fr)!important;padding:14px 0!important}
  .schedule-row time{font-size:16px!important}
  .schedule-row h2{font-size:20px!important}
  .promo-card{padding:30px 20px!important}
  .sticky-player{grid-template-columns:42px minmax(0,1fr) 42px!important}
  .sticky-player .player-art{display:none!important}
  .sticky-player .player-live{display:none!important}
  .sticky-player .player-track b{font-size:13px!important}
  .sticky-player .player-track small{font-size:10px!important}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
