{"id":47470,"date":"2026-04-01T13:32:57","date_gmt":"2026-04-01T19:32:57","guid":{"rendered":"https:\/\/themesh.art\/?page_id=47470"},"modified":"2026-05-13T16:09:06","modified_gmt":"2026-05-13T22:09:06","slug":"events","status":"publish","type":"page","link":"https:\/\/themesh.art\/en\/events\/","title":{"rendered":"eventos"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"47470\" class=\"elementor elementor-47470\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b2692d3 e-flex e-con-boxed e-con e-parent\" data-id=\"b2692d3\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-062719c e-flex e-con-boxed e-con e-parent\" data-id=\"062719c\" data-element_type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2306816 elementor-widget elementor-widget-html\" data-id=\"2306816\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!-- MESH \u2014 SEARCH PAGE v1.7\n     Elementor \u2192 Code Widget (Stretch Section, 0 padding)\n     Disable Astra page title: Page Settings \u2192 Hide Title\n\n     CHANGES v1.7:\n     \u2022 Fixed taxonomy slug detection \u2014 explicit per CPT, no more heuristics\n     \u2022 Category and Discipline dropdowns now correct for all verticals\n     \u2022 Location filter shows parent\u2192child hierarchy (country \u2192 \u2319 city)\n     \u2022 Single file for all verticals \u2014 just change MESH_PAGE\n\n     \u2500\u2500 CONFIGURE: change this one line per page \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n<script>\n\/\/ Page type \u2014 change this one line per Elementor widget:\n\/\/    'events' | 'learning' | 'opportunities'\nwindow.MESH_PAGE = 'events';\n<\/script>\n\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:ital,wght@0,700;0,800;0,900;1,700;1,900&family=Space+Grotesk:wght@400;500;600;700&display=swap\">\n\n<style>\nbody{overflow-x:hidden;}\n#msp{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);}\n#msp,#msp *{box-sizing:border-box;-webkit-font-smoothing:antialiased;}\n#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;}\n\n#msp{\n  --bk:#0a0a0a;--wh:#f5f2eb;--yl:#ffe135;\n  --pu:#7c3aff;--pl:#ede9fe;\n  --gn:#22c55e;--rd:#ff3c3c;\n  --bd:2px solid #0a0a0a;\n  --fh:'Barlow Condensed',sans-serif;\n  --fb:'Space Grotesk',sans-serif;\n  --i3:#777;--bg:#fafaf7;--dv:#e0ddd8;--hv:#ece9e0;\n  font-family:var(--fb);color:var(--bk);background:var(--wh);font-size:15px;\n}\n\n\/* Header *\/\n.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;}\n.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;}\n.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;}\n.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;}\n.ph-cta:hover{transform:translate(-2px,-2px)!important;box-shadow:5px 5px 0 rgba(255,225,53,.5)!important;}\n@media(max-width:640px){.msp-ph{padding:18px 16px 16px;}.ph-cta{width:100%!important;justify-content:center!important;}}\n\n.msp-body{display:flex;align-items:flex-start;}\n\n\/* Sidebar *\/\n#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;}\n@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);}}\n\n.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;}\n.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;}\n.sb-num{font-size:38px;font-weight:800;color:var(--bk);line-height:1;letter-spacing:-.04em;}\n.sb-unit{font-size:13px;color:var(--i3);font-weight:400;}\n.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;}\n@media(max-width:860px){.sb-x{display:flex!important;}}\n.sb-x:hover{background:var(--bk)!important;color:var(--wh)!important;}\n\n.sb-sec{padding:14px 18px;border-bottom:1px solid var(--dv);}\n.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;}\n.sb-help{font-size:12px;color:var(--i3);line-height:1.5;margin:-4px 0 10px;font-family:var(--fb);}\n\n.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;}\n.msp-inp:focus{background:var(--pl)!important;}\n\n\/* Date fix: min-width:0 prevents overflow past sidebar edge *\/\n.date-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:hidden;}\n.df{min-width:0;}\n.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;}\n.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;}\n.df input:focus{background:var(--pl)!important;}\n\n.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);}\n.flt-pill.show{display:flex;}\n.flt-dot{width:6px;height:6px;border-radius:50%;background:var(--pu);flex-shrink:0;}\n\n.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);}\n.rst-btn:hover{color:var(--bk);}\n\n\/* Dropdown *\/\n.msp-sel{position:relative;}\n.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;}\n.msp-trig:hover{background:var(--bg)!important;}\n.msp-trig.open{background:var(--pl)!important;border-color:var(--pu)!important;}\n.tv{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}\n.tv.ph{color:var(--i3);font-weight:400;}\n.ta{display:flex;align-items:center;margin-left:8px;flex-shrink:0;transition:transform .18s;color:var(--i3);}\n.msp-trig.open .ta{transform:rotate(180deg);}\n.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);}\n.msp-panel.open{display:flex;}\n.msp-psw{padding:9px 11px;border-bottom:1px solid var(--dv);flex-shrink:0;}\n.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;}\n.msp-psi:focus{border-color:var(--pu)!important;}\n.msp-opts{overflow-y:auto;flex:1;}\n.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;}\n.msp-opt:last-child{border-bottom:none!important;}\n.msp-opt:hover{background:var(--bg)!important;}\n.msp-opt.active{background:var(--pl)!important;color:var(--pu)!important;font-weight:700!important;}\n.msp-opt.indent{padding-left:28px!important;font-size:13px!important;color:var(--i3)!important;}\n.msp-opt.indent.active{color:var(--pu)!important;}\n.msp-oc{margin-left:auto;font-size:11px;color:var(--i3);flex-shrink:0;padding-left:8px;}\n\n\/* Main *\/\n#msp-main{flex:1;min-width:0;}\n\n.estado-bar{display:flex;border-bottom:var(--bd);overflow-x:auto;scrollbar-width:none;background:var(--wh);}\n.estado-bar::-webkit-scrollbar{display:none;}\n#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;}\n#msp .etab:hover:not(.active){background:var(--hv)!important;color:var(--bk)!important;}\n#msp .etab.active{background:var(--pu)!important;color:#fff!important;}\n@media(max-width:860px){#msp .etab{font-size:15px!important;padding:16px 22px 14px!important;}}\n\n\/* Featured badge on card *\/\n.rc-feat{\n  position:absolute;top:0;left:0;\n  background:var(--yl);color:var(--bk);\n  font-family:var(--fh);font-size:9px;font-weight:900;\n  letter-spacing:.1em;text-transform:uppercase;\n  padding:4px 9px;\n  border-right:var(--bd);border-bottom:var(--bd);\n  z-index:2;\n}\n\n.res-bar{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;border-bottom:var(--bd);background:var(--wh);}\n.rc-lbl{font-family:var(--fh);font-size:13px;font-weight:700;color:var(--i3);text-transform:uppercase;letter-spacing:.08em;}\n.rc-lbl strong{color:var(--pu);font-size:15px;}\n.sort-w{position:relative;}\n.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;}\n.sort-s:focus{outline:none;background:var(--pl)!important;}\n.sort-a{position:absolute;right:9px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--i3);}\n\n\/* Card grid *\/\n.cgrid{display:grid;grid-template-columns:repeat(3,1fr);border-left:var(--bd);}\n.cgrid.g2{grid-template-columns:repeat(2,1fr);}\n@media(max-width:1100px){.cgrid{grid-template-columns:repeat(2,1fr);}.cgrid.g2{grid-template-columns:1fr;}}\n@media(max-width:640px){.cgrid{grid-template-columns:1fr;}}\n\n\/* Card *\/\n.rc{display:flex;flex-direction:column;border-right:var(--bd);border-top:var(--bd);background:var(--wh);min-width:0;overflow:hidden;}\n.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;}\n.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);}\n.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%;}\n.rc:hover{background:var(--hv);}\n.rc:hover .rc-img img{transform:scale(1.05);}\n.rc:hover .rc-init{opacity:.13;}\n.rc:hover .rc-title a{color:var(--pu);}\n.rc:hover .rc-img{border-bottom-color:var(--pu);}\n\n.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);}\n.cs-now{background:var(--pu);color:#fff;}\n.cs-soon{background:var(--yl);color:var(--bk);}\n.cs-past{background:var(--bk);color:#fff;}\n.cs-perm{background:#555;color:#fff;}\n.cs-recur{background:var(--gn);color:#fff;}\n.cs-urgnt{background:var(--rd);color:#fff;}\n\n.rc-body{padding:15px;flex:1;display:flex;flex-direction:column;gap:9px;}\n.rc-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px;}\n.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;}\n.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%;}\n.rc-venue{display:block;font-size:13px;font-weight:600;color:var(--i3);text-decoration:none;margin-top:1px;}\n.rc-venue:hover{color:var(--pu);}\n.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;}\n.rc-title a{color:var(--bk);text-decoration:none;transition:color .15s;}\n.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;}\n.rc-date{font-family:var(--fh);font-size:13px;font-weight:700;color:var(--i3);}\n.rc-date strong{color:var(--pu);}\n.rc-date .dc{color:var(--rd);}\n.chips{display:flex;gap:5px;flex-wrap:wrap;}\n.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);}\n.chip-free{border-color:var(--gn);color:var(--gn);}\n.chip-online{border-color:var(--pu);color:var(--pu);}\n\n\/* Load more \u2014 big neobrutalist *\/\n#load-more-wrap{padding:44px 28px;text-align:center;border-left:var(--bd);border-top:var(--bd);background:var(--wh);}\n.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;}\n.lm-btn:hover{transform:translate(-3px,-3px)!important;box-shadow:9px 9px 0 var(--bk)!important;}\n.lm-btn:active{transform:translate(2px,2px)!important;box-shadow:3px 3px 0 var(--bk)!important;}\n#lm-count{margin-top:14px;font-size:13px;color:var(--i3);font-family:var(--fb);}\n\n\/* Siempre load more *\/\n#siempre-lm-wrap{padding:36px 28px;text-align:center;border-left:var(--bd);border-top:var(--bd);background:var(--wh);display:none;}\n.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;}\n.slm-btn:hover{transform:translate(-3px,-3px)!important;box-shadow:9px 9px 0 var(--bk)!important;background:var(--yl)!important;color:var(--bk)!important;}\n.slm-btn:active{transform:translate(2px,2px)!important;box-shadow:3px 3px 0 var(--bk)!important;}\n#siempre-lm-count{margin-top:14px;font-size:13px;color:var(--i3);font-family:var(--fb);}\n\n\/* Siempre zone \u2014 collapsible *\/\n.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;}\n.siempre-hd:hover{background:#f5d400;}\n.siempre-left{display:flex;align-items:center;gap:12px;}\n.siempre-lbl{font-family:var(--fh);font-size:14px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--bk);}\n.siempre-ct{font-family:var(--fh);font-size:12px;font-weight:700;color:rgba(0,0,0,.45);}\n.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;}\n.siempre-hd:hover .siempre-cta{color:var(--bk);}\n.siempre-arr{display:flex;transition:transform .3s;}\n.siempre-zone.open .siempre-arr{transform:rotate(180deg);}\n\n\/* Collapsed: show ~half a card row as peek, fade out *\/\n.siempre-wrap{position:relative;}\n#siempre-grid{\n  max-height:180px;\n  overflow:hidden;\n  transition:max-height .5s cubic-bezier(.4,0,.2,1);\n}\n.siempre-zone.open #siempre-grid{max-height:99999px;overflow:visible;}\n\/* Gradient fade overlay *\/\n.siempre-fade{\n  position:absolute;bottom:0;left:0;right:0;\n  height:110px;\n  background:linear-gradient(to bottom, transparent, var(--wh));\n  pointer-events:none;\n  transition:opacity .3s;\n}\n.siempre-zone.open .siempre-fade{opacity:0;pointer-events:none;}\n\n\/* Empty state \u2014 clean *\/\n.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);}\n.em-title{font-family:var(--fh);font-size:20px;font-weight:900;text-transform:uppercase;color:var(--bk);}\n.em-sub{font-size:14px;color:var(--i3);line-height:1.6;}\n\n\/* Loading *\/\n#msp-ld{padding:60px;display:flex;flex-direction:column;align-items:center;gap:14px;border-left:var(--bd);}\n.ldsp{width:24px;height:24px;border:3px solid var(--dv);border-top-color:var(--pu);border-radius:50%;animation:ldspin .8s linear infinite;}\n@keyframes ldspin{to{transform:rotate(360deg);}}\n.ldtx{font-family:var(--fh);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--i3);}\n\n\/* Mobile filter btn \u2014 uses literal hex (outside #msp) *\/\n#msp-mob-fil{display:none;position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#7c3aff;color:#fff;border:2px solid #0a0a0a;padding:13px 28px;font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;z-index:10000;box-shadow:4px 4px 0 #0a0a0a;white-space:nowrap;}\n@media(max-width:860px){#msp-mob-fil{display:block;}}\n#msp-mob-fil:hover{background:#0a0a0a;}\n#msp-bd{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9998;}\n#msp-bd.show{display:block;}\n@media(max-width:860px){.msp-body{flex-direction:column;}#msp-main{width:100%;}}\n<\/style>\n\n<!-- \u2500\u2500 HTML \u2500\u2500 -->\n<div id=\"msp\">\n  <div class=\"msp-ph\">\n    <div>\n      <span class=\"msp-ey\" id=\"ph-ey\">Cultura \u00b7 Eventos<\/span>\n      <h1 class=\"msp-title\" id=\"ph-title\">EVENTOS<\/h1>\n    <\/div>\n    <a class=\"ph-cta\" id=\"ph-cta\" href=\"https:\/\/themesh.art\/en\/sumate\/\" target=\"_blank\" rel=\"noopener\">\n      + <span id=\"ph-cta-lbl\">Publicar evento<\/span> \u2192\n    <\/a>\n  <\/div>\n\n  <div class=\"msp-body\">\n    <div id=\"msp-bd\"><\/div>\n\n    <aside id=\"msp-sb\">\n      <div class=\"sb-hd\">\n        <div>\n          <span class=\"sb-ey\">Resultados<\/span>\n          <div style=\"display:flex;align-items:baseline;gap:5px\">\n            <span class=\"sb-num\" id=\"sb-num\">\u2014<\/span>\n            <span class=\"sb-unit\" id=\"sb-unit\">eventos<\/span>\n          <\/div>\n        <\/div>\n        <button class=\"sb-x\" id=\"sb-x\">\u2715<\/button>\n      <\/div>\n\n      <div class=\"sb-sec\">\n        <span class=\"sb-lbl\" id=\"sb-nlbl\">Buscar evento<\/span>\n        <input class=\"msp-inp\" id=\"name-s\" type=\"text\" placeholder=\"Nombre del evento\u2026\" autocomplete=\"off\">\n      <\/div>\n      <div class=\"sb-sec\">\n        <span class=\"sb-lbl\">Espacio<\/span>\n        <input class=\"msp-inp\" id=\"venue-s\" type=\"text\" placeholder=\"Nombre del espacio\u2026\" autocomplete=\"off\">\n      <\/div>\n\n      <div class=\"sb-sec\">\n        <span class=\"sb-lbl\">Categor\u00eda<\/span>\n        <div class=\"msp-sel\">\n          <button class=\"msp-trig\" id=\"cat-trig\"><span class=\"tv ph\" id=\"cat-val\">Todas las categor\u00edas<\/span><span class=\"ta\"><svg width=\"12\" height=\"8\" viewbox=\"0 0 14 8\" fill=\"none\"><path d=\"M1 1l6 6 6-6\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button>\n          <div class=\"msp-panel\" id=\"cat-pnl\"><div class=\"msp-psw\"><input class=\"msp-psi\" id=\"cat-s\" type=\"text\" placeholder=\"Buscar\u2026\" autocomplete=\"off\"><\/div><div class=\"msp-opts\" id=\"cat-opts\"><\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"sb-sec\">\n        <span class=\"sb-lbl\">Disciplina<\/span>\n        <div class=\"msp-sel\">\n          <button class=\"msp-trig\" id=\"disc-trig\"><span class=\"tv ph\" id=\"disc-val\">Todas las disciplinas<\/span><span class=\"ta\"><svg width=\"12\" height=\"8\" viewbox=\"0 0 14 8\" fill=\"none\"><path d=\"M1 1l6 6 6-6\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button>\n          <div class=\"msp-panel\" id=\"disc-pnl\"><div class=\"msp-psw\"><input class=\"msp-psi\" id=\"disc-s\" type=\"text\" placeholder=\"Buscar\u2026\" autocomplete=\"off\"><\/div><div class=\"msp-opts\" id=\"disc-opts\"><\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"sb-sec\">\n        <span class=\"sb-lbl\">Lugar<\/span>\n        <div class=\"msp-sel\">\n          <button class=\"msp-trig\" id=\"lugar-trig\"><span class=\"tv ph\" id=\"lugar-val\">Todos los lugares<\/span><span class=\"ta\"><svg width=\"12\" height=\"8\" viewbox=\"0 0 14 8\" fill=\"none\"><path d=\"M1 1l6 6 6-6\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button>\n          <div class=\"msp-panel\" id=\"lugar-pnl\"><div class=\"msp-psw\"><input class=\"msp-psi\" id=\"lugar-s\" type=\"text\" placeholder=\"Buscar\u2026\" autocomplete=\"off\"><\/div><div class=\"msp-opts\" id=\"lugar-opts\"><\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"sb-sec\">\n        <span class=\"sb-lbl\">Modalidad<\/span>\n        <div class=\"msp-sel\">\n          <button class=\"msp-trig\" id=\"modal-trig\"><span class=\"tv ph\" id=\"modal-val\">Todas las modalidades<\/span><span class=\"ta\"><svg width=\"12\" height=\"8\" viewbox=\"0 0 14 8\" fill=\"none\"><path d=\"M1 1l6 6 6-6\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button>\n          <div class=\"msp-panel\" id=\"modal-pnl\"><div class=\"msp-psw\"><input class=\"msp-psi\" id=\"modal-s\" type=\"text\" placeholder=\"Buscar\u2026\" autocomplete=\"off\"><\/div><div class=\"msp-opts\" id=\"modal-opts\"><\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"sb-sec\">\n        <span class=\"sb-lbl\">Tipo de acceso<\/span>\n        <div class=\"msp-sel\">\n          <button class=\"msp-trig\" id=\"acc-trig\"><span class=\"tv ph\" id=\"acc-val\">Todos los accesos<\/span><span class=\"ta\"><svg width=\"12\" height=\"8\" viewbox=\"0 0 14 8\" fill=\"none\"><path d=\"M1 1l6 6 6-6\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button>\n          <div class=\"msp-panel\" id=\"acc-pnl\"><div class=\"msp-psw\"><input class=\"msp-psi\" id=\"acc-s\" type=\"text\" placeholder=\"Buscar\u2026\" autocomplete=\"off\"><\/div><div class=\"msp-opts\" id=\"acc-opts\"><\/div><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"sb-sec\" id=\"date-sec\" style=\"overflow:hidden;\">\n        <span class=\"sb-lbl\">V\u00e1lido en el periodo<\/span>\n        <p class=\"sb-help\">Eventos vigentes en este rango de fechas<\/p>\n        <div class=\"date-row\">\n          <div class=\"df\"><label>Desde<\/label><input type=\"date\" id=\"d-from\"><\/div>\n          <div class=\"df\"><label>Hasta<\/label><input type=\"date\" id=\"d-to\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"flt-pill\" id=\"flt-pill\"><span class=\"flt-dot\"><\/span>Filtro activo<\/div>\n      <div class=\"rst-btn\" id=\"rst-btn\" role=\"button\" tabindex=\"0\">Limpiar filtros<\/div>\n    <\/aside>\n\n    <main id=\"msp-main\">\n      <div class=\"estado-bar\">\n        <button class=\"etab active\" data-e=\"todas\">Todas<\/button>\n        <button class=\"etab\" data-e=\"actuales\">En curso<\/button>\n        <button class=\"etab\" data-e=\"proximas\">Pr\u00f3ximas<\/button>\n        <button class=\"etab\" data-e=\"permanentes\">Permanentes<\/button>\n        <button class=\"etab\" data-e=\"recurrentes\">Recurrentes<\/button>\n      <\/div>\n      <div class=\"res-bar\">\n        <span class=\"rc-lbl\" id=\"rc-lbl\">Cargando\u2026<\/span>\n        <div class=\"sort-w\">\n          <select class=\"sort-s\" id=\"sort-s\"><\/select>\n          <span class=\"sort-a\"><svg width=\"10\" height=\"7\" viewbox=\"0 0 14 8\" fill=\"none\"><path d=\"M1 1l6 6 6-6\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span>\n        <\/div>\n      <\/div>\n      <div id=\"msp-ld\"><div class=\"ldsp\"><\/div><div class=\"ldtx\" id=\"ldtx\">Cargando\u2026<\/div><\/div>\n\n      <div id=\"main-grid\" class=\"cgrid\" style=\"display:none\"><\/div>\n\n      <!-- Load more button (replaces scroll-based loading) -->\n      <div id=\"load-more-wrap\" style=\"display:none\">\n        <button class=\"lm-btn\" id=\"load-more-btn\">Ver m\u00e1s<\/button>\n        <div id=\"lm-count\"><\/div>\n      <\/div>\n\n      <div id=\"empty-main\" class=\"empty-st\" style=\"display:none\"><\/div>\n\n      <div id=\"siempre-zone\" class=\"siempre-zone\" style=\"display:none\">\n        <div class=\"siempre-hd\" id=\"siempre-hd\">\n          <div class=\"siempre-left\">\n            <span class=\"siempre-lbl\" id=\"siempre-lbl\">Siempre disponibles<\/span>\n            <span class=\"siempre-ct\" id=\"siempre-ct\"><\/span>\n          <\/div>\n          <span class=\"siempre-cta\" id=\"siempre-cta\">\n            Ver permanentes\n            <span class=\"siempre-arr\"><svg width=\"12\" height=\"8\" viewbox=\"0 0 14 8\" fill=\"none\"><path d=\"M1 1l6 6 6-6\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span>\n          <\/span>\n        <\/div>\n        <div class=\"siempre-wrap\">\n          <div id=\"siempre-grid\" class=\"cgrid\"><\/div>\n          <div class=\"siempre-fade\"><\/div>\n        <\/div>\n        <div id=\"siempre-lm-wrap\">\n          <button class=\"slm-btn\" id=\"siempre-lm-btn\">Ver m\u00e1s permanentes<\/button>\n          <div id=\"siempre-lm-count\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div id=\"empty-full\" class=\"empty-st\" style=\"display:none\"><\/div>\n    <\/main>\n  <\/div>\n<\/div>\n<button id=\"msp-mob-fil\">\u2261 Filtros<\/button>\n\n<script>\n(function(){\n'use strict';\n\nconst PAGE = window.MESH_PAGE || 'events';\nconst PG   = 50; \/\/ cards per batch\n\nconst PAGES = {\n  events:{\n    api:'\/wp-json\/mesh\/v1\/events',\n    label:'EVENTOS',ey:'Cultura \u00b7 Eventos',\n    unit:'eventos',nlbl:'Buscar evento',np:'Nombre del evento\u2026',\n    em:{title:'Sin resultados',sub:'Ajusta los filtros para ver m\u00e1s.'},\n    siempre:'Siempre disponibles',cta:'Publicar evento',\n    catTax:'categoria-de-evento',\n    discTax:'etiquetas-de-evento',      \/\/ plural for eventos\n    lugarTax:'ubicacion-de-evento',\n    sortDef:'closing',\n    sorts:[{v:'closing',l:'Cierra pronto'},{v:'recent',l:'M\u00e1s reciente'},{v:'alpha-az',l:'A \u2192 Z'},{v:'alpha-za',l:'Z \u2192 A'}],\n    grid:'g3',\n  },\n  learning:{\n    api:'\/wp-json\/mesh\/v1\/learning',\n    label:'APRENDIZAJE',ey:'Cultura \u00b7 Aprendizaje',\n    unit:'actividades',nlbl:'Buscar actividad',np:'Nombre del taller, curso, programa\u2026',\n    em:{title:'Sin resultados',sub:'Ajusta los filtros para ver m\u00e1s.'},\n    siempre:'Siempre disponibles',cta:'Publicar curso',\n    catTax:'categoria-de-learning',\n    discTax:'etiqueta-de-learning',     \/\/ singular for learning\n    lugarTax:'ubicacion-de-learning',\n    sortDef:'closing',\n    sorts:[{v:'closing',l:'Cierra pronto'},{v:'recent',l:'M\u00e1s reciente'},{v:'alpha-az',l:'A \u2192 Z'},{v:'alpha-za',l:'Z \u2192 A'}],\n    grid:'g3',\n  },\n  opportunities:{\n    api:'\/wp-json\/mesh\/v1\/opportunities',\n    label:'OPORTUNIDADES',ey:'Cultura \u00b7 Oportunidades',\n    unit:'convocatorias',nlbl:'Buscar convocatoria',np:'Nombre de la convocatoria\u2026',\n    em:{title:'Sin resultados',sub:'Ajusta los filtros para ver m\u00e1s.'},\n    siempre:'Convocatorias permanentes',cta:'Publicar convocatoria',\n    catTax:'categoria-de-oportunidad',\n    discTax:'etiqueta-de-oportunidad',  \/\/ singular for oportunidades\n    lugarTax:'ubicacion-de-oportunidad',\n    sortDef:'deadline',\n    sorts:[{v:'deadline',l:'Deadline pr\u00f3ximo'},{v:'recent',l:'M\u00e1s reciente'},{v:'alpha-az',l:'A \u2192 Z'},{v:'alpha-za',l:'Z \u2192 A'}],\n    grid:'g2',\n  },\n};\nconst cfg = PAGES[PAGE];\n\nlet all = [];\nlet F = {name:'',venue:'',estado:'todas',cat:'all',disc:'all',lugar:'all',modal:'all',acc:'all',df:'',dt:'',sort:cfg.sortDef};\nlet drops = {};\nlet cachedMain = [], cachedAlw = [];\nlet visibleCount = PG;\nlet visibleAlw = PG; \/\/ siempre section pagination\n\n\/\/ Taxonomy hierarchy maps: term name \u2192 parent term name (built from WP REST API)\nlet taxTree = { cat:{}, disc:{}, lugar:{} };\n\nfunction esc(s){return String(s||'').replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;').replace(\/\"\/g,'&quot;').replace(\/'\/g,'&#39;');}\n\/\/ Decode HTML entities from WP REST API (e.g. &amp; \u2192 &, &#8217; \u2192 ')\nfunction decHtml(s){const el=document.createElement('textarea');el.innerHTML=s;return el.value;}\nfunction q(id){return document.getElementById(id);}\nfunction show(el,d){if(el)el.style.display=d||'';}\nfunction hide(el){if(el)el.style.display='none';}\nfunction fmtDate(str){\n  if(!str)return'\u2014';\n  const p=str.split('-');\n  return`${parseInt(p[2])} ${'ene feb mar abr may jun jul ago sep oct nov dic'.split(' ')[parseInt(p[1])-1]}`;\n}\nfunction today(){return new Date().toISOString().split('T')[0];}\nfunction daysLeft(ds){if(!ds)return Infinity;return Math.ceil((new Date(ds)-new Date(today()))\/86400000);}\n\n\/\/ \u2500\u2500 Taxonomy helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\/\/ API returns: taxes = { 'categoria-de-evento': ['Exposici\u00f3n'], 'etiquetas-de-evento': ['Pintura'], ... }\n\/\/ Strategy: try explicit slug from PAGES config first, then auto-detect by slug pattern.\n\/\/ This way if taxonomy slugs change in WordPress, the pattern still catches them.\n\/\/ Location taxonomy is hierarchical: parent=country, child=city (parent-first in array).\n\nfunction taxBySlug(i, explicit) {\n  if(explicit && i.taxes?.[explicit]) return i.taxes[explicit].map(decHtml);\n  return null;\n}\nfunction taxByPattern(i, pattern) {\n  if(!i.taxes) return null;\n  for(const [slug,terms] of Object.entries(i.taxes)) {\n    if(pattern.test(slug) && terms.length) return terms.map(decHtml);\n  }\n  return null;\n}\n\n\/\/ Category terms\nfunction getCatTerms(i) {\n  return taxBySlug(i, cfg.catTax) || taxByPattern(i, \/^categor\/) || [];\n}\nfunction getCat(i) { return getCatTerms(i)[0]||''; }\n\n\/\/ Discipline terms (etiqueta\/etiquetas)\nfunction getDiscs(i) {\n  return taxBySlug(i, cfg.discTax) || taxByPattern(i, \/^etiqueta\/) || [];\n}\n\n\/\/ Location terms (parent-first: [country, city])\nfunction getLugarTerms(i) {\n  return taxBySlug(i, cfg.lugarTax) || taxByPattern(i, \/^ubicac\/) || [];\n}\n\n\/\/ Country = first term (root); City = last term (most specific)\nfunction getCiudad(i) { const t=getLugarTerms(i); return t[t.length-1]||''; }\nfunction getPais(i)   { const t=getLugarTerms(i); return t.length>1?t[0]:''; }\n\n\/\/ \u2500\u2500 Normalise modalidad (handles any JetEngine casing) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction normalModal(raw) {\n  const s = String(raw||'').toLowerCase()\n    .normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'')\n    .replace(\/[\\s-]+\/g,'_');\n  if(s.startsWith('en_l')||s==='online') return 'en_linea';\n  if(s.startsWith('hibr'))               return 'hibrido';\n  if(s==='presencial')                   return 'presencial';\n  return 'indefinido';\n}\n\nconst MOD_LABEL = {presencial:'Presencial', en_linea:'En L\u00ednea', hibrido:'H\u00edbrido'};\nconst ACC_LABEL = {gratuito:'Gratuito', con_costo:'Con costo'};\n\n\/\/ \u2500\u2500 Classification \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction isSiempre(i){const d=(i.duracion||'').toLowerCase();return d==='permanente'||d==='recurrente';}\n\n\/\/ Strictly running NOW: started AND not yet ended\nfunction isActive(i){\n  const t=today();\n  if(i.date_end && i.date_end<t) return false;    \/\/ already ended\n  if(i.date_start && i.date_start>t) return false; \/\/ not started yet\n  return true; \/\/ started (or no start) AND not ended (or no end) = en curso\n}\n\n\/\/ Not started yet\nfunction isProxima(i){return!!(i.date_start&&i.date_start>today());}\n\n\/\/ Non-past: en curso + pr\u00f3ximas (excludes fully ended events)\nfunction isNoEnded(i){\n  const t=today();\n  return !i.date_end || i.date_end>=t;\n}\nfunction dateOverlap(i,f,t){\n  if(!f&&!t)return true;\n  if(isSiempre(i))return true;\n  const ds=i.date_start,de=i.date_end;\n  if(f&&t){if(ds&&de)return ds<=t&&de>=f;if(ds)return ds<=t;if(de)return de>=f;return true;}\n  if(f)return!de||de>=f;\n  if(t)return!ds||ds<=t;\n  return true;\n}\n\nfunction getStatus(i){\n  const t=today(), d=(i.duracion||'').toLowerCase();\n  if(d==='recurrente')return{l:'Recurrente',c:'recur'};\n  if(d==='permanente')return{l:'Permanente',c:'perm'};\n  const de=i.date_end,ds=i.date_start;\n  if(PAGE==='opportunities'&&de){const dl=daysLeft(de);if(dl>=0&&dl<=7)return{l:'\u2691 Cierra pronto',c:'urgnt'};}\n  if(!ds&&!de)return{l:'Sin fecha',c:'perm'};\n  if(de&&de<t)return{l:'Pasado',c:'past'};\n  if(ds&&ds>t)return{l:'Pr\u00f3ximamente',c:'soon'};\n  return{l:'En curso',c:'now'};\n}\n\nconst PH=['#EDE9FE','#FEF3E8','#ECFDF5','#F0F9FF','#FDF2F8','#FFFBEB','#F0FDFA'];\nfunction ph(id){return PH[parseInt(id)%PH.length];}\n\n\/\/ \u2500\u2500 Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction card(i){\n  const s=getStatus(i), isPerm=isSiempre(i);\n  const raw=i.img||'', src=raw?raw.replace(\/-\\d+x\\d+(\\.[a-z]+)$\/i,'$1'):'';\n  const cat=getCat(i), ciudad=getCiudad(i), pais=getPais(i);\n  const loc=[ciudad,pais].filter(Boolean).join(', ');\n\n  \/\/ Date line \u2014 hidden for permanent\/recurrent items\n  let dl='';\n  if(!isPerm){\n    if(PAGE==='opportunities'){\n      if(!i.date_end)dl='Sin fecha l\u00edmite';\n      else{const dL=daysLeft(i.date_end);dl=`Cierra <strong${dL>=0&&dL<=7?' class=\"dc\"':''}>${esc(fmtDate(i.date_end))}<\/strong>`;}\n    }else{\n      if(i.date_start&&i.date_end)dl=`<strong>${esc(fmtDate(i.date_start))}<\/strong> \u2014 <strong>${esc(fmtDate(i.date_end))}<\/strong>`;\n      else if(i.date_start)dl=`Desde <strong>${esc(fmtDate(i.date_start))}<\/strong>`;\n      else if(i.date_end)dl=`Hasta <strong>${esc(fmtDate(i.date_end))}<\/strong>`;\n    }\n  }\n\n  const mod=normalModal(i.modalidad);\n  const chips=[];\n  if(MOD_LABEL[mod])chips.push(`<span class=\"chip${mod==='en_linea'?' chip-online':''}\">${MOD_LABEL[mod]}<\/span>`);\n  if(ACC_LABEL[i.acceso])chips.push(`<span class=\"chip${i.acceso==='gratuito'?' chip-free':''}\">${ACC_LABEL[i.acceso]}<\/span>`);\n\n  return`<article class=\"rc\">\n<a class=\"rc-img\" href=\"${esc(i.url)}\" style=\"background:${src?'#d8d4cc':ph(i.id)}\">\n  ${i.featured?`<span class=\"rc-feat\">\u2605 Destacado<\/span>`:''}\n  ${src?`<img decoding=\"async\" src=\"${esc(src)}\" alt=\"${esc(i.title)}\" loading=\"lazy\" onerror=\"this.src='${esc(raw)}';this.onerror=null\">`:`<span class=\"rc-init\">${esc(i.title.charAt(0))}<\/span>`}\n  <span class=\"cs cs-${s.c}\">${s.l}<\/span>\n<\/a>\n<div class=\"rc-body\">\n  <div class=\"rc-top\">\n    ${cat?`<span class=\"rc-tag\">${esc(cat)}<\/span>`:''}\n    ${loc?`<span class=\"rc-loc\">${esc(loc)}<\/span>`:''}\n  <\/div>\n  ${i.venue_name?`<a class=\"rc-venue\" href=\"${esc(i.venue_url)}\">${esc(i.venue_name)}<\/a>`:''}\n  <h3 class=\"rc-title\"><a href=\"${esc(i.url)}\">${esc(i.title)}<\/a><\/h3>\n  <div class=\"rc-foot\">\n    ${dl?`<div class=\"rc-date\">${dl}<\/div>`:''}\n    ${chips.length?`<div class=\"chips\">${chips.join('')}<\/div>`:''}\n  <\/div>\n<\/div>\n<\/article>`;\n}\n\n\/\/ \u2500\u2500 Seeded random (consistent within a day) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction seededRandom(id){\n  const seed=parseInt(today().replace(\/-\/g,''))+id;\n  const x=Math.sin(seed)*10000;\n  return x-Math.floor(x);\n}\n\n\/\/ \u2500\u2500 Sort \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction sortItems(items,k){\n  k=k||F.sort;const c=[...items];\n  if(k==='closing'||k==='deadline')return c.sort((a,b)=>(a.date_end||a.date_start||'9999').localeCompare(b.date_end||b.date_start||'9999'));\n  if(k==='opening') return c.sort((a,b)=>(a.date_start||'9999').localeCompare(b.date_start||'9999'));\n  if(k==='recent')return c.sort((a,b)=>b.id-a.id); \/\/ higher ID = more recently published\n  if(k==='alpha-az')return c.sort((a,b)=>a.title.localeCompare(b.title,'es'));\n  if(k==='alpha-za')return c.sort((a,b)=>b.title.localeCompare(a.title,'es'));\n  return c.sort((a,b)=>a.title.localeCompare(b.title,'es'));\n}\n\n\/\/ \u2500\u2500 Load more (button) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction updateLoadMore(){\n  const wrap=q('load-more-wrap'),btn=q('load-more-btn'),cnt=q('lm-count');\n  if(!wrap)return;\n  const remaining=cachedMain.length-visibleCount;\n  if(remaining>0){\n    wrap.style.display='block'; \/\/ explicit \u2014 cannot use show() here (CSS has display:none)\n    btn.textContent=`Ver ${Math.min(remaining,PG)} m\u00e1s`;\n    cnt.textContent=`Mostrando ${Math.min(visibleCount,cachedMain.length)} de ${cachedMain.length} ${cfg.unit}`;\n  }else{\n    wrap.style.display='none';\n  }\n}\n\nfunction loadMore(){\n  if(visibleCount>=cachedMain.length)return;\n  const batch=cachedMain.slice(visibleCount,visibleCount+PG);\n  visibleCount+=PG;\n  q('main-grid').insertAdjacentHTML('beforeend',batch.map(card).join(''));\n  updateLoadMore();\n}\n\n\/\/ \u2500\u2500 Siempre load more \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction updateAlwLoadMore(){\n  const wrap=q('siempre-lm-wrap'),btn=q('siempre-lm-btn'),cnt=q('siempre-lm-count');\n  if(!wrap)return;\n  const remaining=cachedAlw.length-visibleAlw;\n  if(remaining>0){\n    wrap.style.display='block';\n    btn.textContent=`Ver ${Math.min(remaining,PG)} m\u00e1s`;\n    cnt.textContent=`Mostrando ${Math.min(visibleAlw,cachedAlw.length)} de ${cachedAlw.length} permanentes`;\n  }else{\n    wrap.style.display='none';\n  }\n}\n\nfunction loadMoreAlw(){\n  if(visibleAlw>=cachedAlw.length)return;\n  const batch=cachedAlw.slice(visibleAlw,visibleAlw+PG);\n  visibleAlw+=PG;\n  q('siempre-grid').insertAdjacentHTML('beforeend',batch.map(card).join(''));\n  updateAlwLoadMore();\n}\n\n\/\/ \u2500\u2500 Apply \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction apply(){\n  let base=all.filter(i=>{\n    if(F.name&&!i.title.toLowerCase().includes(F.name))return false;\n    if(F.venue&&!i.venue_name.toLowerCase().includes(F.venue))return false;\n    if(F.cat!=='all'&&!getCatTerms(i).includes(F.cat))return false;\n    if(F.disc!=='all'&&!getDiscs(i).includes(F.disc))return false;\n    if(F.lugar!=='all'&&!getLugarTerms(i).includes(F.lugar))return false;\n    if(F.modal!=='all'&&normalModal(i.modalidad)!==F.modal)return false;\n    if(F.acc!=='all'&&i.acceso!==F.acc)return false;\n    return true;\n  });\n  if(F.df||F.dt)base=base.filter(i=>dateOverlap(i,F.df,F.dt));\n\n  const timed=base.filter(i=>!isSiempre(i));\n  const always=base.filter(isSiempre);\n\n  let main,showS;\n  switch(F.estado){\n    \/\/ \"Todas\" tab: featured items sorted by recency, then rest sorted by user choice\n    case'todas':\n      main=sortItems(timed.filter(isNoEnded));\n      \/\/ Separate featured and non-featured\n      const featured=main.filter(i=>i.featured);\n      const regular=main.filter(i=>!i.featured);\n      \/\/ Featured: sort by recency (newest first)\n      const featuredSorted=sortItems(featured,'recent');\n      \/\/ Regular: keep user's sort choice\n      \/\/ Merge: featured first, then regular\n      main=[...featuredSorted,...regular];\n      showS=always.length>0;\n      break;\n    case'actuales':   main=sortItems(timed.filter(isActive));showS=always.length>0;break;\n    case'proximas':   main=sortItems(timed.filter(isProxima),'opening');showS=false;break;\n    case'permanentes':\n      main=[...always.filter(i=>(i.duracion||'').toLowerCase()==='permanente')];\n      \/\/ Sort permanents by seeded daily random for equal visibility\n      main.sort((a,b)=>seededRandom(a.id)-seededRandom(b.id));\n      showS=false;\n      break;\n    case'recurrentes':main=[...always.filter(i=>(i.duracion||'').toLowerCase()==='recurrente')].sort((a,b)=>a.title.localeCompare(b.title,'es'));showS=false;break;\n    default:          main=sortItems(timed.filter(isNoEnded));showS=always.length>0;\n  }\n  const alw=[...always].sort((a,b)=>a.title.localeCompare(b.title,'es'));\n\n  cachedMain=main;\n  cachedAlw=showS?alw:[];\n\n  const total=main.length+(showS?alw.length:0);\n  q('sb-num').textContent=total.toLocaleString();\n  q('rc-lbl').innerHTML=`<strong>${total}<\/strong> ${cfg.unit}`;\n  const hasF=F.name||F.venue||F.cat!=='all'||F.disc!=='all'||F.lugar!=='all'||F.modal!=='all'||F.acc!=='all'||F.df||F.dt;\n  q('flt-pill').classList.toggle('show',!!hasF);\n  render();\n}\n\n\/\/ \u2500\u2500 Render \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction render(){\n  visibleCount=PG;\n  const main=cachedMain,alw=cachedAlw;\n  const gm=q('main-grid'),ga=q('siempre-grid');\n  const em=q('empty-main'),ef=q('empty-full'),sz=q('siempre-zone');\n\n  \/\/ Truly empty\n  if(main.length===0&&alw.length===0){\n    hide(gm);hide(em);hide(sz);if(q('load-more-wrap'))q('load-more-wrap').style.display='none';\n    ef.innerHTML=`<div class=\"em-title\">${cfg.em.title}<\/div><div class=\"em-sub\">${cfg.em.sub}<\/div>`;\n    show(ef);return;\n  }\n  hide(ef);\n\n  if(main.length>0){\n    gm.innerHTML=main.slice(0,PG).map(card).join('');\n    show(gm);hide(em);\n    updateLoadMore();\n  }else{\n    hide(gm);if(q('load-more-wrap'))q('load-more-wrap').style.display='none';\n    \/\/ If siempre has results \u2192 no empty message needed\n    if(alw.length>0){hide(em);}\n    else{em.innerHTML=`<div class=\"em-title\">${cfg.em.title}<\/div><div class=\"em-sub\">${cfg.em.sub}<\/div>`;show(em);}\n  }\n\n  if(alw.length>0){\n    visibleAlw=PG; \/\/ reset siempre pagination on each full render\n    q('siempre-grid').innerHTML=alw.slice(0,PG).map(card).join('');\n    q('siempre-ct').textContent=alw.length;\n    \/\/ Reset to collapsed peek on each render\n    q('siempre-zone').classList.remove('open');\n    if(q('siempre-lm-wrap'))q('siempre-lm-wrap').style.display='none'; \/\/ hidden until expanded\n    show(q('siempre-zone'));\n  }else{\n    hide(q('siempre-zone'));\n    if(q('siempre-lm-wrap'))q('siempre-lm-wrap').style.display='none';\n  }\n}\n\n\/\/ \u2500\u2500 Build filter UI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildUI(){\n  const t=today();\n  \/\/ Count from \"valid\" items only (not purely past)\n  const valid=all.filter(i=>{\n    if(!i.date_start&&!i.date_end)return true;\n    if(i.date_end)return i.date_end>=t;\n    if(i.date_start)return i.date_start>=t;\n    return false;\n  });\n\n  const cats={},discs={},lugarC={},mods={},accs={};\n  valid.forEach(i=>{\n    getCatTerms(i).forEach(c=>{if(c)cats[c]=(cats[c]||0)+1;});\n    getDiscs(i).forEach(d=>{if(d)discs[d]=(discs[d]||0)+1;});\n    getLugarTerms(i).forEach(l=>{if(l)lugarC[l]=(lugarC[l]||0)+1;});\n    const m=normalModal(i.modalidad);\n    if(m!=='indefinido')mods[m]=(mods[m]||0)+1;\n    if(ACC_LABEL[i.acceso])accs[i.acceso]=(accs[i.acceso]||0)+1;\n  });\n\n  const n=valid.length;\n\n  \/\/ Build hierarchical dropdown options using taxTree (from WP REST API)\n  \/\/ parentMap: { childName \u2192 parentName }\n  function buildHierOpts(counts, parentMap) {\n    const parents=Object.keys(counts).filter(k=>!parentMap[k]).sort((a,b)=>a.localeCompare(b,'es'));\n    const children=Object.keys(counts).filter(k=>!!parentMap[k]);\n    const opts=[];\n    parents.forEach(p=>{\n      opts.push({value:p,label:p,count:counts[p]});\n      children.filter(c=>parentMap[c]===p).sort((a,b)=>a.localeCompare(b,'es')).forEach(c=>{\n        opts.push({value:c,label:'\u2319 '+c,count:counts[c],indent:true});\n      });\n    });\n    \/\/ Orphan children (parent not in counts \u2014 show flat)\n    children.forEach(c=>{\n      if(!opts.find(o=>o.value===c)) opts.push({value:c,label:c,count:counts[c]});\n    });\n    return opts;\n  }\n\n  drops.cat.setOpts([{value:'all',label:'Todas las categor\u00edas',count:n},...buildHierOpts(cats,taxTree.cat)]);\n  drops.disc.setOpts([{value:'all',label:'Todas las disciplinas',count:n},...buildHierOpts(discs,taxTree.disc)]);\n  drops.lugar.setOpts([{value:'all',label:'Todos los lugares',count:n},...buildHierOpts(lugarC,taxTree.lugar)]);\n\n  \/\/ Modalidad: always show all 3 options\n  drops.modal.setOpts([\n    {value:'all',label:'Todas las modalidades'},\n    {value:'presencial',label:'Presencial',count:mods['presencial']||0},\n    {value:'en_linea',  label:'En L\u00ednea',  count:mods['en_linea']||0},\n    {value:'hibrido',   label:'H\u00edbrido',   count:mods['hibrido']||0},\n  ]);\n  drops.acc.setOpts([{value:'all',label:'Todos los accesos'},...Object.entries(accs).map(([v,c])=>({value:v,label:ACC_LABEL[v],count:c}))]);\n}\n\n\/\/ \u2500\u2500 Dropdown \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction mkDrop(tid,pid,sid,oid,placeholder,onSel){\n  const trig=q(tid),panel=q(pid),srch=q(sid),opts=q(oid);\n  let cur='all',options=[];\n  function getLbl(v){const o=options.find(x=>x.value===v);return o?o.label:v;}\n  function renderOpts(s=''){\n    const f=s?options.filter(o=>o.label.toLowerCase().includes(s.toLowerCase())):options;\n    opts.innerHTML=f.map(o=>`<button class=\"msp-opt${o.value===cur?' active':''}${o.indent?' indent':''}\" data-v=\"${esc(o.value)}\"><span style=\"flex:1\">${esc(o.label)}<\/span>${o.count!=null?`<span class=\"msp-oc\">${o.count}<\/span>`:''}<\/button>`).join('');\n  }\n  function open(){\n    document.querySelectorAll('.msp-trig.open').forEach(t=>{if(t!==trig){t.classList.remove('open');t.nextElementSibling?.classList.remove('open');}});\n    trig.classList.add('open');panel.classList.add('open');srch.value='';renderOpts();setTimeout(()=>srch.focus(),50);\n  }\n  function close(){trig.classList.remove('open');panel.classList.remove('open');}\n  trig.addEventListener('click',e=>{e.stopPropagation();panel.classList.contains('open')?close():open();});\n  srch.addEventListener('input',()=>renderOpts(srch.value));\n  srch.addEventListener('click',e=>e.stopPropagation());\n  panel.addEventListener('click',e=>e.stopPropagation());\n  opts.addEventListener('click',e=>{\n    const btn=e.target.closest('.msp-opt');if(!btn)return;\n    cur=btn.dataset.v;\n    const vel=q(tid.replace('-trig','-val'));\n    if(vel){vel.textContent=cur==='all'?placeholder:getLbl(cur);vel.classList.toggle('ph',cur==='all');}\n    onSel(cur);close();\n  });\n  document.addEventListener('click',close);\n  return{setOpts(l){options=l;},setVal(v){cur=v;}};\n}\n\nfunction openSB(){q('msp-sb').classList.add('open');q('msp-bd').classList.add('show');}\nfunction closeSB(){q('msp-sb').classList.remove('open');q('msp-bd').classList.remove('show');}\n\nfunction resetAll(){\n  F={name:'',venue:'',estado:F.estado,cat:'all',disc:'all',lugar:'all',modal:'all',acc:'all',df:'',dt:'',sort:cfg.sortDef};\n  ['name-s','venue-s'].forEach(id=>{const el=q(id);if(el)el.value='';});\n  ['d-from','d-to'].forEach(id=>{const el=q(id);if(el)el.value='';});\n  const pls={cat:'Todas las categor\u00edas',disc:'Todas las disciplinas',lugar:'Todos los lugares',modal:'Todas las modalidades',acc:'Todos los accesos'};\n  Object.keys(drops).forEach(k=>{drops[k].setVal('all');const el=q(k+'-val');if(el){el.textContent=pls[k]||'';el.classList.add('ph');}});\n  q('sort-s').value=cfg.sortDef;\n  apply();\n}\n\nasync function init(){\n  q('ph-title').textContent=cfg.label;\n  q('ph-ey').textContent=cfg.ey;\n  q('ph-cta-lbl').textContent=cfg.cta;\n  q('sb-unit').textContent=cfg.unit;\n  q('sb-nlbl').textContent=cfg.nlbl;\n  q('name-s').placeholder=cfg.np;\n  q('siempre-lbl').textContent=cfg.siempre;\n  if(cfg.grid==='g2'){q('main-grid').classList.add('g2');q('siempre-grid').classList.add('g2');}\n\n  drops.cat  =mkDrop('cat-trig',  'cat-pnl',  'cat-s',  'cat-opts',  'Todas las categor\u00edas',  v=>{F.cat=v;  apply();if(window.innerWidth<=860)closeSB();});\n  drops.disc =mkDrop('disc-trig', 'disc-pnl', 'disc-s', 'disc-opts', 'Todas las disciplinas', v=>{F.disc=v; apply();if(window.innerWidth<=860)closeSB();});\n  drops.lugar=mkDrop('lugar-trig','lugar-pnl','lugar-s','lugar-opts','Todos los lugares',     v=>{F.lugar=v;apply();if(window.innerWidth<=860)closeSB();});\n  drops.modal=mkDrop('modal-trig','modal-pnl','modal-s','modal-opts','Todas las modalidades', v=>{F.modal=v;apply();if(window.innerWidth<=860)closeSB();});\n  drops.acc  =mkDrop('acc-trig',  'acc-pnl',  'acc-s',  'acc-opts',  'Todos los accesos',     v=>{F.acc=v;  apply();if(window.innerWidth<=860)closeSB();});\n\n  const ss=q('sort-s');\n  ss.innerHTML=cfg.sorts.map(s=>`<option value=\"${s.v}\">${s.l}<\/option>`).join('');\n  ss.value=cfg.sortDef;\n  ss.addEventListener('change',()=>{F.sort=ss.value;apply();});\n\n  document.querySelectorAll('.etab').forEach(btn=>{\n    btn.addEventListener('click',()=>{\n      document.querySelectorAll('.etab').forEach(b=>b.classList.remove('active'));\n      btn.classList.add('active');F.estado=btn.dataset.e;\n      q('date-sec').style.display=(['permanentes','recurrentes'].includes(F.estado))?'none':'';\n      apply();\n    });\n  });\n\n  let nt,vt;\n  q('name-s').addEventListener('input',e=>{clearTimeout(nt);nt=setTimeout(()=>{F.name=e.target.value.trim().toLowerCase();apply();},300);});\n  q('venue-s').addEventListener('input',e=>{clearTimeout(vt);vt=setTimeout(()=>{F.venue=e.target.value.trim().toLowerCase();apply();},300);});\n  q('d-from').addEventListener('change',e=>{F.df=e.target.value;apply();});\n  q('d-to').addEventListener('change',e=>{F.dt=e.target.value;apply();});\n  q('load-more-btn').addEventListener('click',loadMore);\n  if(q('siempre-lm-btn'))q('siempre-lm-btn').addEventListener('click',loadMoreAlw);\n  q('msp-mob-fil').addEventListener('click',openSB);\n  q('msp-bd').addEventListener('click',closeSB);\n  q('sb-x').addEventListener('click',closeSB);\n  q('rst-btn').addEventListener('click',resetAll);\n\n  \/\/ Siempre zone collapse\/expand\n  q('siempre-hd').addEventListener('click',()=>{\n    const zone=q('siempre-zone');\n    zone.classList.toggle('open');\n    \/\/ Show\/hide load more based on open state\n    if(zone.classList.contains('open')){\n      updateAlwLoadMore(); \/\/ show load more if items > PG\n    }else{\n      if(q('siempre-lm-wrap'))q('siempre-lm-wrap').style.display='none';\n    }\n  });\n  q('rst-btn').addEventListener('keypress',e=>{if(e.key==='Enter')resetAll();});\n  const sb=q('msp-sb');let tsX=0;\n  sb.addEventListener('touchstart',e=>{tsX=e.touches[0].clientX;},{passive:true});\n  sb.addEventListener('touchend',e=>{if(tsX-e.changedTouches[0].clientX>60&&window.innerWidth<=860)closeSB();},{passive:true});\n\n  try{\n    \/\/ Fetch items + taxonomy trees in parallel\n    const [res, catTree, discTree, lugarTree] = await Promise.all([\n      fetch(cfg.api),\n      fetchTaxTree(cfg.catTax),\n      fetchTaxTree(cfg.discTax),\n      fetchTaxTree(cfg.lugarTax),\n    ]);\n    if(!res.ok)throw new Error(`HTTP ${res.status}`);\n    all=await res.json();\n    taxTree.cat=catTree;\n    taxTree.disc=discTree;\n    taxTree.lugar=lugarTree;\n    buildUI();apply();\n  }catch(e){\n    console.error('MESH:',e);\n    q('ldtx').textContent='Error cargando datos.';\n    return;\n  }finally{hide(q('msp-ld'));}\n}\n\n\/\/ Fetch WP taxonomy terms and build { childName \u2192 parentName } map\n\/\/ WP REST: \/wp-json\/wp\/v2\/{slug}?per_page=100 \u2192 [{id, name, parent, ...}]\n\/\/ Falls back to empty map if taxonomy isn't exposed to REST\nasync function fetchTaxTree(slug) {\n  if(!slug) return {};\n  try{\n    \/\/ Paginate: WP REST max 100 per page\n    let page=1, allTerms=[];\n    while(true){\n      const r=await fetch(`\/wp-json\/wp\/v2\/${slug}?per_page=100&page=${page}`);\n      if(!r.ok) return {}; \/\/ taxonomy not in REST \u2014 fall back to flat\n      const terms=await r.json();\n      if(!terms.length) break;\n      allTerms.push(...terms);\n      \/\/ Check if there are more pages\n      const total=parseInt(r.headers.get('X-WP-TotalPages')||'1');\n      if(page>=total) break;\n      page++;\n    }\n    \/\/ Build id\u2192name lookup, then child name \u2192 parent name map\n    const byId={};\n    allTerms.forEach(t=>byId[t.id]=decHtml(t.name));\n    const parentMap={};\n    allTerms.forEach(t=>{\n      if(t.parent && byId[t.parent]) parentMap[decHtml(t.name)]=byId[t.parent];\n    });\n    return parentMap;\n  }catch(e){\n    console.warn('MESH: Could not fetch taxonomy tree for',slug,e);\n    return {};\n  }\n}\n\ndocument.readyState==='loading'?document.addEventListener('DOMContentLoaded',init):setTimeout(init,50);\n})();\n<\/script>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Cultura \u00b7 Eventos EVENTOS + Publicar evento \u2192 Resultados \u2014 eventos \u2715 Buscar evento Espacio Categor\u00eda Todas las categor\u00edas Disciplina [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-47470","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/themesh.art\/en\/wp-json\/wp\/v2\/pages\/47470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themesh.art\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/themesh.art\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/themesh.art\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themesh.art\/en\/wp-json\/wp\/v2\/comments?post=47470"}],"version-history":[{"count":152,"href":"https:\/\/themesh.art\/en\/wp-json\/wp\/v2\/pages\/47470\/revisions"}],"predecessor-version":[{"id":51774,"href":"https:\/\/themesh.art\/en\/wp-json\/wp\/v2\/pages\/47470\/revisions\/51774"}],"wp:attachment":[{"href":"https:\/\/themesh.art\/en\/wp-json\/wp\/v2\/media?parent=47470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}