/* ZSM AUX Core 2.5.3 — audited atomic AUX transition. */
.zsm-router-overlay {
  position: fixed;
  z-index: 8800;
  top: var(--zsm-rm-header-height, 84px);
  left: 0;
  right: 0;
  height: 3px;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  background: transparent;
  transition: opacity 90ms ease, visibility 0s linear 90ms;
}
.zsm-router-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.88);
  transform: scaleX(.18);
  transform-origin: left center;
  animation: zsm-router-progress 760ms ease-in-out infinite alternate;
}
html.zsm-router-loading .zsm-router-overlay {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}
html.zsm-router-loading body { cursor: progress; }
.zsm-router-live { position: fixed; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@keyframes zsm-router-progress { to { transform: scaleX(.78); opacity: .5; } }


/* 2.5.2 route transition: keep the current page visible and only shade it
   slightly while AUX prepares the cached target. No white/teal blank frame. */
main[data-zsm-route] {
  transition: opacity 105ms ease;
}
main[data-zsm-route].zsm-route-leaving {
  opacity: .94;
  pointer-events: none;
}
main[data-zsm-route].zsm-route-entering {
  opacity: .92;
}
html.zsm-router-transitioning body { cursor: progress; }

/* CSS commit gate: target CSS is activated while the old route stays visible.
   The DOM swap happens only after the stylesheet paint gate, so users see a
   continuous page instead of an unstyled/blank intermediate frame. */
html.zsm-route-css-commit main[data-zsm-route] {
  opacity: .94;
  pointer-events: none;
}

#zsm-radio-audio { position: fixed; left: -9999px; width: 1px; height: 1px; opacity: .001; pointer-events: none; }
.zsm-mobile-menu[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
  .zsm-router-overlay::after { animation: none; transform: scaleX(.5); }
  .zsm-router-overlay { transition: none; }
  main[data-zsm-route] { transition: none; }
}


/* Mini-player popup: compact standalone player page, without the full site chrome. */
body.zsm-player-popup {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  background: #075f6a;
}
body.zsm-player-popup #proradio-menu,
body.zsm-player-popup #proradio-headerbar-content,
body.zsm-player-popup #proradio-copybar,
body.zsm-player-popup .proradio-footer,
body.zsm-player-popup footer,
body.zsm-player-popup .zsm-mobile-dock,
body.zsm-player-popup .zsm-mobile-menu,
body.zsm-player-popup .zsm-rm-agencybar,
body.zsm-player-popup .zsm-router-overlay {
  display: none;
}
body.zsm-player-popup main[data-zsm-route] {
  width: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
}
body.zsm-player-popup .elementor,
body.zsm-player-popup .elementor-section-wrap,
body.zsm-player-popup .e-con,
body.zsm-player-popup .elementor-element {
  max-width: 100%;
}
