body{overflow-x:hidden;}
#msp{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);}
#msp,#msp *{box-sizing:border-box;-webkit-font-smoothing:antialiased;}
#msp button{background-image:none!important;text-transform:none!important;letter-spacing:normal!important;line-height:normal!important;font-size:inherit!important;padding:0!important;border-style:solid!important;box-shadow:none!important;}

#msp{
  --bk:#0a0a0a;--wh:#f5f2eb;--yl:#ffe135;
  --pu:#7c3aff;--pl:#ede9fe;
  --gn:#22c55e;--rd:#ff3c3c;
  --bd:2px solid #0a0a0a;
  --fh:'Barlow Condensed',sans-serif;
  --fb:'Space Grotesk',sans-serif;
  --i3:#777;--bg:#fafaf7;--dv:#e0ddd8;--hv:#ece9e0;
  font-family:var(--fb);color:var(--bk);background:var(--wh);font-size:15px;
}

/* Header */
.msp-ph{background:var(--bk);padding:28px 32px 22px;border-bottom:var(--bd);display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.msp-ey{font-family:var(--fh);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--yl);margin-bottom:8px;display:block;}
.msp-title{font-family:var(--fh);font-size:clamp(40px,5vw,68px);font-weight:900;line-height:.9;text-transform:uppercase;color:#fff;letter-spacing:-.02em;margin:0;}
.ph-cta{display:inline-flex!important;align-items:center!important;gap:8px!important;padding:12px 22px!important;background:var(--yl)!important;color:var(--bk)!important;border:var(--bd)!important;box-shadow:3px 3px 0 rgba(255,225,53,.35)!important;font-family:var(--fh)!important;font-size:14px!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important;text-decoration:none!important;white-space:nowrap!important;flex-shrink:0;align-self:flex-end;margin-bottom:3px;transition:transform .1s,box-shadow .1s!important;}
.ph-cta:hover{transform:translate(-2px,-2px)!important;box-shadow:5px 5px 0 rgba(255,225,53,.5)!important;}
@media(max-width:640px){.msp-ph{padding:18px 16px 16px;}.ph-cta{width:100%!important;justify-content:center!important;}}

.msp-body{display:flex;align-items:flex-start;}

/* Sidebar */
#msp-sb{width:280px;min-width:280px;flex-shrink:0;border-right:var(--bd);background:var(--wh);overflow-y:auto;overflow-x:hidden;position:sticky;top:0;max-height:100vh;}
@media(max-width:860px){#msp-sb{position:fixed;left:0;top:0;bottom:0;width:min(300px,92vw);transform:translateX(-110%);z-index:9999;box-shadow:6px 0 0 var(--bk);transition:transform .26s cubic-bezier(.4,0,.2,1);}#msp-sb.open{transform:translateX(0);}}

.sb-hd{padding:20px 18px 16px;border-bottom:var(--bd);background:var(--wh);position:sticky;top:0;z-index:10;display:flex;align-items:flex-start;justify-content:space-between;}
.sb-ey{font-family:var(--fh);font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--i3);margin-bottom:4px;display:block;}
.sb-num{font-size:38px;font-weight:800;color:var(--bk);line-height:1;letter-spacing:-.04em;}
.sb-unit{font-size:13px;color:var(--i3);font-weight:400;}
.sb-x{display:none!important;width:32px;height:32px;border:2px solid var(--bk)!important;background:var(--wh)!important;color:var(--bk)!important;font-size:15px!important;font-weight:700!important;cursor:pointer!important;border-radius:0!important;align-items:center!important;justify-content:center!important;flex-shrink:0;margin-top:4px;}
@media(max-width:860px){.sb-x{display:flex!important;}}
.sb-x:hover{background:var(--bk)!important;color:var(--wh)!important;}

.sb-sec{padding:14px 18px;border-bottom:1px solid var(--dv);}
.sb-lbl{font-family:var(--fh);font-size:13px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--bk);margin-bottom:10px;display:block;}
.sb-help{font-size:12px;color:var(--i3);line-height:1.5;margin:-4px 0 10px;font-family:var(--fb);}

