.ec-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:16px;background:#f5f3fa;border-radius:14px;margin-bottom:12px}.ec-filters[hidden],.ec-card[hidden],.ec-empty[hidden]{display:none}.ec-tabs{display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0;border:0}.ec-tabs label{position:relative;cursor:pointer}.ec-tabs input{position:absolute;opacity:0;width:1px;height:1px}.ec-tabs span{display:flex;align-items:center;min-height:44px;border-radius:9px;padding:9px 12px;background:#fff;color:#625a83;font-size:.8rem}.ec-tabs input:checked+span{background:#5928ab;color:#fff}.ec-tabs input:focus-visible+span{outline:3px solid #9875cd;outline-offset:2px}.ec-filters input:not([type=radio]),.ec-filters select{min-height:44px;border:1px solid #e6e0f0;border-radius:9px;padding:9px 12px;background:white;color:#4c436a;font-size:.82rem;max-width:100%}.ec-search{flex:1;min-width:175px}.ec-search input{width:100%}.ec-date{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#625a83}.ec-reset{min-height:44px;border:0;border-radius:9px;padding:9px 12px;background:#eae6f2;color:#54456f;font-size:.8rem}.ec-count{color:#6b6381;font-size:.85rem;margin:16px 0}.ec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.ec-card{min-width:0;overflow:hidden;background:#fff;border:1px solid #ebe5f5;border-radius:12px;box-shadow:0 5px 18px #2412450d;scroll-margin-top:140px;display:flex;flex-direction:column}.ec-card:target{outline:3px solid #875acb;outline-offset:3px}.ec-media{aspect-ratio:16/9;position:relative;background:#eee8f6}.ec-media img{width:100%;height:100%;object-fit:cover;display:block}.ec-status{position:absolute;top:10px;left:10px;background:#e8f6df;color:#315b1b;font-size:.7rem;border-radius:6px;padding:5px 8px;font-weight:600}.ec-past{background:#ede5fa;color:#623b95}.ec-body{padding:16px;display:flex;flex-direction:column;gap:9px;flex:1}.ec-body h2{font-size:1rem;line-height:1.35;font-weight:750;color:#26154c;margin:0;overflow-wrap:anywhere}.ec-body p{margin:0}.ec-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#77708a;font-size:.82rem;line-height:1.5}.ec-meta{color:#6f6581;font-size:.76rem;line-height:1.5;overflow-wrap:anywhere}.ec-meta i{color:#6530b1;margin-right:4px}.ec-details{margin-top:auto;padding-top:8px;color:#6431a6;font-size:.82rem}.ec-details summary{cursor:pointer;min-height:44px;border:1px solid #a88bcf;border-radius:8px;padding:11px}.ec-details p{padding:12px 0;white-space:pre-line;line-height:1.6;color:#655d74;overflow-wrap:anywhere}.ec-actions{display:flex;flex-wrap:wrap;gap:8px}.ec-actions:empty{display:none}.ec-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 11px;border:1px solid #976bc9;border-radius:8px;text-decoration:none;font-size:.78rem;color:#6330a4}.ec-actions .ec-register{background:#5928ab;color:white}.ec-filters :focus-visible,.ec-card :focus-visible{outline:3px solid #a285d2;outline-offset:2px}.ec-empty{padding:30px;text-align:center;color:#6f6581}
@media(max-width:1199px){.ec-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:991px){.ec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575px){.ec-grid{grid-template-columns:1fr}.ec-filters{padding:12px}.ec-filters>label{width:100%}.ec-filters select{width:100%}.ec-date input{flex:1;min-width:0}.ec-tabs{width:100%}.ec-tabs span{font-size:.75rem;padding:8px}.ec-body{padding:18px}}
/* Marco independiente del tamaño original del flyer. */
.ec-grid{align-items:stretch;grid-auto-rows:1fr}
.ec-card .ec-media{position:relative;width:100%;height:0;min-height:0;padding-top:56.25%;aspect-ratio:auto;flex:none;overflow:hidden}
.ec-card .ec-media img{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;max-height:none;object-fit:cover;object-position:center}
.ec-body h2{min-height:2.7em}
.ec-description{min-height:4.5em}
@media(max-width:575px){.ec-grid{grid-auto-rows:auto}}

