/* Euro Florida - Biblioteca de Videos */
.efv-root{ --efv-navy:#0c2a4a; --efv-navy2:#08213c; --efv-gold:#ebaf04; }

/* ---- Botón flotante (estilo de la casa: navy + dorado) ---- */
.efv-fab{
	position:fixed;
	top:50%;
	transform:translateY(-50%);
	z-index:99990;
	display:flex;
	align-items:center;
	gap:9px;
	background:var(--efv-navy2);
	color:var(--efv-gold);
	border:none;
	padding:10px 14px;
	font-family:inherit;
	font-size:12px;
	font-weight:700;
	letter-spacing:.04em;
	text-transform:uppercase;
	cursor:pointer;
	border:3px solid var(--efv-gold);
	box-shadow:3px 3px 12px rgba(0,0,0,.28);
	transition:background .2s;
}
.efv-fab:hover{ background:var(--efv-navy); }
.efv-fab:focus,.efv-fab:active{ outline:none; }
.efv-fab-text{ line-height:1.15; max-width:72px; text-align:left; }
.efv-fab-chev{ font-size:16px; color:var(--efv-gold); animation:efv-chev 1.15s ease-in-out infinite; }
@keyframes efv-chev{ 0%{ transform:translateX(-2px); opacity:.45; } 55%{ opacity:1; } 100%{ transform:translateX(6px); opacity:0; } }
.efv-pos-left .efv-fab{ left:0; border-radius:0 8px 8px 0; border-left:0 !important; }
.efv-pos-right .efv-fab{ right:0; border-radius:8px 0 0 8px; flex-direction:row-reverse; box-shadow:-3px 3px 12px rgba(0,0,0,.28); border-right:0 !important; }
.efv-pos-right .efv-fab .efv-fab-chev{ transform:scaleX(-1); animation:efv-chev-r 1.15s ease-in-out infinite; }
@keyframes efv-chev-r{ 0%{ transform:scaleX(-1) translateX(-2px); opacity:.45; } 55%{ opacity:1; } 100%{ transform:scaleX(-1) translateX(6px); opacity:0; } }

/* ---- Overlay ---- */
.efv-overlay{
	position:fixed; inset:0; background:rgba(0,0,0,.45);
	z-index:99991; opacity:0; visibility:hidden; transition:opacity .25s;
}
.efv-root.efv-open .efv-overlay{ opacity:1; visibility:visible; }

/* ---- Panel ---- */
.efv-panel{
	position:fixed; top:0; bottom:0; width:348px; max-width:86vw;
	background:var(--efv-navy2); color:#fff; z-index:99992;
	display:flex; flex-direction:column;
	transition:transform .3s ease; box-shadow:0 0 30px rgba(0,0,0,.4);
}
.efv-pos-left .efv-panel{ left:0; transform:translateX(-100%); }
.efv-pos-right .efv-panel{ right:0; transform:translateX(100%); }
.efv-root.efv-open .efv-panel{ transform:translateX(0); }

.efv-panel-head{
	display:flex; align-items:center; justify-content:space-between;
	padding:16px 18px; background:var(--efv-navy); flex:0 0 auto;
	border-bottom:2px solid var(--efv-gold);
}
.efv-panel-title{ font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:15px; color:var(--efv-gold); }
.efv-close{ background:none; border:none; color:var(--efv-gold); font-size:26px; line-height:1; cursor:pointer; padding:0 4px; }
.efv-close:hover{ opacity:.75; }

.efv-search-wrap{ padding:12px 16px; flex:0 0 auto; }
.efv-search{
	width:100%; padding:10px 14px; border-radius:8px; border:none;
	font-size:14px; background:#fff; color:#222;
}

.efv-list{ flex:1 1 auto; overflow-y:auto; padding:6px 16px 24px; }
.efv-list::-webkit-scrollbar{ width:8px; }
.efv-list::-webkit-scrollbar-thumb{ background:#41507e; border-radius:8px; }

.efv-item{ display:block; text-decoration:none; color:#fff; margin:0 0 18px; }
.efv-thumb{
	position:relative; display:block; border-radius:8px; overflow:hidden;
	aspect-ratio:16/9; background:#000;
}
.efv-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.efv-play{
	position:absolute; inset:0; margin:auto; width:54px; height:54px;
	background:rgba(255,255,255,.9); border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	transition:transform .2s, background .2s;
}
.efv-play::after{
	content:""; margin-left:4px;
	border-left:18px solid var(--efv-navy2);
	border-top:11px solid transparent; border-bottom:11px solid transparent;
}
.efv-item:hover .efv-play{ transform:scale(1.08); background:#fff; }
.efv-vtitle{ display:block; margin-top:8px; font-size:14px; font-weight:600; line-height:1.35; color:#eef1fb; }
.efv-empty,.efv-noresult{ color:#b8c1e6; font-size:14px; padding:10px 2px; }

/* ---- Botón "Ver canal" (pie del panel) ---- */
.efv-panel-foot{ flex:0 0 auto; padding:14px 16px; background:var(--efv-navy); border-top:1px solid rgba(235,175,4,.35); }
.efv-channel-btn{
	display:flex; align-items:center; justify-content:center; gap:9px;
	background:var(--efv-gold); color:var(--efv-navy2) !important;
	text-decoration:none; padding:12px 14px; border-radius:8px;
	font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase;
	transition:filter .2s;
}
.efv-channel-btn:hover{ filter:brightness(1.06); }
.efv-channel-btn svg{ flex:0 0 auto; }

/* ---- Lightbox ---- */
.efv-lightbox{
	position:fixed; inset:0; background:rgba(0,0,0,.88); z-index:99999;
	display:none; align-items:center; justify-content:center; padding:20px;
}
.efv-lightbox.efv-lb-open{ display:flex; }
.efv-lb-frame{ width:min(960px,94vw); aspect-ratio:16/9; }
.efv-lb-frame iframe{ width:100%; height:100%; border:0; border-radius:8px; }
.efv-lb-close{
	position:absolute; top:18px; right:24px; background:none; border:none;
	color:#fff; font-size:40px; line-height:1; cursor:pointer;
}

@media (max-width:600px){
	.efv-fab{ top:50%; bottom:auto; padding:10px 13px; font-size:12px; }
	.efv-fab-text{ max-width:64px; }
}
