:root{
	--ec-color-primario: #5b3df0;
	--ec-color-texto: #1f2430;
	--ec-color-muted: #6b7280;
	--ec-radio: 14px;
	--ec-sombra: 0 6px 24px rgba(20,20,40,.08);
}

/* ---------- Badges de estado ---------- */
.ec-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em;}
.ec-badge-proximo{background:#e8f0ff;color:#2952cc;}
.ec-badge-en_curso{background:#e6f9ee;color:#1a9c56;}
.ec-badge-finalizado{background:#f1f1f3;color:#6b7280;}
.ec-badge-flotante{position:absolute;top:12px;left:12px;box-shadow:0 2px 8px rgba(0,0,0,.15);}

/* ---------- Tabs archivo ---------- */
.ec-archivo{max-width:1200px;margin:0 auto;}
.ec-tabs{display:flex;gap:8px;margin-bottom:28px;border-bottom:1px solid #eceef2;flex-wrap:wrap;}
.ec-tab{background:none;border:none;padding:10px 18px;font-size:15px;font-weight:600;color:var(--ec-color-muted);cursor:pointer;border-bottom:3px solid transparent;transition:.2s;}
.ec-tab:hover{color:var(--ec-color-primario);}
.ec-tab.is-active{color:var(--ec-color-primario);border-color:var(--ec-color-primario);}

.ec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;}
.ec-sin-eventos{grid-column:1/-1;text-align:center;color:var(--ec-color-muted);padding:40px 0;}

/* ---------- Card ---------- */
.ec-card{background:#fff;border-radius:var(--ec-radio);overflow:hidden;box-shadow:var(--ec-sombra);display:flex;flex-direction:column;transition:transform .2s, box-shadow .2s;}
.ec-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(20,20,40,.14);}
.ec-card-imagen-link{display:block;}
.ec-card-imagen{position:relative;height:170px;background:#f1f1f6 center/cover no-repeat;display:flex;align-items:center;justify-content:center;}
.ec-card-imagen-placeholder{font-size:40px;opacity:.35;}
.ec-card-cuerpo{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1;}
.ec-card-tipo{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ec-color-primario);font-weight:700;}
.ec-card-titulo{margin:0;font-size:18px;line-height:1.3;}
.ec-card-titulo a{color:var(--ec-color-texto);text-decoration:none;}
.ec-card-titulo a:hover{color:var(--ec-color-primario);}
.ec-card-meta{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13.5px;color:var(--ec-color-muted);}
.ec-card-pie{display:flex;justify-content:space-between;align-items:center;margin-top:4px;font-size:13px;}
.ec-card-precio{font-weight:700;color:var(--ec-color-texto);}
.ec-cupos-disponibles{color:#1a9c56;font-weight:600;}
.ec-cupos-agotados{color:#c0392b;font-weight:600;}
.ec-card-cta{margin-top:8px;width:100%;text-align:center;}

/* ---------- Botones ---------- */
.ec-boton{display:inline-block;border:none;border-radius:10px;padding:12px 20px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;transition:.2s;}
.ec-boton-primario{background:var(--ec-color-primario);color:#fff;}
.ec-boton-primario:hover{filter:brightness(1.08);}
.ec-boton-primario:disabled{background:#d7d7de;cursor:not-allowed;}
.ec-boton-secundario{background:#f2f1fb;color:var(--ec-color-primario);}
.ec-boton-secundario:hover{background:#e6e3f9;}

/* ---------- Single evento ---------- */
.ec-single-hero{position:relative;min-height:340px;background:#20263a center/cover no-repeat;display:flex;align-items:flex-end;}
.ec-single-hero-overlay{width:100%;background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.1));color:#fff;padding:40px 24px;}
.ec-single-hero-overlay h1{color:#fff;margin:10px 0;font-size:clamp(24px,4vw,38px);}
.ec-single-meta{list-style:none;display:flex;gap:20px;flex-wrap:wrap;padding:0;margin:0;font-size:14px;}

.ec-single-body{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 320px;gap:40px;padding:40px 20px 80px;}
@media (max-width:820px){.ec-single-body{grid-template-columns:1fr;}}

.ec-single-descripcion{line-height:1.7;color:var(--ec-color-texto);}
.ec-single-recomendaciones{margin-top:28px;background:#fffbea;border:1px solid #f5e6a8;border-radius:12px;padding:18px 20px;}
.ec-single-recomendaciones h3{margin-top:0;font-size:16px;}
.ec-single-nota{margin-top:20px;font-size:14px;color:var(--ec-color-muted);}

.ec-single-tarjeta-reserva{position:sticky;top:20px;height:fit-content;background:#fff;border-radius:var(--ec-radio);box-shadow:var(--ec-sombra);padding:24px;}
.ec-precio-destacado{font-size:28px;font-weight:800;margin-bottom:16px;}
.ec-resumen-tarjeta{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px;}
.ec-resumen-tarjeta li{display:flex;justify-content:space-between;color:var(--ec-color-muted);}
.ec-barra-cupos{background:#eef0f5;border-radius:999px;height:8px;overflow:hidden;margin:12px 0 20px;}
.ec-barra-cupos-fill{background:var(--ec-color-primario);height:100%;}
.ec-single-tarjeta-reserva .ec-boton{width:100%;text-align:center;}
.ec-single-garantia{font-size:12px;color:var(--ec-color-muted);text-align:center;margin-top:10px;}

/* ---------- Modal de registro ---------- */
.ec-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:20px;}
.ec-modal.is-abierto{display:flex;}
.ec-modal-fondo{position:absolute;inset:0;background:rgba(15,15,25,.55);}
.ec-modal-contenido{position:relative;background:#fff;border-radius:16px;max-width:420px;width:100%;padding:32px;box-shadow:0 20px 60px rgba(0,0,0,.25);}
.ec-modal-cerrar{position:absolute;top:14px;right:16px;background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:var(--ec-color-muted);}
.ec-modal-contenido h3{margin:0 0 4px;font-size:20px;}
.ec-modal-evento{color:var(--ec-color-muted);margin-top:0;margin-bottom:20px;font-size:14px;}
.ec-campo{margin-bottom:14px;display:flex;flex-direction:column;gap:6px;}
.ec-campo label{font-size:13px;font-weight:600;}
.ec-campo input{padding:10px 12px;border:1px solid #dcdfe6;border-radius:8px;font-size:14px;}
.ec-campo input:focus{outline:none;border-color:var(--ec-color-primario);box-shadow:0 0 0 3px rgba(91,61,240,.15);}
.ec-form-registro .ec-boton{width:100%;margin-top:6px;}
.ec-form-aviso{font-size:13px;color:#c0392b;min-height:16px;margin:4px 0;}
.ec-form-exito{text-align:center;padding:10px 0;}
.ec-form-exito-icono{font-size:40px;}


/* ---------- Listado compacto de próximos eventos [eventos_proximos] ---------- */
.ec-proximos{
	--ec-teal:#0D7091;
	--ec-teal-dark:#0A5A73;
	display:grid;
	gap:32px;
	max-width:1200px;
	margin:0 auto;
}
.ec-proximos-cols-1{grid-template-columns:1fr;max-width:520px;}
.ec-proximos-cols-2{grid-template-columns:repeat(2,1fr);}
.ec-proximos-cols-3{grid-template-columns:repeat(3,1fr);}
.ec-proximos-cols-4{grid-template-columns:repeat(4,1fr);}

.ec-card-compacta{
	display:flex;
	flex-direction:column;
	background:transparent;
	box-shadow:none;
	border-radius:0;
}
.ec-compacta-imagen-link{display:block;text-decoration:none;}
.ec-compacta-imagen{
	width:100%;
	aspect-ratio:4/3;
	background:#e8e4df center/cover no-repeat;
	transition:opacity .2s ease;
}
.ec-compacta-imagen-link:hover .ec-compacta-imagen{opacity:.88;}

.ec-compacta-cuerpo{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:16px;
	padding:20px 8px 0;
	text-align:center;
}
.ec-compacta-fecha{
	font-family:"EB Garamond","Cormorant Garamond",Georgia,serif;
	font-size:1.0625rem;
	letter-spacing:.06em;
	text-transform:uppercase;
	color:#000;
}
.ec-compacta-cta{
	display:inline-block;
	font-family:"EB Garamond","Cormorant Garamond",Georgia,serif;
	font-size:1.0625rem;
	line-height:1.2;
	letter-spacing:.02em;
	text-decoration:none;
	text-align:center;
	padding:.75rem 2rem;
	border:1px solid var(--ec-teal);
	border-radius:2px;
	background:transparent;
	color:var(--ec-teal);
	transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.ec-compacta-cta:hover,
.ec-compacta-cta:focus{
	background:var(--ec-teal);
	border-color:var(--ec-teal);
	color:#fff;
	text-decoration:none;
}
.ec-compacta-cta:active{
	background:var(--ec-teal-dark);
	border-color:var(--ec-teal-dark);
	color:#fff;
}

.ec-proximos .ec-sin-eventos{
	grid-column:1/-1;
	font-family:"EB Garamond","Cormorant Garamond",Georgia,serif;
	font-size:1.2rem;
	font-style:italic;
}

@media (max-width:1024px){
	.ec-proximos-cols-4{grid-template-columns:repeat(2,1fr);}
	.ec-proximos-cols-3{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
	.ec-proximos{gap:40px;}
	.ec-proximos-cols-2,
	.ec-proximos-cols-3,
	.ec-proximos-cols-4{grid-template-columns:1fr;}
}