.msp-inp{width:100%!important;padding:10px 13px!important;font-size:14px!important;font-weight:500!important;font-family:var(--fb)!important;border:2px solid var(--bk)!important;border-radius:0!important;background:var(--wh)!important;color:var(--bk)!important;outline:none!important;}
.msp-inp:focus{background:var(--pl)!important;}

/* Date fix: min-width:0 prevents overflow past sidebar edge */
.date-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:hidden;}
.df{min-width:0;}
.df label{display:block;font-family:var(--fh);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--i3);margin-bottom:4px;}
.df input{width:100%!important;min-width:0!important;padding:9px 5px!important;font-size:11px!important;font-family:var(--fb)!important;border:2px solid var(--bk)!important;border-radius:0!important;background:var(--wh)!important;color:var(--bk)!important;outline:none!important;cursor:pointer!important;}
.df input:focus{background:var(--pl)!important;}

.flt-pill{display:none;align-items:center;gap:6px;padding:8px 18px;border-bottom:1px solid var(--dv);background:var(--pl);font-family:var(--fh);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pu);}
.flt-pill.show{display:flex;}
.flt-dot{width:6px;height:6px;border-radius:50%;background:var(--pu);flex-shrink:0;}

.rst-btn{display:block;padding:14px 18px;font-size:13px;color:var(--i3);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-weight:500;font-family:var(--fb);}
.rst-btn:hover{color:var(--bk);}

/* Dropdown */
.msp-sel{position:relative;}
.msp-trig{width:100%;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:11px 13px!important;background:var(--wh)!important;border:2px solid var(--bk)!important;border-radius:0!important;color:var(--bk)!important;font-size:14px!important;font-weight:500!important;cursor:pointer!important;font-family:var(--fb)!important;}
.msp-trig:hover{background:var(--bg)!important;}
.msp-trig.open{background:var(--pl)!important;border-color:var(--pu)!important;}
.tv{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tv.ph{color:var(--i3);font-weight:400;}
.ta{display:flex;align-items:center;margin-left:8px;flex-shrink:0;transition:transform .18s;color:var(--i3);}
.msp-trig.open .ta{transform:rotate(180deg);}
.msp-panel{display:none;position:absolute;top:100%;left:0;right:0;background:var(--wh);border:2px solid var(--pu);border-top:none;z-index:600;max-height:280px;overflow:hidden;flex-direction:column;box-shadow:3px 3px 0 var(--bk);}
.msp-panel.open{display:flex;}
.msp-psw{padding:9px 11px;border-bottom:1px solid var(--dv);flex-shrink:0;}
.msp-psi{width:100%!important;padding:8px 11px!important;font-size:13px!important;font-family:var(--fb)!important;border:2px solid var(--dv)!important;border-radius:0!important;background:var(--bg)!important;color:var(--bk)!important;outline:none!important;}
.msp-psi:focus{border-color:var(--pu)!important;}
.msp-opts{overflow-y:auto;flex:1;}
.msp-opt{display:flex!important;align-items:center!important;gap:10px!important;padding:13px 15px!important;cursor:pointer!important;font-size:14px!important;font-weight:500!important;color:var(--bk)!important;background:var(--wh)!important;border:none!important;width:100%!important;text-align:left!important;border-bottom:1px solid var(--dv)!important;border-radius:0!important;transition:background .1s!important;min-height:44px!important;font-family:var(--fb)!important;}
.msp-opt:last-child{border-bottom:none!important;}
.msp-opt:hover{background:var(--bg)!important;}
.msp-opt.active{background:var(--pl)!important;color:var(--pu)!important;font-weight:700!important;}
.msp-opt.indent{padding-left:28px!important;font-size:13px!important;color:var(--i3)!important;}
.msp-opt.indent.active{color:var(--pu)!important;}
.msp-oc{margin-left:auto;font-size:11px;color:var(--i3);flex-shrink:0;padding-left:8px;}

/* Main */
#msp-main{flex:1;min-width:0;}

.estado-bar{display:flex;border-bottom:var(--bd);overflow-x:auto;scrollbar-width:none;background:var(--wh);}
.estado-bar::-webkit-scrollbar{display:none;}
#msp .etab{font-family:var(--fh)!important;font-size:17px!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase!important;padding:20px 36px 18px!important;background:none!important;border:none!important;border-right:var(--bd)!important;color:#999!important;cursor:pointer!important;white-space:nowrap!important;transition:background .12s!important;}
#msp .etab:hover:not(.active){background:var(--hv)!important;color:var(--bk)!important;}
#msp .etab.active{background:var(--pu)!important;color:#fff!important;}
@media(max-width:860px){#msp .etab{font-size:15px!important;padding:16px 22px 14px!important;}}

/* Featured badge on card */
.rc-feat{
  position:absolute;top:0;left:0;
  background:var(--yl);color:var(--bk);
  font-family:var(--fh);font-size:9px;font-weight:900;
  letter-spacing:.1em;text-transform:uppercase;
  padding:4px 9px;
  border-right:var(--bd);border-bottom:var(--bd);
  z-index:2;
}

.res-bar{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;border-bottom:var(--bd);background:var(--wh);}
.rc-lbl{font-family:var(--fh);font-size:13px;font-weight:700;color:var(--i3);text-transform:uppercase;letter-spacing:.08em;}
.rc-lbl strong{color:var(--pu);font-size:15px;}
.sort-w{position:relative;}
.sort-s{-webkit-appearance:none;appearance:none;font-family:var(--fh)!important;font-size:13px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.08em!important;padding:8px 30px 8px 11px!important;border:2px solid var(--bk)!important;border-radius:0!important;background:var(--wh)!important;color:var(--bk)!important;cursor:pointer!important;}
.sort-s:focus{outline:none;background:var(--pl)!important;}
.sort-a{position:absolute;right:9px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--i3);}

/* Card grid */
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);border-left:var(--bd);}
.cgrid.g2{grid-template-columns:repeat(2,1fr);}
@media(max-width:1100px){.cgrid{grid-template-columns:repeat(2,1fr);}.cgrid.g2{grid-template-columns:1fr;}}
@media(max-width:640px){.cgrid{grid-template-columns:1fr;}}

