.tvfe-wrap,
.tvfe-wrap *{
	box-sizing:border-box;
}

.tvfe-wrap{
	position:relative;
	padding:24px 0;
	background:transparent;
	font-family:"Poppins",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.tvfe-wrap img{
	max-width:100%;
	display:block;
}

.tvfe-inner{
	max-width:1080px;
	margin:0 auto;
}

.tvfe-header{
	margin-bottom:24px;
	text-align:center;
}

.tvfe-section-title{
	margin:0;
	font-size:clamp(28px,4vw,42px);
	line-height:1.08;
	font-weight:700;
	letter-spacing:-0.04em;
	color:#0f172a;
}

.tvfe-section-subtitle{
	margin:10px 0 0;
	font-size:16px;
	line-height:1.6;
	color:#64748b;
}

.tvfe-main-card{
	background:#fff;
	border:1px solid #e5e7eb;
	border-radius:28px;
	box-shadow:0 18px 48px rgba(15,23,42,.08);
	overflow:hidden;
}

.tvfe-main-card-inner{
	padding:20px;
}

.tvfe-player-shell{
	position:relative;
	border-radius:22px;
	overflow:hidden;
	background:#eef2f7;
}

.tvfe-frame,
.tvfe-main-poster{
	position:relative;
	width:100%;
	aspect-ratio:16 / 9;
	background:#eef2f7;
	overflow:hidden;
}

.tvfe-frame iframe{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	border:0;
	display:block;
}

.tvfe-main-poster img{
	width:100%;
	height:100%;
	object-fit:cover;
}

.tvfe-main-poster-fallback{
	position:absolute;
	inset:0;
	background:
		linear-gradient(135deg, rgba(255,255,255,.95), rgba(235,241,250,.96)),
		radial-gradient(circle at 20% 20%, rgba(99,102,241,.12), transparent 35%),
		radial-gradient(circle at 80% 70%, rgba(59,130,246,.10), transparent 35%);
}

.tvfe-main-poster::after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(to top, rgba(15,23,42,.62) 0%, rgba(15,23,42,.12) 42%, rgba(15,23,42,0) 72%);
	pointer-events:none;
}

.tvfe-main-play{
	position:absolute;
	inset:0;
	display:flex;
	align-items:center;
	justify-content:center;
	z-index:2;
	cursor:pointer;
	background:transparent !important;
	border:0 !important;
	outline:none;
	box-shadow:none !important;
}

.tvfe-main-play-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:78px;
	height:78px;
	border-radius:999px;
	background:rgba(255,255,255,.9);
	box-shadow:0 18px 40px rgba(15,23,42,.16);
	color:#2563eb;
	font-size:28px;
	line-height:1;
	transition:transform .2s ease;
}

.tvfe-main-play:hover .tvfe-main-play-badge{
	transform:scale(1.04);
}

.tvfe-main-overlay-content{
	position:absolute;
	left:22px;
	right:22px;
	bottom:22px;
	z-index:2;
	display:flex;
	flex-direction:column;
	gap:10px;
}

.tvfe-main-title{
	margin:0;
	font-size:clamp(22px,2.4vw,34px);
	line-height:1.15;
	font-weight:600;
	letter-spacing:-0.03em;
	color:#fff;
	text-shadow:0 3px 20px rgba(0,0,0,.18);
}

.tvfe-countdown{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	align-items:center;
}

.tvfe-cd-item{
	display:inline-flex;
	align-items:baseline;
	gap:6px;
	padding:8px 12px;
	border-radius:999px;
	background:rgba(255,255,255,.9);
	box-shadow:0 8px 20px rgba(15,23,42,.08);
	color:#0f172a;
}

.tvfe-cd-days,
.tvfe-cd-hours,
.tvfe-cd-minutes,
.tvfe-cd-seconds{
	font-size:15px;
	font-weight:700;
	line-height:1;
}

.tvfe-cd-label{
	font-size:11px;
	font-weight:600;
	line-height:1;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:#64748b;
}

