/* CBC Live Bug — v1.1.0
 * Dark panel palette from the CBC handoff: white on #0f1a14 is 17.8:1.
 * Live red #e5484d is a decorative dot only; text stays white.
 */

.cbc-live {
	position: fixed;
	bottom: 20px;
	z-index: 99990; /* above Divi's header (99989 on some builds), below the dialog */
	max-width: calc(100vw - 40px);
	font-family: Arial, Helvetica, sans-serif;
}
.cbc-live--left  { left: 20px; }
.cbc-live--right { right: 20px; }

/* Top right, under the menu. The script measures where the header ends and
   sets --cbc-live-top; 110px is the fallback before it runs. */
.cbc-live--top-right {
	top: var(--cbc-live-top, 110px);
	right: 20px;
	bottom: auto;
	transition: top 0.2s ease;
}
.cbc-live--top-right .cbc-live__badge { animation-name: cbc-live-in-top; }
.cbc-live[hidden] { display: none; }

.cbc-live__badge {
	display: flex;
	align-items: stretch;
	background: #0f1a14;
	color: #fff;
	border-radius: 999px;
	box-shadow: 0 6px 22px rgba(0, 0, 0, 0.28);
	overflow: hidden;
	animation: cbc-live-in 0.35s ease-out;
}

.cbc-live__open {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 48px;
	max-width: 320px;
	padding: 8px 10px 8px 18px;
	border: 0;
	background: transparent;
	color: #fff;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.cbc-live__words { display: flex; flex-direction: column; min-width: 0; }
.cbc-live__label {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.cbc-live__sub {
	font-size: 13px;
	line-height: 1.3;
	color: #b8c9be; /* 10.3:1 on the panel */
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cbc-live__dot {
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #e5484d;
	box-shadow: 0 0 0 0 rgba(229, 72, 77, 0.6);
	animation: cbc-live-pulse 1.8s infinite;
}
.is-soon .cbc-live__dot { background: #7cc68d; animation: none; }

.cbc-live__dismiss {
	flex: 0 0 auto;
	width: 44px;
	border: 0;
	border-left: 1px solid #5d7468;
	background: transparent;
	color: #b8c9be;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.cbc-live__open:hover .cbc-live__label { text-decoration: underline; }
.cbc-live__dismiss:hover { color: #fff; }

.cbc-live button:focus-visible,
.cbc-live-dialog button:focus-visible,
.cbc-live-dialog a:focus-visible,
.cbc-live-banner button:focus-visible {
	outline: 3px solid #a8e0b6;
	outline-offset: -3px;
}

/* ---------- popup player ---------- */

.cbc-live-dialog {
	width: min(960px, 94vw);
	max-height: 94vh;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: #0f1a14;
	color: #fff;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
	font-family: Arial, Helvetica, sans-serif;
}
.cbc-live-dialog::backdrop { background: rgba(12, 20, 16, 0.85); }
html.cbc-live-noscroll { overflow: hidden; }

.cbc-live-dialog__bar {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 6px 6px 18px;
}
.cbc-live-dialog .cbc-live-dialog__title {
	flex: 1;
	margin: 0;
	padding: 0;
	font-size: 17px;
	line-height: 1.3;
	font-weight: 700;
	color: #fff;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.cbc-live-dialog__close {
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}
.cbc-live-dialog__close:hover { background: #16241c; }

.cbc-live-dialog__frame,
.cbc-live-banner__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #000;
}
.cbc-live-dialog__frame iframe,
.cbc-live-banner__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.cbc-live-dialog .cbc-live-dialog__alt { margin: 0; padding: 10px 18px 14px; font-size: 14px; }
.cbc-live-dialog .cbc-live-dialog__yt { color: #7cc68d; text-decoration: underline; }

/* ---------- [cbc_live_banner] ---------- */

.cbc-live-banner {
	margin: 0 0 24px;
	border-radius: 10px;
	background: #0f1a14;
	color: #fff;
	overflow: hidden;
	font-family: Arial, Helvetica, sans-serif;
}
.cbc-live-banner[hidden] { display: none; }

.cbc-live-banner__head {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	padding: 14px 18px;
}
.cbc-live-banner .cbc-live-banner__text {
	flex: 1 1 240px;
	margin: 0;
	padding: 0;
	font-size: 17px;
	line-height: 1.4;
	color: #fff;
}
.cbc-live-banner .cbc-live-banner__text strong { color: #fff; }

.cbc-live-banner__btn {
	min-height: 44px;
	padding: 0 22px;
	border: 0;
	border-radius: 999px;
	background: #7cc68d;  /* dark text on brand green: 8.7:1 */
	color: #0f1a14;
	font: 700 15px/1 Arial, Helvetica, sans-serif;
	cursor: pointer;
}
.cbc-live-banner__btn:hover { background: #a8e0b6; }

/* ---------- motion ---------- */

@keyframes cbc-live-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0.6); }
	70%  { box-shadow: 0 0 0 9px rgba(229, 72, 77, 0); }
	100% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0); }
}
@keyframes cbc-live-in {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: none; }
}
@keyframes cbc-live-in-top {
	from { opacity: 0; transform: translateY(-12px); }
	to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.cbc-live__dot, .cbc-live__badge { animation: none; }
	.cbc-live--top-right { transition: none; }
}

@media (max-width: 600px) {
	.cbc-live { bottom: 14px; }
	.cbc-live--left  { left: 12px; }
	.cbc-live--right { right: 12px; }
	.cbc-live--top-right { right: 12px; bottom: auto; }
	.cbc-live__open { max-width: 230px; }
}
