/**
 * Positive Vibes Radio — front-end design system.
 * Warm, airy, editorial. Cream surfaces, ink type, electric purple CTAs,
 * lime live signals, orange editorial accents.
 *
 * Scope: everything is namespaced .pvo-* and safe next to Elementor/Hello.
 */

/* ── 1. Tokens ─────────────────────────────────────────────────── */
:root {
	--pvo-cream: #f4efe5;
	--pvo-ivory: #fbf8f1;
	--pvo-ink: #1c1712;
	--pvo-ink-soft: #4c463d;
	--pvo-grey: #8b867e;
	--pvo-purple: #6d35f2;
	--pvo-purple-deep: #371282;
	--pvo-purple-light: #b9a1ff;
	--pvo-live: #b8ff3d;
	--pvo-orange: #f2a12c;
	--pvo-line: rgba(28, 23, 18, 0.1);
	--pvo-radius-lg: 22px;
	--pvo-radius-xl: 32px;
	--pvo-btn-radius: 999px;
	--pvo-logo-size: 40px;
	--pvo-font-head: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;
	--pvo-font-body: "DM Sans", "Helvetica Neue", Arial, sans-serif;
	--pvo-font-script: "Caveat", "Comic Sans MS", cursive;
	--pvo-header-h: 76px;
	--pvo-player-h: 92px;
	--pvo-ease: cubic-bezier(0.33, 1, 0.68, 1);
	--pvo-shadow-lg: 0 24px 60px -24px rgba(28, 23, 18, 0.35);
	--pvo-shadow-sm: 0 10px 30px -14px rgba(28, 23, 18, 0.28);
	--pvo-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}

/* ── 2. Base ───────────────────────────────────────────────────── */
body.pvo-site {
	background: var(--pvo-cream);
	color: var(--pvo-ink);
	font-family: var(--pvo-font-body);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
body.pvo-smooth { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	body.pvo-smooth { scroll-behavior: auto; }
}
body.pvo-site.pvo-has-player { padding-bottom: calc(var(--pvo-player-h) + 34px + env(safe-area-inset-bottom, 0px)); }
body.pvo-site.pvo-menu-open { overflow: hidden; }

/* Hide Hello Elementor's own chrome if the filter didn't catch it. */
body.pvo-site > header.site-header,
body.pvo-site > footer.site-footer { display: none; }

/* Base type is wrapped in :where() so component classes always win
   (a bare body.pvo-site h2 selector would out-rank .pvo-*__title). */
:where(body.pvo-site) h1, :where(body.pvo-site) h2, :where(body.pvo-site) h3, :where(body.pvo-site) h4 {
	font-family: var(--pvo-font-head);
	color: var(--pvo-ink);
	line-height: 1.08;
	letter-spacing: -0.015em;
	font-weight: 600;
	margin: 0;
}
:where(body.pvo-site) p { margin: 0; }
/* Own the box model — never rely on the active theme's reset. */
body.pvo-site *, body.pvo-site *::before, body.pvo-site *::after { box-sizing: border-box; }
body.pvo-site :focus-visible {
	outline: 3px solid var(--pvo-purple);
	outline-offset: 3px;
	border-radius: 4px;
}

.pvo-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	clip: rect(0 0 0 0); clip-path: inset(50%);
	overflow: hidden; white-space: nowrap;
}
.pvo-skip-link {
	position: fixed; top: -80px; left: 16px; z-index: 400;
	background: var(--pvo-ink); color: var(--pvo-ivory);
	padding: 12px 20px; border-radius: 12px; font-weight: 600; text-decoration: none;
	transition: top 0.2s var(--pvo-ease);
}
.pvo-skip-link:focus { top: 12px; color: var(--pvo-ivory); }
#pvo-content { outline: none; }

.pvo-icon { width: 1.15em; height: 1.15em; vertical-align: -0.2em; }