.tvfe-upcoming-row{
	margin-top:12px;
}

.tvfe-upcoming-link{
	width:100%;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	padding:16px 18px;
	border:1px solid #e5e7eb;
	border-radius:18px;
	background:#f8fafc !important;
	cursor:pointer;
	transition:transform .2s ease, box-shadow .2s ease;
}

.tvfe-upcoming-link:hover{
	transform:translateY(-1px);
	box-shadow:0 10px 26px rgba(15,23,42,.06);
}

.tvfe-upcoming-kicker{
	display:inline-block;
	margin-right:10px;
	font-size:11px;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#94a3b8;
}

.tvfe-upcoming-program{
	font-size:15px;
	line-height:1.45;
	font-weight:600;
	color:#0f172a;
}

.tvfe-upcoming-dot{
	margin:0 8px;
	color:#cbd5e1;
}

.tvfe-upcoming-time{
	font-size:14px;
	font-weight:400;
	color:#64748b;
}

.tvfe-upcoming-cta{
	font-size:13px;
	font-weight:600;
	color:#2563eb;
	flex-shrink:0;
}

.tvfe-return-wrap{
	margin:14px 4px 0;
}

.tvfe-related{
	margin-top:18px;
}

.tvfe-related-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:16px;
}

.tvfe-related-card{
	display:block;
	width:100%;
	padding:12px;
	border:1px solid #e5e7eb;
	border-radius:22px;
	background:#fff !important;
	cursor:pointer;
	box-shadow:0 14px 35px rgba(15,23,42,.05);
	transition:transform .2s ease, box-shadow .2s ease;
}

.tvfe-related-card:hover{
	transform:translateY(-2px);
	box-shadow:0 18px 40px rgba(15,23,42,.08);
}

.tvfe-related-card-inner{
	display:flex;
	align-items:center;
	gap:14px;
}

.tvfe-related-thumb{
	width:112px;
	aspect-ratio:16 / 9;
	border-radius:14px;
	overflow:hidden;
	flex-shrink:0;
	background:#e5e7eb;
}

.tvfe-related-thumb img{
	width:100%;
	height:100%;
	object-fit:cover;
}

.tvfe-related-thumb-fallback{
	width:100%;
	height:100%;
	background:
		linear-gradient(135deg, rgba(255,255,255,.95), rgba(230,236,244,.94)),
		radial-gradient(circle at 25% 25%, rgba(59,130,246,.12), transparent 36%);
}

.tvfe-related-meta{
	min-width:0;
	flex:1;
}

.tvfe-related-title{
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
	overflow:hidden;
	font-size:15px;
	line-height:1.45;
	font-weight:600;
	color:#0f172a;
}

.tvfe-frame--empty{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:320px;
	padding:24px;
	background:#f8fafc;
	text-align:center;
	color:#64748b;
}

.tvfe-frame--empty p{
	margin:0;
	font-size:15px;
	line-height:1.6;
}

.tvfe-reveal{
	opacity:0;
	transform:translateY(22px);
	transition:opacity .7s ease, transform .7s ease;
}

.tvfe-reveal.is-visible{
	opacity:1;
	transform:translateY(0);
}

@media (max-width: 767px){
	.tvfe-wrap{
		padding:16px 0;
	}

	.tvfe-main-card{
		border-radius:22px;
	}

	.tvfe-main-card-inner{
		padding:14px;
	}

	.tvfe-player-shell{
		border-radius:18px;
	}

	.tvfe-main-overlay-content{
		left:16px;
		right:16px;
		bottom:16px;
	}

	.tvfe-main-play-badge{
		width:64px;
		height:64px;
		font-size:22px;
	}

	.tvfe-main-title{
		font-size:22px;
	}

	.tvfe-related-grid{
		grid-template-columns:1fr;
	}

	.tvfe-related-thumb{
		width:96px;
	}
}

@media (prefers-reduced-motion: reduce){
	.tvfe-main-play-badge,
	.tvfe-related-card,
	.tvfe-reveal{
		transition:none !important;
		transform:none !important;
	}
}