/* Card */
.rc{display:flex;flex-direction:column;border-right:var(--bd);border-top:var(--bd);background:var(--wh);min-width:0;overflow:hidden;}
.rc-img{display:block;width:100%;aspect-ratio:16/9;position:relative;overflow:hidden;text-decoration:none;border-bottom:var(--bd);flex-shrink:0;cursor:pointer;}
.rc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s cubic-bezier(.2,0,.2,1);}
.rc-init{font-family:var(--fh);font-size:64px;font-weight:900;text-transform:uppercase;color:var(--bk);opacity:.07;user-select:none;line-height:1;transition:opacity .2s;display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.rc:hover{background:var(--hv);}
.rc:hover .rc-img img{transform:scale(1.05);}
.rc:hover .rc-init{opacity:.13;}
.rc:hover .rc-title a{color:var(--pu);}
.rc:hover .rc-img{border-bottom-color:var(--pu);}

.cs{position:absolute;top:0;right:0;font-family:var(--fh);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-left:var(--bd);border-bottom:var(--bd);}
.cs-now{background:var(--pu);color:#fff;}
.cs-soon{background:var(--yl);color:var(--bk);}
.cs-past{background:var(--bk);color:#fff;}
.cs-perm{background:#555;color:#fff;}
.cs-recur{background:var(--gn);color:#fff;}
.cs-urgnt{background:var(--rd);color:#fff;}

.rc-body{padding:15px;flex:1;display:flex;flex-direction:column;gap:9px;}
.rc-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px;}
.rc-tag{font-family:var(--fh);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--pu);color:var(--pu);background:var(--pl);display:inline-block;}
.rc-loc{font-size:12px;font-weight:600;color:var(--i3);margin-left:auto;padding-left:8px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%;}
.rc-venue{display:block;font-size:13px;font-weight:600;color:var(--i3);text-decoration:none;margin-top:1px;}
.rc-venue:hover{color:var(--pu);}
.rc-title{font-family:var(--fh);font-size:20px;font-weight:900;text-transform:uppercase;line-height:1.05;letter-spacing:-.01em;margin:0;flex:1;}
.rc-title a{color:var(--bk);text-decoration:none;transition:color .15s;}
.rc-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;border-top:1px solid var(--dv);padding-top:10px;margin-top:auto;}
.rc-date{font-family:var(--fh);font-size:13px;font-weight:700;color:var(--i3);}
.rc-date strong{color:var(--pu);}
.rc-date .dc{color:var(--rd);}
.chips{display:flex;gap:5px;flex-wrap:wrap;}
.chip{font-family:var(--fh);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--dv);color:var(--i3);}
.chip-free{border-color:var(--gn);color:var(--gn);}
.chip-online{border-color:var(--pu);color:var(--pu);}

/* Load more — big neobrutalist */
#load-more-wrap{padding:44px 28px;text-align:center;border-left:var(--bd);border-top:var(--bd);background:var(--wh);}
.lm-btn{font-family:var(--fh)!important;font-size:18px!important;font-weight:900!important;letter-spacing:.1em!important;text-transform:uppercase!important;padding:22px 64px!important;background:var(--pu)!important;color:#fff!important;border:var(--bd)!important;box-shadow:6px 6px 0 var(--bk)!important;cursor:pointer!important;min-width:320px!important;transition:transform .1s,box-shadow .1s!important;display:inline-block!important;}
.lm-btn:hover{transform:translate(-3px,-3px)!important;box-shadow:9px 9px 0 var(--bk)!important;}
.lm-btn:active{transform:translate(2px,2px)!important;box-shadow:3px 3px 0 var(--bk)!important;}
#lm-count{margin-top:14px;font-size:13px;color:var(--i3);font-family:var(--fb);}

/* Siempre load more */
#siempre-lm-wrap{padding:36px 28px;text-align:center;border-left:var(--bd);border-top:var(--bd);background:var(--wh);display:none;}
.slm-btn{font-family:var(--fh)!important;font-size:18px!important;font-weight:900!important;letter-spacing:.1em!important;text-transform:uppercase!important;padding:22px 64px!important;background:var(--bk)!important;color:var(--yl)!important;border:var(--bd)!important;box-shadow:6px 6px 0 var(--bk)!important;cursor:pointer!important;min-width:320px!important;transition:transform .1s,box-shadow .1s!important;display:inline-block!important;}
.slm-btn:hover{transform:translate(-3px,-3px)!important;box-shadow:9px 9px 0 var(--bk)!important;background:var(--yl)!important;color:var(--bk)!important;}
.slm-btn:active{transform:translate(2px,2px)!important;box-shadow:3px 3px 0 var(--bk)!important;}
#siempre-lm-count{margin-top:14px;font-size:13px;color:var(--i3);font-family:var(--fb);}

/* Siempre zone — collapsible */
.siempre-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--yl);border-top:var(--bd);border-bottom:var(--bd);cursor:pointer;user-select:none;}
.siempre-hd:hover{background:#f5d400;}
.siempre-left{display:flex;align-items:center;gap:12px;}
.siempre-lbl{font-family:var(--fh);font-size:14px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--bk);}
.siempre-ct{font-family:var(--fh);font-size:12px;font-weight:700;color:rgba(0,0,0,.45);}
.siempre-cta{display:flex;align-items:center;gap:7px;font-family:var(--fh);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(0,0,0,.5);transition:color .15s;}
.siempre-hd:hover .siempre-cta{color:var(--bk);}
.siempre-arr{display:flex;transition:transform .3s;}
.siempre-zone.open .siempre-arr{transform:rotate(180deg);}

/* Collapsed: show ~half a card row as peek, fade out */
.siempre-wrap{position:relative;}
#siempre-grid{
  max-height:180px;
  overflow:hidden;
  transition:max-height .5s cubic-bezier(.4,0,.2,1);
}
.siempre-zone.open #siempre-grid{max-height:99999px;overflow:visible;}
/* Gradient fade overlay */
.siempre-fade{
  position:absolute;bottom:0;left:0;right:0;
  height:110px;
  background:linear-gradient(to bottom, transparent, var(--wh));
  pointer-events:none;
  transition:opacity .3s;
}
.siempre-zone.open .siempre-fade{opacity:0;pointer-events:none;}