.ec-actions{margin-top:auto;display:flex;flex-wrap:nowrap;align-items:stretch;gap:8px;padding-top:12px}.ec-actions>[hidden]{display:none!important}.ec-actions>a,.ec-open-detail{flex:1;min-width:0;min-height:44px;border:1px solid #976bc9;border-radius:8px;padding:8px 6px;font-size:.78rem;white-space:nowrap;text-align:center;color:#6330a4;background:#fff;cursor:pointer}.ec-open-detail:hover{background:#f1eafa}
.ec-dialog{box-sizing:border-box;padding:0;border:1px solid #e5dfee;border-radius:18px;max-width:820px;width:calc(100% - 28px);max-height:90vh;max-height:90dvh;overflow:auto;background:white;color:#30253d}.ec-dialog::backdrop{background:#130a2d99}.ec-dialog-x{position:sticky;top:12px;display:block;z-index:2;margin:12px 12px -56px auto;width:44px;height:44px;border:1px solid #ffffff70;border-radius:50%;background:#493561;color:white;font-size:27px}.ec-dialog-header{padding:26px 74px 24px 26px;background:#1d1037;color:white}.ec-dialog-header h2{font-size:clamp(1.2rem,3vw,1.7rem);line-height:1.35;margin:0;overflow-wrap:anywhere}.ec-dialog-header>p{color:#d4b4ff;font-size:.8rem;margin:0 0 8px}.ec-dialog-image{display:block;width:100%;height:260px;object-fit:contain;background:#f2eef7}.ec-dialog-body{padding:24px}.ec-dialog-body .ec-meta{font-size:.92rem;margin:0 0 10px}.ec-dialog-body h3{font-size:1.1rem;margin:22px 0 12px}.ec-dialog-description{white-space:pre-line;overflow-wrap:anywhere;line-height:1.65}.ec-dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.ec-dialog-actions a,.ec-dialog-close{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;background:#5c2ba5;color:white;border:1px solid #5c2ba5;border-radius:9px;text-decoration:none;font-size:.9rem}.ec-dialog-footer{padding:0 24px 24px;display:flex;justify-content:flex-end}.ec-dialog-close{background:#fff;color:#5c2ba5}.ec-dialog button{cursor:pointer}.ec-dialog :focus-visible{outline:3px solid #a4ce73;outline-offset:3px}@media(max-width:575px){.ec-dialog-body{padding:18px}.ec-dialog-image{height:210px}.ec-dialog-header{padding-left:18px}}

/* Modal lateral: flyer completo y datos reales. */
.ec-actions .ec-open-detail{background:#6130ad;border-color:#6130ad;color:white;font-weight:600}.ec-actions .ec-open-detail:hover{background:#482081;color:white}
.ec-dialog{max-width:1050px;background:#fff;border-radius:20px;padding:18px;max-height:92vh;max-height:92dvh}.ec-dialog::backdrop{background:#151136a6;backdrop-filter:blur(4px)}
.ec-dialog .ec-dialog-x{top:0;margin:0 0 -44px auto;background:#ede6fa;color:#382065;border:0;width:36px;height:36px;font-size:24px;z-index:4}
.ec-dialog-content{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:26px;align-items:start}
.ec-dialog-poster{background:#f4f1f8;border-radius:14px;overflow:hidden;position:sticky;top:0}.ec-dialog .ec-dialog-image{width:100%;height:auto;max-height:76vh;max-height:76dvh;object-fit:contain;display:block;background:#f4f1f8}
.ec-dialog-info{min-width:0;padding-top:4px}.ec-dialog .ec-dialog-header{background:transparent;color:#17113c;padding:0 36px 16px 0}.ec-dialog .ec-dialog-header>p{display:inline-block;background:#eee5fa;color:#6535a8;font-size:.75rem;font-weight:650;border-radius:7px;padding:5px 9px;margin:0 0 12px}.ec-dialog .ec-dialog-header h2{color:#17113c;font-size:clamp(1.2rem,2vw,1.65rem);font-weight:750;line-height:1.25}
.ec-dialog .ec-dialog-body{padding:0}.ec-dialog-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;padding:16px 0;border-top:1px solid #ece8f2;border-bottom:1px solid #ece8f2}.ec-dialog-facts>div{min-width:0}.ec-dialog-facts>div:last-child{grid-column:1/-1}.ec-dialog-facts strong{display:block;color:#302354;font-size:.79rem;margin-bottom:5px}.ec-dialog .ec-dialog-facts .ec-meta{font-size:.82rem;margin:0;line-height:1.5;color:#75688d}.ec-dialog .ec-dialog-body h3{font-size:.93rem;color:#291a4a;font-weight:700;margin:20px 0 10px}.ec-dialog-description{font-size:.88rem;line-height:1.65;color:#75688d}.ec-dialog-description p{margin:0}.ec-dialog .ec-dialog-actions{margin-top:24px;gap:10px}.ec-dialog-actions a{flex:1;text-align:center;min-height:44px;font-size:.82rem}.ec-dialog .ec-dialog-footer{padding:18px 0 0}.ec-dialog .ec-dialog-close{font-size:.82rem;padding:8px 18px;min-height:44px}
@media(max-width:700px){.ec-dialog{padding:14px}.ec-dialog-content{grid-template-columns:1fr;gap:20px}.ec-dialog-poster{position:static;margin-right:42px}.ec-dialog .ec-dialog-image{height:auto;max-height:42vh;max-height:42dvh}.ec-dialog .ec-dialog-header{padding-right:0}.ec-dialog-info{padding:0 4px}.ec-dialog-facts{gap:12px}.ec-dialog .ec-dialog-header h2{font-size:1.3rem}}