/* ── 3. Buttons / chips / badges ───────────────────────────────── */
.pvo-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	font-family: var(--pvo-font-head);
	font-weight: 600; font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase;
	border-radius: var(--pvo-btn-radius);
	border: 1.5px solid transparent;
	padding: 0 26px; min-height: 48px;
	cursor: pointer; text-decoration: none;
	transition: transform 0.25s var(--pvo-ease), box-shadow 0.25s var(--pvo-ease), background 0.25s var(--pvo-ease), color 0.25s var(--pvo-ease), border-color 0.25s var(--pvo-ease);
	line-height: 1.1;
}
.pvo-btn:hover { transform: translateY(-2px); }
.pvo-btn:active { transform: translateY(0); }
.pvo-btn--solid { background: var(--pvo-purple); color: #fff; box-shadow: 0 14px 30px -12px rgba(109, 53, 242, 0.55); }
.pvo-btn--solid:hover { background: var(--pvo-purple-deep); color: #fff; }
.pvo-btn--dark { background: var(--pvo-ink); color: var(--pvo-ivory); box-shadow: var(--pvo-shadow-sm); }
.pvo-btn--dark:hover { background: #000; color: var(--pvo-ivory); }
.pvo-btn--ghost { background: rgba(251, 248, 241, 0.66); color: var(--pvo-ink); border-color: rgba(28, 23, 18, 0.22); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.pvo-btn--ghost:hover { border-color: var(--pvo-ink); color: var(--pvo-ink); }
.pvo-btn--lg { min-height: 56px; padding: 0 34px; font-size: 15px; }
.pvo-btn--sm { min-height: 42px; padding: 0 20px; font-size: 12.5px; }
.pvo-btn__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--pvo-live); box-shadow: 0 0 0 0 rgba(184, 255, 61, 0.65); animation: pvo-pulse 2.4s infinite; }
.pvo-btn .pvo-icon { width: 1em; height: 1em; }

@keyframes pvo-pulse {
	0% { box-shadow: 0 0 0 0 rgba(184, 255, 61, 0.55); }
	70% { box-shadow: 0 0 0 9px rgba(184, 255, 61, 0); }
	100% { box-shadow: 0 0 0 0 rgba(184, 255, 61, 0); }
}

.pvo-chip {
	display: inline-flex; align-items: center; gap: 8px;
	border: 1.5px solid rgba(28, 23, 18, 0.18);
	background: var(--pvo-ivory); color: var(--pvo-ink-soft);
	border-radius: 999px; padding: 9px 18px; min-height: 44px;
	font-family: var(--pvo-font-head); font-size: 13.5px; font-weight: 600;
	cursor: pointer; transition: all 0.22s var(--pvo-ease);
}
.pvo-chip:hover { border-color: var(--pvo-purple); color: var(--pvo-purple); }
.pvo-chip.is-active { background: var(--pvo-ink); border-color: var(--pvo-ink); color: var(--pvo-ivory); }

.pvo-live-badge {
	display: inline-flex; align-items: center; gap: 9px;
	background: rgba(28, 23, 18, 0.86); color: var(--pvo-ivory);
	border-radius: 999px; padding: 8px 16px;
	font-family: var(--pvo-font-head); font-size: 12px; font-weight: 600;
	letter-spacing: 0.14em; text-transform: uppercase;
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.pvo-live-badge--compact { padding: 6px 12px; font-size: 11px; }
.pvo-live-badge__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--pvo-grey); flex: none; }
.pvo-live-badge--live .pvo-live-badge__dot { background: var(--pvo-live); animation: pvo-pulse 2.4s infinite; }
.pvo-live-badge--online .pvo-live-badge__dot { background: var(--pvo-live); }
.pvo-live-badge--offline .pvo-live-badge__dot { background: #e0564b; animation: none; }

/* ── 4. Header ─────────────────────────────────────────────────── */
.pvo-header {
	position: fixed; inset: 0 0 auto 0; z-index: 300;
	transition: background 0.35s var(--pvo-ease), box-shadow 0.35s var(--pvo-ease), backdrop-filter 0.35s var(--pvo-ease);
	background: transparent;
}
.pvo-header.is-scrolled {
	background: rgba(251, 248, 241, 0.86);
	backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
	box-shadow: 0 1px 0 var(--pvo-line), 0 12px 34px -26px rgba(28, 23, 18, 0.4);
}
body.admin-bar .pvo-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .pvo-header { top: 46px; } }

.pvo-header__inner {
	max-width: 1360px; margin: 0 auto; padding: 0 28px;
	height: var(--pvo-header-h);
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px;
}
.pvo-header__brand {
	display: inline-flex; align-items: center; gap: 12px; text-decoration: none;
	justify-self: start; color: var(--pvo-ink);
}
.pvo-header__mark, .pvo-header__logo { width: var(--pvo-logo-size); height: var(--pvo-logo-size); object-fit: contain; color: var(--pvo-ink); }
.pvo-header__name {
	font-family: var(--pvo-font-head); font-weight: 700; font-size: 15px;
	letter-spacing: 0.22em; text-transform: uppercase; white-space: nowrap;
}
.pvo-header__list { display: flex; align-items: center; gap: 6px; list-style: none; margin: 0; padding: 0; }
.pvo-header__link {
	position: relative; display: inline-flex; align-items: center; gap: 7px;
	padding: 12px 16px; min-height: 44px; text-decoration: none;
	font-family: var(--pvo-font-head); font-size: 13.5px; font-weight: 600;
	letter-spacing: 0.12em; text-transform: uppercase; color: var(--pvo-ink);
	border-radius: 10px; white-space: nowrap;
}
.pvo-header__link::after {
	content: ""; position: absolute; left: 16px; right: 16px; bottom: 7px;
	height: 2px; background: var(--pvo-purple); border-radius: 2px;
	transform: scaleX(0); transform-origin: left; transition: transform 0.28s var(--pvo-ease);
}
.pvo-header__link:hover { color: var(--pvo-purple); }
.pvo-header__link:hover::after, .pvo-header__link.is-current::after { transform: scaleX(1); }
.pvo-header__live-dot { width: 8px; height: 8px; border-radius: 50%; background: #e0564b; flex: none; }
.pvo-header__live-dot--live { background: var(--pvo-live); animation: pvo-pulse 2.4s infinite; }
.pvo-header__live-dot--online { background: var(--pvo-live); animation: none; }
.pvo-header__actions { justify-self: end; display: inline-flex; align-items: center; gap: 12px; }
.pvo-header__burger {
	width: 48px; height: 48px; border-radius: 12px;
	border: 1.5px solid rgba(28, 23, 18, 0.16); background: rgba(251, 248, 241, 0.75);
	cursor: pointer; align-items: center; justify-content: center; color: var(--pvo-ink);
}
.pvo-header__burger .pvo-icon { width: 22px; height: 22px; }
.pvo-header__burger-close { display: none; }

/*
 * Nav is written MOBILE-FIRST: the full-screen overlay is the base state, so
 * the menu button always has something to open at every width. Desktop then
 * *undoes* it for the inline centred menu. (Previously the overlay rules
 * lived only inside a max-width query — if anything made the button visible
 * on desktop it toggled state with no panel to show.)
 */
.pvo-header__inner { grid-template-columns: auto 1fr auto; padding: 0 18px; }
.pvo-header__name { font-size: 13px; letter-spacing: 0.16em; }
.pvo-header__burger { display: inline-flex; }
.pvo-header__actions .pvo-listen-live { display: none; }
.pvo-header__nav {
	position: fixed; inset: 0; z-index: -1;
	background: var(--pvo-ivory);
	display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 30px;
	padding: calc(var(--pvo-header-h) + 20px) 26px 40px;
	opacity: 0; visibility: hidden; transform: translateY(-14px);
	transition: opacity 0.32s var(--pvo-ease), transform 0.32s var(--pvo-ease), visibility 0.32s;
	overflow-y: auto;
}
.pvo-header.is-open .pvo-header__nav { opacity: 1; visibility: visible; transform: none; }
.pvo-header.is-open { background: var(--pvo-ivory); }
.pvo-header.is-open .pvo-header__burger-open { display: none; }
.pvo-header.is-open .pvo-header__burger-close { display: block; }
.pvo-header__list { flex-direction: column; gap: 8px; }
.pvo-header__link { font-size: 22px; letter-spacing: 0.1em; padding: 12px 20px; }
.pvo-header__link::after { bottom: 4px; }
.pvo-header__mobile-extra { display: flex; flex-direction: column; align-items: center; gap: 20px; }
.pvo-header__mobile-social { display: flex; gap: 14px; }
.pvo-header__mobile-social a {
	display: inline-flex; width: 48px; height: 48px; border-radius: 50%;
	border: 1.5px solid rgba(28, 23, 18, 0.16); align-items: center; justify-content: center;
	color: var(--pvo-ink);
}

/* Desktop: inline centred nav — unless the site opts into the overlay menu.
   Selectors are class-qualified (and the button hide is hardened) so theme
   or Elementor kit CSS can't resurrect the menu button here. */
@media (min-width: 1024px) {
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__inner { grid-template-columns: 1fr auto 1fr; padding: 0 28px; }
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__name { font-size: 15px; letter-spacing: 0.22em; }
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__burger { display: none !important; }
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__actions .pvo-listen-live { display: inline-flex; }
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__nav {
		position: static; inset: auto; z-index: auto; background: none;
		display: block; padding: 0; gap: 0;
		opacity: 1; visibility: visible; transform: none; transition: none; overflow: visible;
	}
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__list { flex-direction: row; gap: 6px; align-items: center; justify-content: center; }
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__link { font-size: 13.5px; letter-spacing: 0.12em; padding: 12px 16px; }
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__link::after { bottom: 7px; }
	.pvo-header:not(.pvo-header--desktop-overlay) .pvo-header__mobile-extra { display: none; }
	.pvo-header:not(.pvo-header--desktop-overlay).is-open { background: transparent; }
	.pvo-header:not(.pvo-header--desktop-overlay).is-open.is-scrolled { background: rgba(251, 248, 241, 0.86); }

	/* Opted-in desktop overlay: keep the pill in the bar, go editorial-large
	   inside the panel, and drop the duplicate action. */
	.pvo-header--desktop-overlay .pvo-header__inner { padding: 0 28px; }
	.pvo-header--desktop-overlay .pvo-header__name { font-size: 15px; letter-spacing: 0.22em; }
	.pvo-header--desktop-overlay .pvo-header__actions .pvo-listen-live { display: inline-flex; }
	.pvo-header--desktop-overlay .pvo-header__mobile-extra .pvo-listen-live { display: none; }
	.pvo-header--desktop-overlay .pvo-header__link { font-size: clamp(28px, 3.4vw, 46px); letter-spacing: 0.04em; }
	.pvo-header--desktop-overlay .pvo-header__list { gap: 4px; }
}

/* ── 5. Media / video background layer ─────────────────────────── */
.pvo-media { position: absolute; inset: 0; overflow: hidden; z-index: 0; pointer-events: none; }
.pvo-media__fallback {
	position: absolute; inset: -20%;
	background:
		radial-gradient(42% 55% at 18% 22%, rgba(233, 200, 143, 0.75) 0%, rgba(233, 200, 143, 0) 100%),
		radial-gradient(45% 60% at 82% 18%, rgba(199, 178, 255, 0.7) 0%, rgba(199, 178, 255, 0) 100%),
		radial-gradient(52% 62% at 74% 84%, rgba(242, 161, 44, 0.4) 0%, rgba(242, 161, 44, 0) 100%),
		radial-gradient(60% 60% at 26% 82%, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 100%),
		linear-gradient(165deg, #fbf8f1 0%, #f4ead7 48%, #ecdff7 100%);
	animation: pvo-clouds 26s ease-in-out infinite alternate;
}
.pvo-media--dusk .pvo-media__fallback {
	background:
		radial-gradient(42% 55% at 18% 24%, rgba(109, 53, 242, 0.5) 0%, rgba(109, 53, 242, 0) 100%),
		radial-gradient(50% 60% at 82% 16%, rgba(242, 161, 44, 0.35) 0%, rgba(242, 161, 44, 0) 100%),
		radial-gradient(55% 65% at 70% 88%, rgba(180, 75, 217, 0.4) 0%, rgba(180, 75, 217, 0) 100%),
		linear-gradient(160deg, #221244 0%, #371282 55%, #12083b 100%);
}
@keyframes pvo-clouds {
	0% { transform: translate3d(-2.5%, -1.5%, 0) scale(1); }
	100% { transform: translate3d(2.5%, 1.5%, 0) scale(1.06); }
}
.pvo-media__poster, .pvo-media__frame video, .pvo-media__frame iframe {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; object-position: var(--pvo-focal, center center);
	border: 0;
}
.pvo-media__frame { position: absolute; inset: 0; }
.pvo-media__frame iframe {
	/* Oversize YouTube to hide letterboxing. */
	inset: 50% auto auto 50%; width: max(100vw, 178vh); height: max(56.25vw, 100vh);
	transform: translate(-50%, -50%);
}
.pvo-media__poster { opacity: 1; transition: opacity 0.8s var(--pvo-ease); }
.pvo-media.is-playing .pvo-media__poster { opacity: 0; }
.pvo-media__overlay { position: absolute; inset: 0; background: var(--pvo-overlay-color, #f4efe5); opacity: var(--pvo-overlay-opacity, 0.45); }
.pvo-media__overlay--gradient {
	background:
		linear-gradient(180deg, var(--pvo-overlay-color, #f4efe5) 0%, rgba(255, 255, 255, 0) 26%, rgba(255, 255, 255, 0) 62%, var(--pvo-overlay-color, #f4efe5) 100%),
		var(--pvo-overlay-color, #f4efe5);
	background-blend-mode: normal;
}
/* Centre scrim for photographic/video backgrounds — keeps hero copy legible
   over bright skies. Tinted with the section's own overlay colour so it
   works for both the cream day sections and the dusk night ones. */
.pvo-media__scrim {
	position: absolute; inset: 0;
	background: radial-gradient(
		62% 58% at 50% 48%,
		color-mix(in srgb, var(--pvo-overlay-color, #f4efe5) 78%, transparent) 0%,
		color-mix(in srgb, var(--pvo-overlay-color, #f4efe5) 34%, transparent) 55%,
		transparent 82%
	);
}
.pvo-media__grain { position: absolute; inset: 0; background-image: var(--pvo-grain); background-size: 160px; opacity: 0.05; mix-blend-mode: multiply; }
body.pvo-site:not(.pvo-grain-on) .pvo-media__grain { display: none; }

/* ── 6. Section scaffolding ────────────────────────────────────── */
.pvo-section { position: relative; padding: 104px 0; }
.pvo-section__inner { position: relative; z-index: 1; max-width: 1220px; margin: 0 auto; padding: 0 28px; }
.pvo-section__inner--wide { max-width: 1360px; }
.pvo-section__head { max-width: 720px; margin-bottom: 54px; }
.pvo-section__title { font-size: clamp(2.1rem, 4.6vw, 3.4rem); }
.pvo-section__accent {
	font-family: var(--pvo-font-script);
	font-weight: 600; font-size: 1.24em; line-height: 0.9;
	color: var(--pvo-purple); letter-spacing: 0;
	display: inline-block; transform: rotate(-2deg); padding: 0 0.08em;
}
.pvo-section__copy { color: var(--pvo-ink-soft); font-size: 18px; margin-top: 18px; max-width: 58ch; }
.pvo-empty { color: var(--pvo-grey); font-style: italic; }

/* Sections carrying background media clip their own layers (the animated
   fallback is deliberately oversized) and keep content above them. */
.pvo-section--media { overflow: hidden; }
.pvo-section--media > .pvo-section__inner { position: relative; z-index: 1; }

/* Light-text mode — for a dark video/image behind a normally cream section. */
.pvo-section--light .pvo-section__title { color: var(--pvo-ivory); }
.pvo-section--light .pvo-section__copy { color: rgba(251, 248, 241, 0.82); }
.pvo-section--light .pvo-section__accent { color: var(--pvo-purple-light); }
.pvo-section--light .pvo-empty { color: rgba(251, 248, 241, 0.7); }

/* Reveal animations */
.pvo-reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.7s var(--pvo-ease), transform 0.7s var(--pvo-ease); }
.pvo-reveal--soft { transform: translateY(10px); }
.pvo-reveal.is-in { opacity: 1; transform: none; }
.pvo-reveal[data-reveal-delay="1"] { transition-delay: 0.08s; }
.pvo-reveal[data-reveal-delay="2"] { transition-delay: 0.16s; }
.pvo-reveal[data-reveal-delay="3"] { transition-delay: 0.24s; }
.pvo-reveal[data-reveal-delay="4"] { transition-delay: 0.32s; }
.pvo-reveal[data-reveal-delay="5"] { transition-delay: 0.4s; }
body.pvo-no-reveals .pvo-reveal, .pvo-reveal-off { opacity: 1 !important; transform: none !important; transition: none !important; }

/* ── 7. Hero ───────────────────────────────────────────────────── */
.pvo-hero {
	position: relative; overflow: hidden;
	min-height: calc(100svh - 0px);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; padding: calc(var(--pvo-header-h) + 40px) 24px 90px;
}
.pvo-hero__inner { position: relative; z-index: 2; max-width: 880px; display: flex; flex-direction: column; align-items: center; }
.pvo-hero__eyebrow {
	display: inline-flex; align-items: center; gap: 9px;
	background: rgba(28, 23, 18, 0.85); color: var(--pvo-ivory);
	border-radius: 999px; padding: 9px 18px;
	font-family: var(--pvo-font-head); font-size: 12px; font-weight: 600;
	letter-spacing: 0.22em; text-transform: uppercase;
}
.pvo-hero__eyebrow .pvo-live-badge__dot { background: var(--pvo-live); animation: pvo-pulse 2.4s infinite; }
.pvo-hero__logo { margin: 34px 0 10px; }
.pvo-hero__mark, .pvo-hero__logo-img { width: clamp(120px, 17vw, 180px); height: auto; color: var(--pvo-ink); }
.pvo-hero__title { font-size: clamp(2.4rem, 6vw, 4.6rem); letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; }
.pvo-hero__title-main { display: inline-block; }
.pvo-hero__copy { margin-top: 22px; font-size: clamp(17px, 2.2vw, 21px); color: var(--pvo-ink-soft); max-width: 46ch; }
.pvo-hero__play { position: relative; margin: 44px 0 10px; width: 150px; height: 150px; display: grid; place-items: center; }
.pvo-hero__play-orbit { position: absolute; inset: 0; animation: pvo-rotate 22s linear infinite; }
.pvo-hero__play-orbit svg { width: 100%; height: 100%; overflow: visible; }
.pvo-hero__play-orbit text {
	font-family: var(--pvo-font-head); font-size: 9.5px; font-weight: 600;
	letter-spacing: 0.34em; fill: var(--pvo-ink-soft);
}
@keyframes pvo-rotate { to { transform: rotate(360deg); } }
.pvo-hero__play-btn {
	position: relative; width: 86px; height: 86px; border-radius: 50%;
	border: 0; cursor: pointer; display: grid; place-items: center;
	background: var(--pvo-purple); color: #fff;
	box-shadow: 0 20px 44px -14px rgba(109, 53, 242, 0.65);
	transition: transform 0.25s var(--pvo-ease), background 0.25s var(--pvo-ease);
}
.pvo-hero__play-btn:hover { transform: scale(1.06); background: var(--pvo-purple-deep); }
.pvo-hero__play-btn .pvo-icon { width: 30px; height: 30px; }
.pvo-hero__pause-icon { display: none; }
body.pvo-playing .pvo-hero__pause-icon { display: block; }
body.pvo-playing .pvo-hero__play-icon { display: none; }
.pvo-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 30px; }
.pvo-hero__social {
	position: absolute; right: 26px; bottom: 96px; z-index: 3;
	display: flex; flex-direction: column; gap: 10px;
}
.pvo-hero__social a {
	display: inline-flex; width: 46px; height: 46px; border-radius: 50%;
	background: rgba(251, 248, 241, 0.72); border: 1px solid rgba(28, 23, 18, 0.12);
	backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
	align-items: center; justify-content: center; color: var(--pvo-ink);
	transition: all 0.22s var(--pvo-ease);
}
.pvo-hero__social a:hover { background: var(--pvo-ink); color: var(--pvo-ivory); transform: translateY(-2px); }
.pvo-hero__scroll-cue {
	position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%); z-index: 3;
	width: 26px; height: 42px; border: 2px solid rgba(28, 23, 18, 0.35); border-radius: 14px;
}
.pvo-hero__scroll-cue span {
	position: absolute; left: 50%; top: 7px; width: 4px; height: 8px; margin-left: -2px;
	border-radius: 2px; background: var(--pvo-ink-soft);
	animation: pvo-scrollcue 2.2s var(--pvo-ease) infinite;
}
@keyframes pvo-scrollcue {
	0% { transform: translateY(0); opacity: 1; }
	70% { transform: translateY(14px); opacity: 0; }
	100% { transform: translateY(0); opacity: 0; }
}

/* ── 8. Ticker ─────────────────────────────────────────────────── */
.pvo-ticker {
	position: relative; overflow: hidden; padding: 26px 0;
	background: var(--pvo-ink); color: var(--pvo-ivory);
	transform: rotate(-0.6deg) scale(1.02); margin: -12px 0;
	z-index: 2;
}
.pvo-ticker:focus-visible { outline-offset: -3px; }
.pvo-ticker__rail { display: flex; width: max-content; animation: pvo-marquee var(--pvo-ticker-speed, 36s) linear infinite; }
.pvo-ticker:hover .pvo-ticker__rail, .pvo-ticker:focus-within .pvo-ticker__rail, .pvo-ticker:focus .pvo-ticker__rail { animation-play-state: paused; }
.pvo-ticker__group { display: flex; align-items: center; flex: none; }
.pvo-ticker__item {
	display: inline-flex; align-items: center; padding: 0 28px;
	font-family: var(--pvo-font-head); font-weight: 600;
	font-size: clamp(1.15rem, 2.6vw, 1.7rem); letter-spacing: 0.16em;
	color: var(--pvo-ivory); text-decoration: none; white-space: nowrap;
}
a.pvo-ticker__item:hover .pvo-ticker__text { color: var(--pvo-live); }
.pvo-ticker__star { color: var(--pvo-orange); display: inline-flex; }
.pvo-ticker__star .pvo-icon { width: 18px; height: 18px; }
@keyframes pvo-marquee { to { transform: translateX(-50%); } }

/* ── 9. Frequency cards ────────────────────────────────────────── */
.pvo-freq-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.pvo-freq-card {
	position: relative; display: flex; flex-direction: column; justify-content: space-between;
	min-height: 380px; border-radius: var(--pvo-radius-xl); overflow: hidden;
	background: var(--pvo-card-bg, linear-gradient(160deg, #2a0e63, #6d35f2));
	color: var(--pvo-card-text, #fbf8f1);
	padding: 24px; text-decoration: none;
	box-shadow: var(--pvo-shadow-sm);
	transition: transform 0.32s var(--pvo-ease), box-shadow 0.32s var(--pvo-ease);
	isolation: isolate;
}
.pvo-freq-card:hover { transform: translateY(-8px); box-shadow: var(--pvo-shadow-lg); }
.pvo-freq-card__media { position: absolute; inset: 0; z-index: -2; }
.pvo-freq-card__media img { width: 100%; height: 100%; object-fit: cover; opacity: 0.34; }
.pvo-freq-card__glow {
	position: absolute; inset: auto -30% -45% -30%; height: 75%; z-index: -1;
	background: radial-gradient(50% 60% at 50% 100%, color-mix(in srgb, var(--pvo-card-accent, #b8ff3d) 34%, transparent) 0%, transparent 100%);
	opacity: 0.85; transition: opacity 0.32s var(--pvo-ease);
}
.pvo-freq-card:hover .pvo-freq-card__glow { opacity: 1; }
.pvo-freq-card__top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.pvo-freq-card__status {
	display: inline-flex; align-items: center; gap: 7px;
	background: rgba(0, 0, 0, 0.32); border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px; padding: 6px 13px;
	font-family: var(--pvo-font-head); font-size: 11px; font-weight: 600;
	letter-spacing: 0.14em; text-transform: uppercase; color: #fff;
	backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.pvo-freq-card__status-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, 0.55); }
.pvo-freq-card__status--live .pvo-freq-card__status-dot { background: var(--pvo-live); animation: pvo-pulse 2.4s infinite; }
.pvo-freq-card__status--paused .pvo-freq-card__status-dot { background: var(--pvo-orange); }
.pvo-freq-card__time {
	font-family: var(--pvo-font-head); font-size: 12px; font-weight: 600;
	letter-spacing: 0.08em; text-transform: uppercase;
	background: rgba(255, 255, 255, 0.14); border-radius: 999px; padding: 6px 13px;
	backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.pvo-freq-card__body { display: flex; flex-direction: column; gap: 8px; position: relative; padding-right: 58px; }
.pvo-freq-card__icon { opacity: 0.85; }
.pvo-freq-card__icon .pvo-icon { width: 26px; height: 26px; }
.pvo-freq-card__title { font-family: var(--pvo-font-head); font-weight: 700; font-size: 27px; line-height: 1.1; letter-spacing: -0.01em; }
.pvo-freq-card__descriptor { font-size: 14.5px; opacity: 0.82; letter-spacing: 0.04em; }
.pvo-freq-card__cta {
	position: absolute; right: 0; bottom: 2px;
	width: 48px; height: 48px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--pvo-card-accent, #b8ff3d); color: #16120c;
	transition: transform 0.28s var(--pvo-ease);
}
.pvo-freq-card:hover .pvo-freq-card__cta { transform: rotate(45deg); }
.pvo-freq-card__cta .pvo-icon { width: 20px; height: 20px; }

/* ── 10. Community / email ─────────────────────────────────────── */
.pvo-community { overflow: hidden; color: var(--pvo-ivory); }
.pvo-community .pvo-media { pointer-events: none; }
.pvo-community__card {
	position: relative; z-index: 1;
	display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px;
	background: rgba(251, 248, 241, 0.1);
	border: 1px solid rgba(251, 248, 241, 0.22);
	border-radius: var(--pvo-radius-xl);
	backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
	padding: 54px; box-shadow: var(--pvo-shadow-lg);
}
.pvo-community__title { color: var(--pvo-ivory); font-size: clamp(2rem, 4vw, 3rem); }
.pvo-community__copy { color: rgba(251, 248, 241, 0.82); margin-top: 18px; font-size: 17.5px; max-width: 46ch; }

.pvo-form__hp { position: absolute !important; left: -9999px !important; top: -9999px !important; }
.pvo-form__row--split { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pvo-form__field { display: flex; flex-direction: column; gap: 7px; margin: 0 0 16px; }
.pvo-form__label { font-family: var(--pvo-font-head); font-weight: 600; font-size: 13.5px; letter-spacing: 0.05em; }
.pvo-form__req { color: var(--pvo-orange); }
.pvo-form__input {
	width: 100%; min-height: 52px; border-radius: 14px;
	border: 1.5px solid rgba(28, 23, 18, 0.18);
	background: var(--pvo-ivory); color: var(--pvo-ink);
	padding: 12px 16px; font-family: var(--pvo-font-body); font-size: 16px;
	transition: border-color 0.2s var(--pvo-ease), box-shadow 0.2s var(--pvo-ease);
}
.pvo-form__input:focus { border-color: var(--pvo-purple); box-shadow: 0 0 0 3px rgba(109, 53, 242, 0.18); outline: none; }
.pvo-form__textarea { min-height: 140px; resize: vertical; }
.pvo-community__form .pvo-form__label { color: rgba(251, 248, 241, 0.92); }
.pvo-community__form .pvo-form__input { background: rgba(251, 248, 241, 0.94); }
.pvo-form__consent { display: block; margin: 4px 0 18px; font-size: 14.5px; }
.pvo-form__consent label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.pvo-form__consent input { width: 19px; height: 19px; margin-top: 2px; accent-color: var(--pvo-purple); flex: none; }
.pvo-community__form .pvo-form__consent { color: rgba(251, 248, 241, 0.85); }
.pvo-form__privacy { font-size: 12.5px; margin-top: 14px; color: var(--pvo-grey); }
.pvo-community__form .pvo-form__privacy { color: rgba(251, 248, 241, 0.6); }
.pvo-form__actions { margin: 6px 0 0; }
.pvo-form__error { color: #c8371f; font-size: 13px; font-weight: 500; }
.pvo-community__form .pvo-form__error { color: #ffb4a4; }
.pvo-form__input.is-invalid { border-color: #c8371f; }
.pvo-form__msg { border-radius: 12px; padding: 13px 16px; margin-top: 16px; font-weight: 500; font-size: 15px; }
.pvo-form__msg--success { background: rgba(87, 171, 39, 0.14); color: #2c6b12; border: 1px solid rgba(87, 171, 39, 0.4); }
.pvo-form__msg--error { background: rgba(214, 54, 56, 0.1); color: #a4241f; border: 1px solid rgba(214, 54, 56, 0.35); }
.pvo-community__form .pvo-form__msg--success { background: rgba(184, 255, 61, 0.16); color: #d9ffb0; border-color: rgba(184, 255, 61, 0.4); }
.pvo-community__form .pvo-form__msg--error { background: rgba(255, 120, 100, 0.14); color: #ffc8bd; border-color: rgba(255, 120, 100, 0.4); }
.pvo-form__recaptcha { margin-bottom: 16px; }

/* ── 11. Schedule ──────────────────────────────────────────────── */
.pvo-schedule__onnow-chip {
	display: inline-flex; align-items: center; gap: 9px; margin-top: 20px;
	background: var(--pvo-ink); color: var(--pvo-ivory);
	border-radius: 999px; padding: 9px 18px; font-size: 14px;
}
.pvo-schedule__onnow-chip .pvo-live-badge__dot { background: var(--pvo-live); animation: pvo-pulse 2.4s infinite; }
.pvo-schedule__filters { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.pvo-schedule__filter-group { display: flex; flex-wrap: wrap; gap: 8px; }
.pvo-schedule__genre { display: inline-flex; align-items: center; gap: 10px; font-family: var(--pvo-font-head); font-weight: 600; font-size: 13.5px; }
.pvo-schedule__genre select {
	min-height: 44px; border-radius: 12px; border: 1.5px solid rgba(28, 23, 18, 0.18);
	background: var(--pvo-ivory); color: var(--pvo-ink); padding: 8px 12px;
	font-family: var(--pvo-font-body); font-size: 15px;
}
.pvo-schedule__daybar { display: none; gap: 6px; margin-bottom: 22px; overflow-x: auto; padding-bottom: 6px; }
.pvo-schedule__daytab {
	flex: none; min-width: 62px; min-height: 48px; border-radius: 12px;
	border: 1.5px solid rgba(28, 23, 18, 0.16); background: var(--pvo-ivory);
	font-family: var(--pvo-font-head); font-weight: 600; font-size: 13px;
	letter-spacing: 0.08em; text-transform: uppercase; color: var(--pvo-ink-soft); cursor: pointer;
}
.pvo-schedule__daytab.is-active { background: var(--pvo-ink); border-color: var(--pvo-ink); color: var(--pvo-ivory); }
.pvo-schedule__week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 14px; align-items: start; }
.pvo-schedule__day { min-width: 0; }
.pvo-schedule__day-name {
	font-size: 14px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700;
	display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--pvo-ink-soft);
}
.pvo-schedule__day.is-today .pvo-schedule__day-name { color: var(--pvo-purple); }
.pvo-schedule__today-flag {
	background: var(--pvo-purple); color: #fff; border-radius: 999px;
	font-size: 10px; padding: 3px 9px; letter-spacing: 0.1em;
}
.pvo-schedule__slots { display: flex; flex-direction: column; gap: 12px; }
.pvo-schedule__empty { color: var(--pvo-grey); font-size: 13.5px; font-style: italic; padding: 14px; border: 1.5px dashed rgba(28, 23, 18, 0.15); border-radius: 14px; }
.pvo-show-card {
	position: relative; background: var(--pvo-ivory);
	border: 1px solid var(--pvo-line); border-left: 4px solid var(--pvo-show-accent, var(--pvo-purple));
	border-radius: 16px; padding: 14px 16px;
	box-shadow: 0 6px 18px -12px rgba(28, 23, 18, 0.22);
	transition: transform 0.25s var(--pvo-ease), box-shadow 0.25s var(--pvo-ease), opacity 0.3s var(--pvo-ease);
}
.pvo-show-card:hover { transform: translateY(-3px); box-shadow: var(--pvo-shadow-sm); }
.pvo-show-card.is-filtered-out { display: none; }
.pvo-show-card.is-on-now { border-color: var(--pvo-live); border-left-color: var(--pvo-live); background: #fdfff4; }
.pvo-show-card__time { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; font-family: var(--pvo-font-head); font-weight: 600; font-size: 12.5px; letter-spacing: 0.05em; color: var(--pvo-ink-soft); }
.pvo-show-card__onnow {
	display: inline-flex; align-items: center; gap: 6px; margin-left: auto;
	background: var(--pvo-ink); color: var(--pvo-live);
	border-radius: 999px; font-size: 10px; padding: 3px 9px; letter-spacing: 0.12em; text-transform: uppercase;
}
.pvo-show-card__onnow .pvo-live-badge__dot { width: 6px; height: 6px; background: var(--pvo-live); }
.pvo-show-card__art { width: 100%; height: 90px; object-fit: cover; border-radius: 10px; margin-top: 10px; }
.pvo-show-card__title { font-size: 16.5px; margin-top: 8px; }
.pvo-show-card__host { display: flex; align-items: center; gap: 6px; color: var(--pvo-ink-soft); font-size: 13.5px; margin-top: 5px; }
.pvo-show-card__host .pvo-icon { width: 14px; height: 14px; }
.pvo-show-card__desc { color: var(--pvo-grey); font-size: 13px; line-height: 1.5; margin-top: 6px; }
.pvo-show-card__tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.pvo-show-card__tag {
	font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 600;
	background: rgba(28, 23, 18, 0.06); border-radius: 999px; padding: 3px 9px; color: var(--pvo-ink-soft);
}
.pvo-show-card__tag--freq { background: rgba(109, 53, 242, 0.1); color: var(--pvo-purple); }
.pvo-show-card__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 13px; font-weight: 600; color: var(--pvo-purple); text-decoration: none; }
.pvo-show-card__link:hover { text-decoration: underline; }
.pvo-schedule__no-results { margin-top: 26px; color: var(--pvo-grey); font-style: italic; }

@media (max-width: 1023px) {
	.pvo-schedule__daybar { display: flex; }
	.pvo-schedule__week { grid-template-columns: 1fr; }
	.pvo-schedule__day { display: none; }
	.pvo-schedule__day.is-shown { display: block; }
	.pvo-schedule__day-name { font-size: 17px; }
	.pvo-show-card { padding: 16px 18px; }
	.pvo-show-card__title { font-size: 18px; }
}

/* ── 12. Directory ─────────────────────────────────────────────── */
.pvo-directory { background: var(--pvo-ivory); border-radius: var(--pvo-radius-xl) var(--pvo-radius-xl) 0 0; }
.pvo-directory__list { display: flex; flex-direction: column; }
.pvo-directory__item {
	display: grid; grid-template-columns: 150px 1fr 240px; gap: 26px; align-items: start;
	padding: 30px 6px; border-top: 1px solid var(--pvo-line);
	border-left: 3px solid transparent; transition: border-color 0.25s var(--pvo-ease), background 0.25s var(--pvo-ease), padding 0.25s var(--pvo-ease);
}
.pvo-directory__item:hover, .pvo-directory__item.is-highlight { border-left-color: var(--pvo-dir-accent, var(--pvo-purple)); background: rgba(109, 53, 242, 0.03); padding-left: 18px; }
.pvo-directory__item:last-child { border-bottom: 1px solid var(--pvo-line); }
.pvo-directory__meta { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.pvo-directory__num { font-family: var(--pvo-font-head); font-weight: 700; font-size: 15px; color: var(--pvo-dir-accent, var(--pvo-purple)); }
.pvo-directory__item .pvo-freq-card__status { background: rgba(28, 23, 18, 0.8); }
.pvo-directory__title { font-size: 25px; }
.pvo-directory__descriptor { color: var(--pvo-ink-soft); font-size: 14.5px; letter-spacing: 0.04em; margin-top: 4px; }
.pvo-directory__description { color: var(--pvo-ink-soft); font-size: 15.5px; margin-top: 12px; max-width: 62ch; }
.pvo-directory__side { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.pvo-directory__schedule { display: inline-flex; align-items: center; gap: 8px; font-family: var(--pvo-font-head); font-weight: 600; font-size: 13.5px; color: var(--pvo-ink-soft); }

/* ── 13. Live stream ───────────────────────────────────────────── */
.pvo-stream .pvo-section__head { text-align: center; margin-inline: auto; }
.pvo-stream__badge-row { margin-bottom: 18px; }
.pvo-stream__frame-wrap { position: relative; max-width: 1020px; margin: 0 auto; }
.pvo-stream__glow {
	position: absolute; inset: 6% -4% -6% -4%; z-index: 0; border-radius: 50%;
	background: radial-gradient(50% 50% at 50% 55%, rgba(109, 53, 242, 0.3) 0%, rgba(242, 161, 44, 0.14) 55%, transparent 100%);
	filter: blur(30px);
}
.pvo-stream__frame {
	position: relative; z-index: 1; aspect-ratio: 16 / 9;
	border-radius: var(--pvo-radius-xl); overflow: hidden;
	background: var(--pvo-ink);
	border: 1px solid rgba(28, 23, 18, 0.2);
	box-shadow: var(--pvo-shadow-lg), inset 0 0 0 6px rgba(251, 248, 241, 0.9);
}
.pvo-stream__frame.is-live { box-shadow: var(--pvo-shadow-lg), inset 0 0 0 6px rgba(251, 248, 241, 0.9), 0 0 0 2px rgba(184, 255, 61, 0.6); }
.pvo-stream__embed, .pvo-stream__embed iframe { position: absolute; inset: 6px; width: calc(100% - 12px); height: calc(100% - 12px); border: 0; border-radius: calc(var(--pvo-radius-xl) - 8px); overflow: hidden; }
.pvo-stream__poster {
	position: absolute; inset: 0; width: 100%; height: 100%;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px;
	background: linear-gradient(160deg, #221244 0%, #371282 60%, #12083b 100%);
	border: 0; cursor: pointer; color: var(--pvo-ivory);
}
.pvo-stream__poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.55; }
.pvo-stream__play-circle {
	position: relative; width: 84px; height: 84px; border-radius: 50%;
	background: var(--pvo-purple); display: grid; place-items: center; color: #fff;
	box-shadow: 0 18px 40px -12px rgba(109, 53, 242, 0.7);
	transition: transform 0.25s var(--pvo-ease);
}
.pvo-stream__poster:hover .pvo-stream__play-circle { transform: scale(1.07); }
.pvo-stream__play-circle .pvo-icon { width: 30px; height: 30px; }
.pvo-stream__play-label { position: relative; font-family: var(--pvo-font-head); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; font-size: 13px; }
.pvo-stream__offline { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(160deg, #221244 0%, #371282 60%, #12083b 100%); }
.pvo-stream__offline-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.pvo-stream__offline-inner { position: relative; text-align: center; color: var(--pvo-ivory); padding: 24px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.pvo-stream__offline-mark { width: 76px; height: 76px; color: rgba(251, 248, 241, 0.85); }
.pvo-stream__offline-title { font-family: var(--pvo-font-head); font-weight: 700; font-size: 24px; }
.pvo-stream__offline-copy { color: rgba(251, 248, 241, 0.75); max-width: 44ch; }
.pvo-stream__below { display: flex; flex-wrap: wrap; gap: 26px; align-items: center; justify-content: space-between; max-width: 1020px; margin: 34px auto 0; }
.pvo-stream__now { display: flex; flex-direction: column; gap: 3px; }
.pvo-stream__now-label { font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--pvo-grey); font-weight: 600; }
.pvo-stream__now-show { font-family: var(--pvo-font-head); font-weight: 700; font-size: 21px; }
.pvo-stream__now-host { color: var(--pvo-ink-soft); font-size: 15px; }
.pvo-stream__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ── 14. Contact ───────────────────────────────────────────────── */
.pvo-contact__layout { display: grid; grid-template-columns: 0.85fr 1fr; gap: 60px; align-items: start; }
.pvo-contact__points { list-style: none; margin: 34px 0 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.pvo-contact__points li { display: flex; gap: 13px; align-items: flex-start; color: var(--pvo-ink-soft); font-size: 15.5px; }
.pvo-contact__points .pvo-icon { width: 21px; height: 21px; color: var(--pvo-purple); flex: none; margin-top: 3px; }
.pvo-contact__form {
	background: var(--pvo-ivory); border: 1px solid var(--pvo-line);
	border-radius: var(--pvo-radius-xl); padding: 40px;
	box-shadow: var(--pvo-shadow-sm);
}

/* ── 15. Footer ────────────────────────────────────────────────── */
.pvo-footer { background: var(--pvo-ink); color: rgba(251, 248, 241, 0.8); padding: 68px 0 0; position: relative; }
.pvo-footer__inner {
	max-width: 1220px; margin: 0 auto; padding: 0 28px 44px;
	display: grid; grid-template-columns: 1.3fr 0.8fr 0.9fr; gap: 44px;
}
.pvo-footer__mark { width: 54px; height: 54px; color: var(--pvo-ivory); }
.pvo-footer__name { font-family: var(--pvo-font-head); font-weight: 700; font-size: 17px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--pvo-ivory); margin: 14px 0 10px; }
.pvo-footer__statement { max-width: 34ch; font-size: 15.5px; margin-bottom: 22px; }
.pvo-footer__heading { font-family: var(--pvo-font-head); font-size: 12.5px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--pvo-orange); margin-bottom: 16px; }
.pvo-footer__nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pvo-footer__nav a { color: rgba(251, 248, 241, 0.8); text-decoration: none; font-size: 15.5px; }
.pvo-footer__nav a:hover { color: var(--pvo-live); }
.pvo-footer__social { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.pvo-footer__social a {
	display: inline-flex; width: 44px; height: 44px; border-radius: 50%;
	border: 1px solid rgba(251, 248, 241, 0.25); align-items: center; justify-content: center;
	color: var(--pvo-ivory); transition: all 0.22s var(--pvo-ease);
}
.pvo-footer__social a:hover { background: var(--pvo-ivory); color: var(--pvo-ink); transform: translateY(-2px); }
.pvo-footer__contact { display: inline-flex; align-items: center; gap: 8px; color: var(--pvo-live); text-decoration: none; font-weight: 600; }
.pvo-footer__contact:hover { text-decoration: underline; color: var(--pvo-live); }
.pvo-footer__base {
	border-top: 1px solid rgba(251, 248, 241, 0.12);
	display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between;
	max-width: 1220px; margin: 0 auto; padding: 20px 28px calc(26px + var(--pvo-player-h));
	font-size: 13.5px; color: rgba(251, 248, 241, 0.55);
}
.pvo-footer__broadcast { color: rgba(251, 248, 241, 0.55); }

/* ── 16. Radio player ──────────────────────────────────────────── */
.pvo-player {
	position: fixed; z-index: 320;
	left: 16px; right: 16px; bottom: calc(14px + env(safe-area-inset-bottom, 0px));
	display: flex; flex-direction: column; align-items: center; gap: 10px;
	pointer-events: none;
}
.pvo-player__panel {
	pointer-events: auto;
	width: min(1100px, 100%);
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px;
	background: rgba(251, 248, 241, 0.88);
	border: 1px solid rgba(28, 23, 18, 0.12);
	border-radius: 24px; padding: 12px 18px;
	backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
	box-shadow: 0 24px 54px -22px rgba(28, 23, 18, 0.45);
	min-height: 68px;
	transition: transform 0.3s var(--pvo-ease), opacity 0.3s var(--pvo-ease);
}
.pvo-player__left { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pvo-player__art { width: 46px; height: 46px; border-radius: 10px; overflow: hidden; flex: none; box-shadow: var(--pvo-shadow-sm); }
.pvo-player__art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pvo-player__meta { display: flex; flex-direction: column; min-width: 0; }
.pvo-player__station { font-family: var(--pvo-font-head); font-weight: 700; font-size: 14.5px; letter-spacing: 0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvo-player__track { font-size: 13px; color: var(--pvo-ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvo-player__center { display: flex; align-items: center; gap: 14px; }
.pvo-player__eq { display: inline-flex; align-items: flex-end; gap: 3px; height: 20px; width: 30px; }
.pvo-player__eq i {
	flex: 1; background: var(--pvo-purple); border-radius: 2px; height: 22%;
	transition: height 0.3s ease; opacity: 0.35;
}
.pvo-player[data-play-state="playing"] .pvo-player__eq i { opacity: 1; animation: pvo-eq 1.1s ease-in-out infinite; }
.pvo-player[data-play-state="playing"] .pvo-player__eq i:nth-child(1) { animation-delay: 0s; }
.pvo-player[data-play-state="playing"] .pvo-player__eq i:nth-child(2) { animation-delay: 0.18s; }
.pvo-player[data-play-state="playing"] .pvo-player__eq i:nth-child(3) { animation-delay: 0.36s; }
.pvo-player[data-play-state="playing"] .pvo-player__eq i:nth-child(4) { animation-delay: 0.1s; }
.pvo-player[data-play-state="playing"] .pvo-player__eq i:nth-child(5) { animation-delay: 0.28s; }
@keyframes pvo-eq {
	0%, 100% { height: 24%; }
	40% { height: 96%; }
	70% { height: 46%; }
}
.pvo-player__play {
	position: relative; width: 56px; height: 56px; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--pvo-purple); color: #fff; display: grid; place-items: center;
	box-shadow: 0 14px 30px -10px rgba(109, 53, 242, 0.6);
	transition: transform 0.22s var(--pvo-ease), background 0.22s var(--pvo-ease);
}
.pvo-player__play:hover { transform: scale(1.06); background: var(--pvo-purple-deep); }
.pvo-player__play .pvo-icon { width: 22px; height: 22px; }
.pvo-player__icon-pause { display: none; }
.pvo-player[data-play-state="playing"] .pvo-player__icon-pause { display: block; }
.pvo-player[data-play-state="playing"] .pvo-player__icon-play { display: none; }
.pvo-player__spinner {
	position: absolute; inset: -3px; border-radius: 50%;
	border: 3px solid transparent; border-top-color: var(--pvo-live);
	opacity: 0; animation: pvo-spin 0.9s linear infinite; animation-play-state: paused;
}
.pvo-player[data-play-state="buffering"] .pvo-player__spinner { opacity: 1; animation-play-state: running; }
@keyframes pvo-spin { to { transform: rotate(360deg); } }
.pvo-player__right { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.pvo-player__listeners { font-family: var(--pvo-font-head); font-weight: 600; font-size: 12.5px; color: var(--pvo-ink-soft); white-space: nowrap; }
.pvo-player__vol { display: flex; align-items: center; gap: 8px; }
.pvo-player__mute {
	width: 44px; height: 44px; border-radius: 50%; border: 0; background: transparent;
	color: var(--pvo-ink); cursor: pointer; display: grid; place-items: center;
}
.pvo-player__mute:hover { background: rgba(28, 23, 18, 0.07); }
.pvo-player__mute .pvo-icon { width: 20px; height: 20px; }
.pvo-player__icon-muted { display: none; }
.pvo-player.is-muted .pvo-player__icon-muted { display: block; }
.pvo-player.is-muted .pvo-player__icon-vol { display: none; }
.pvo-player__slider { width: 110px; accent-color: var(--pvo-purple); cursor: pointer; height: 26px; }
.pvo-player__resume { pointer-events: auto; }
.pvo-player__resume[hidden] { display: none; }

@media (max-width: 767px) {
	:root { --pvo-player-h: 76px; }
	.pvo-player { left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
	/* One compact row: track | play | mute. The volume slider is dropped —
	   phones have hardware volume, and it kept the row from fitting. */
	.pvo-player__panel { grid-template-columns: 1fr auto auto; gap: 8px; padding: 10px 12px; border-radius: 20px; }
	.pvo-player__left { order: 1; }
	.pvo-player__center { order: 2; }
	.pvo-player__right { order: 3; justify-content: flex-end; }
	.pvo-player__eq { display: none; }
	.pvo-player__play { width: 52px; height: 52px; }
	.pvo-player__slider { display: none; }
	.pvo-player__listeners { display: none; }
	.pvo-player__badge, .pvo-player__left .pvo-live-badge { display: none; }
	.pvo-player__station { font-size: 13.5px; }
	.pvo-player__art { width: 40px; height: 40px; }
}

/* ── 17. Video section widget ──────────────────────────────────── */
.pvo-video-section { display: flex; align-items: center; overflow: hidden; min-height: 60vh; }
.pvo-video-section__inner { width: 100%; }
.pvo-video-section--center .pvo-video-section__inner { text-align: center; }
.pvo-video-section--end .pvo-video-section__inner { text-align: right; }
.pvo-video-section__heading { font-size: clamp(2rem, 4.4vw, 3.2rem); margin-bottom: 16px; }
.pvo-video-section__content { font-size: 18px; color: var(--pvo-ink-soft); max-width: 60ch; margin-inline: auto; }
.pvo-video-section--start .pvo-video-section__content { margin-inline: 0; }

/* Elementor editor helper note */
.pvo-widget-note {
	background: #f6f1ff; border: 1px dashed #b9a1f7; border-radius: 10px;
	padding: 10px 14px; font-size: 13px; color: #4c3a86; margin-bottom: 10px;
}

/* Listen-wrap (widget alignment helper) */
.pvo-listen-wrap { display: flex; justify-content: center; }

/* ── 18. Breakpoints ───────────────────────────────────────────── */
@media (max-width: 1200px) {
	.pvo-freq-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1023px) {
	.pvo-section { padding: 84px 0; }
	.pvo-community__card { grid-template-columns: 1fr; padding: 40px; gap: 30px; }
	.pvo-contact__layout { grid-template-columns: 1fr; gap: 40px; }
	.pvo-directory__item { grid-template-columns: 110px 1fr; }
	.pvo-directory__side { grid-column: 2; flex-direction: row; align-items: center; flex-wrap: wrap; }
	.pvo-hero__social { display: none; }
}
@media (max-width: 767px) {
	body.pvo-site { font-size: 16px; }
	.pvo-section { padding: 66px 0; }
	.pvo-section__inner { padding: 0 20px; }
	.pvo-section__head { margin-bottom: 38px; }
	.pvo-freq-grid { grid-template-columns: 1fr; gap: 18px; }
	.pvo-freq-card { min-height: 320px; }
	.pvo-community__card { padding: 28px 22px; border-radius: var(--pvo-radius-lg); }
	.pvo-form__row--split { grid-template-columns: 1fr; }
	.pvo-contact__form { padding: 26px 20px; }
	.pvo-footer__inner { grid-template-columns: 1fr; gap: 34px; }
	.pvo-footer__base { flex-direction: column; align-items: flex-start; }
	.pvo-hero { padding-bottom: 74px; }
	.pvo-hero__play { margin-top: 34px; width: 128px; height: 128px; }
	.pvo-hero__play-btn { width: 74px; height: 74px; }
	.pvo-directory__item { grid-template-columns: 1fr; gap: 14px; }
	.pvo-directory__side { grid-column: 1; }
	.pvo-stream__below { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 389px) {
	.pvo-header__name { display: none; }
	.pvo-btn--lg { min-height: 52px; padding: 0 24px; font-size: 14px; }
	.pvo-hero__ctas { flex-direction: column; width: 100%; }
	.pvo-hero__ctas .pvo-btn { width: 100%; }
}

/* ── 19. Reduced motion ────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.pvo-reveal { opacity: 1; transform: none; transition: none; }
	.pvo-ticker__rail { animation: none; flex-wrap: wrap; width: auto; }
	.pvo-ticker__group[aria-hidden="true"] { display: none; }
	.pvo-media__fallback { animation: none; }
	.pvo-hero__play-orbit { animation: none; }
	.pvo-hero__scroll-cue span { animation: none; }
	.pvo-btn__dot, .pvo-live-badge__dot, .pvo-header__live-dot, .pvo-freq-card__status-dot { animation: none !important; }
	.pvo-player[data-play-state="playing"] .pvo-player__eq i { animation: none; height: 60%; }
	.pvo-btn:hover, .pvo-freq-card:hover, .pvo-show-card:hover { transform: none; }
}

/* ── 20. Print ─────────────────────────────────────────────────── */
@media print {
	.pvo-header, .pvo-player, .pvo-ticker, .pvo-hero__scroll-cue { display: none !important; }
	body.pvo-site.pvo-has-player { padding-bottom: 0; }
}