/* Empty state — clean */
.empty-st{padding:52px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;background:var(--wh);border-left:var(--bd);}
.em-title{font-family:var(--fh);font-size:20px;font-weight:900;text-transform:uppercase;color:var(--bk);}
.em-sub{font-size:14px;color:var(--i3);line-height:1.6;}

/* Loading */
#msp-ld{padding:60px;display:flex;flex-direction:column;align-items:center;gap:14px;border-left:var(--bd);}
.ldsp{width:24px;height:24px;border:3px solid var(--dv);border-top-color:var(--pu);border-radius:50%;animation:ldspin .8s linear infinite;}
@keyframes ldspin{to{transform:rotate(360deg);}}
.ldtx{font-family:var(--fh);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--i3);}

/* Mobile filter btn — uses literal hex (outside #msp) */
/* Mobile filter trigger — lives inline in the results toolbar (not a floating
   pill), so it never covers cards or collides with the app's bottom tab bar.
   Hidden on desktop, where the sidebar is always visible. Shows the active
   count via .msp-filt-n (set by renderChips()). */
/* Scoped under #msp + !important to beat the global "#msp button" reset. */
#msp .msp-filt-btn{display:none;align-items:center;gap:7px;padding:9px 14px!important;background:var(--wh)!important;color:var(--bk)!important;border:2px solid var(--bk)!important;border-radius:0!important;font-family:var(--fh)!important;font-size:14px!important;font-weight:800!important;letter-spacing:.06em!important;text-transform:uppercase!important;line-height:1!important;cursor:pointer!important;box-shadow:none!important;white-space:nowrap;}
#msp .msp-filt-btn:hover{background:var(--bk)!important;color:var(--wh)!important;}
#msp .msp-filt-n{display:inline-flex;align-items:center;justify-content:center;min-width:18px;padding:2px 6px!important;background:var(--pu)!important;color:#fff!important;font-size:11px!important;font-weight:800!important;line-height:1!important;letter-spacing:0!important;}
@media(max-width:860px){
  #msp .msp-filt-btn{display:inline-flex;}
  .res-bar{gap:10px;}
  .res-bar .sort-w{margin-left:auto;}
}
#msp-bd{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9998;}
#msp-bd.show{display:block;}
@media(max-width:860px){.msp-body{flex-direction:column;}#msp-main{width:100%;}}

/* Active-filter chips (removable) — sit above the results grid. Each chip
   clears its own filter; "Limpiar todo" resets all. Populated by renderChips()
   in mesh-search-content.js. */
.msp-chips{display:flex;flex-wrap:wrap;gap:8px;padding:14px 24px;border-bottom:var(--bd);background:var(--bg);}
.msp-chip{display:inline-flex!important;align-items:center;gap:7px;padding:7px 12px!important;background:var(--wh)!important;border:2px solid var(--bk)!important;border-radius:0!important;font-family:var(--fb)!important;font-size:13px!important;font-weight:600!important;color:var(--bk)!important;cursor:pointer!important;line-height:1!important;transition:background .12s,color .12s;}
.msp-chip:hover{background:var(--bk)!important;color:var(--wh)!important;}
.msp-chip-x{font-size:12px;opacity:.6;}
.msp-chip:hover .msp-chip-x{opacity:1;}
.msp-chip-clear{background:var(--pl)!important;border-color:var(--pu)!important;color:var(--pu)!important;font-weight:700!important;}
.msp-chip-clear:hover{background:var(--pu)!important;color:#fff!important;}
@media(max-width:640px){.msp-chips{padding:12px 16px;}}

/* Save / Recomendar control, overlaid on the card image (bottom-right). Sits
   clear of the top-right status badge and top-left featured tag. The control
   markup is emitted by card() in mesh-search-content.js and hydrated by the
   site-wide mesh-save-inline.js. */
#msp .rc-imgwrap{ position:relative; }
#msp .rc-actions{ position:absolute; right:8px; bottom:8px; z-index:5; display:inline-flex; gap:6px; }
/* Slightly smaller than the single-page hero control, to suit dense cards. */
#msp .rc-actions .mesh-inline-btn{ min-width:38px !important; height:38px !important; padding:0 10px !important; box-shadow:0 1px 4px rgba(0,0,0,.2) !important; }
#msp .rc-actions .mesh-inline-btn i{ font-size:18px !important; }
